物联网设备越装越多,云端处理不过来了,边缘计算这个概念就火了起来。简单说就是把原本要传到云端处理的数据,在离设备更近的地方先处理一下,减少网络带宽占用、降低延迟、保护隐私。但边缘计算不是装个Linux就完事了,需要专门的边缘操作系统来做设备管理、消息转发、数据处理这些事。今天聊聊几个主流方案的选型和落地。
边缘操作系统跟传统的云计算操作系统不一样。云操作系统管的是一堆服务器,资源充足、网络稳定;边缘操作系统管的是分布在各地的边缘网关或者小型工控机,资源有限(可能就是个ARM架构的小盒子)、网络时断时续、数量可能成千上万。所以边缘操作系统的核心要求是:轻量、离线可用、设备管理方便、能跟云端无缝对接。
EMQ(现在叫EMQX了)是国内用得很多的一个方案。它的核心是一个MQTT Broker,但EMQX Edge版本专门针对边缘场景做了优化,支持边缘-云端消息同步、离线消息存储、规则引擎做边缘侧数据清洗。它的好处是部署简单,一个Docker镜像跑起来就行,而且自带可视化管理界面。缺点是它本质是个消息中间件,做不了太复杂的边缘计算任务。
KubeEdge是CNCF(云原生计算基金会)的官方项目,把Kubernetes的能力延伸到了边缘。它的架构是云端有个Kubernetes集群做统一管理,边缘节点跑轻量级的Kubelet,通过MQTT长连接跟云端同步。这样做的好处是开发者完全用K8s的知识就能管理边缘设备,应用部署、升级、监控一套工具搞定。缺点是门槛高,需要有K8s经验,而且对边缘节点的资源要求比EMQX大。
还有一些其他的方案。OpenYurt是阿里巴巴开源的,也是基于K8s做的,但在网络不稳定时的容错做得更好。EdgeX Foundry是Linux Foundation的项目,侧重工业物联网,支持各种工业协议(Modbus、OPC UA等)。AWS IoT Greengrass、Azure IoT Edge是云厂商的边缘方案,跟各自的云平台深度绑定,但换云厂商就麻烦了。
选型时要考虑几个因素。如果只是需要一个轻量的消息网关和简单的边缘数据处理,EMQX Edge足够用了,上手快。如果边缘节点数量多、应用复杂、团队有K8s经验,KubeEdge或者OpenYurt更合适。工业场景要对接PLC、传感器这些设备的话,EdgeX Foundry值得考虑。
落地时有几个常见坑。一个是边缘节点的资源限制,K8s类方案虽然好用,但边缘节点内存小于512M时跑起来很吃力,这时候EMQX更合适。另一个是网络问题,边缘设备的网络经常不稳定,消息同步的重试机制、离线缓存的清理策略都要提前考虑好。还有就是安全,边缘节点比云端更难防护,基本的防火墙、访问控制一定要做。
下一篇:没有了