Weitere ähnliche Inhalte Mehr von Kazumi IWANAGA (20) Kürzlich hochgeladen (10) IoTでもコンテナ! ~ IoT Edge はじめの一歩2. 大平かづみ / Kazumi OHIRA
@dz_ 主にサーバー
サイドエンジニア
Infrastructure
as Code,
DevOps
クラウド大好き!
Azure
4. Internet of Things のエッジの世界
• エッジデバイスの中のモノリス
• モノリスは危険が伴う
• 一部の変更が全体へ影響するリスク
• 配布後の更新はどうするのか
• 人が現場でやる?
• 更新処理を自作する?
• 通信の細さ、不安定さ
• 帯域の制限、断続的
9. IoT の領域でコンテナを使うことでの混乱
• コンテナ間の連携をどうするか
• Webの世界ではコンテナ間の連携は HTTP(s), gRPC などが通例
• コンテナのライフサイクルは短いかも
• エッジは電源が落ちることも想定される
• クラウドへのデータ送信が複雑になりかねない
• コンテナごとにデータ送信?どこかで統合など対策必要
• (コンテナに限らないが)接続の不安定さに備えた蓄積・再送の工夫が必要
11. Azure IoT Edge とは
• これまでクラウドで行ってきた分析や実装をエッジ側で
• よりビジネス自体に注力できるようになる
• モジュールによって構成される
• モジュール = Docker を含む Moby プロジェクトに対応したコンテナ
• Azure のサービスやサードパーティ製のモジュール
• IoT device SDK を利用して自作モジュール
• C#, C, Java, Node.js, Python
• IoT Edge runtime がメッセージルーティングやモジュールを管理
13. IoT Edge の大まかな仕組み
IoT Edge runtime
IoT
Edge
hub
IoT
Edge
agent
module module
…
エッジデバイス
IoT Hub
Azure
セキュリティ、
モジュール管理
データストリーム
のプロキシ
エッジ内の
メッセージ
ルーティング
15. IoT Edge 開発の流れ
1. Azure IoT Hub を作成する
2. IoT Hub にデバイスを登録する(手動 or 自動)
3. Visual Studio Code で開発する
4. Visual Studio Code からデプロイする
5. Azure DevOps など CI/CD の運用も可能
16. Visual Studio Code Extension
Azure IoT Edge Extension
• IoT Edge モジュールの開発、
デプロイができる
Azure IoT Hub Toolkit Extension
• IoT Hub に登録されたデバイス
やモジュールを管理できる
17. IoT Edge のよいところ
• Docker コンテナが使える!
• 例えば、Cognitive Services の学習データを Docker 形式でエクスポートし、エッ
ジデバイス内で利用可能
• モジュールをクラウドからデプロイできる!
• Visual Studio Code で開発できる!
• さまざまな言語を利用できる
• IoT Hub へのストリームを束ねられる
• モジュール間のメッセージルーティングを定義できる
• クラウドからコンテナの状態を確認できる
• モジュール Twin を使える
19. Webでのコンテナと IoT Edge の比較
共通点
• コンテナを小さく作ろう
• シンプルに実装しよう
• 使える言語が多い
• ※ SDKに依存する場合もある
IoT Edge の独特な点
• IoT Edge runtime の仕組み
• hub, agent
• メッセージルーティング
• IoT device SDK
• IoT Hub の Standard tier or
Free でのみ利用可能