使用 Docker 进行快速 IoT 部署
随着 IoT 端点数量的成倍增长,使用其数据的服务也不断增加,这就需要以更具可扩展性的方式协调和部署软件。
像 Docker 这样的容器技术对解决这一挑战有很大帮助。容器化代码可以跨分布式系统集中编排,从而可以更轻松地扩展设计。容器还提供了硬件抽象层,允许它们在 IoT 端点中常见的各种系统上运行。
但这只是解决了问题的一半。与 IoT 端点一样,IoT 服务多种多样,而且使用许多不同的 API 和消息传输协议。为了在异构的设备和服务组合之间传输数据,开发人员需要一个可以在所有这些系统之间转换消息的通信中心。
这些挑战导致结合了容器化和消息传输的平台的兴起。借助这些平台,开发人员可以在云中创建 Docker 化的工作负载,将其部署到边缘设备、在本地分析数据并进行适当响应。然后,边缘设备可以将数据和结果推送回云中,以便根据需要进行远程监控(图 1)。
在本文中,我们将介绍一种此类服务,即 Microsoft Azure IoT。
容器化过程
Azure IoT 是用于开发、部署和管理 IoT 应用的云平台。除其他功能外,该平台还提供各种可加快产品上市的服务模块,例如机器学习和数据流分析。
虽然这些云服务很有用,但是使平台真正有价值的是它能够将工作负载推送到边缘。借助最近发布的 Azure IoT Edge 2.0,开发人员可以使用 Docker 对模块进行容器化,并将它们部署到运行 Linux 或 Windows 的设备上。通过这种方式,云智能和分析可以扩展到从 Raspberry Pi 到功能强大的工业网关等各种设备。
为了管理这些不同的端点,IoT Edge 与 Azure IoT Hub 紧密合作。此服务支持身份验证并建立与 IoT 设备的通信,同时自动执行设备注册和配置。IoT Hub 还可用作容器化模块的注册表、安全消息传输的渠道以及已部署模块的远程管理连接。
如图 2 所示,使用 IoT Edge 的过程如下:
- 创建 IoT Hub(或使用已建立的 IoT Hub)
- 将 IoT Edge 设备注册到该 IoT Hub
- 启动 IoT Edge 运行时
- 将模块远程部署到 IoT Edge 设备
边缘设备上的 IoT Edge 运行时负责基本服务,例如边缘设备离线时的安全、数据存储和转发,以及管理与 Internet 隔离的系统(例如连接到边缘设备的传感器)。它还管理模块和云之间的通信。例如,机器学习 (ML) 模块可能仅向云发送警报,而不是向所有数据发送警报(图 3)。
IoT Edge 使用与 IoT Hub 相同的 API,因此网关可以像本地 IoT Hub 一样工作。“通过这种方式,这些模块可以预先配置并在存储库中的云中运行,同时等待被移除。” Microsoft 技术专家 Brett Stateham 说。
预先打包的服务和定制服务
当预先打包的服务可用时,开发人员可以自由复制其中的内容并对其进行修改。或者他们可以使用他们选择的语言从头开始编写自己模块的代码,并使用 Docker 对其进行打包。“所以,它的可扩展性极强。” Stateham 说。
这些服务包括商务智能分析、人工智能和机器学习以及移动服务等等。但是任何服务都可以访问数据,因为 Azure IoT Hub 支持 Python、Java、PHP 和 .Net 的开放 API 和 SDK。“最糟糕的情况是,一些标准的 REST API 能够使用这些消息。” Stateham 说。
使用安全的消息遥测传输(例如 AMQPS、MQTTS 和 HTTPS)从边缘设备安全地传输数据,并且一旦对数据进行存储,它就可用于可能想要读取它的任何后端服务。IoT Edge 和 IoT Hub 使用相同的安全消息传输协议,因此简化了通信、配置、注册和整体管理。
部署到边缘硬件
虽然 IoT Edge 可以在各种设备上运行,但许多现有系统都不具有对 Internet 连接的本地支持。例如,传感器模块可能具有用于 Modbus 或 CAN 总线的有线接口,或用于低功耗蓝牙 (BLE) 的无线接口,但不具有 TCP/IP 堆栈,无法将数据直接推送到云。
Stateham 表示,这就是英特尔® NUC 等设备的用武之地(图 4)。这些设备可以运行 Windows 10 或 Wind River Linux 并部署在边缘。“它的上面有 USB 端口、Wi-Fi 和其他一些很酷的东西。” 他说,“它可以用来与 BLE 模块通信,这些模块可以从那里连接到云。” 同样,对于任何其他有线或无线模块或传感器,它们可以作为聚合点连接到网关。
将智能推送到边缘
借助作为 Azure IoT 堆栈扩展的 IoT Edge,开发人员现在可以快速安全地在边缘添加可扩展的 IoT 分析和其他服务,以连接传感器模块并开始将 IoT 功能应用到 AI 原则。
要了解有关部署容器化 IoT 工作负载的更多信息,请观看网络研讨会 “使用 Azure IoT Edge 和英特尔® NUC 创建现场网关”。