OpenEdge是由百度云打造的智能边缘计算平台,是中国全面开源的边缘计算平台。借助开源的OpenEdge,开发人员可以更灵活地开发自己的边缘解决方案和应用。OpenEdge可将云计算能力拓展至用户现场,提供临时离线、低延时的计算服务,包括设备接入、消息路由、消息远程同步、函数计算等功能。
2018年12月6日,百度正式宣布OpenEdge开源。
2018年12月6日,在2018百度云ABC Inspire企业智能大会上,百度副总裁、百度云总经理尹世明正式宣布由百度云打造的智能边缘计算平台OpenEdge将全面开源。
OpenEdge主要由主程序模块、OpenEdge_Hub模块、OpenEdge_Function模块、OpenEdge_Remote_MQTT模块、OpenEdge_Function_Runtime_Python2.7模块构成。各模块的主要提供的能力如下:
- OpenEdge主程序模块负责所有模块的管理,如启动、退出等,由模块引擎、API构成;
- 模块引擎负责模块的启动、停止、重启、监听和守护,支持Docker容器模式和Native进程模式;模块引擎从工作目录的配置文件中加载模块列表,并以列表的顺序逐个启动模块。模块引擎会为每个模块启动一个守护协程对模块状态进行监听,如果模块异常退出,会根据模块的Restart Policy配置项执行重启或退出。主程序关闭后模块引擎会按照列表的逆序逐个关闭模块;
- OpenEdge主程序会暴露一组HTTP API,支持获取空闲端口,模块的启动、停止和重启。为了方便管理,对模块做了一个划分,从配置文件中加载的模块称为常驻模块,通过API启动的模块称为临时模块,临时模块遵循“谁启动谁负责停止"的原则。OpenEdge退出时,会先逆序停止所有常驻模块,常驻模块停止过程中也会调用API来停止其启动的模块,后如果还有遗漏的临时模块,会随机全部停止。
- OpenEdge_Hub模块主要基于MQTT协议提供设备接入(支持TCP、SSL(TCP+SSL)、WS(Websocket)及WSS(Websocket+SSL)四种接入方式)、消息路由转发等能力;
- OpenEdge_Function提供基于MQTT消息机制,弹性、高可用、扩展性好、响应快的的计算能力,函数通过一个或多个具体的实例执行,每个实例都是一个独立的进程,现采用GRPC Server运行函数实例。所有函数实例由实例池(Pool)负责管理生命周期,支持自动扩容和缩容;
- OpenEdge_Remote_MQTT模块支持MQTT协议,其实质是两个MQTT Server的桥接(Bridge)模块,用于订阅一个Server的消息并转发给另一个Server;
- 物联接入:支持设备基于标准MQTT协议(V3.1和V3.1.1版本)与OpenEdge建立连接;
- 消息转发:通过消息路由转发机制,将数据转发至任意主题、计算函数;
- 函数计算:支持基于Python2.7及满足条件的任意自定义语言的函数编写、运行;
- 屏蔽计算框架:OpenEdge提供主流运行时支持的同时,提供各类运行时转换服务,基于任意语言编写、基于任意框架训练的函数或模型,都可以在OpenEdge中执行;
- 简化应用生产:智能边缘BIE云端管理套件配合OpenEdge,联合百度云,一起为OpenEdge提供应用生产环境,通过CFC、Infinite、Jarvis、IoT EasyInsight、TSDB、IoT Visualization等产品,可以在云端生产各类函数、AI模型,及将数据写入百度云天工云端TSDB及物可视进行展示;
- 一键式运行环境部署:OpenEdge推行Docker容器化,开发者可以根据OpenEdge源码包中各模块的DockerFile一键式构建OpenEdge运行环境;
- 按需部署:OpenEdge推行功能模块化,各功能间运行互补影响、互不依赖,开发者完全可以根据自己的需求进行部署;
- 丰富配置:OpenEdge支持X86、ARM等多种硬件以及Linux、MacOS和Windows等主流操作系统。