从微软的Azure IoT Edge看边缘计算的架构

顾靖
2023-12-01

         往往从大公司的产品可以看出技术的趋势。周末抽空看了看微软的Azure 的IoT Hub和西门子的edge computing 。虽然微软的Azure IoT Hub 是开源,跨平台的边缘计算架构,但是它基本上还是为自己家的Azure 云平台开发的。国外云平台在国内不太受待见。技术支持和推广也不太给力。两年前曾经使用mbed 设备接入azure 云平台,结果国内azure合作方世纪互联的技术支援不够,好像国内也并不支持IoT Hub,结果以失败告终。不过研究一下微软的东西还是必要的,至少告诉自己,我们走在大路上,没有偏离方向。

Azure IoT Edge 是部署在支持容器技术的linux和windows 设备上的边缘计算设备上的。

Azure IoT Edge 主要包含以下三个部分:

1  IoT Edge 模块(IoT Edge Modules): IoT Edge 的模块其实就是一个 Docker 的 Container(尽管微软将docker 称为moby,这是docker 开源项目的名称,而docker CE 是一个产品)。在一个 Edge 设备上可以运行多个模块,模块和模块之间可以进行通信,从来实现数据分析,业务逻辑等的处理。模块和模块之间是相对独立的,甚至可以用不同的语言实现不同的模块,比如用 C# 实现业务逻辑,用 Python 实现数据分析的逻辑等。Azure 的很多服务都可以简单的打包成一个模块部署到 Edge 设备上,比如 Azure Functions, Azure Stream Analytics, Azure Machine Learning。特别是使用 Azure Machine Learning 服务的话,就可以轻松实现云上训练模型,设备上离线使用模型,动态更新模型等场景。

2  IoT Edge 运行时(IoT Edge Runtime): IoT Edge 运行时也是安装在 Edge 设备上的,主要是负责对 Edge 模块的管理和通信功能的。下图就是 Edge Runtime 的位置和功能的示意图。

3  IoT Edge Runtime 其实就是两个 Container,一个叫 EdgeAgent, 一个叫 EdgeHub。 EdgeAgent 主要负责管理模块,包括下载,启动,删除 Edge 模块,监控和汇报健康状态等。EgdeHub 主要负责通信,包括模块和模块之间的通信,Edge 设备和云端的通信等。微软计划在正式发布之后会开源 Edge 运行时的代码。

4  IoT Edge 云端接口(IoT Edge cloud interface): IoT Edge 的云端接口集成在 IoT Hub 服务当中,用来远程监控和 IoT Edge 的设备。以及动态部署 Edge 模块到设备上。

  大概看出来了吧? 用大白话总结一下,微软的azure IoT hub 基于了docker 容器技术,并且提供了容器间的消息系统。在IoT hub 中微软提供了大量自家产品的支援模块,以及与azure 互操作的模块。它基本上是为azure 而生的。目的是让客户更好地使用Azure 云服务。

值得欣慰的是,我们的modularIoT 边缘计算架构和微软的平台大同小异,没有偏离方向。只不过我们没有倾向性,而且更简单。

 类似资料: