ソフトウェア定義車両(SDV)テレメトリー クラウド シミュレーション プラットフォームは、Google Cloud で車両テレメトリー シミュレーションを実行するためのスケーラブルなオンデマンド インフラストラクチャを提供します。
このシステムでは、物理ハードウェアを使用せずに、仮想 Android Automotive 環境(Cuttlefish)からテレメトリー キャンペーンをシミュレートできます。リクエストの受信、一時的な Compute Engine 仮想マシン(VM)の作成、Docker コンテナ内でのシミュレーションの実行、結果の収集と Cloud Storage へのアップロード、リソースの削除を行い、シミュレーションのライフサイクルをオーケストレートします。
このアプローチでは、リソースはシミュレーションの実行中にのみ消費されるため、テレメトリー パイプラインのテストに費用対効果が高く、スケーラビリティの高いプラットフォームが提供されます。
目的と機能
システムはシミュレーションのライフサイクルをオーケストレートし、基盤となるインフラストラクチャ管理を抽象化します。
- オンデマンド スケーラビリティ: システムは、使用量ベースの費用を提供するために、シミュレーションの期間中のみリソース(Compute Engine VM)を作成します。
- 同時実行管理: システムは、並列シミュレーションに構成可能な上限(デフォルトでは 5 など)を適用します。上限を超えるリクエストはキューに登録され、スロットが使用可能になると自動的にスケジュールされます。
- イベント ドリブン アーキテクチャ: このシステムは、リクエスト処理、スケジューリング、ファイナライズ、クリーンアップなどの分離された復元力のあるワークフロー オーケストレーションに Cloud Functions と Pub/Sub を使用します。
- 統合された状態管理: システムは Firestore データベースを使用して、各シミュレーションのライブ状態と構成(
PENDING、RUNNING、COMPLETED、FAILEDなど)を追跡します。 - アーティファクト管理: 必要な入力ファイルのダウンロードと、すべてのシミュレーション出力(レポート、ログ、バグレポート、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 データベースは、すべてのシミュレーションの状態(
PENDING、RUNNING、COMPLETED、FAILEDなど)と構成を追跡します。このデータベースには、すべてのシミュレーション実行データが保存されます。 - データ ストレージ(Cloud Storage): システムは、シミュレーション関連のすべてのファイルを Cloud Storage バケットに保存します。これには、入力構成ファイル、出力レポート、Cuttlefish デバイスのログ、バグレポート、Logcat ファイルが含まれます。
- 実行レイヤ(Compute Engine):
schedule-simulation関数は、シミュレーションごとに Compute Engine VM を作成します。VM はsimulation-agentDocker コンテナを実行します。simulation-agentは、Cloud Storage から入力ファイルを取得し、SDV インスタンスを起動して、Cuttlefish 仮想デバイスとのやり取りを管理し、テレメトリー シミュレータを実行して結果のデータを取得します。
- メンテナンス(Cloud Scheduler): スケジュールされたジョブが定期的に実行され、孤立したリソース(失敗した VM や古いデータベース エントリなど)をクリーンアップして、リソースリークを防ぎます。
次のステップ
Cloud Telemetry Simulation の使用を開始するには、次のガイドをご覧ください。