組み込みエンジニアも知っておきたい「クラウドネイティブ」とは仮想環境を使ったクラウド時代の組み込み開発のススメ(3)(3/3 ページ)

» 2021年07月28日 10時00分 公開
前のページへ 1|2|3       

組み込みエンジニアにとってのクラウドネイティブ

 クラウドネイティブの活用を広げていくためには、組み込みエンジニアの考える「組み込み」と、IT分野のエンジニアが考える「組み込み」の認識の違いについて整理する必要があるかもしれません。

 IT分野のエンジニアの多くは、SBC(Single Board Computer)である「Raspberry Pi」のような、OSとしてLinuxが動作し、CPUの動作周波数が数GHz、メモリ容量が数GBクラスのものを“組み込み”と捉えていますが、多くの組み込みエンジニアにとってRaspberry Piクラスのハードウェアはターゲットとしてほんの一部にすぎません。筆者は、その中間くらいの立ち位置で、最近はやりのマイコン「ESP32」のように「FreeRTOS」などの組み込みOSが動く通信モジュール一体型の製品までであればギリギリ理解できるという状況です。しかし、「PICマイコン」のように高級言語で記述できるのであればまだしも、アセンブリ言語が必要になるハードウェアとなるとお手上げです。

 そして、ここまで取り上げてきたクラウドネイティブに関する解説は、たとえエッジ環境延伸という文脈であっても、Linux(さらに踏み込んでコンテナ)が動くRaspberry PiのようなSBCまでを対象とした実装が多いのが現状です。つまり、組み込みエンジニアにとってクラウドネイティブは、現時点で活用範囲が極めて狭いと言わざるを得ません。

 では、この先もそうなのか? というとそれも違うと思います。例えば、クラウドネイティブの中核技術であるコンテナ・オーケストレーターのKubernetesには「Operator」「カスタム・リソース」「デバイス・プラグイン」をはじめとしたユーザー独自拡張のための仕組みが用意されています。従来、これらは実装や取り扱いが難しいものでした。しかし、ここ1年ぐらいで導入のハードルが下がってきています。これは、コミュニティーの中でノウハウが共有され始めていることに起因していると筆者は考えます。また、先ほど紹介したKubeEdgeでは、カスタム・リソースによって実装された、KubernetesネイティブAPIを介したエッジデバイスの管理を実現しており、応用例も広まっています。

 Kubernetes拡張を組み合わせて利用すると、組み込み機器/ソフトウェアをKubernetesオブジェクトとして捉えられるようになります。これは、組み込みソフトウェアを外部から「宣言的API」によって扱うことも可能になることを意味しています。また、ソフトウェアアップデートを可能にするOTA(Over The Air)機能を有する組み込み機器であれば、配布されたアプリケーションをコンテナ代替のイミュータブルインフラの構成要素と見なすこともできます。OTAにより配布されたアプリをコンテナとの差異を意識することなく取り扱うことも実装次第で可能になると考えられます。

 上記の場合、Raspberry PiなどのKubernetesワークロードとして動作可能なSBCを、組み込み機器との接続窓口にするなどの工夫が必要です。組み込みエンジニアの皆さまには、通信モジュールやOTAを開発に取り入れる余地があれば、クラウドネイティブ化が十分に可能であるという点を抑えておいて頂ければ幸いです。

図3 図3 KubeEdgeにおけるカスタム・リソースを活用したデバイス管理の仕組み。kubectlはKubernetesのコマンドラインツールで、デフォルトでは存在しないコマンドである“get device”によってKubernetesオブジェクトとしての管理ができる(クリックで拡大) 出典:KuveEdgeのWebサイトから引用

おわりに

 今回は、IT分野では浸透してきているクラウドネイティブという考え方とその狙い、これを支える技術を、クラウドネイティブの定義を中心軸に据えて一般論を展開しました。また、後半では筆者のクラウドネイティブに対する見解を提示し、導入のヒントとなるCloud Native Trail Mapを紹介し、組み込みソフトウェアとの関連にも触れました。

 次回は、シミュレーション環境「箱庭」と現実の作業環境の間に生じるギャップを、クラウドネイティブの考え方や支える技術でどのように埋めるのかという課題に対し、具体的にどういった解決方法を提供できるのかについて詳細を解説します。

筆者プロフィール

photo

福田 竜也(ふくた たつや)株式会社インテック 先端技術研究所

ロボティクス分野におけるIT技術の利活用についての研究開発に従事。ロボット開発プラットフォームROS(Robot Operating System)やクラウドネイティブ技術(Kubernetesなど)のエッジ延伸について強い関心がある。研究成果としてOSS(RDBOX)を公開中。TOPPERSプロジェクトの箱庭ワーキンググループに参画して活動中。

箱庭ワーキンググループ https://toppers.github.io/hakoniwa/
前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.