工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> モノのインターネットテクノロジー

DevOpsで組み込みソフトウェア開発の課題を克服する

DevOpsで組み込みソフトウェア開発の課題を克服する

組み込み機器向けDevOpsが求められる理由

DevOpsは、より多くのアプリケーションや新機能をより短い期間で提供するという組み込みソフトウェア市場の要求に応える最善の方法と見なされています。

組み込みデバイスのソフトウェア開発には、まさに「パーフェクトストーム」が吹き荒れています。5Gなどの新しい接続オプションにより革新的なコネクテッドデバイスアプリケーションが可能になり、デバイスの普及と用途が拡大しています。同時に、進化するサイバー攻撃への対応など、デバイスライフサイクル上のニーズにより、ソフトウェア変更を迅速に作成・展開する必要があります。

これらの状況は、開発・運用スタッフに新たな要求を突きつけています。ますますDevOpsが、市場の要求である「より多くのアプリケーション、新機能、より短い提供期間」を満たす最良の手段と見なされるようになっています。RTInsightsは最近、Wind Riverのプロダクトマネジメント上級ディレクターGraham Morphew氏にインタビューし、組み込みデバイスソフトウェア開発の課題、従来のDevOpsとの違いなどについて語ってもらいました。以下はその要約です。

従来のDevOpsと組み込み向けDevOpsの違い

RTInsights: 組み込みデバイス向けDevOpsは、従来のソフトウェア開発向けDevOpsとどう違いますか?

DevOpsで組み込みソフトウェア開発の課題を克服する

Morphew氏: 従来のIT企業環境におけるDevOpsでは、実行環境が均質です。クラウド上のIntelサーバー、あるいはIntel PC上で動作します。一方、組み込みは大きく異なります。最終的な実行環境は、開発に使用するアーキテクチャとは通常異なります。多様なエンドハードウェアとそのデプロイ方法により、課題が増大します。例えば、クラウド向けソフトウェアを構築する場合、Google Cloud、Azure、AWSのいずれかであることが分かっています。しかし、組み込みソフトウェアでは、デプロイ環境の選択肢はほぼ無限大であり、デバイスが遠隔地にあることもあります。

したがって、ソフトウェアの捉え方や、それがDevOps実装の課題にどう繋がるかという点で、多くの違いが生じます。

専用ハードウェア、クロスコンパイル、クロスデバッグ、メモリフットプリント、セキュリティ問題に対処しなければなりません。クラウド環境のようなほぼ無限のリソースは手元にありません。設計時には「実行の孤島」を常に意識する必要があります。セキュリティも懸念されます。デバイスの物理的セキュリティを必ずしも制御できず、物理的な改ざんに対処しなければならない場合もあります。

もう一つの課題は、これらのデバイスからデータを収集するのが難しいことです。DevOps環境では継続的なフィードバックループが望まれます。開発が自社管理下のサーバー上であれば容易です。しかしデバイスの場合、遠隔地に分散し、常時オンラインとは限りません。従来のDevOpsと組み込み向けDevOpsを比較すると、多くの異なる問題が浮上します。

なぜ組み込みコミュニティはDevOpsへ移行するのか

RTInsights: なぜ組み込みデバイスコミュニティはDevOpsへ移行するのでしょうか? 何が魅力で、市場で何が起きているのですか?

Morphew氏: 組み込みソフトウェアでは、より頻繁なアップデートと高品質化のニーズが高まっています。それを実現するには、自動化が大きな役割を果たします。自動化は、今後のDevOpsと組み込みソフトウェアの鍵を握ります。10〜20年前は、ハードウェアがデバイスの能力を牽引することに注力されていました。今では、デバイスベンダー間の差別化要因の多くがソフトウェアにシフトしています。

もう一つの推進要因は、Wind Riverでもよく見られるソフトウェア開発者の人口構成の変化です。

二つの明確な陣営があります。従来の組み込みソフトウェア開発者と、他のソフトウェア分野からインテリジェントデバイスの領域に入ってきた新卒・新人開発者です。従来の開発者は年齢層が高く、多くが定年を迎えています。私のように、大学卒業後にハードウェアマニュアルを見てレジスタをプログラミングしていた世代がいます。現在の大学カリキュラムでは、そのようなことはあまり扱われていません。

私の息子は大学生ですが、Pythonでプログラミングしています。C言語を初めて学んだときは大きな衝撃を受けたようです。Pythonはずっと高い抽象化レベルを提供します。

DevOpsは、アプリケーション環境と、デバイスソフトウェア開発者にとって馴染みのある環境を近づける障壁を克服するのに役立ちます。これが必要とされるのは、デバイスを構築する企業が、新しいソフトウェア開発人材を獲得するのに苦労しているからです。

最近インターンとして採用した学生と話しましたが、彼の同級生の多くはFacebook、Google、Apple、Teslaのような企業で働きたいと考えています。産業用や航空宇宙・防衛セグメントの企業にとって、基礎的なC言語環境で組み込みデバイスをプログラミングする人材を引き付けるのはより困難かもしれません。

