O exemplo de carga de trabalho discutido abaixo descreve a criação de uma simulação que é executada automaticamente e avalia a função simulada do veículo por meio de um pipeline do Azure DevOps. Esse pipeline é executado sempre que um engenheiro verifica uma nova versão do código-fonte da função de exemplo ou seu ambiente de simulação.
Arquitetura
Transfira um ficheiro do Visio desta arquitetura.
Camada de entrada do usuário
O desenvolvedor só interagirá com essa camada. Ele contém a estação de trabalho do desenvolvedor (uma VM do Azure em nosso escopo) e o arquivo de especificação que descreve o ambiente de simulação.
Camada de orquestração
"Orquestração" tem um significado amplo: alguns dos problemas descritos pela palavra são trivialmente resolvidos; outros são muito mais complexos. Por exemplo, o problema de "orquestração" de criar, monitorar e destruir contêineres e VMs é resolvido por muitas ferramentas — a própria API do Azure é um "orquestrador" suficiente para isso!
Fluxo de Trabalho
No entanto, é importante dividir a caixa preta da "orquestração" em componentes menores.
API de simulação: esta API recebe um arquivo de especificação e é o ponto de entrada para controlar ambientes de simulação e execuções de simulação com a camada de orquestração.
Interpretador: Este componente interpreta o arquivo de especificação em uma estrutura lógica para o Simulation Manager.
Simulation Manager: Esta é a máquina de estado que converte o objeto do ambiente de simulação lógica em estados desejados e ações a serem usadas por outros componentes. Este é o componente que aciona a construção, execução e desmontagem da simulação. Ele também gerencia dependências internas e modos de falha.
Agendador: Este componente atribui blocos de construção aos recursos de infraestrutura e os inicia lá. Ele leva em conta os requisitos de hardware e acesso, os recursos disponíveis e os limites de recursos.
Gerenciador de ambiente: esse componente observa a infraestrutura subjacente e responde a problemas, como quando um host de contêiner fica inativo.
Network Manager: Este componente gerencia as redes e o roteamento para ambientes de simulação. Cada ambiente deve viver em um ambiente de rede isolado, com blocos de construção isolados recebendo conexões de entrada para interatividade. Este componente também será usado para resolver blocos de construção dentro de uma simulação (por exemplo, através de um DNS interno).
Access Manager: Este componente reflete a autorização/autenticação do ID do Microsoft Entra no resto do sistema.
Configuration Manager: este componente atua como um mecanismo de armazenamento persistente para o estado da infraestrutura e dos ambientes de simulação.
Abstração de infraestrutura: esta é uma camada de abstração que traduz comandos genéricos em comandos específicos da API do Azure para contêineres versus VMs.
Gerenciador de armazenamento: esse componente gerencia o provisionamento e a anexação de armazenamento para ambientes de simulação (por exemplo, dispositivos raiz de VM ou volumes conectados a contêineres).
Monitor de Recursos: Este componente monitora o uso de recursos no nível da infraestrutura em um banco de dados de séries temporais, para exportação para o monitoramento principal do ADP.
Gerenciador de Logs: Este componente agrega logs de blocos de construção para inspeção do usuário. Ele também exporta logs para o log do núcleo do ADP.
A camada de orquestração é o foco principal desta carga de trabalho de exemplo.
Camada de infraestrutura de simulação
Esta camada representa todos os ambientes de simulação em execução.
Ambiente de simulação: A combinação de blocos de construção definidos pelo arquivo de definição e parâmetros são criados aqui, em isolamento de rede de quaisquer outros ambientes de simulação.
Contrato de bloco de construção: o padrão escrito que define como todos os blocos de construção enviam saída, erros e status para a camada de orquestração.
Building Block Pipeline: Esta área gerencia a criação e o armazenamento de blocos de construção.
Building Block Repository: Este é o sistema de armazenamento e recuperação para imagens de bloco de construção, como um registro de contêiner e/ou uma galeria de imagens do Azure.
Building Block Factory: O pipeline de integração contínua e implantação contínua (CI/CD) que cria imagens de bloco de construção usando pacotes de componentes imutáveis e verificáveis (por exemplo, dpkg ou apt) em uma linguagem de configuração declarativa (por exemplo, Chef ou Ansible).
Camada de armazenamento
Esta camada armazena de forma durável e acessível os resultados da simulação. É principalmente responsabilidade do fluxo de trabalho Data Lake da plataforma de desenvolvimento de aplicativos móveis (MADP), embora sua saída tenha que ser gerenciável por essa equipe.
Interface de armazenamento: a interface que permite aos usuários trabalhar com armazenamento de resultados de simulação. Isso funciona em estreita sintonia com, ou pode ser suplantado por, o componente de orquestração do Storage Manager acima.
Armazenamento: o mecanismo de armazenamento usado para salvar resultados de simulação (por exemplo, recursos do Armazenamento de Blob do Azure ou do Armazenamento em Disco do Azure).
Componentes
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 comprar e manter o hardware físico.
A Rede Virtual do Azure é o bloco de construção fundamental para a sua rede privada no Azure. A Rede Virtual do Azure 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 redes locais.
As Instâncias de Contêiner do Azure oferecem a maneira mais rápida e simples de executar um contêiner no Azure, sem precisar gerenciar nenhuma VM e sem precisar adotar um serviço de nível superior.
O Registro de Contêiner do Azure é um serviço de registro do Docker gerenciado e privado baseado no Registro do Docker 2.0 de código aberto. Você pode usar os registros de contêiner do Azure com seus pipelines de desenvolvimento e implantação de contêiner existentes ou usar as Tarefas do Registro de Contêiner do Azure para criar imagens de contêiner no Azure. Crie sob demanda ou automatize totalmente as compilações com gatilhos, como confirmações de código-fonte e atualizações de imagem base.
Os Pipelines do Azure fazem parte dos Serviços de DevOps do Azure e executam compilações, testes e implantações automatizados. Você também pode usar soluções de CI/CD de terceiros, como Jenkins.
O Microsoft Entra ID é o serviço de gerenciamento de identidade e acesso 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 massivamente escalável. Ele inclui recursos de armazenamento de objetos, arquivos, discos, filas e tabelas.
O Azure Monitor coleta telemetria de monitoramento de uma variedade de fontes locais e do Azure. Esse serviço agrega e armazena telemetria em um armazenamento de dados de log otimizado para custo e desempenho.
Alternativas
Essa arquitetura usa VMs e contêineres para implantar as diferentes ferramentas e serviços. Como alternativa, você também pode usar os Serviços Kubernetes do Azure (AKS). O AKS disponibiliza o Kubernetes sem servidor, uma experiência de CI/CD integrada, bem como segurança e governação de nível empresarial.
O mecanismo de armazenamento usado para salvar os resultados da simulação nessa arquitetura é baseado no Armazenamento de Blob do Azure ou no Armazenamento em Disco do Azure. Como alternativa para cargas de trabalho maiores, você também pode examinar as soluções de análise e dados em grande escala do Azure para armazenar e analisar dados.
Considere também usar o Azure Monitor para analisar e otimizar o desempenho de sua infraestrutura e para monitorar e diagnosticar problemas de rede sem fazer logon em suas VMs.
Detalhes do cenário
Para avaliar a condução autónoma (AD), os engenheiros de funções precisam de simular o comportamento de veículos com capacidades AD. Considere o seguinte exemplo de cenário de condução:
Um veículo de teste está dirigindo de forma autônoma a 80 mph na faixa da direita em uma rodovia de 3 pistas. Há um caminhão 600 pés à frente dirigindo na mesma pista e na mesma direção a 55 mph. Não há nenhum veículo nas proximidades na faixa do meio. Os marcadores de estrada são visíveis, o sol brilha perpendicularmente ao veículo e a estrada está seca.
Uma simulação finita do comportamento de um veículo usando um cenário como este é chamada de corrida de simulação. No cenário acima, o comportamento esperado do seu veículo simulado é passar confortavelmente o caminhão sem causar um acidente e sem violar nenhuma regra de trânsito. Ao executar uma simulação para cada nova versão de uma função, os engenheiros de função do AD testam se a nova versão ainda apresenta o comportamento esperado.
Para executar uma simulação, os engenheiros de função do AD geralmente usam um conjunto de aplicativos de software. Estes podem incluir Virtual Test Drive (VTD), Time Partition Testing (TPT), Avionics Development System 2G (ADS2) e Automotive Data and Time-Triggered Framework (ADTF), que comunicam entre si de acordo com as suas configurações específicas para testar uma determinada função de condução autónoma, como o Highway Pilot. Uma implantação desse conjunto de ferramentas de software e suas configurações em máquinas físicas e/ou virtuais (VMs) no local e/ou na nuvem é chamada de ambiente de simulação.
Para garantir a validade dos resultados de teste gerados por cada simulação executada, você deve garantir que a simulação comece em um novo ambiente de simulação definido para seu estado inicial.
Cada equipa de condução autónoma necessita de um conjunto separado de aplicações no seu ambiente de simulação, com uma configuração única. Muitas equipes também precisarão de vários ambientes de simulação diferentes. Por exemplo, para avaliar um sensor LIDAR, você precisará de simulação de objetos de alta resolução, mas sem outros motoristas, marcas de estrada ou outros recursos. Embora cada ambiente seja único, há uma sobreposição significativa nos aplicativos usados. Por exemplo, muitas equipes usam VTD em vários ambientes de simulação.
É possível executar uma simulação em um ambiente de simulação composto por unidades reutilizáveis, encapsuladas e avaliadas de forma independente. Essas unidades servem como os "blocos de construção" que você usará para a criação automática e sob demanda de ambientes de simulação na nuvem do Azure. Esses ambientes de simulação também são chamados de plataformas de condução automatizada (ADP).
Potenciais casos de utilização
Esta solução é ideal para as indústrias automóvel e de transportes. Os usos típicos para essa carga de trabalho incluem:
Automatização de testes de condução.
Prototipagem, desenvolvimento, integração, teste, validação e verificação de sistemas de controle na indústria automotiva.
Gravação de dados do veículo para visualização.
Simulação de cenários de condução complexos na indústria automóvel.
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.
Disponibilidade e resiliência
Considere a implantação de VMs em conjuntos de disponibilidade ou zonas de disponibilidade, que ajudam a proteger os aplicativos contra eventos de manutenção planejada e interrupções não planejadas.
Um conjunto de disponibilidade é um agrupamento lógico de VMs que permite ao Azure compreender a forma como a aplicação é criada, para fornecer redundância e disponibilidade.
As zonas de disponibilidade são locais físicos exclusivos dentro das regiões do Azure que ajudam a proteger VMs, aplicativos e dados contra falhas no datacenter. Cada zona é composta por um ou mais datacenters. VMs e aplicativos em zonas podem permanecer disponíveis mesmo se houver uma falha física em um único datacenter.
Escalabilidade
Você pode dimensionar VMs do Azure manualmente ou usando recursos de dimensionamento automático.
Para implantações de contêiner, as Instâncias de Contêineres do Azure e os Serviços Kubernetes do Azure também são projetados para aumentar ou diminuir manualmente ou automaticamente.
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.
Como em qualquer outro tipo de aplicação, o ambiente de simulação pode ser projetado para lidar com dados confidenciais. Portanto, você deve restringir quem pode entrar e usá-lo, e também deve limitar quais dados podem ser acessados com base na identidade ou função do usuário. Use a ID do Microsoft Entra para controle de identidade e acesso e use o Azure Key Vault para gerenciar chaves e segredos.
Para obter orientações gerais sobre como criar soluções seguras, consulte a documentação de segurança do Azure.
DevOps
Para implantar novos ambientes de simulação, é melhor usar processos de CI/CD usando uma solução como o Azure DevOps ou o GitHub Actions.
Otimização de custos
A otimização de custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custos.
No geral, utilize a calculadora de preços do Azure para prever os custos. Você também pode otimizar seus custos seguindo o processo para dimensionar corretamente a capacidade de suas VMs desde o início, juntamente com o redimensionamento simplificado, conforme necessário. Outras considerações são descritas na seção Custo em Microsoft Azure Well-Architected Framework.
Próximos passos
Documentação do produto:
Caminhos de aprendizagem da Microsoft:
Implementar e gerenciar armazenamento para administradores do Azure
Implantar e gerenciar recursos de computação para administradores do Azure
Configurar e gerenciar redes virtuais para administradores do Azure
Gerenciar identidades e governança para administradores do Azure
Monitorar e fazer backup de recursos para administradores do Azure
Recursos relacionados
Artigos de visão geral do Centro de Arquitetura do Azure: