The Software-Defined Vehicle (SDV) Telemetry Cloud Simulation platform provides a scalable, on-demand infrastructure to run vehicle telemetry simulations on Google Cloud.
The system lets you simulate telemetry campaigns from a virtual Android Automotive environment (Cuttlefish) without physical hardware. It orchestrates the simulation lifecycle by receiving requests, creating temporary Compute Engine virtual machines (VMs), running simulations inside Docker containers, collecting and uploading results to Cloud Storage, and deleting resources.
This approach provides a cost-effective and highly scalable platform for testing telemetry pipelines, because resources are consumed only during simulation execution.
Purpose and Capabilities
The system orchestrates the simulation lifecycle and abstracts underlying infrastructure management.
- On-demand scalability: The system creates resources (Compute Engine VMs) only for the duration of a simulation to provide usage-based cost.
- Concurrency management: The system enforces a configurable limit on parallel simulations (for example, 5 by default). It queues excess requests and automatically schedules them when slots become available.
- Event-driven architecture: The system uses Cloud Functions and Pub/Sub for decoupled and resilient workflow orchestration, which includes request handling, scheduling, finalization, and cleanup.
- Integrated state management: The system uses a Firestore database to
track the live state and configuration of every simulation (for example,
PENDING,RUNNING,COMPLETED, orFAILED). - Artifact management: The system automatically handles the download of required input files and the upload of all simulation output (for example, reports, logs, bug reports, and Logcat files) to Cloud Storage.
- Resource cleanup: An automated Cloud Scheduler job prevents resource leaks by cleaning up orphaned VMs or database entries.
Architecture
The system uses a serverless, event-driven architecture with several Google Cloud services. You can interact with the system using a web UI or a REST API.
- User interaction: You can use the provided web demo, a custom application, or interact directly with the API endpoints.
- Orchestration layer:
read-simulation: This function lets you query simulations, the number of running VMs, and the maximum configured number of concurrently running VMs.receive-request: The system validates requests against a strict allowlist of image fingerprints and publishes them to Pub/Sub.schedule-simulation: Eventarc triggers this function based on Pub/Sub messages or Firestore changes. It checks the concurrency limit and provisions VMs.finish-simulation: The agent invokes this function at the end of a run to update the status and trigger cleanup.delete-simulation: This function handles manual cancellation and resource cleanup.
- State management (Firestore): A Firestore database tracks the state
(for example,
PENDING,RUNNING,COMPLETED, orFAILED) and configuration of every simulation. This database stores all simulation execution data. - Data storage (Cloud Storage): The system stores all simulation-related files in a Cloud Storage bucket. This includes input configuration files, output reports, logs from the Cuttlefish device, bug reports, and Logcat files.
- Execution layer (Compute Engine):
- The
schedule-simulationfunction creates a Compute Engine VM for each simulation. The VM runs thesimulation-agentDocker container. - The
simulation-agentpulls input files from Cloud Storage, starts the SDV instance, and manages interactions with the Cuttlefish virtual device to execute the telemetry simulator and retrieve the resulting data.
- The
- Maintenance (Cloud Scheduler): A scheduled job runs periodically to clean up any orphaned resources (for example, failed VMs or stale database entries) to prevent resource leaks.
Next Steps
To get started with the Cloud Telemetry Simulation, see the following guides:
- Deployment Guide: Learn how to set up the infrastructure and build the simulation agent.
- User Guide: Learn how to run simulations using the web demo or the REST API.