これを克服するため、新世代の開発者になじみのある環境を提供しようと考える企業もあります。それがWind RiverがVisual Studio Code環境を採用している理由の一つです。VS Codeは市場投入以来急速に普及し、新卒の視点から話を聞いたほぼ全員がVS Codeに精通していました。一方、Eclipseのような古い環境の経験は少ないようです。時には、すでにオーディエンスがいる場所に自分たちも行く必要があります。

DevOps導入時の問題と主要課題

RTInsights: 企業がDevOpsソリューションの導入を試みる際、どのような問題に直面しますか? 組み込みデバイス領域特有の主要課題は何ですか?

Morphew氏: 最大の課題は、企業内で起こらなければならない文化の変革です。これは必ずしも組み込み特有の課題ではなく、一部のソフトウェア開発慣行に深く根付いています。

小規模なチーム、あるいは非常に特定のタスクを担当する個人が存在します。DevOpsには、長年慣れ親しんできた領域から人々を引き出すようなレベルの協業と協力が必要です。「全員が協力して働く」と言わなければなりません。

組み込み向けDevOpsの「Ops」部分も課題です。クラウド向けの従来のDevOps環境では、Opsはかなり標準的です。Webサイトを運用したり、クラウドベースのインターフェースを通じて何かを行うアプリケーションを開発したりします。しかし組み込みでは、現場のデバイス、そのデバイスが行うことは企業固有です。多くの場合、デバイス製造元 ≠ デバイス運用企業です。装置メーカーが大手電力会社や大手製造業者にデバイスを販売し、それらの企業がデバイスを運用します。デバイスメーカーが支援することはあっても、クラウドベースのソリューションのような完全なクローズドループにはなりません。

ツールセットの互換性問題もあります。共通の開発環境を持つことは時に抵抗に遭います。これも、これらのシステムを導入するために必要な文化的・経営的なバックアップの問題に戻ります。

そして再びハードウェアの問題です。これは組み込み市場の常套テーマです。DevOpsを現実にするために必要な自動化環境を構築するために、十分なハードウェアをどう確保するか。これは継続的な課題です。通常、成功している顧客はハードウェアとシミュレーションを組み合わせてテストプロセスをスケールアップしています。

移行を容易にするツールはあるか

RTInsights: DevOpsへの移行を容易にするツールはありますか?

Morphew氏: この変革を乗り越えるのを助けているのが、ツールの利用可能性です。これらの多くはオープンソースか無料版があります。以前は、多くの場合、何らかのソースコード管理(多くの場合Gitの一種)に集約されていました。今では、組織はソースコード管理中心のソリューションから、より多くのDevOpsタイプのツールをソリューションに含める方向へ移行しています。これが企業の移行を助けています。

選択肢はたくさんあります。時には選択肢が多すぎるとさえ言えます。我々が顧客から見る課題は、「ツールはたくさんある。だが、それらをどう自分のために機能するソリューションとしてまとめるか?」という点です。

今日、多くの企業が社内にチームを結成し、よりデジタル重視の開発環境への移行を管理するプロジェクトを開始しています。他の技術的移行で見られたのと同様の移行が、今組み込み分野で起きています。多くの場合、「自分たちに最適なシステムを構築し、ニーズに合わせてカスタマイズしよう」というDIYメンタリティが強く、その維持のためにますます多くのリソースを消費しています。それが必ずしも投資したい領域ではありません。このアプローチは、時間の経過とともに、別の企業により多くの環境維持を委託する方向へ進化するでしょう。

企業が生活を楽にするもう一つの領域は、アプリケーション開発と、実行しているソフトウェアプラットフォームの維持を明確に分離することです。かつては小さなチームが両方を行い、アプリケーションとプラットフォームが融合していました。しかし今では、ソフトウェアをモジュール化し、人々が最も得意とする分野で働けるように、明確な分離が必要です。

業界を駆動する要因

RTInsights: 組み込みデバイス向けソフトウェアの開発・テストを容易にするソリューションの業界ドライバーは何ですか?

Morphew氏: ITとOTの世界の融合があります。デバイスがインターネットに接続されています。これが企業にソフトウェア提供方法の再検討を促す大きなドライバーとなっています。また、いくつかの業界では、デバイス内のソフトウェアをアップデートするコンプライアンス関連の要件があります。医療分野では、セキュリティ脆弱性が判明した際にデバイスをアップデートできることを証明する必要があります。これは生死に関わるシナリオです。問題が発生した場合に対処できることを証明する必要があります。

こうしたドライバーは、リモートアップデートの能力という観点から、企業が使用しているプロセスを見直すよう促しています。多くの大企業が、デジタルネイティブな新興・台頭企業からの脅威を感じています。それを表す用語さえあります。「Teslafication(テスラ化)」という言葉を耳にします。彼らは、ハードウェア中心の「レンガとモルタル、鉄と鋼」の思考ではなく、Teslaのように非常にソフトウェア重視のビジネスになる必要があると言います。彼らが構築するもの上で動くソフトウェアで製品を差別化しなければならなくなっています。

