2.7K Views
August 30, 23
スライド概要
2023/8/29「自動運転の評価を支えるHybrid Cloudテストパイプライン」
発表者:星 孝太郎
TIER IV AUGUST TIER /IV2023 2023 / 08 / 29 実機での評価を支える Self-hosted Environment この成果は、国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)の助成事業(JPNP21027)の結果得られたものです。 TITLE
TIER IV Speaker Carrer ~ 2019.4 株式会社ワークスアプリケーションズ エンタープライズサーチエンジンの開発 チャットボットフレームワークの開発 2019.4 ~ Kotaro Hoshi CI/CD / Auth Engineer 株式会社ティアフォー 遠隔運転システムの開発 認証認可基盤の開発 CI/CD のクラウド基盤の開発
TIER IV 評価基盤で実行するテスト DDS communication AD component Computing node Simulator Computing node AD component Computing node ● 膨大な数のシミュレーションを実行 ● 複数のコンピューティングノードで構成 ● 各コンピューティングノードで動作するROS アプリケーションが相互に通信 (現在は一つのコンピューティングノードですべてのアプリケーションを動作させる使い方がメイン )
TIER IV 複数のシミュレーション環境のサポート できるだけクラウドでスケールさせたい しかし、実機が必要なテストもある ● ● タイミングにシビアなテスト ○ マシンスペック ○ ネットワーク帯域・レイテンシ 特殊なハードウェアに依存したコンポーネントを動かすテスト シミュレーション環境としてクラウドと実機 (テストベンチ) をサポート
TIER IV シミュレーション環境のオーケストレーション Simulation Clusters Simulation environment Resource controller Simulation cluster runner 仮想リソースに対応する 実リソースを操作 仮想リソースとして管理 Simulation cluster Simulation node シミュレーションで使用する コンピューティングノード Simulation cluster Simulation cluster Simulation cluster Simulation node Simulation node Simulation cluster 環境に依存しない抽象度でのオーケストレーション Simulation node シミュレーションで使用する コンピューティングノード Simulation cluster Simulation cluster Simulation node Simulation node Simulation cluster 環境固有のオーケストレーション
TIER IV シミュレーションタスクのスケジューリング Simulation Clusters Simulation environment Simulation node Task scheduler Simulation node agent Simulation task の割り当て Simulation task 全 simulation node で動作する 環境に依存しないコンポーネント Simulation task の取得 Simulation task Simulation node Simulation cluster Simulation cluster Simulation cluster 環境に依存しないタスクスケジューリング Simulation node
TIER IV シミュレーション環境固有のドライバ Simulation cluster runner Simulation cluster runner Kubernetes driver OTA driver ● Kubernetes のリソースを操作 ● 実車の ECU のファームウェアを無線更新する仕組みを流用 ● コンテナ内でシミュレーションを実行 ● テストベンチのファイルシステム・プロセスを操作 ● 特定のクラウドプロバイダに依存しない ● ネイティブ環境でシミュレーションを実行
TIER IV Kubernetes Driver Simulation node spec Simulation node spec Get Simulation node Provisioning request Create Simulation node Simulation cluster Simulation Clusters Simulation cluster runner Container image registry Simulation node Simulation node Pull image Provision Karpenter provisioner
TIER IV OTA Driver Simulation cluster (Test bench) Primary ECU Secondary ECU Proxy Metadata & Files OTA client OTA image registry OTA client OTA update request Provisioning request Simulation Clusters Simulation cluster runner Proxy Exec Simulation task Simulation node agent TIER IV OTA Update https://github.com/tier4/ota-client ● ルートファイルシステム全体を更新可能 ● 差分更新に対応 ● 複数の ECU のサポート Simulation cluster runner Exec Proxy Simulation node agent
TIER IV Simulation Clusters の非機能要件 Scalability Simulation Clusters Simulation cluster runner マルチテナントサービスとして全ての 仮想リソースを一元管理 Simulation cluster runner Simulation cluster runner Simulation cluster runner Simulation cluster runner Elasticity シミュレーション環境をスケールさせて大量のタス クを流す瞬間にトラフィックが急上昇 Fault Tolerance 機能停止や誤作動で莫大なクラウド利用料を 発生させてしまうリスク Simulation Clusters
TIER IV Simulation Clusters のアーキテクチャパターン 1 リソースの状態変化に伴うワークフローを一回だけ実行することを保証 2 リトライ・フォールバックをマネージドサービスに委譲 3 すべてのマネージドサービスが高いスケーラビリティ・弾力性を持つ
TIER IV Simulation Clusters のアーキテクチャパターンの特徴 1 リソースの状態変化に伴うワークフローを一回だけ実行することを保証 DynamoDB Streams ● ダウンストリームの Lambda 関数を確実に起動 Step Functions ● ワークフローの実行の重複排除 リソースの状態変化に伴うイベント駆動を容易に実現 ワークフロー全体の冪等性を自前で担保する必要がない Simulation cluster のプロビジョニング
TIER IV Simulation Clusters のアーキテクチャパターンの特徴 2 リトライ・フォールバックをマネージドサービスに委譲 リトライ ● 一時的なネットワーク障害 ● DynamoDB のシステムエラー ● マネージドサービスへのリクエストのスロットリング フォールバック ● プロビジョニングに失敗 => リソースを解放するフローに遷移 ● シミュレーションタスクのタイムアウト => 再スケジュール or タスクの失敗を記録 フォールトトレラントな分散システムを比較的容易に実現 Simulation cluster のプロビジョニング
TIER IV Simulation Clusters のアーキテクチャパターンの特徴 3 すべてのマネージドサービスが高いスケーラビリティ・弾力性を持つ Lambda ● 関数インスタンスのオートスケール ● 単位時間あたりのインスタンスのスケール (= バースト) にハードクォータが存在 ● 前段にキューを置くことで流量を調整してバーストを抑制 DynamoDB ● オンデマンドキャパシティモード ● 最大スループットのソフトクォータが存在 ● 読み書きを行う Lambda 関数の並列実行数を制御してスパイクを抑制 Step Functions ● 各アクションにトークンバケット方式のソフトクォータが存在 ● Express タイプのワークフローはより高レートで実行可能 ● ワークフローの特徴に合わせて Standard タイプと Express タイプを使い分け
TIER IV Reconciliation Simulation cluster runner イベント駆動 Simulation node 1. 2. 3. 実リソースの状態の変更を検知 状態を通知 Reconcile Simulation node State change 実リソースの状態監視 Loop 分散 Reconciliation Loop 1. 2. 3. 4. 5. 6. 実リソースの最新状態をリクエスト 実リソースの状態を取得 状態を通知 Reconcile 一定時間待機 1 に戻る Reconcile を行うステートマシン 特定のリソースを制御するためのステートマシン
TIER IV UX の統一 Managed Kubernetes environment Evaluator ● 評価ジョブを実行 ● テストの内容に応じてシミュレーション環境を選択 ● 評価結果を一元管理 Evaluator Self-hosted Kubernetes environment Self-hosted native environment
TIER IV CONTACT US https://tier4.jp/ Thanks Again !