Simulação de telemetria do Cloud

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, COMPLETED ou FAILED).
  • 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, COMPLETED ou FAILED) 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-simulation cria uma VM do Compute Engine para cada simulação. A VM executa o contêiner do Docker simulation-agent.
    • O simulation-agent extrai 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.
  • 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.