BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース IoTアプリケーションのためのDevOpsパイプラインの用意

IoTアプリケーションのためのDevOpsパイプラインの用意

ブックマーク

原文(投稿日:2017/02/13)へのリンク

MSDNサイトの最近の記事の中で、Daniel Meixler氏はMicrosoftのフレームワーク及びコンポーネントを使用したInternet of Things (IoT)アプリケーションのための完全なDevOpsライフサイクルを探求した。この概念は少し修正すれば他のIoTプラットフォームに対しても一般化することができる。

一般的にDevOpsはwebアプリケーションの領域で最も広まっているが、特定の技術もしくはアプリケーションの種類に結びついているわけではない。この記事では、概念の検証として冷蔵庫の制御アプリケーションを取り上げ、開発全般に渡るDevOpsライフサイクルの構築に触れている。とりわけ、完全に自動化されたCI/CDのチェーンに特別に焦点を当てている。特定のアプリケーションのための課題が明らかになったら、これらに選択された技術スタックを用いて対処する。概念のいくつかは一般的であり、技術に関係なく再利用することができる。

この例となるアプリケーションは冷蔵庫の制御を模擬しており、Rasberry PI上で実行される。このようなIoTアプリケーションのための開発パイプラインに関して、様々な課題が存在する。このパイプラインは全てのチェックインに対応して自動ビルドを行い、自動化されたUIテストを行い、製品を含む様々な環境への配置や、遠隔測定データの収集を行うことになる。UIテストは一般的に困難であり、デバイス上での任意の種類の自動テストは更に難しい。この文脈における他のいくつかのDevOpsへの挑戦には監査能力と装置の互換性が含まれるが、この記事ではこれらを取り扱っていない。

課題となる冷蔵庫アプリケーションのためには、配置はテスト装置に(QA)と顧客の装置(製品)の両方に行われる必要ががある。後者はデバイスに対する物理的アクセスがしばしば行えないため簡単ではない。この場合、装置には大量に存在し、顧客の構内に位置し、地理的に幅広く分散している。最後の要件である遠隔操作は以下の課題を提示する。つまり、IoT装置は通常の多くの手動介入なしに動作し、装置のパフォーマンスに関するどんなフィードバックもユーザに伝達する手段は存在しない。手動のフィードバックを収集するというのも選択肢にはない。

多くのカスタマイズをせずにパイプラインを最適化するために技術選択が行われた。IoTプラットフォームはWindows 10 IoT Coreを採用し、アプリケーションはWindows Universal App (UWP)である。オーケストレーションプラットフォームはVisual Studio Team Services (VSTS)である。VSTSはDevOpsプロセスを簡単に作成することを目的とした機能群を備えている。Microsoftスタックに沿って、管理プラットフォームはAzure IoT Hubにする選択がされた。このプラットフォームはIoTアプリケーションの管理・設定を行うために用いられた。Azure IoT Hubは複数の言語をサポートしており、.NETとnode.jsがこのアプリケーションのために用いられた。HockyAppという数年前にMicrosoftにより買収されたプラットフォームが、デバイスの使用状況の収集とエラーの分析のために用いられた。

画像はhttps://blogs.msdn.microsoft.com/dmx/2017/01/26/devops-for-iot-part-1/からの引用である。

パイプラインが実行され、アプリケーションの新バージョンが生成されたとき、リリースプロセスはAzure IoT Hubに通知を行う。Hubの責務は新バージョンのダウンロードして取得し、登録された全てのIoTデバイスへのインストールを保証することである。これはその時点でオンラインの装置に対しては即座に行われて、オフラインの装置に対しては遅延モードにより行われる。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT