Simulation de télémétrie cloud

La plate-forme de simulation de télémétrie cloud pour les véhicules définis par logiciel (SDV) fournit une infrastructure évolutive à la demande pour exécuter des simulations de télémétrie de véhicules sur Google Cloud.

Le système vous permet de simuler des campagnes de télémétrie à partir d'un environnement Android Automotive virtuel (Cuttlefish) sans matériel physique. Il orchestre le cycle de vie de la simulation en recevant des requêtes, en créant des machines virtuelles (VM) Compute Engine temporaires, en exécutant des simulations dans des conteneurs Docker, en collectant et en important les résultats dans Cloud Storage, et en supprimant les ressources.

Cette approche fournit une plate-forme économique et hautement évolutive pour tester les pipelines de télémétrie, car les ressources ne sont consommées que pendant l'exécution de la simulation.

Objectif et fonctionnalités

Le système orchestre le cycle de vie de la simulation et élimine le besoin de gérer l'infrastructure sous-jacente.

  • Évolutivité à la demande : le système ne crée des ressources (VM Compute Engine) que pour la durée d'une simulation afin de fournir un coût basé sur l'utilisation.
  • Gestion de la simultanéité : le système applique une limite configurable aux simulations parallèles (par exemple, 5 par défaut). Il met en file d'attente les requêtes excédentaires et les planifie automatiquement lorsque des emplacements deviennent disponibles.
  • Architecture basée sur les événements : le système utilise Cloud Functions et Pub/Sub pour l'orchestration de workflows dissociés et résilients, qui inclut la gestion, la planification, la finalisation et le nettoyage des requêtes.
  • Gestion intégrée des états : le système utilise une base de données Firestore pour suivre l'état et la configuration en temps réel de chaque simulation (par exemple, Simulation request received, running, completed, failed ou cancelled).
  • Gestion des artefacts : le système gère automatiquement le téléchargement des fichiers d'entrée requis et l'importation de toutes les sorties de simulation (par exemple, les rapports, les journaux, les rapports de bug et les fichiers Logcat) dans Cloud Storage.
  • Nettoyage des ressources : un job Cloud Scheduler automatisé empêche les fuites de ressources en nettoyant les VM ou les entrées de base de données orphelines.

Architecture

Le système utilise une architecture sans serveur basée sur des événements avec plusieurs services Google Cloud. Vous pouvez interagir avec le système à l'aide d'une UI Web ou d'une API REST.

  • Interaction de l'utilisateur : vous pouvez utiliser la démonstration Web fournie, une application personnalisée ou interagir directement avec les points de terminaison de l'API.
  • Couche d'orchestration :
    • read-simulation : cette fonction vous permet d'interroger les simulations, le nombre de VM en cours d'exécution et le nombre maximal configuré de VM exécutées simultanément.
    • receive-request : le système valide les requêtes par rapport à une liste d'autorisation stricte d'empreintes d'images et les publie dans Pub/Sub.
    • schedule-simulation : Eventarc déclenche cette fonction en fonction des messages Pub/Sub ou des modifications Firestore. Il vérifie la limite de simultanéité et provisionne les VM.
    • finish-simulation : l'agent appelle cette fonction à la fin d'une exécution pour mettre à jour l'état et déclencher le nettoyage.
    • delete-simulation : cette fonction gère l'annulation manuelle et le nettoyage des ressources.
  • Gestion de l'état (Firestore) : une base de données Firestore suit l'état (par exemple, Simulation request received, running, completed, failed ou cancelled) et la configuration de chaque simulation. Cette base de données stocke toutes les données d'exécution de la simulation.
  • Stockage des données (Cloud Storage) : le système stocke tous les fichiers liés à la simulation dans un bucket Cloud Storage. Cela inclut les fichiers de configuration d'entrée, les rapports de sortie, les journaux de l'appareil Cuttlefish, les rapports de bug et les fichiers Logcat.
  • Couche d'exécution (Compute Engine) :
    • La fonction schedule-simulation crée une VM Compute Engine pour chaque simulation. La VM exécute le conteneur Docker simulation-agent.
    • simulation-agent extrait les fichiers d'entrée de Cloud Storage, démarre l'instance SDV et gère les interactions avec l'appareil virtuel Cuttlefish pour exécuter le simulateur de télémétrie et récupérer les données obtenues.
  • Maintenance (Cloud Scheduler) : un job planifié s'exécute régulièrement pour nettoyer les ressources orphelines (par exemple, les VM défaillantes ou les entrées de base de données obsolètes) afin d'éviter les fuites de ressources.

Étapes suivantes

Pour commencer à utiliser la simulation de télémétrie cloud, consultez les guides suivants :

  • Guide de déploiement : découvrez comment configurer l'infrastructure et créer l'agent de simulation.
  • Guide de l'utilisateur : découvrez comment exécuter des simulations à l'aide de la démonstration Web ou de l'API REST.