La plataforma de simulación de telemetría en la nube para vehículos definidos por software (SDV) proporciona una infraestructura escalable y a pedido para ejecutar simulaciones de telemetría de vehículos en Google Cloud.
El sistema te permite simular campañas de telemetría desde un entorno virtual de Android Automotive (Cuttlefish) sin hardware físico. Orquesta el ciclo de vida de la simulación recibiendo solicitudes, creando máquinas virtuales (VMs) temporales de Compute Engine, ejecutando simulaciones dentro de contenedores de Docker, recopilando y subiendo resultados a Cloud Storage, y borrando recursos.
Este enfoque proporciona una plataforma rentable y altamente escalable para probar las canalizaciones de telemetría, ya que los recursos solo se consumen durante la ejecución de la simulación.
Propósito y capacidades
El sistema coordina el ciclo de vida de la simulación y abstrae la administración de la infraestructura subyacente.
- Escalabilidad según demanda: El sistema crea recursos (VMs de Compute Engine) solo durante la simulación para proporcionar un costo basado en el uso.
- Administración de simultaneidad: El sistema aplica un límite configurable en las simulaciones paralelas (por ejemplo, 5 de forma predeterminada). Pone en cola las solicitudes excedentes y las programa automáticamente cuando hay ranuras disponibles.
- Arquitectura basada en eventos: El sistema usa Cloud Functions y Pub/Sub para la organización de flujos de trabajo desacoplados y resilientes, lo que incluye el control de solicitudes, la programación, la finalización y la limpieza.
- Administración de estados integrada: El sistema usa una base de datos de Firestore para hacer un seguimiento del estado y la configuración en vivo de cada simulación (por ejemplo,
PENDING,RUNNING,COMPLETEDoFAILED). - Administración de artefactos: El sistema controla automáticamente la descarga de los archivos de entrada necesarios y la carga de todos los resultados de la simulación (por ejemplo, informes, registros, informes de errores y archivos de Logcat) en Cloud Storage.
- Limpieza de recursos: Un trabajo automatizado de Cloud Scheduler evita las pérdidas de recursos limpiando las VMs o las entradas de bases de datos huérfanas.
Arquitectura
El sistema usa una arquitectura sin servidores basada en eventos con varios servicios de Google Cloud. Puedes interactuar con el sistema a través de una IU web o una API de REST.
- Interacción del usuario: Puedes usar la demostración web proporcionada, una aplicación personalizada o interactuar directamente con los extremos de la API.
- Capa de organización:
read-simulation: Esta función te permite consultar simulaciones, la cantidad de VMs en ejecución y la cantidad máxima configurada de VMs en ejecución simultánea.receive-request: El sistema valida las solicitudes con una lista de entidades permitidas estricta de huellas digitales de imágenes y las publica en Pub/Sub.schedule-simulation: Eventarc activa esta función según los mensajes de Pub/Sub o los cambios en Firestore. Verifica el límite de simultaneidad y aprovisiona VMs.finish-simulation: El agente invoca esta función al final de una ejecución para actualizar el estado y activar la limpieza.delete-simulation: Esta función controla la cancelación manual y la limpieza de recursos.
- Administración del estado (Firestore): Una base de datos de Firestore hace un seguimiento del estado (por ejemplo,
PENDING,RUNNING,COMPLETEDoFAILED) y la configuración de cada simulación. Esta base de datos almacena todos los datos de ejecución de la simulación. - Almacenamiento de datos (Cloud Storage): El sistema almacena todos los archivos relacionados con la simulación en un bucket de Cloud Storage. Esto incluye archivos de configuración de entrada, informes de salida, registros del dispositivo Cuttlefish, informes de errores y archivos de Logcat.
- Capa de ejecución (Compute Engine):
- La función
schedule-simulationcrea una VM de Compute Engine para cada simulación. La VM ejecuta el contenedor de Dockersimulation-agent. - El
simulation-agentextrae los archivos de entrada de Cloud Storage, inicia la instancia de SDV y administra las interacciones con el dispositivo virtual Cuttlefish para ejecutar el simulador de telemetría y recuperar los datos resultantes.
- La función
- Mantenimiento (Cloud Scheduler): Un trabajo programado se ejecuta periódicamente para limpiar los recursos huérfanos (por ejemplo, VMs con errores o entradas de bases de datos obsoletas) y evitar fugas de recursos.
Próximos pasos
Para comenzar a usar la simulación de telemetría de Cloud, consulta las siguientes guías:
- Guía de implementación: Aprende a configurar la infraestructura y a compilar el agente de simulación.
- Guía del usuario: Obtén información para ejecutar simulaciones con la demostración web o la API de REST.