Simulação de telemetria do Cloud

A plataforma de simulação de telemetria na nuvem para 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 em 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 dentro de 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 organiza 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 a simulação para fornecer um custo baseado no uso.
  • Gerenciamento de simultaneidade: o sistema aplica um limite configurável em simulações paralelas (por exemplo, 5 por padrão). Ele coloca as solicitações em excesso em fila e as programa automaticamente quando os slots ficam disponíveis.
  • Arquitetura orientada a eventos: o sistema usa o Cloud Functions e o Pub/Sub para uma 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 rastrear o estado em tempo real e a configuração de cada simulação (por exemplo, Simulation request received, running, completed, failed ou cancelled).
  • Gerenciamento de artefatos: o sistema processa automaticamente o download dos arquivos de entrada necessários e o upload de todas as saídas de simulação (por exemplo, relatórios, registros, relatórios de bugs e arquivos do Logcat) para o Cloud Storage.
  • Limpeza de recursos: um job automatizado do Cloud Scheduler evita vazamentos de recursos limpando VMs ou entradas de banco de dados órfãs.

Arquitetura

O sistema usa uma arquitetura sem servidor e 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: use a demonstração fornecida na Web, um aplicativo personalizado ou interaja diretamente com os endpoints de 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 as solicitações em relação a uma lista de permissões estrita de impressões digitais de imagem e as publica no Pub/Sub.
    • schedule-simulation: o Eventarc aciona essa função com base em mensagens do Pub/Sub ou alterações do Firestore. Ele verifica o limite de simultaneidade e provisiona as 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 rastreia o estado (por exemplo, Simulation request received, running, completed, failed ou cancelled) 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 do 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 de SDV e gerencia as 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 do Cloud, 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.