Symulacja telemetrii Cloud

Platforma symulacji telemetrii w chmurze pojazdów definiowanych programowo (SDV) zapewnia skalowalną infrastrukturę na żądanie do przeprowadzania symulacji telemetrii pojazdów w Google Cloud.

System umożliwia symulowanie kampanii telemetrycznych w wirtualnym środowisku Android Automotive (Cuttlefish) bez fizycznego sprzętu. Zarządza cyklem życia symulacji, odbierając żądania, tworząc tymczasowe maszyny wirtualne Compute Engine, uruchamiając symulacje w kontenerach Dockera, zbierając i przesyłając wyniki do Cloud Storage oraz usuwając zasoby.

To podejście zapewnia ekonomiczną i wysoce skalowalną platformę do testowania potoków telemetrycznych, ponieważ zasoby są wykorzystywane tylko podczas wykonywania symulacji.

Cel i możliwości

System koordynuje cykl życia symulacji i abstrakcyjnie zarządza bazową infrastrukturą.

  • Skalowalność na żądanie: system tworzy zasoby (maszyny wirtualne Compute Engine) tylko na czas trwania symulacji, aby zapewnić koszty oparte na wykorzystaniu.
  • Zarządzanie równoczesnością: system wymusza konfigurowalny limit równoległych symulacji (np. domyślnie 5). Kolejkuje nadmiarowe żądania i automatycznie planuje ich wykonanie, gdy dostępne staną się sloty.
  • Architektura oparta na zdarzeniach: system używa Cloud Functions i Pub/Sub do odsprzężonej i odpornej na błędy administracji przepływem pracy, która obejmuje obsługę żądań, planowanie, finalizację i czyszczenie.
  • Zintegrowane zarządzanie stanem: system używa bazy danych Firestore do śledzenia stanu i konfiguracji każdej symulacji (np. Simulation request received, running, completed, failed lub cancelled).
  • Zarządzanie artefaktami: system automatycznie obsługuje pobieranie wymaganych plików wejściowych i przesyłanie wszystkich danych wyjściowych symulacji (np. raportów, logów, raportów o błędach i plików Logcat) do Cloud Storage.
  • Czyszczenie zasobów: automatyczne zadanie Cloud Scheduler zapobiega wyciekom zasobów przez czyszczenie osieroconych maszyn wirtualnych lub wpisów w bazie danych.

Architektura

System wykorzystuje bezserwerową architekturę opartą na zdarzeniach z kilkoma usługami Google Cloud. Z systemem możesz wchodzić w interakcje za pomocą internetowego interfejsu użytkownika lub interfejsu API typu REST.

  • Interakcja z użytkownikiem: możesz użyć udostępnionej wersji demonstracyjnej w przeglądarce, aplikacji niestandardowej lub bezpośrednio korzystać z punktów końcowych interfejsu API.
  • Warstwa administracyjna:
    • read-simulation: ta funkcja umożliwia wysyłanie zapytań o symulacje, liczbę uruchomionych maszyn wirtualnych i maksymalną skonfigurowaną liczbę jednocześnie uruchomionych maszyn wirtualnych.
    • receive-request: system sprawdza żądania pod kątem ścisłej listy dozwolonych odcisków cyfrowych obrazów i publikuje je w Pub/Sub.
    • schedule-simulation: Eventarc aktywuje tę funkcję na podstawie wiadomości Pub/Sub lub zmian w Firestore. Sprawdza limit równoczesności i udostępnia maszyny wirtualne.
    • finish-simulation: agent wywołuje tę funkcję na końcu uruchomienia, aby zaktualizować stan i uruchomić czyszczenie.
    • delete-simulation: ta funkcja obsługuje ręczne anulowanie i czyszczenie zasobów.
  • Zarządzanie stanem (Firestore): baza danych Firestore śledzi stan (np. Simulation request received, running, completed, failed lub cancelled) i konfigurację każdej symulacji. Ta baza danych przechowuje wszystkie dane dotyczące wykonywania symulacji.
  • Magazyn danych (Cloud Storage): system przechowuje wszystkie pliki związane z symulacją w zasobniku Cloud Storage. Obejmuje to pliki konfiguracji wejściowej, raporty wyjściowe, dzienniki z urządzenia Cuttlefish, raporty o błędach i pliki Logcat.
  • Warstwa wykonywania (Compute Engine):
    • Funkcja schedule-simulation tworzy maszynę wirtualną Compute Engine dla każdej symulacji. Maszyna wirtualna uruchamia kontener Dockera simulation-agent.
    • simulation-agent pobiera pliki wejściowe z Cloud Storage, uruchamia instancję SDV i zarządza interakcjami z urządzeniem wirtualnym Cuttlefish, aby uruchomić symulator telemetrii i pobrać dane wynikowe.
  • Konserwacja (Cloud Scheduler): zaplanowane zadanie jest uruchamiane okresowo, aby wyczyścić osierocone zasoby (np. maszyny wirtualne, które uległy awarii, lub nieaktualne wpisy w bazie danych) i zapobiec wyciekom zasobów.

Dalsze kroki

Aby rozpocząć korzystanie z symulacji Cloud Telemetry, zapoznaj się z tymi przewodnikami:

  • Przewodnik po wdrażaniu: dowiedz się, jak skonfigurować infrastrukturę i utworzyć agenta symulacji.
  • Przewodnik użytkownika: dowiedz się, jak przeprowadzać symulacje za pomocą wersji demonstracyjnej w przeglądarce lub interfejsu REST API.