Kubernetesを自動車に載せる、デンソーが「Misaki」を発表。年内にもオープンソースとして公開
自動車部品大手のデンソーは、自動車向けにKubernetesを実行するためのソフトウェア「Misaki」を、6月13日に行われたオンラインイベント「KubeFest Tokyo 2020」で発表しました。
自動車は現在スマート化やネットワーク化が急速に進んでいます。自動運転を目指した自動車の進化を見るまでもなく、今後多くのコンピュータリソースが自動車に搭載されるようになり、そこで実行されるアプリケーションの重要性が高まっていくことは間違いありません。
デンソーが発表した「Misaki」は、このようなアプリケーション実行環境としての自動車をクラウドを中心としたネットワーク化された分散アプリケーション環境のエッジと位置づけ、その基盤をKuberenetesで実現するためのソフトウェアです。
Misakiによって、自動車向けアプリケーションがコンテナで開発、実行できるようになり、またMisakiが提供するサービスメッシュ機能により、アプリケーションは自動車の不安定なネットワーク環境を意識せずに開発でき、アプリケーションの自動車へのデプロイやアップデート、削除なども集中管理可能となります。
Misakiのアーキテクチャ
Misakiのアーキテクチャは以下の図のようになっています。図の右から、Misakiのユーザーインターフェイスがあり、ここでデプロイしたいアプリケーションのHelm Chartを選択すると、その左にあるGoで作られたAPIが呼び出されます。
ここでKubernetesのManifestファイルが生成され、それがEclipse dittoで作られたデジタルツインに展開されます。
デジタルツインとは直訳すればデジタルな双子という意味で、一般にはなんらかの対象をコンピュータ上の論理的な存在として再構築する、というものです。ここではManifestファイルの展開先のデジタルツインが用意されているようです。
dittの左側にあるのがCloudおよびEdgeとしての自動車の上で稼働しているKubernetesクラスタです。このKubernetesクラスタはマスターノードがクラウド上で稼働しており、VPN接続されたワーカーノードが自動車の上で稼働している、という状態になっています。
そしてマスターノード上にはMisakiのエージェントが稼働しており、デジタルツインのステートが変化すると、それを反映してManifestファイルを取得します。
するとそのManifestファイルに従って、自動車の上で稼働しているKuberntesのワーカーノードにアプリケーションがデプロイされる、ということになるわけです。
KubeFest Tokyo 2020でMisakiのプレゼンテーションを行ったデンソーのソフトウェアエンジニア Kenta Suzuki氏は、自動車のアプリケーション基盤にKubernetesを採用した理由として、リソースを柔軟で効率的に管理できること、そして今後の自動車ではアプリケーション実行環境が高性能なECU(Electronic Control Unit)に集約され、そこではワーカーノードを実行できるようになると予想しているからだと説明しています。
クラウドとのあいだでワーカーノードを柔軟に。サービスメッシュ機能も
コンピューティングリソースの柔軟で効率的な管理については、自動車のコンピューティングリソースの不足分をクラウドで補う仕組みもMisakiに持たせる予定であることが説明されました。
例えば、ABCの3つのワーカーノードを実行する能力がある高性能なECUを搭載した自動車(下図の上)がある一方で、ワーカーノードを1つしか実行できない能力のECUしか搭載されていない自動車など、自動車のコンピューティングリソースは車種やグレードによって異なることが予想されます。
このときMisakiでは、コンピューティングリソースの乏しい自動車でのアプリケーション実行時には、自動車のECUでは実行出来そうにないワーカーノードをクラウド上で実行することで、全体としてアプリケーションの実行を可能にしようとしています。
自動車とクラウドの間のネットワーク回線はつねに安定した通信ができるとは限りません。そこで、Misakiにはサービスメッシュの機能も持たせ、ネットワークが不通の時には自動的に通信内容をキューイングし、接続が可能になれば自動的に転送を行うようにすることで、自動車の上で実行されるアプリケーション側でネットワークの接続状態を気にせずに実装できるようにしています。
自動車へアプリケーションをデプロイ
KubeFest Tokyo 2020で行われたデモの様子も簡単に紹介しましょう。
Misakiのユーザーインターフェイス画面からアプリケーションを選択(ここでは「engine-cheker」を選択)
すると自動的に3つのポッドが生成され、アプリケーションがデプロイ。2つが自動車の上で、1つがクラウド上で実行されました。
再びユーザーインターフェイス画面からデプロイしたアプリケーションを削除すると、ポッドも消えました。
将来、自動車の多くにKubernetesが搭載されるか
デンソーはこのMisakiを年内にもオープンソースとして公開するとのことです。
デンソーはこれまで、アジャイル開発などを用いてクラウドネイティブなアプリケーションをクリエーションラインなどのパートナーと共に開発していることは知られていましたが、なにを開発しているかは明かされていませんでした。
Publickeyでは3年前の2017年に、デンソーのアジャイル開発についてタイアップ記事で紹介しています。
今回初めて、デンソーが何を開発していたのかその具体像が示されたことになります。
デンソーは自動車産業において最大手に属する部品サプライヤーです。そのデンソーがKubernetesを自動車向けアプリケーションの基盤としたことで、多くの自動車がKubernetesを搭載する、という将来につながなることが期待されます。
≫スライド「Kubernetes based connected vehicle platform」
関連記事
あわせて読みたい
継続的デリバリを実現するツールは何がおすすめ?「CNCF Technology Radar」が公開
≪前の記事
国内のハイパーコンバージドシステム市場、昨年は40%成長。5年後までの平均成長率は11%以上と予想。IDC Japan