Cloud テレメトリー シミュレーション

ソフトウェア定義車両(SDV)クラウド テレメトリー シミュレーション プラットフォームは、Google Cloud で車両テレメトリー シミュレーションを実行するためのスケーラブルなオンデマンド インフラストラクチャを提供します。

このシステムでは、物理ハードウェアを使用せずに、仮想 Android Automotive 環境(Cuttlefish)からテレメトリー キャンペーンをシミュレートできます。リクエストの受信、一時的な Compute Engine 仮想マシン(VM)の作成、Docker コンテナ内でのシミュレーションの実行、結果の収集と Cloud Storage へのアップロード、リソースの削除を行うことで、シミュレーションのライフサイクルをオーケストレートします。

このアプローチでは、シミュレーションの実行中にのみリソースが消費されるため、テレメトリー パイプラインをテストするための費用対効果が高く、スケーラビリティに優れたプラットフォームが提供されます。

目的と機能

このシステムは、シミュレーションのライフサイクルをオーケストレートし、基盤となるインフラストラクチャ管理を抽象化します。

  • オンデマンドのスケーラビリティ: システムは、シミュレーションの期間中にのみリソース(Compute Engine VM)を作成し、使用量ベースの費用を提供します。
  • 同時実行管理: システムは、並列シミュレーションに構成可能な上限を適用します(デフォルトは 5)。超過したリクエストはキューに入れられ、スロットが使用可能になると自動的にスケジュールされます。
  • イベント ドリブン アーキテクチャ: このシステムでは、Cloud Functions と Pub/Sub を使用して、リクエスト処理、スケジューリング、ファイナライズ、クリーンアップなどのワークフロー オーケストレーションを分離し、復元力を高めています。
  • 統合された状態管理: システムは Firestore データベースを使用して、すべてのシミュレーション(Simulation request received、running、completed、failed、cancelled など)のライブ状態と構成を追跡します。
  • アーティファクト管理: システムは、必要な入力ファイルのダウンロードと、すべてのシミュレーション出力(レポート、ログ、バグレポート、Logcat ファイルなど)の Cloud Storage へのアップロードを自動的に処理します。
  • リソースのクリーンアップ: 自動化された Cloud Scheduler ジョブは、孤立した VM やデータベース エントリをクリーンアップして、リソースの漏洩を防ぎます。

アーキテクチャ

このシステムは、複数の Google Cloud サービスでサーバーレスのイベント ドリブン アーキテクチャを使用します。ウェブ UI または REST API を使用してシステムを操作できます。

  • ユーザー操作: 提供されているウェブデモ、カスタム アプリケーションを使用するか、API エンドポイントを直接操作できます。
  • オーケストレーション レイヤ:
    • read-simulation: この関数を使用すると、シミュレーション、実行中の VM の数、同時に実行される VM の最大構成数をクエリできます。
    • receive-request: システムは、イメージ フィンガープリントの厳格な許可リストに照らしてリクエストを検証し、Pub/Sub に公開します。
    • schedule-simulation: Eventarc は、Pub/Sub メッセージまたは Firestore の変更に基づいてこの関数をトリガーします。同時実行の上限を確認し、VM をプロビジョニングします。
    • finish-simulation: エージェントは、実行の最後にこの関数を呼び出して、ステータスを更新し、クリーンアップをトリガーします。
    • delete-simulation: この関数は、手動キャンセルとリソースのクリーンアップを処理します。
  • 状態管理(Firestore): Firestore データベースは、すべてのシミュレーションの状態(Simulation request received、running、completed、failed、cancelled など)と構成を追跡します。このデータベースには、すべてのシミュレーション実行データが保存されます。
  • データ ストレージ(Cloud Storage): システムは、シミュレーション関連のすべてのファイルを Cloud Storage バケットに保存します。これには、入力構成ファイル、出力レポート、Cuttlefish デバイスのログ、バグレポート、Logcat ファイルが含まれます。
  • 実行レイヤ(Compute Engine):
    • schedule-simulation 関数は、シミュレーションごとに Compute Engine VM を作成します。VM は simulation-agent Docker コンテナを実行します。
    • simulation-agent は、Cloud Storage から入力ファイルを取得し、SDV インスタンスを起動して、Cuttlefish 仮想デバイスとのやり取りを管理し、テレメトリー シミュレータを実行して結果データを取得します。
  • メンテナンス(Cloud Scheduler): スケジュールされたジョブが定期的に実行され、孤立したリソース(失敗した VM や古いデータベース エントリなど)をクリーンアップして、リソースリークを防ぎます。

次のステップ

Cloud Telemetry Simulation の使用を開始するには、次のガイドをご覧ください。

  • デプロイガイド: インフラストラクチャを設定し、シミュレーション エージェントを構築する方法を学習します。
  • ユーザーガイド: ウェブデモまたは REST API を使用してシミュレーションを実行する方法を学習します。