Simulazione di Cloud Telemetry

La piattaforma Software-Defined Vehicle (SDV) Telemetry Cloud Simulation fornisce un'infrastruttura scalabile e on demand per eseguire simulazioni di telemetria dei veicoli su Google Cloud.

Il sistema consente di simulare campagne di telemetria da un ambiente Android Automotive virtuale (Cuttlefish) senza hardware fisico. Orchestra il ciclo di vita della simulazione ricevendo richieste, creando macchine virtuali (VM) Compute Engine temporanee, eseguendo simulazioni all'interno di container Docker, raccogliendo e caricando i risultati in Cloud Storage ed eliminando le risorse.

Questo approccio fornisce una piattaforma conveniente e altamente scalabile per testare le pipeline di telemetria, perché le risorse vengono utilizzate solo durante l'esecuzione della simulazione.

Scopo e funzionalità

Il sistema orchestra il ciclo di vita della simulazione e astrae la gestione dell'infrastruttura sottostante.

  • Scalabilità on demand: il sistema crea risorse (VM Compute Engine) solo per la durata di una simulazione per fornire costi basati sull'utilizzo.
  • Gestione della concorrenza: il sistema applica un limite configurabile alle simulazioni parallele (ad esempio, 5 per impostazione predefinita). Mette in coda le richieste in eccesso e le pianifica automaticamente quando gli slot diventano disponibili.
  • Architettura basata sugli eventi: il sistema utilizza Funzioni Cloud e Pub/Sub per l'orchestrazione di workflow disaccoppiati e resilienti, che include la gestione delle richieste, la pianificazione, la finalizzazione e la pulizia.
  • Gestione dello stato integrata: il sistema utilizza un database Firestore per monitorare lo stato live e la configurazione di ogni simulazione (ad esempio, PENDING, RUNNING, COMPLETED o FAILED).
  • Gestione degli artefatti: il sistema gestisce automaticamente il download dei file di input richiesti e il caricamento di tutti gli output di simulazione (ad esempio, report, log, segnalazioni di bug e file Logcat) in Cloud Storage.
  • Pulizia delle risorse: un job Cloud Scheduler automatizzato impedisce perdite di risorse pulendo le VM orfane o le voci di database.

Architettura

Il sistema utilizza un'architettura serverless basata sugli eventi con diversi servizi Google Cloud. Puoi interagire con il sistema utilizzando un'interfaccia utente web o un'API REST.

  • Interazione utente: puoi utilizzare la demo web fornita, un'applicazione personalizzata o interagire direttamente con gli endpoint API.
  • Livello di orchestrazione:
    • read-simulation: questa funzione consente di eseguire query sulle simulazioni, sul numero di VM in esecuzione e sul numero massimo configurato di VM in esecuzione simultanea.
    • receive-request: il sistema convalida le richieste rispetto a una lista consentita rigorosa di impronte digitali delle immagini e le pubblica in Pub/Sub.
    • schedule-simulation: Eventarc attiva questa funzione in base ai messaggi Pub/Sub o alle modifiche di Firestore. Controlla il limite di concorrenza ed esegue il provisioning delle VM.
    • finish-simulation: l'agente richiama questa funzione alla fine di un'esecuzione per aggiornare lo stato e attivare la pulizia.
    • delete-simulation: questa funzione gestisce l'annullamento manuale e la pulizia delle risorse.
  • Gestione dello stato (Firestore): un database Firestore monitora lo stato (ad esempio, PENDING, RUNNING, COMPLETED o FAILED) e la configurazione di ogni simulazione. Questo database archivia tutti i dati di esecuzione della simulazione.
  • Archiviazione dei dati (Cloud Storage): il sistema archivia tutti i file relativi alla simulazione in un bucket Cloud Storage. Sono inclusi file di configurazione di input, report di output, log del dispositivo Cuttlefish , segnalazioni di bug e file Logcat.
  • Livello di esecuzione (Compute Engine):
    • La funzione schedule-simulation crea una VM Compute Engine per ogni simulazione. La VM esegue il container Docker simulation-agent.
    • simulation-agent estrae i file di input da Cloud Storage, avvia l'istanza SDV e gestisce le interazioni con il dispositivo virtuale Cuttlefish per eseguire il simulatore di telemetria e recuperare i dati risultanti.
  • Manutenzione (Cloud Scheduler): un job pianificato viene eseguito periodicamente per pulire le risorse orfane (ad esempio, VM non riuscite o voci di database obsolete) per evitare perdite di risorse.

Passaggi successivi

Per iniziare a utilizzare la simulazione di telemetria cloud, consulta le seguenti guide:

  • Guida al deployment: scopri come configurare l'infrastruttura e creare l'agente di simulazione.
  • Guida per l'utente: scopri come eseguire le simulazioni utilizzando la demo web o l' API REST.