作者:与子同袍
首发:物联网前沿技术观察
根据之前接触的一些跟边缘计算相关的软件和标准等,整理边缘计算的七个重要思想。如有不对的地方,请指正。
- 算力下沉,离线优先。
- 适应受限环境。
- 微服务模块化组装,适应多变环境。
- 简单好用。
- 安全至上。
- 互操作性。
- 实时、低延迟和高响应。
原则1.算力下沉、离线优先
边缘计算节点的计算资源有限,很多都是单片机或嵌入式网关。要是把所有数据都上传到云端分析,时效性差、传输存储成本高。
因此,如果把计算能力下沉到边缘侧,就可以就近分析处理数据。
这样做会带来多重好处:
- 安全性。例如电厂和制造业工厂不会随便把关键的生产数据放到云上。
- 时效性高。能更实时的对采集的数据进行实时流数据分析并做出相应的响应。
- 降低网络传输成本。只在必要的时候才上传数据到云端。降低带宽限制: 这种将工作迁移至更接近于用户或是数据采集终端的能力能够降低站点带宽限制所带来的影响。尤其是当边缘节点服务减少了向中枢发送大量数据处理的请求时,这一点显得极其有用。这种场景普遍适用于物联网及网络功能虚拟化负载。
- 离线也能工作。万一断网,也可以正常工作。
离线优先是指边缘计算要在没有云端连接的情况下也能工作。比如电厂和列车等。
Spark、Storm、Kafka、Flink 等实时流数据分析框架主要运行在分布式服务器集群上,在边缘计算的受限资源环境下无法运行。而Apache Edgent,则可以轻松运行于资源有限的计算节点。
CEP/机器学习/数据挖掘的算力下沉,贴近用户或设备。foghorn, Edgent。
原则2.适应受限环境
边缘计算网关的计算、存储和网络资源与云端硬件相比是受限的。
限制体现在如下方面:
- 硬件资源的限制和成本的限制。因此在里面跑的软件,也要做相应的裁剪才能适应。
- 运行在局限及不稳定的受限网络之上。
边缘计算网关需要实时数据库存储设备实时数据、实时流处理引擎对设备数据进行实时分析、时间序列数据库存储设备历史数据、人工智能在边缘侧进行智能决策,消息总线在不同模块间进行通信。
在云端,要实现这些功能很简单。实时内存数据库有Redis、实时流处理引擎有Storm或Flink、时间序列数据库有OpenTSDB或InfluxDB、人工智能有Azure ML、消息总线有Kafka。但是在边缘计算网关的硬件资源有限,跑不动这么多程序。
因此就有了RedisEdge这个专门为物联网边缘计算设计的多模型数据库。
它集成了Redis、Redis Streams、RedisAI、RedisTimeSeries和RedisGears五大模块。运行时内存占用小于5MB,甚至能在STM32上运行[1]。
原则3.模块化设计
假设边缘计算有如下10项功能:
- 数据采集、协议解析,比如根据Modbus RTU或OPC协议标准采集工控设备的实时数据。
- 数据上传到云端:把采集的设备实时数据根据指定的格式(如XML或JSON或自定义二进制)和通讯协议(如MQTT/HTTP/WebSocket等)发送到指定的云端服务器。
- 数据预处理:在上传到云端之前,对数据进行简单的数据运算;对设备实时数据进行CEP实时流计算;对现场的工业相机的图片进行图像识别;对现场的工业设备数据调用机器学习模型进行预测性维护或故障诊断等。
- 远程控制:接收云端下发的命令,并根据命令执行相应的动作,如修改PLC中某地址的值。
- 元数据定义:定义网关对应的设备的型号、序列号、采集的数据项定义等信息。设备注册上线离线:定义设备如何注册到云端。
- 数据告警:配置数据满足条件后触发的告警信息。
- 远程软件升级:对边缘计算网关内的软件进行远程版本控制和升级。
- 规则和触发的动作:在边缘计算网关内配置类似AWS IoT 的Rule[2]和要执行的动作。
- 远程配置下发:远程下发配置文件,避免去现场部署配置。
- 系统管理和配置:对网关的网络参数、设备连接参数、云端连接参数等进行管理和配置。
这么多功能,对于不同的行业应用来说,不可能完全通用。因此,需要针对不同行业或客户,对其中的某些功能根据需求进行定制开发。
那么如何适应多变的行业应用环境呢?常见的技术解决办法有微服务化、OSGi模块化, 插件化的驱动,南向北向接口等。
例如EdgeX Framework这个边缘计算框架[3],采用的就是微服务化的方式,将边缘计算的功能通过微服务模块化。如果需要定制特定功能,只需要按照这个功能服务的接口实现就可以了。
原则4.安全至上
边缘计算网关南向连接各种设备,北向连接云。随着边缘设备的普及,使得新兴的攻击手段不断涌现。如果被攻击,轻则泄露客户隐私数据,重则导致现场设备被黑客攻击。
安全有一个重要原则,系统的安全取决于最弱的一环。因此边缘计算网关安全性必须要与网络中其他网元同等重要。
要发现网络安全的问题,就需要对流经边缘计算网关的流量进行实时或近实时的监控,并记录日志。因此边缘计算网关应该提供日志服务和自身监控服务。做的更好一点,还需要有类似Lynis这样的安全审计工具,进行安全扫描,及时发现安全漏洞。
安全的一个重要方面是数据隐私。医疗应用程序在将个人健康信息传输至云端前必须将其匿名化,而这就需要应用到边缘计算。
原则5.简单易用
简单易用体现在如下几个方面:
- 易于管理。提供一个跨多种基础设施的一致性操作流程。
- 易用开发。边缘计算项目落地时会遇到各种定制场景。要是每个定制场景都需要软件工程师定制开发,实施落地成本就会很高。因此需要可以通过简单易用的灵活的配置,就可以实现对应用场景的定制。
边缘计算的节点数量要比云计算节点大几个数量级。因此需要能够自动化部署:
- 提供标准化和统一的基础环境。
- 提供自动化管理工具。在发生故障时提供简洁直接的处理方法。
- 维护操作必须简洁。未经过培训的工人能够进行人工修复和替换,而熟练的远程管理员可以进行配置或软件维护。
例如,让管理员通过Node-Red这样的流程图配置工具,就可以实现网关数据采集不同协议的设备,进行中间数据处理,然后发送到不同的mqtt服务器。Kura Wires和LoopEdge Flows也是类似的意思。
下图就是LoopEdge Flows[4]可视化网页编辑工具。项目实施人员不需要懂编程,通过这个工具拖拽各种所需的节点,并将各种节点连接起来,就快速实现应用的开发。
LoopEdge Flows支持多种类型的节点[5]:
输入节点
Inject Node
Status Node
Catch Node
MQTT Node
HTTP Node
Web Socket Node
TCP Node
UDP Node
Serial Node
输出节点
Debug Node
Link Node
MQTT Node
HTTP Node
Web Socket Node
TCP Node
UDP Node
Serial Node
数据库节点
MySQL Node
MSSQL Node
MongoDB In Node
MongoDB Out Node
MongoDB2 In Node
MongoDB3 In Node
Sqlite Node
Crate In Node
Crate Out Node
DataHub节点
DataHub (Publish) Node
DataHub (Subscribe) Node
Dashboard节点
Audio Node
UI Control Node
Button Node
Template Node
Show Notification Node
Switch Node
Gauge Node
Numeric Node
Form Node
Date Node
Text Input Node
Dropdown Node
Slider Node
Colour Picker Node
Text Node
Chart Node
原则6.互操作性
物联网边缘计算的成功的关键在于互操作性。麦肯锡的市场分析师表示,物联网应用总潜在价值的40%至60%取决于实现不同物联网系统之间互操作性的能力。
对于企业而言,物联网开发人员的很多时间都耗费在这两样事情上了:
- 现场传感器设备与边缘网关和云端的集成。
- 企业级物联网应用需要跨多个单独的物联网应用“孤岛”进行横向集成。例如,制造商需要将工业物联网应用与来自供应链,库存,运输等的物联网应用互连。
此外,边缘计算节点数量众多。要是不同节点之间能够通过网络互相调用对方的服务和能力,那就可以大大扩展物联网的应用。例如,在车联网中,要是每辆私家车通过5G网络,实时和路口信号灯、公交车、电动车互相通信,就可以大大保障平安出行。
原则7.实时、低延迟和高响应
对于实时性要求高的应用,无法容忍超过数十毫秒的时延并对于抖动或时延变化极其敏感。响应时间必须保证在几十毫秒内,这个除了依靠边缘计算基础设施之外是无法达成的。
需要低延迟高响应的边缘计算应用场景有:游戏、增强现实/虚拟现实、车联网、远程医疗、工业4.0、智慧城市、远程医疗等。
参考
- ^RedisEdge https://redislabs.com/solutions/redisedge/
- ^AWS IoT 的规则 https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html
- ^edgex边缘计算框架官网 https://www.edgexfoundry.org
- ^LoopEdge文档 https://docs.litmusautomation.com/display/DOC/LoopEdge+Overview
- ^LoopEdge Flows支持的节点类型 https://docs.litmusautomation.com/display/DOC/Flow+Node+Types
往期精彩:
更多物联网,边缘计算相关技术干货请关注我的专栏物联网前沿技术观察
- 申请加入物联网技术研讨大佬微信群,请加微信号:iot1999。