Esta arquitetura de exemplo mostra uma abordagem de ponta a ponta para um OEM (fabricante de equipamento original) automotivo e inclui uma arquitetura de referência e várias bibliotecas de código aberto com suporte que podem ser reutilizadas. A Microsoft reprojetou o software de controle de frota para ser altamente disponível, geo-redundante e independente de fornecedor, e para ser executado em um contexto de nuvem híbrida.
Arquitetura
Redundância geográfica com failover sem tempo de inatividade para 99,9% de disponibilidade e recuperação de desastre
Baixe um Arquivo Visio dessa arquitetura.
Workflow
- Uma instância do back-end, que consiste nos seguintes componentes, é implantada em duas regiões do Azure: Hub IoT do Azure, Ingestão, RabbitMQ, Estado da Missão, Estado do Veículo, Gerenciador de Trabalho e BD Geográfico. O Hub IoT se conecta ao conjunto de aplicativos criado usando uma arquitetura de microsserviço que pode ser implantada no Serviço de Aplicativo do Azure usando o recurso Aplicativos Web do Serviço de Aplicativo do Azure, o Aplicativo Web para Contêineres ou o Kubernetes.
- Um sistema de pedido de líder determina o back-end que controla os AGVs no chão de fábrica em qualquer momento especificado. Se o back-end encarregado falha, o pedido de líder transfere imediatamente o controle para o back-end na outra região.
- Graças a essa arquitetura de failover com redundância geográfica e sem tempo de inatividade, o software de controle de AGV que é executado no Azure alcança 99,9% de disponibilidade, desde que a conexão com a Internet e os subsistemas externos, como o SAP, não sejam fatores limitantes.
Kubernetes e RabbitMQ para implantações independentes de datacenter
Baixe um Arquivo Visio dessa arquitetura.
Nos cenários em que a conexão com a Internet entre uma fábrica e o Azure é um fator limitante, nosso software de controle de AGV também pode ser implantado em nós de computação locais. Usando o Kubernetes e o RabbitMQ como tecnologias independentes de plataforma, a camada de aplicativo descrita na seção anterior é implantada em um dispositivo Azure IoT Edge.
Implementação da especificação VDA 5050 para comunicação de AGV independente de fornecedor
Baixe um Arquivo Visio dessa arquitetura.
Graças à conformidade com a especificação de conector de veículo VDA 5050, nosso software de controle de AGV pode se comunicar com todos os tipos de AGVs de diferentes fornecedores que também estão em conformidade com a VDA 5050.
Workflow
Nessa arquitetura, você pode ter uma visão geral dos diferentes serviços e componentes usados para executar a solução de controle de frota de AGV de back-end no Azure:
- Quando os desenvolvedores fazem commit de um novo código, o GitHub Actions examina automaticamente o código para localizar com rapidez qualquer vulnerabilidade e erro de codificação. Ele também pode ser usado para implantar aplicativos e componentes de infraestrutura automaticamente.
- Um registro de contêiner armazena as imagens de contêiner usadas para os diferentes serviços do back-end de controle de frota de AGV.
- Os serviços de back-end são implantados no Aplicativo Web para Contêineres.
- Esses serviços de back-end podem se conectar a sistemas externos por meio do protocolo VDA 5050. Eles também podem se conectar a uma plataforma de streaming gerenciada, como o Kafka, e podem armazenar informações de veículos em um banco de dados SQL do Azure.
- O Azure Key Vault armazena senhas, chaves e certificados.
- O Application Insights implementa o log e o monitoramento para os aplicativos executados como serviços de back-end.
- As identidades gerenciadas conectam-se aos diferentes serviços e recursos no Azure, eliminando a necessidade de os desenvolvedores gerenciarem credenciais. Eles fornecem uma identidade para os aplicativos usarem ao se conectarem a recursos que oferecem suporte a autenticação Microsoft Entra.
Componentes
O Serviço de Aplicativo do Azure é uma PaaS (plataforma como serviço) usada para compilar e hospedar aplicativos em VMs (máquinas virtuais) gerenciadas. Ele gerencia a infraestrutura de computação subjacente na qual seus aplicativos são executados. O Serviço de Aplicativo fornece monitoramento de cotas de uso de recursos e métricas de aplicativo, registro em log de informações de diagnóstico e alertas com base nas métricas.
A Rede Virtual do Microsoft Azure é o bloco de construção fundamental de sua rede privada no Azure. Esse serviço permite que muitos tipos de recursos do Azure, como Máquinas Virtuais do Azure, se comuniquem com segurança entre si, com a Internet e com as redes locais.
O Hub IoT é um serviço gerenciado de PaaS, hospedado na nuvem, que funciona como um hub central de mensagens para comunicação bidirecional entre um aplicativo IoT e os dispositivos gerenciados por ele.
Aplicativos de Contêiner do Azure é um serviço de contêiner sem servidor totalmente gerenciado para criar e implantar contêineres em escala.
O Registro de Contêiner do Azure é um serviço gerenciado do Registro do Docker privado baseado no Registro do Docker 2.0 de código aberto. Você pode usar registros de contêiner do Azure com seus pipelines existentes de desenvolvimento e implantação de contêiner ou usar as Tarefas do Registro de Contêiner do Azure para criar imagens de contêiner no Azure. Faça builds sob demanda ou automatize-os por completo com gatilhos, como commits de código-fonte e atualizações da imagem base.
Microsoft Entra ID é o serviço de gerenciamento de acesso e identidades baseado em nuvem que autentica usuários, serviços e aplicativos.
O Armazenamento do Azure oferece uma solução de armazenamento em nuvem durável, altamente disponível e amplamente escalonável. Inclui funcionalidades de armazenamento de objetos, de arquivos, de discos, de filas e de tabelas.
O RabbitMQ é um software de agente de mensagens de código aberto que originalmente implementou o Advanced Message Queuing Protocol e, desde então, foi estendido com uma arquitetura de plug-in para dar suporte ao Streaming Text Oriented Messaging Protocol, ao MQ Telemetry Transport e a outros protocolos.
As Máquinas Virtuais do Azure fornecem recursos de computação escalonáveis e sob demanda que oferecem a flexibilidade da virtualização, sem a necessidade de compra e manutenção do hardware físico.
O Banco de Dados SQL do Azure é um mecanismo de banco de dados PaaS totalmente gerenciado que cuida da maioria das funções de gerenciamento de banco de dados, como atualização, aplicação de patch, backups e monitoramento, sem o envolvimento do usuário.
O Azure Key Vault é serviço de nuvem para armazenar e acessar segredos de maneira segura. Um segredo é qualquer coisa a qual você queira controlar rigidamente o acesso, como chaves de API, senhas, certificados ou chaves de criptografia.
O Application Insights, um recurso do Azure Monitor, é um serviço de APM (gerenciamento de desempenho de aplicativo) para desenvolvedores e profissionais de DevOps. Você pode usá-lo para monitorar aplicativos dinâmicos. Ele detecta automaticamente anomalias de desempenho e inclui ferramentas de análise avançadas para ajudar você a diagnosticar problemas e a entender o que os usuários realmente fazem com seu aplicativo.
Alternativas
Essa arquitetura usa o Kubernetes e o recurso Aplicativos Web do Serviço de Aplicativo do Azure para executar os aplicativos dessa solução. Como alternativa, você pode executar esses microsserviços nas Instâncias de Contêiner do Azure, que oferece a maneira mais rápida e simples de executar um contêiner no Azure, sem precisar adotar um serviço de nível superior, como o AKS (Serviço de Kubernetes do Azure).
O exemplo local usa as máquinas virtuais do Azure, que também podem ser substituídas por tecnologias de contêiner.
Outra opção para executar esses serviços é no AKS (Serviço de Kubernetes do Azure). Isso oferece o Kubernetes sem servidor para a execução de microsserviços, uma experiência integrada de CI/CD (integração contínua e implantação contínua), além de segurança e governança de classe empresarial.
Considere também o uso do Azure Monitor em combinação com o Application Insights para analisar e otimizar o desempenho de aplicativos, contêineres, bancos de dados e outros recursos, bem como para monitorar e diagnosticar problemas de rede.
Essa arquitetura usa o RabbitMQ como o agente de mensagens. O Microsoft Azure também tem suporte nativo para soluções de mensagens, como o Armazenamento de Filas do Azure ou o Barramento de Serviço do Azure. Para ver uma comparação, confira Filas do Armazenamento do Azure e filas do Barramento de Serviço – Comparações e diferenças.
Os aplicativos e os serviços no Azure são implantados com os scripts do Terraform. Considere o uso de modelos do ARM (modelos do Azure Resource Manager) nativos do Azure ou o Bicep para criar scripts.
Detalhes do cenário
A fabricação automotiva depende de AGVs (veículos guiados automatizados) para fornecer peças para as linhas de montagem. Os AGVs são uma parte essencial da fabricação just-in-time e da logística de chão de fábrica automatizada. Os chãos de fábrica que usam AGVs normalmente enfrentam três desafios:
- Disponibilidade. Qualquer interrupção de serviço interrompe a produção.
- Conectividade. Frequentemente, os chãos de fábrica não têm uma conexão confiável com a nuvem pública.
- Bloqueio de fornecedor. As soluções tradicionais de AGV dependem de protocolos de comunicação proprietários.
Essa arquitetura de exemplo é dividida em três áreas operacionais:
- Uma arquitetura de referência de controle de frota baseada no Azure com redundância geográfica, failover sem tempo de inatividade, 99,9% de disponibilidade e recuperação de desastre eficiente.
- Uma implantação local e independente de datacenter criada no Kubernetes e no RabbitMQ.
- Comunicação do AGV com neutralidade de fornecedor criada com base na especificação comum VDA 5050.
Possíveis casos de uso
Essa solução é ideal para os setores de manufatura, automotivo e de transporte. Ele se aplica aos seguintes cenários:
- Atualmente, o cliente está usando AGVs no processo de fabricação.
- O cliente enfrenta baixa disponibilidade com os AGVs, o que afeta o ROI (retorno sobre o investimento).
- O chão de fábrica tem uma conexão inconsistente com a nuvem pública.
- O cliente é membro da OMP (Open Manufacturing Platform).
- O cliente é membro do grupo de trabalho do OMP ATS (OMP Autonomous Transport System).
Problemas chave
A produção de mercadorias de baixo custo depende da automação do processo de fabricação e da entrega just-in-time de peças para as linhas de montagem. Ao transportar as peças automaticamente para as linhas de montagem, os veículos guiados automatizados contribuem para a fabricação just-in-time e para a automação da logística do chão de fábrica. Em uma fábrica típica de produção em massa de carros de passageiros, por exemplo, um carro de passageiro é distribuído a cada minuto. Portanto, cada minuto de interrupção de uma linha de montagem em uma fábrica causa uma perda financeira, na ordem de dezenas de milhares de dólares americanos. Os OEMs automotivos exigem um alto nível de confiabilidade e disponibilidade para os sistemas automatizados e enfrentam vários desafios:
- Problema de disponibilidade. O software de controle de frota de AGV existente não atende ao requisito de disponibilidade de 99,9%.
- Problema de conectividade. Algumas fábricas não têm uma conexão com a Internet suficientemente estável e com a largura de banda necessária para habilitar a comunicação entre o software de controle de frota de AGV hospedado na nuvem pública do Azure e os AGVs no chão de fábrica. Portanto, hospedar o software de controle de frota de AGV em um datacenter que está fora da intranet dessa fábrica não era uma opção.
- Problema de bloqueio de fornecedor do AGV. Não foi possível trocar os AGVs existentes por novos de outro fornecedor, pois o software de controle de frota de AGV dependia do protocolo de comunicação proprietário dos AGVs existentes.
Uma arquitetura que dá suporte à redundância geográfica com failover sem tempo de inatividade para 99,9% de disponibilidade e recuperação de desastre pode resolver esses problemas.
Considerações
Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.
Disponibilidade e escalabilidade
Os aplicativos e os serviços que compõem a solução de controle de frota de AGV são implantados em duas regiões do Azure usando as zonas de disponibilidade, que são localizações físicas exclusivas em regiões do Azure que ajudam a proteger VMs, aplicativos e dados contra falhas do datacenter. O Serviço de Aplicativo do Azure e o AKS também podem ser implantados em zonas de disponibilidade. O Hub IoT fornece alta disponibilidade entre regiões implementando redundâncias em quase todas as camadas do serviço.
Segurança
A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.
Use o Microsoft Entra ID para o controle de acesso e identidade e o Azure Key Vault para gerenciar chaves e segredos.
DevOps
Para implantar os microsserviços no Kubernetes ou no Serviço de Aplicativo do Azure automaticamente, é melhor usar os processos de CI/CD. Considere usar uma solução como o Azure DevOps ou o GitHub Actions.
Otimização de custo
A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.
Em geral, use a calculadora de preços do Azure para estimar os custos e a calculadora do AKS para estimar os custos de execução do AKS no Azure. Para saber mais sobre outras considerações, confira a seção "Otimização de custo" no Microsoft Azure Well-Architected Framework.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Autor principal:
- Gürcan Güleşir | Gerente de Programação Sênior
Próximas etapas
Documentação do produto:
- Application Insights
- Microsoft Entra ID
- Serviço de Aplicativo do Azure
- Instâncias de Contêiner do Azure
- Registro de Contêiner do Azure
- Hub IoT do Azure
- Serviço de Kubernetes do Azure
- Azure Key Vault
- Azure Monitor
- Banco de Dados SQL do Azure
- Máquinas Virtuais do Azure
- Rede Virtual do Azure
- GitHub
Roteiros de aprendizagem da Microsoft:
- Introdução ao Azure IoT
- Introdução ao Kubernetes no Azure
- Administrar contêineres no Azure
- Crie microsserviços com .NET e ASP.NET Core
- Gerenciar identidades e governança para administradores do Azure
Recursos relacionados
Artigos de visão geral do Centro de Arquitetura do Azure:
- Estilo de arquitetura de microsserviços
- Como escolher uma opção de computação do Azure para microsserviços
- Aplicativo Web com redundância de zona de linha de base
- Aplicativo Web de várias regiões altamente disponível
- Arquitetura avançada de microsserviços do AKS (Serviço de Kubernetes do Azure)
- CI/CD para aplicativos AKS com o Azure Pipelines
Arquiteturas relacionadas