Cloud Telemetry Simulation

Die Software-Defined Vehicle (SDV) Cloud Telemetry Simulation-Plattform bietet eine skalierbare On-Demand-Infrastruktur zum Ausführen von Fahrzeugtelemetriesimulationen in Google Cloud.

Mit dem System können Sie Telemetriekampagnen aus einer virtuellen Android Automotive-Umgebung (Cuttlefish) ohne physische Hardware simulieren. Es orchestriert den Lebenszyklus der Simulation, indem es Anfragen empfängt, temporäre virtuelle Compute Engine-Maschinen (VMs) erstellt, Simulationen in Docker-Containern ausführt, Ergebnisse erfasst und in Cloud Storage hochlädt und Ressourcen löscht.

Dieser Ansatz bietet eine kostengünstige und hochgradig skalierbare Plattform zum Testen von Telemetriepipelines, da Ressourcen nur während der Ausführung der Simulation verbraucht werden.

Zweck und Funktionen

Das System orchestriert den Lebenszyklus der Simulation und abstrahiert die zugrunde liegende Infrastrukturverwaltung.

  • On-Demand-Skalierbarkeit:Das System erstellt Ressourcen (Compute Engine-VMs) nur für die Dauer einer Simulation, um nutzungsbasierte Kosten zu ermöglichen.
  • Gleichzeitigkeitsverwaltung:Das System erzwingt ein konfigurierbares Limit für parallele Simulationen (standardmäßig z. B. 5). Es stellt überschüssige Anfragen in die Warteschlange und plant sie automatisch, wenn Slots verfügbar werden.
  • Ereignisgesteuerte Architektur:Das System verwendet Cloud Functions und Pub/Sub für die entkoppelte und robuste Workflow-Orchestrierung, einschließlich Anfragenbearbeitung, Planung, Finalisierung und Bereinigung.
  • Integrierte Statusverwaltung:Das System verwendet eine Firestore-Datenbank, um den Live-Status und die Konfiguration jeder Simulation zu verfolgen (z. B. PENDING, RUNNING, COMPLETED oder FAILED).
  • Artefaktverwaltung:Das System verarbeitet automatisch den Download der erforderlichen Eingabedateien und den Upload aller Simulationsausgaben (z. B. Berichte, Logs, Fehlerberichte und Logcat-Dateien) in Cloud Storage.
  • Ressourcenbereinigung:Ein automatisierter Cloud Scheduler-Job verhindert Ressourcenlecks, indem er verwaiste VMs oder Datenbankeinträge bereinigt.

Architektur

Das System verwendet eine serverlose, ereignisgesteuerte Architektur mit mehreren Google Cloud-Diensten. Sie können über eine Web-UI oder eine REST API mit dem System interagieren.

  • Nutzerinteraktion:Sie können die bereitgestellte Webdemo oder eine benutzerdefinierte Anwendung verwenden oder direkt mit den API-Endpunkten interagieren.
  • Orchestrierungsebene:
    • read-simulation: Mit dieser Funktion können Sie Simulationen, die Anzahl der ausgeführten VMs und die maximal konfigurierte Anzahl gleichzeitig ausgeführter VMs abfragen.
    • receive-request: Das System validiert Anfragen anhand einer strengen Zulassungsliste von Image-Fingerabdrücken und veröffentlicht sie in Pub/Sub.
    • schedule-simulation: Eventarc löst diese Funktion basierend auf Pub/Sub-Nachrichten oder Firestore-Änderungen aus. Es prüft das Limit für die Gleichzeitigkeit und stellt VMs bereit.
    • finish-simulation: Der Agent ruft diese Funktion am Ende einer Ausführung auf, um den Status zu aktualisieren und die Bereinigung auszulösen.
    • delete-simulation: Diese Funktion verarbeitet die manuelle Stornierung und die Ressourcenbereinigung.
  • Statusverwaltung (Firestore) : Eine Firestore-Datenbank verfolgt den Status (z. B. PENDING, RUNNING, COMPLETED oder FAILED) und die Konfiguration jeder Simulation. In dieser Datenbank werden alle Daten zur Ausführung der Simulation gespeichert.
  • Datenspeicher (Cloud Storage) : Das System speichert alle simulationsbezogenen Dateien in einem Cloud Storage-Bucket. Dazu gehören Eingabekonfigurationsdateien, Ausgabeprotokolle, Logs vom Cuttlefish-Gerät, Fehlerberichte und Logcat-Dateien.
  • Ausführungsebene (Compute Engine):
    • Die Funktion schedule-simulation erstellt für jede Simulation eine Compute Engine-VM. Auf der VM wird der Docker-Container simulation-agent ausgeführt.
    • Der simulation-agent ruft Eingabedateien aus Cloud Storage ab, startet die SDV-Instanz und verwaltet Interaktionen mit dem virtuellen Cuttlefish-Gerät, um den Telemetriesimulator auszuführen und die resultierenden Daten abzurufen.
  • Wartung (Cloud Scheduler) : Ein geplanter Job wird regelmäßig ausgeführt, um verwaiste Ressourcen (z. B. fehlerhafte VMs oder veraltete Datenbankeinträge) zu bereinigen und so Ressourcenlecks zu verhindern.

Nächste Schritte

Informationen zu den ersten Schritten mit der Cloud Telemetry Simulation finden Sie in den folgenden Anleitungen:

  • Bereitstellungsleitfaden: Informationen zum Einrichten der Infrastruktur und zum Erstellen des Simulationsagenten.
  • Nutzerleitfaden: Informationen zum Ausführen von Simulationen mit der Webdemo oder der REST API.