La plataforma Software-Defined Vehicle (SDV) Telemetry Cloud Simulation 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 mediante la recepción de solicitudes, la creación de máquinas virtuales (VM) temporales de Compute Engine, la ejecución de simulaciones dentro de contenedores Docker, la recopilación y carga de resultados en Cloud Storage y el borrado de recursos.
Este enfoque proporciona una plataforma rentable y altamente escalable para probar 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 orquesta el ciclo de vida de la simulación y abstrae la administración de la infraestructura subyacente.
- Escalabilidad a pedido: 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 en exceso y las programa automáticamente cuando hay espacios disponibles.
- Arquitectura basada en eventos: El sistema usa Cloud Functions y Pub/Sub para la orquestación de flujo de trabajo desacoplada y resiliente, que incluye el manejo de solicitudes, la programación, la finalización y la limpieza.
- Administración de estado 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 Logcat) a Cloud Storage.
- Limpieza de recursos: Un trabajo automatizado de Cloud Scheduler evita las pérdidas de recursos mediante la limpieza de VMs o 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 mediante 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 orquestació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 que se ejecutan de forma 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 en función de los mensajes de Pub/Sub o los cambios de 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 de 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 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 Dockersimulation-agent. - El
simulation-agentextrae 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 de forma periódica para limpiar los recursos huérfanos (por ejemplo, VMs con errores o entradas de bases de datos obsoletas) para evitar pérdidas de recursos.
Próximos pasos
Para comenzar a usar Cloud Telemetry Simulation, consulta las siguientes guías:
- Guía de implementación: Obtén información para configurar la infraestructura y 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.