Simulazione di Cloud Telemetry

La piattaforma di simulazione della telemetria cloud per i veicoli software-defined (SDV) fornisce un'infrastruttura scalabile e on demand per eseguire simulazioni di telemetria dei veicoli su Google Cloud.

Il sistema ti 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 su 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 un costo basato 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 su eventi:il sistema utilizza Cloud Functions 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 e la configurazione in tempo reale 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 della simulazione (ad esempio, report, log, segnalazioni di bug e file Logcat) in Cloud Storage.
  • Pulizia delle risorse:un job Cloud Scheduler automatizzato impedisce la perdita di risorse pulendo le VM o le voci di database orfane.

Architettura

Il sistema utilizza un'architettura serverless basata su eventi con diversi servizi Google Cloud. Puoi interagire con il sistema utilizzando una UI 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 contemporaneamente.
    • receive-request: il sistema convalida le richieste in base a una rigorosa lista consentita di impronte digitali delle immagini e le pubblica su Pub/Sub.
    • schedule-simulation: Eventarc attiva questa funzione in base a messaggi Pub/Sub o modifiche di Firestore. Controlla il limite di concorrenza e 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 tiene traccia dello stato (ad esempio PENDING, RUNNING, COMPLETED o FAILED) e della 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 correlati alla simulazione in un bucket Cloud Storage. Sono inclusi file di configurazione dell'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 di 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 simulazioni utilizzando la demo web o l'API REST.