Platforma symulacji telemetrii w chmurze dla 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 Androida Automotive (Cuttlefish) bez użycia sprzętu fizycznego. Zarządza ona 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 telemetrii, ponieważ zasoby są wykorzystywane tylko podczas wykonywania symulacji.
Cel i możliwości
System zarządza cyklem życia symulacji i abstrakcyjnie zarządza bazową infrastrukturą.
- Skalowalność na żądanie: system tworzy zasoby (maszyny wirtualne Compute Engine) tylko na czas symulacji, aby zapewnić koszty oparte na wykorzystaniu.
- Zarządzanie współbieżnością: system egzekwuje konfigurowalny limit symulacji równoległych (domyślnie np. 5). Kolejkuje nadmiarowe żądania i automatycznie planuje je, gdy pojawią się wolne miejsca.
- Architektura oparta na zdarzeniach: system korzysta z Cloud Functions i Pub/Sub do rozproszonego i odpornego na błędy zarządzania przepływem pracy, które obejmuje obsługę żądań, planowanie, finalizację i czyszczenie.
- Zintegrowane zarządzanie stanem: system używa bazy danych Firestore do śledzenia bieżącego stanu i konfiguracji każdej symulacji (np.
PENDING,RUNNING,COMPLETEDlubFAILED). - 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 korzysta z bezserwerowej architektury opartej na zdarzeniach z kilkoma usługami Google Cloud. Z systemem możesz wchodzić w interakcje za pomocą interfejsu internetowego lub interfejsu API REST.
- Interakcja użytkownika: możesz użyć udostępnionej wersji demonstracyjnej w internecie, niestandardowej aplikacji lub bezpośrednio korzystać z punktów końcowych interfejsu API.
- Warstwa administracyjna:
read-simulation: ta funkcja umożliwia wysyłanie zapytań dotyczących symulacji, liczby uruchomionych maszyn wirtualnych i maksymalnej skonfigurowanej liczby jednocześnie uruchomionych maszyn wirtualnych.receive-request: system weryfikuje żądania na podstawie ś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 współbieżności i udostępnia maszyny wirtualne.finish-simulation: agent wywołuje tę funkcję na końcu działania, aby zaktualizować stan i wywołać czyszczenie.delete-simulation: Ta funkcja obsługuje ręczne anulowanie i czyszczenie zasobów.
- Zarządzanie stanem (Firestore): baza danych Firestore śledzi stan (np.
PENDING,RUNNING,COMPLETEDlubFAILED) i konfigurację każdej symulacji. Ta baza danych przechowuje wszystkie dane wykonania symulacji. - Przechowywanie 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 wykonawcza (Compute Engine):
- Funkcja
schedule-simulationtworzy maszynę wirtualną Compute Engine dla każdej symulacji. Na maszynie wirtualnej działa kontener Dockerasimulation-agent. simulation-agentpobiera pliki wejściowe z Cloud Storage, uruchamia instancję SDV i zarządza interakcjami z wirtualnym urządzeniem Cuttlefish, aby uruchomić symulator telemetrii i pobrać wynikowe dane.
- Funkcja
- Konserwacja (Cloud Scheduler): zaplanowane zadanie jest uruchamiane okresowo, aby zwalniać miejsce po osieroconych zasobach (np. nieudanych maszynach wirtualnych lub nieaktualnych wpisach w bazie danych) i zapobiegać wyciekom zasobów.
Dalsze kroki
Aby rozpocząć korzystanie z symulacji telemetrii w chmurze, zapoznaj się z tymi przewodnikami:
- Przewodnik wdrażania: dowiedz się, jak skonfigurować infrastrukturę i utworzyć agenta symulacji.
- Przewodnik użytkownika: dowiedz się, jak przeprowadzać symulacje za pomocą wersji demonstracyjnej w internecie lub interfejsu API REST.