パンデミックもこの傾向を加速させました。ソフトウェア中心の労働力の大半が在宅勤務になり、多くの従業員がこの状況終了後もオフィスに戻らないでしょう。これは大きな変化です。開発者にとって生産的な状況にするため、働き方の考え方を変える必要があります。それは課題です。より多くのコラボレーションツールや、物事の進め方の標準化をある程度求めています。なぜなら、多くの人が対面で協力する従来の方法が取れなくなったからです。

高速なソフトウェアイテレーションが競争優位性をもたらす理由

RTInsights: なぜ高速なソフトウェアイテレーションがあらゆる業界で重要な競争優位性になったのでしょうか? それは自動テストの必要性とどう関係していますか?

Morphew氏: ウォーターフォールモデルからよりアジャイルなモデルへ移行するプロジェクトをいくつか経験しました。継続的テスト、自動テストを行う能力は、生産性を高める上でしばしば制限要因となります。速く走りながら品質を維持するなら、それは必須です。この分野では、エンドデバイスのデジタルツインを持つことで、多くのテストをそれに対して実行でき、かつスケールさせることができます。

組み込み向けDevOpsを適用可能にする大きな進歩の一つは、組み込みデバイスのシミュレーションを取り込み、それをクラウドベースの環境でスケールして利用できるようになったことです。これにより、同時に100のテストを実行できます。制約はクラウドリソースのみです。これは多くの企業が経験している変革の一つであり、非常に高く評価されています。

Wind Riverでは長年シミュレーションビジネスを手掛けてきました。初期の採用者は、自社サーバー上で大量のシミュレーションをスケールアップして実行していました。しかしクラウドに移せば、6ヶ月ごとに新しいサーバーを購入する必要がありません。

使用するハードウェアの種類と量を制御でき、必要に応じてダイヤルアップ・ダイヤルダウンが可能です。大規模ハードウェアの資本的支出や、それを維持するITチームを抱える代わりにです。現在、ハイブリッドクラウド環境のようなバランスが見られます。一部のテストはオンプレミスで、一部はパブリッククラウドで実施されています。

その他のポイント

RTInsights: まだ漏れている点があれば教えてください。

Morphew氏: DevOpsについて語り、組み込みソフトウェア開発をよりクラウドネイティブ、クラウド中心の環境へ移行させる際、プロダクトマネージャーとして私が個人的に見てきた大きな変化がいくつかあります。

その一つがコラボレーションです。Linuxビルドを完了させようとしていました。私は筋金入りのLinuxエンジニアではありません。ビルドを正しく動作させるのに苦労していました。その時、弊社のLinuxソフトウェアアーキテクトの一人が、私のビルドが何度も失敗しているのを見て、インスタントメッセージで連絡してきました。「ねえ、君が苦労しているのが見えたよ。見てみたら、設定を切り替えるだけで大丈夫だよ。私が直しといたから。」

もし私がソフトウェアをローカルPCにインストールする別の環境で開発していたら、誰も私の問題に気づかなかったでしょう。自分で助けを求めに行く必要がありました。また、同じシナリオを再現することもおそらくできなかったでしょう。一日中それに悩まされ、結局諦めていたかもしれません。ローカルにインストール不要でソフトウェアに素早くアクセスでき、チームで共通のサンドボックスで遊べること。つまり、チーム内でこのような共有資産を持つことが、働き方をどう変えるかという点で、私にとって大きな目覚めとなりました。

RTInsights: 他には?

Morphew氏: それほど遠くない未来に期待しているのは、デジタルフィードバックループを持つことです。デバイスからデータを取り出し、開発環境からデータを取り出し、それをフィードバックしてソフトウェアを改善する。AIと機械学習もここに関わってきます。これらのデバイスからどんな情報が得られるか? それをクラウドスケールのビッグデータモデルやエンジンで分析し、将来のソフトウェア開発にフィードバックできるか? それがシステム全体の最適化に役立つかもしれません。

モノのインターネットテクノロジー

  1. 高度なメンテナンス作業指示ソフトウェアで資産信頼性を最大化
  2. 予防保全ソフトが製造業の成功を導く:効率最大化の鍵
  3. 製造業の人材獲得における革新的な採用戦略
  4. 組み込みソフトウェアがハードウェアサプライチェーンを再構築し、より高い俊敏性を実現
  5. OTAアップデート完全攻略:産業IoTにおける5つの課題と実証済み解決策
  6. Mシリーズ複合旋盤:中小ロットと大量生産両対応の多機能ソリューション
  7. テキスト文字列:組み込みソフトウェアに潜む脆弱性
  8. クラウドにおけるDevOps導入の9つの実証済みベストプラクティス
  9. クラウドとDevOpsがモダンソフトウェアデリバリーを加速する理由
  10. IoTで実現する拡張性のある生産:製造効率アップグレードのスマート戦略
  11. IoTデバイスのソフトウェアテスト:主要課題と解決策