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 des résultats dans Cloud Storage, et en supprimant des 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 lors de l'exécution de la simulation.

Objectif et fonctionnalités

Le système orchestre le cycle de vie de la simulation et abstrait la gestion de l'infrastructure sous-jacente.

  • Évolutivité à la demande : le système crée des ressources (VM Compute Engine) uniquement pendant la durée d'une simulation pour 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 sont disponibles.
  • Architecture événementielle : le système utilise Cloud Functions et Pub/Sub pour une orchestration de workflow découplée et résiliente, qui inclut la gestion des requêtes, la planification, la finalisation et le nettoyage.
  • Gestion de l'état intégrée : le système utilise une base de données Firestore pour suivre l'état et la configuration en direct de chaque simulation (par exemple, PENDING, RUNNING, COMPLETED ou FAILED).
  • 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 : une tâche Cloud Scheduler automatisée 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 interface utilisateur Web ou d'une API REST.

  • Interaction utilisateur : vous pouvez utiliser la démo 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 en cours d'exécution simultanément.
    • receive-request : le système valide les requêtes par rapport à une liste d'empreintes digitales d'images autorisées stricte 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, PENDING, RUNNING, COMPLETED ou FAILED) 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 résultantes.
  • Maintenance (Cloud Scheduler) : un job planifié s'exécute régulièrement pour nettoyer les ressources orphelines (par exemple, les VM ayant échoué 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.