SOAFEEは、Armプラットフォームをベースにした車載ソフトウェアの開発に複数のメリットをもたらし、車載ソフトウェアの開発と展開に向けたクラウドネイティブ技術を加速させるものである。
また、Armベースのハードウェアおよびソフトウェアのプラットフォーム全体でソフトウェアの移植性が向上する。開発ツールの向上によって、ソフトウェア品質の向上も期待される。さらに、開発時間の短縮とコストの削減によって、コード量も増加すると期待される。
こうしたメリットの多くはSOAFEEが採用している技術によるもので、以下にまとめて紹介する。「ソフトウェアコンテナ」は、SOAFEEの多くのメリットの要因となる主要技術だ。
クラウドネイティブ技術はこれまで、クラウドソフトウェア開発において非常にうまく活用され、SOAFEEフレームワークの中核を成す存在となった。このような技術としては、ソフトウェアコンテナや、マイクロサービスアーキテクチャ、オーケストレーター、DevOpsなどが挙げられる。以下に、ArmがSOAFEE手法について説明しているホワイトペーパーの概要をまとめていきたい。
コンテナ技術は、車載ソフトウェア向けとして最も重要な技術といえるだろう。輸送用コンテナのように、輸送中に中身が他の物と混ざらないよう隔離したり、悪天候や盗難から保護するなど、非常に有用な特徴を持つ。
ソフトウェアコンテナには、アプリケーションコードや、設定ファイル、ライブラリの他、アプリを実行するために必要な依存性などが含まれる。コンテナは、他のシステムへの移植が可能な仮想化アプリであると考えることができるが、ハードウェア/ソフトウェア機能と同様に、特定のOSに関連付けられている。
ソフトウェアコンテナは、クラウド導入やデータセンターにおいてうまく機能してきた。SOAFEEは、この技術を自動車のECUに展開するクラウド開発にも用いる。
マイクロサービスは、その名前からも分かるように、アプリケーションが、小規模な独立したサービスユニットの集合体として構築されている、サービス指向アーキテクチャの手法である。ソフトウェアエンジニアリング手法では、アプリケーションを、明確に定義されたインタフェースで単機能モジュールに分割することに焦点が当てられている。クラウドネイティブ導入では、マイクロサービスはコンテナにカプセル化されるため、定義されたコンテナのランタイム環境においてマイクロサービスを実行できるだけでなく、オーケストレーターで導入を管理/監視することも可能だ。
マイクロサービスは、1つのサービスに対して変更を加えても、他のサービスの性能に影響が及ばないため、疎結合として定義される。つまり、残りのシステムから切り離した状態で試験を行うことができるのだ。このような構造であるため、完全に構成されたシステムの結合テストを行う前に、複雑なシステムを分割して個々のサービスの試験を行うことができる。
オーケストレーターは、クラウドネイティブなエコシステムにおいて、設定/導入の管理や、マイクロサービスベースのアプリを監視するなど、非常に重要なコンポーネントである。また、以下のような複数の標準インタフェースを採用している。
オーケストレーターは、これらのインタフェースを使用して、マイクロサービス間の通信や、正確な操作に必要なデータへのアクセスなどを実現することにより、複雑なアプリケーション導入を管理する。
オーケストレーターにはいくつか選択肢があるが、「Kubernetes(K8s)」がデフォルトの業界標準として浮上している。Kubernetesは、導入の自動化や、スケーリング、コンテナ化されたアプリケーションの管理などを行う、オープンソースのオーケストレーターである。また「Lightweight Kubernetes(K3s)」は、フットプリントが小さいため、組み込み環境やリソースに制約のある環境などに適している。
クラウドネイティブのワークフローである「DevOps」は、開発ワークフローと導入オペレーションが結合されている。この2つの分野を定義/管理された手法で組み合わせることにより、開発/導入の一元化や、アプリケーションの継続的な改善を実現することが可能だ。
DevOpsは特に、自動車の製品寿命全体にわたって車載ソフトウェアを管理する上で、非常に役立つ。例えば、サイバーセキュリティや、OTA(Over-The-Air)によるバグ修正、機能的なソフトウェアアップデート、増加の一途にあるSaaSなどが挙げられる。
Copyright © ITmedia, Inc. All Rights Reserved.