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

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

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

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

目的と機能

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

  • オンデマンド スケーラビリティ: システムは、使用量ベースの費用を提供するために、シミュレーションの期間中のみリソース(Compute Engine VM)を作成します。
  • 同時実行管理: システムは、並列シミュレーションに構成可能な上限(デフォルトでは 5 など)を適用します。上限を超えるリクエストはキューに登録され、スロットが使用可能になると自動的にスケジュールされます。
  • イベント ドリブン アーキテクチャ: このシステムは、リクエスト処理、スケジューリング、ファイナライズ、クリーンアップなどの分離された復元力のあるワークフロー オーケストレーションに Cloud FunctionsPub/Sub を使用します。
  • 統合された状態管理: システムは Firestore データベースを使用して、各シミュレーションのライブ状態と構成(PENDINGRUNNINGCOMPLETEDFAILED など)を追跡します。
  • アーティファクト管理: 必要な入力ファイルのダウンロードと、すべてのシミュレーション出力(レポート、ログ、バグレポート、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 データベースは、すべてのシミュレーションの状態(PENDINGRUNNINGCOMPLETEDFAILED など)と構成を追跡します。このデータベースには、すべてのシミュレーション実行データが保存されます。
  • データ ストレージ(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 を使用してシミュレーションを実行する方法について説明します。