随着物联网终端设备数量的快速增加,同时由于网络带宽有限,高昂的传输成本和较高的响应延时等问题,传统的基于云计算模型的集中式数据处理方式已不能有效处理网络边缘设备所产生的海量数据。针对物联网场景中的新挑战,各大云计算厂商纷纷推出了以边缘计算模型为核心的新型计算平台,能在靠近数据产生的设备端进行准实时的边缘智能服务。
Predix边缘计算平台
在Predix平台于2015年首次发布的时候,就非常前沿的推出了自身的边缘计算平台 - Predix Machine。下图为Predix Machine的架构
从当前的架构设计中,我们可以清晰的看到,
设备对设备的接口:通过协议适配器(Protocol Adapters),Predix Machine可以支持不同工业通讯协议进行数据采集和反向设备控制,包括OPC-UA,modbus,MQTT等。
设备对云端的接口:通过设备管理框架和数据流服务(Data River),Predix Machine可以将分析后的数据或者原始数据通过HTTP或者WebSocket传输到云端的数据存储中,作后续的智能分析。
容器化的分析平台:更重要的是通过数据总线(Data Bus),Predix Machine能够运行Docker容器封装的由云端训练后的智能分析算法(这些算法通常由不同语言或者工具开发),处理连续的数据流,并可以提供近乎实时业务决策反馈,反向的控制设备端。
AWS Greengrass
AWS于2016年也推出了自己的边缘计算平台 - Greengrass,其架构如下图所示,
除了常见的数据接入,设备管理外,Greengrass平台最大的特色是能针对采集的数据流运行Lambda函数产生简单的行为。虽然,AWS Greengrass没有公开更多的技术细节,我们还是可以从官方文档中了解到它依赖于Linux内核中的cgroup模块,而cgroup则是容器技术中进行进程隔离的底层技术。所以,我们可以确定Greengrass也是依赖于容器技术(或者其底层技术)实现的。
Azure IoT Edge
微软在Build 2017大会上正式推出了边缘计算平台 - Azure IoT Edge的技术预览版。因为Azure IoT Edge还没有GA,所以没有完整而详细的架构图,只有如下图所示的简化流程图。
从上图中,我们可以看到Azure IoT Edge也提供和其他边缘计算平台类似的功能,采集边缘数据进行过滤分析,再传输到云端。同时,Azure边缘计算平台还支持将第三方应用以独立模块(module)的形式运行,以丰富其智能分析的能力。从IoT Edge在github的项目首页上,我们非常高兴的看到IoT Edge的开发团队已经将Docker容器技术列入了未来的技术路线图中。
For example: modules will run in Docker containers and the broker used to pass messages between module code will move to a lite version of IoT Hub running locally in a module.
边缘计算平台容器化
从前面的分析来看,容器技术已经成为边缘计算平台的标准技术。
为什么各大云计算厂商都选择容器技术构建边缘计算平台的底层技术栈,答案也是显而易见的。
边缘计算的应用场景非常复杂。从前面的分析,我们可以清晰的看到边缘计算平台,并不是传统意义的只负责数据收集转发的网关。更重要的是,边缘计算平台需要提供智能化运算能力,而且能产生可操作的决策反馈,用来反向控制设备端。
过去,这些运算只能在云端完成的。现在需要将云端的计算框架,例如,Spark,TensorFlow等,通过裁剪、合并等简化手段,迁移至边缘计算平台,使得能在边缘计算平台上运行云端训练后的智能分析算法。因此,边缘计算平台需要一种技术在单台计算机或者少数几台计算机组成的小规模集群环境中隔离主机资源,实现分布式计算框架的资源调度。
边缘计算所需的开发工具和编程语言的多样性。目前计算机编程技术成百花齐放的趋势,开发人员运用不同的编程语言处理不同的场景的问题已经成为常态,所以在边缘计算平台也需要开放的支持多种开发工具和多种编程语言的运行时环境。因此,在边缘计算平台使用一种运行时环境的隔离技术便成为一种自然的需求。
容器技术和容器编排技术的逐渐成熟。容器技术是主机虚拟化技术后,最具颠覆性的计算机资源隔离技术。通过容器技术进行资源的隔离,不仅对CPU、内存和存储的额外开销非常小,而且容器的生命周期管理非常快捷,可以在毫秒级开启和关闭容器。
以Docker为主的容器技术和Kubernates为主的容器编排工具的逐渐成熟,使得越来越多的工具通过容器封装,分发和运行,而边缘计算平台则是容器编排运行非常合适的试验场。因为,边缘计算平台不像云平台拥有理论上无限的计算资源,所以,对资源隔离带来的额外开销比较敏感。另一方面,边缘计算平台的运算请求通常是事件驱动式的,特定的工作负载通过容器封装,不需要常驻内存的特性,正满足了边缘计算平台的需求。
小结
通过本文我们了解到,
近几年各大国际云计算厂商纷纷布局边缘计算平台,包括Predix Machine,AWS Greengrass,Azure IoT Edge等。
边缘计算平台并不只负责数据的收集转发,更重要的是提供智能化运算,并产生可操作额决策反馈,控制设备端。
容器化技术成为边缘计算平台的底层标准技术,是技术发展的必然选择。
国内云计算厂商的行动似乎慢了半拍,还没有推出针对物联网的边缘计算产品。各位物联网的兄弟们要加油了:)
---------------------