A plataforma Simulação de telemetria de veículos definidos por software (SDV) oferece uma infraestrutura escalonável e sob demanda para executar simulações de telemetria de veículos no Google Cloud.
O sistema permite simular campanhas de telemetria de um ambiente virtual do Android Automotive (Cuttlefish) sem hardware físico. Ele orquestra o ciclo de vida da simulação recebendo solicitações, criando máquinas virtuais (VMs) temporárias do Compute Engine, executando simulações em contêineres do Docker, coletando e fazendo upload de resultados para o Cloud Storage e excluindo recursos.
Essa abordagem oferece uma plataforma econômica e altamente escalonável para testar pipelines de telemetria, porque os recursos são consumidos apenas durante a execução da simulação.
Finalidade e recursos
O sistema orquestra o ciclo de vida da simulação e abstrai o gerenciamento da infraestrutura subjacente.
- Escalonabilidade sob demanda:o sistema cria recursos (VMs do Compute Engine) apenas durante uma simulação para fornecer custos com base no uso.
- Gerenciamento de simultaneidade:o sistema aplica um limite configurável em simulações paralelas (por exemplo, 5 por padrão). Ele enfileira solicitações em excesso e as programa automaticamente quando os slots ficam disponíveis.
- Arquitetura orientada a eventos:o sistema usa as Funções do Cloud e o Pub/Sub para orquestração de fluxo de trabalho desacoplada e resiliente, que inclui processamento de solicitações, programação, finalização e limpeza.
- Gerenciamento de estado integrado:o sistema usa um banco de dados do Firestore para acompanhar o estado e a configuração de cada simulação em tempo real (por exemplo,
PENDING,RUNNING,COMPLETEDouFAILED). - Gerenciamento de artefatos:o sistema processa automaticamente o download dos arquivos de entrada necessários e o upload de toda a saída da simulação (por exemplo, relatórios, registros, relatórios de bugs e arquivos Logcat) para o Cloud Storage.
- Limpeza de recursos:um job automatizado do Cloud Scheduler evita vazamentos de recursos limpando VMs órfãs ou entradas de banco de dados.
Arquitetura
O sistema usa uma arquitetura sem servidor orientada a eventos com vários serviços do Google Cloud. É possível interagir com o sistema usando uma interface da Web ou uma API REST.
- Interação do usuário:é possível usar a demonstração da Web fornecida, um aplicativo personalizado ou interagir diretamente com os endpoints da API.
- Camada de orquestração:
read-simulation: essa função permite consultar simulações, o número de VMs em execução e o número máximo configurado de VMs em execução simultânea.receive-request: o sistema valida solicitações em relação a uma lista de permissões estrita de impressões digitais de imagens e as publica no Pub/Sub.schedule-simulation: o Eventarc aciona essa função com base em mensagens do Pub/Sub ou mudanças do Firestore. Ele verifica o limite de simultaneidade e provisiona VMs.finish-simulation: o agente invoca essa função no final de uma execução para atualizar o status e acionar a limpeza.delete-simulation: essa função processa o cancelamento manual e a limpeza de recursos.
- Gerenciamento de estado (Firestore) : um banco de dados do Firestore acompanha o estado (por exemplo,
PENDING,RUNNING,COMPLETEDouFAILED) e a configuração de cada simulação. Esse banco de dados armazena todos os dados de execução da simulação. - Armazenamento de dados (Cloud Storage) : o sistema armazena todos os arquivos relacionados à simulação em um bucket do Cloud Storage. Isso inclui arquivos de configuração de entrada, relatórios de saída, registros do dispositivo Cuttlefish , relatórios de bugs e arquivos Logcat.
- Camada de execução (Compute Engine)
- A função
schedule-simulationcria uma VM do Compute Engine para cada simulação. A VM executa o contêiner do Dockersimulation-agent. - O
simulation-agentextrai arquivos de entrada do Cloud Storage, inicia a instância do SDV e gerencia interações com o dispositivo virtual Cuttlefish para executar o simulador de telemetria e recuperar os dados resultantes.
- A função
- Manutenção (Cloud Scheduler) : um job programado é executado periodicamente para limpar recursos órfãos (por exemplo, VMs com falha ou entradas de banco de dados desatualizadas) para evitar vazamentos de recursos.
Próximas etapas
Para começar a usar a simulação de telemetria na nuvem, consulte os seguintes guias:
- Guia de implantação: saiba como configurar a infraestrutura e criar o agente de simulação.
- Guia do usuário: saiba como executar simulações usando a demonstração da Web ou a API REST.