Este artigo descreve uma colaboração entre a Microsoft e uma grande empresa ferroviária para criar uma solução de manutenção e segurança de trens de Internet das Coisas (IoT).
Arquitetura
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de dados
- Um servidor de arquivos de imagem NAS (Network Attached Storage, armazenamento conectado à rede) em um bangalô na via serve imagens de rodas de trem processadas e categorizadas. Três imagens de cada roda criam uma imagem costurada.
- O módulo de sondagem do IoT Edge alerta o dispositivo IoT Edge de que novas imagens estão disponíveis para processamento.
- O módulo de ML do IoT Edge executa um modelo de ML de terceiros que processa as imagens e identifica áreas de roda que precisam de mais inspeção.
- O Manipulador de Alertas do IoT Edge carrega todas as imagens no Armazenamento de Blobs do Azure, começando com imagens com defeitos potenciais, e retorna os URIs de blob de imagem.
- O módulo IoT Edge Hub associa os URIs de imagem a metadados de imagem, como Número do Equipamento ou do Carro, Eixo, Carimbo de data/hora e Localização do detetor. O módulo carrega os metadados e alertas para o Hub IoT do Azure.
- O Hub IoT envia os metadados por meio de Hubs de Eventos e Azure Functions para um banco de dados do Azure Cosmos DB.
- O banco de dados do Azure Cosmos DB associa os metadados de imagem aos URIs das imagens armazenadas no Armazenamento de Blobs do Azure. O sistema pode usar os dados do Azure Cosmos DB para reconhecimento de defeitos, análise de tendências, manutenção preditiva e retreinamento de modelos de ML.
Componentes
Este exemplo implanta dispositivos do Azure IoT Edge em bangalôs de pista, usando hardware de classe de servidor com placas de automação industrial personalizadas e unidades de processamento gráfico (GPUs) para desempenho.
O IoT Edge é composto por três componentes:
Os módulos do IoT Edge são contêineres que podem executar o Azure, componentes de terceiros ou personalizados.
Os módulos de ML do IoT Edge podem dar suporte ao Azure Machine Learning, modelos de ML de terceiros ou código personalizado. A solução atual usa um modelo de ML de código aberto de terceiros chamado Cogniac para pontuar dados de rodas de trem e reconhecer possíveis defeitos. O software de ML usa amostras históricas de imagens de falha de alta e baixa confiança para treinar novamente seu modelo de ML.
O tempo de execução do IoT Edge, que consiste no Agente IoT e no IoT Edge Hub, é executado nos dispositivos IoT Edge para gerenciar e coordenar os módulos implantados.
Uma interface baseada na nuvem permite a monitorização e gestão remotas.
O sistema também usa os seguintes componentes de nuvem do Azure:
O Hub IoT do Azure permite a comunicação, o gerenciamento e o monitoramento seguros e bidirecionais da nuvem dos módulos do IoT Edge.
O Armazenamento de Blobs do Azure é o armazenamento de objetos para a nuvem. O armazenamento de Blob é otimizado para armazenar grandes quantidades de dados não estruturados, como os dados de imagem neste exemplo.
O Azure Cosmos DB é um serviço de banco de dados NoSQL totalmente gerenciado com baixos tempos de resposta e alta disponibilidade e escalabilidade.
Alternativas
A arquitetura IoT Edge usa vários módulos, mas pode ser condensada em um único módulo, dependendo dos requisitos de desempenho da solução ou da estrutura da equipe de desenvolvimento.
A empresa ferroviária é proprietária apenas do sistema de inferência e depende de um fornecedor terceirizado para a geração do modelo de ML. A natureza de caixa preta do módulo ML representa algum risco de dependência. A manutenção da solução a longo prazo requer a compreensão de como o terceiro governa e compartilha ativos. O sistema pode ser capaz de usar módulos de ML de espaço reservado para compromissos futuros quando os ativos de ML não estiverem disponíveis.
Detalhes do cenário
O Azure IoT Edge permite o processamento e armazenamento de dados mais próximos da fonte de dados. O processamento de cargas de trabalho na borda permite respostas rápidas e consistentes com menos dependência da conectividade e dos recursos da nuvem.
Aproximar o aprendizado de máquina (ML) e a lógica de negócios das fontes de dados significa que os dispositivos podem reagir mais rapidamente a mudanças locais e eventos críticos. Os dispositivos podem operar de forma confiável off-line ou quando a conectividade é limitada.
A computação de borda pode incorporar modelos de inteligência artificial (IA) e ML para criar dispositivos e redes de borda inteligentes. A rede de borda pode determinar quais dados enviar para a nuvem para processamento adicional e priorizar dados urgentes e importantes.
A empresa ferroviária queria usar o Azure IoT Edge para melhorar a segurança e a eficiência, fornecendo:
- Identificação proativa de componentes defeituosos.
- Programação preditiva de manutenção e reparação.
- Melhoria contínua de análises e previsões.
O projeto-piloto para a solução IoT Edge é um sistema de análise de integridade da roda de trem. Neste sistema, mais de 4.000 detetores de via monitoram continuamente e transmitem dados de rodas dos trens da empresa. Os detetores:
- Meça o calor e a força dos equipamentos nas pistas.
- Ouça se há defeitos invisíveis no rolamento da roda ou rachaduras nas rodas.
- Identificar peças em falta ou extraviadas.
Os módulos do Azure IoT Edge processam e atuam nos dados de streaming contínuo quase em tempo real. Os módulos do IoT Edge são executados em hardware de classe de servidor em bangalôs de pista, permitindo a futura implantação paralela de outras cargas de trabalho. A solução baseada no IoT Edge:
- Identifica equipamentos em risco.
- Determina a urgência do reparo.
- Gera alertas.
- Envia dados para a nuvem do Azure para armazenamento.
O sistema de análise da integridade das rodas fornece a identificação precoce de possíveis falhas no equipamento que podem levar ao descarrilamento do trem. A empresa pode usar os dados armazenados para identificar tendências e informar cronogramas de manutenção prescritivos.
Potenciais casos de utilização
Esta solução é ideal para as indústrias de transporte, telecomunicações e manufatura. Centra-se nos seguintes cenários:
- Uma rede de telecomunicações que tem de manter 99% ou mais tempo de atividade.
- Controle de qualidade de produção, reparo de equipamentos e manutenção preditiva em uma fábrica.
- Um sistema de segurança de transporte que deve processar dados de streaming em tempo real com pouca ou nenhuma latência.
- Sistemas de trânsito que precisam fornecer notificações e alertas de programação em tempo hábil.
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.
Várias considerações se aplicam a este exemplo.
Operações
A solução implantada requer uma assinatura do Azure com permissão para adicionar entidades de serviço e a capacidade de criar recursos do Azure. Para obter mais informações, consulte Registros de contêiner e entidades de serviço.
Um fluxo de trabalho do Azure Pipelines cria, testa, implanta e arquiva a solução IoT Edge por meio de tarefas internas do Azure IoT Edge. A empresa ferroviária hospeda o sistema de integração contínua/implantação contínua (CI/CD) no local. O diagrama a seguir mostra a arquitetura DevOps para implantação:
No primeiro pipeline de CI, um push de código no repositório Git aciona a compilação do módulo IoT Edge e registra a imagem do módulo no Registro de Contêiner do Azure.
A conclusão do pipeline de CI aciona o pipeline de CD, que gera o manifesto de implantação e implanta o módulo nos dispositivos IoT Edge.
A implantação tem três ambientes: Dev, QA e Production. A promoção de módulos de Dev para QA e de QA para Production suporta verificações automáticas e manuais fechadas.
A criação e implantação da solução também usa:
- CLI do Azure
- Docker CE ou Moby para criar e implantar os módulos de contêiner
- Para desenvolvimento, Visual Studio ou Visual Studio Code com o Docker, Azure IoT e extensões de linguagem relevantes.
Desempenho
O sistema requer 99% de tempo de atividade e entrega de mensagens no local dentro de 24 horas. A Qualidade de Serviço (QoS) para a última milha de conectividade entre o bangalô e o Azure determina a QoS dos dados da borda. Os provedores de serviços de Internet (ISPs) locais controlam a última milha de conectividade e podem não suportar a QoS necessária para notificações ou upload de dados em massa.
Este sistema não faz interface com as câmeras de roda e armazenamentos de dados de apoio, portanto, não tem controle ou capacidade de gerar alertas sobre o sistema de câmera ou falhas do servidor de imagem.
Esta solução não substitui os requisitos de inspeção manual existentes determinados pela empresa e pelas autoridades reguladoras federais.
Segurança
A segurança oferece garantias contra ataques deliberados e o abuso de seus valiosos dados e sistemas. Para obter mais informações, consulte Visão geral do pilar de segurança.
Segurança e monitoramento são considerações para sistemas IoT Edge. Neste exemplo:
- A solução empresarial de terceiros existente da empresa cobria o monitoramento do sistema.
- A segurança física dos bungalows de via e a segurança da rede já estavam implementadas.
- As conexões do IoT Edge com a nuvem são seguras por padrão.
Próximos passos
- O futuro da computação: nuvem inteligente e borda inteligente
- Documentação do Azure IoT Edge
- Crie módulos IoT Edge
- Solução completa usando o Azure Machine Learning e o IoT Edge
- Integração contínua e implantação contínua no Azure IoT Edge
- Implementar módulos do Azure IoT Edge a partir do portal do Azure
Projetos GitHub:
- CloudEventos
- Azure IoT Edge e RabbitMQ
- Modelo Cookiecutter para o Módulo Python do Azure IoT Edge
- Streaming em escala
- ServiceBusExplorer
- DASH para Armazenamento do Azure
Recursos de aprendizagem da solução:
- Matriz de compatibilidade do Docker
- Plug-in Jenkins Azure IoT Edge
- Origem do Evento
- Reagir a eventos de armazenamento de Blob
- Enlaces de armazenamento de Blobs do Azure para as Funções do Azure
- Streaming sem servidor em escala com o Azure Cosmos DB
- Quando evitar CQRS