IoTアプリ開発がコンテナテクノロジーから敏捷性を高める
ほとんどの場合、コンテナテクノロジーは、従来のエンタープライズIT環境向けに開発されており、最新のクラウドアーキテクチャを実現しています。しかし、IIoTソリューションのプロバイダーであるMachfuの最高技術責任者であるTim Winter氏によると、産業用モノのインターネット(IIoT)にコンテナーを採用することにも類似点と利点があります。
コンテナは、ランタイム環境全体で構成される軽量の仮想化テクノロジです。アプリケーションに加えて、そのすべての依存関係、ライブラリ、その他のバイナリ、およびコンテナを実行するために必要な構成ファイルが1つのパッケージにバンドルされています。アプリケーションプラットフォームとその依存関係をコンテナ化することにより、オペレーティングシステムのディストリビューションと基盤となるインフラストラクチャの違いが抽象化されます。
「コンテナソフトウェア開発プロセスは、アプリケーションとサポートソフトウェアである「もの」のリポジトリを作成し、コンテナイメージと呼ばれるものを構築します。これは、アプリケーションとサポートソフトウェアのレイヤーケーキのようなものです」とHarryForbes氏は述べています。 ARCアドバイザリーグループのアナリスト。
調査会社のGartnerによると、グローバル組織の75%以上が、2022年までに本番環境でコンテナ化されたアプリを使用する予定です。
コンテナのメリット
すべてのアプリケーション要素がパッケージに「コンテナ化」されているため、アプリケーションを出荷して任意のコンピューティング環境で実行でき、さまざまな環境でアプリケーションを展開および更新する際の複雑さを軽減できます。
コンテナは、分離することで急速に変化する環境にもメリットをもたらします。モジュールは、明確に定義されたアプリケーションプログラミングインターフェイス(API)を介してのみ相互に作用し、それ以外は独立しています。したがって、モジュールは他のモジュールに影響を与えることなく更新できます。
アプリケーションの変更と更新のペースが上がるにつれて、分離が重要になります。
また、コンテナはエッジコンピューティングの聖杯、つまり、エッジでのインテリジェントな、またはAI対応のプロセスも可能にします。
IIoTソリューションであるPTCのシニアIoTプロダクトマネージャーであるAyushTiwariは、次のように述べています。プロバイダーは、「より多くのIoTユーザーが、データを前処理し、変換して、カスタムビジネスロジックをエッジで実行することを好んでいます。」次に、人工知能と機械学習対応モデルを、エッジデバイス上のオンプレミスの分離されたコンテナを介してトレーニングおよび展開できます。
さらに、エッジにデプロイされたソフトウェアを最新のパッチと機能で保護および更新することが重要であるため、クラウドから簡単に管理および運用できるコンテナ化されたワークロードを実行することが重要になっています。
「特定のワークロードをネットワークのエッジにシフトすることで、接続された製品はクラウドとの通信に費やす時間が短縮され、コンテキストのローカルな変化に迅速に対応でき、ネットワーク帯域幅の狭い領域でも確実に動作します」とTiwari氏は述べています。
[産業用IoTの詳細については、に参加してください 産業用IoTの世界 今年の12月。}
IIoTデバイスにコンテナを使用する:パーティショニングによりセキュリティが向上します
そのため、コンテナは、IIoTエッジデバイスなどの企業以外の用途に適しています。 Winterによれば、これらのコンテナ化されたパッケージとそのコンテンツは相互にパーティション化されており、システムの残りの部分からもパーティション化されているため、同じサーバー上の他のコンテナ化されたアプリケーションに影響を与えることなく、個別に更新できます。
IIoTにコンテナ化技術を使用する場合、コンテナのパーティション化プロパティ(サンドボックスと呼ばれる)について考えることが重要であると彼は言いました。
「つまり、エッジですべてのモノリシック操作を実行するコンテナを1つだけにするのではなく、概念的には2つのコンテナを使用できるでしょうか。たとえば、あるコンテナがデータの取得を担当し、別のコンテナがエッジデバイスの構成を担当する場合があります」とWinter氏は述べています。
異なるコンテナ間でエッジ機能を分割することは、あるコンテナに別のコンテナよりも大きな特権を付与できることを意味します。
「公益事業業界には、セキュリティのさまざまな推進要因があり、アプリケーションの一部を分割することが利点であるようなものがあります」と彼は言いました。
たとえば、アラームを定期的に読み取り、評価し、報告するアプリケーションコンポーネントには、エッジデバイスと対話するための読み取り専用特権を付与できます。ただし、エッジデバイスでソフトウェアのアップグレードを実行する役割を持つアプリケーションは、より多くの特権を持っている必要があり、別の方法で保護されると、ウィンター氏は述べています。
「企業側から見ると、読み取り専用のデータ取得の役割ではなく、管理者の役割のように見えるかもしれません」と彼は言いました。 「したがって、エッジで機能を分割できることは、最新のセキュリティのベストプラクティスと一致しています。」
Winterによれば、アプリケーションコンポーネントを分離する機能は、あるアプリケーションの動作が別のアプリケーションに直接影響を与えることを防ぐことで実装を強化し、開発者がエッジデバイスをより簡単に強化できるようにします。さらに、オペレーティングシステムレベルの制御とポリシーを実装することで、開発者は、設計上、システムに対するセキュリティ違反の潜在的な影響をより適切に制限できます。
ただし、アプリケーションが分離されているため、開発者はプロセス間通信(IPC)スキーム/リモートプロシージャコール(RPC)スキームを実装して、別々のアプリケーションがエッジノード内で相互作用できるようにする必要があるとWinter氏は述べています。開発者はまた、これらのIPC / RPCスキームを認証および制御して、承認された対話のみを許可する必要があると彼は付け加えました。
「ほとんどのデバイスは非常に単純なセンサーであり、CPU [中央処理装置]が非常に小さいため、産業環境ではデバイス自体でプロセスを実行することはできません」と、コンピューター学部のStefanoIannucci助教授は述べています。ミシシッピ州立大学の科学と工学。
「したがって、これらすべてのセンサーとアクチュエーターを、他のコンポーネントによって必ず実行されるプロセスによって調整されるように組み合わせる必要があります」と彼は付け加えました。
これらのコンポーネントは、クラウドまたはエッジのいずれかで実行できます。ほとんどの場合、これらのコンポーネントはコンテナーで実行されます。
「IndustrialInternetof Thingsでは、コンテナを使用して、他の方法ではモノ自体に実装できなかった機能を実装します」とIannucci氏は述べています。
Forbesによると、IIoTのコンテナの利点の1つは、開発者がアプリケーションを本番環境にデプロイする前に、特定の作業およびテストプロセスを実施するコンテナの開発およびデプロイ環境を作成できることです。
Forbesは、開発者がコンテナを使用してIIoT用のアプリケーションを開発するために必要な手順を説明しました。
「開発パイプラインがあります…リポジトリを作成するために、リポジトリを作成します。リポジトリには、所有するソフトウェアのさまざまなバージョンと、これらすべてをパッケージ化するソフトウェアであるDockerなどのコンテナシステムが保持されます」とフォーブス氏は述べています。
次に、コンテナーのデプロイメントは、リポジトリーから要素を取得し、コンテナー・イメージを構築して、それをターゲット・システムにプッシュします。
「そして、ターゲットシステムはIIoTが登場する場所です」とフォーブスは言いました。 「ターゲットシステムが1つ、100、1000の場合があります。そして、[コンテナを使用して] 1000台のシステムを更新することは、1台を更新することよりもそれほど難しくありません。 「コンテナは、数百または数千の場所で実行しているアプリケーションを管理するための非常に経済的で優れた方法です。」
同時に、コンテナはすべての問題を解決するわけではなく、実際、いくつかの問題を招きます。コンテナは一時的なものであり、簡単に作成および破棄できるため、コンテナの可視性と追跡に問題が生じる可能性があります。
モノのインターネットテクノロジー