开源项目梳理
边缘计算开源项目梳理
KubeEdge
KubeEdge 名字来源于 Kube + Edge,是面向边缘计算场景、专为边云协同设计的业界首个云原生边缘计算框架,在 Kubernetes 原生的容器编排调度能力之上实现了边云之间的应用协同、资源协同、数据协同和设备协同等能力,完整打通了边缘计算中云、边、设备协同的场景。KubeEdge 于 2019 年 3 月正式进入 CNCF 成为沙箱级项目(Sandbox),也成为 CNCF 首个云原生边缘计算项目。并于 2020 年 9 月晋升为孵化级项目(Incubating),成为 CNCF 首个孵化的云原生边缘计算项目。
KubeEdge 架构上分为云、边、端三个层次。云端负责应用和配置的校验、下发,边缘侧负责运行边缘应用和管理接入的设备,设备端运行各种边缘设备。KubeEdge 完整打通了边缘计算中云、边、设备协同的场景。
其核心能力包括:
- 支持复杂的边云网络环境:双向多路复用边云消息通道提供应用层可靠增量同步机制,支持高时延、低质量网络环境。
- 应用/数据边缘自治:支持边缘离线自治及边缘数据处理工作流
- 边云一体资源调度和流量协同:支持边云节点混合管理、应用流量统一调度
- 支持海量边缘设备管理:资源占用业界同类最小;提供可插拔设备管理框架,支持自定义插件扩展
- 开放生态:100% 兼容 Kubernetes 原生能力;支持 MQTT、Modbus、Bluetooth、Wifi、ZigBee 等业界主流设备通信协议。
Starlingx
StarlingX,一个专注于对低延迟和高性能应用进行优化的开源边缘计算及物联网云平台,StarlingX 项目旨在为边缘计算重新配置经过验证的云技术,在大规模分布式计算环境中提供成熟且稳健的云平台。StarlingX 是适用于裸机、虚拟机和容器化部署环境的完整边缘云基础设施平台,适用于对高可用性(HA)、服务质量(QoS)、性能和低延迟等有严格要求的应用场景。
StarlingX 提供了可部署、可扩展和高度可靠的边缘基础设施软件平台,用以构建关键任务边缘云。作为完整的堆栈进行测试和发布,StarlingX 利用了其他开源项目的组件,例如 Ceph、Linux、KVM、OpenStack 和 Kubernetes,并通过配置和故障管理等新服务对其进行了补充。StarlingX 社区针对安全性,超低延迟,超高服务正常运行时间以及面向边缘和 IoT 用例的简化操作优化了解决方案。
StarlingX 的应用场景包括远端或最后一英里,以及应用用例,例如工厂中的内部云、工业物联网、自动驾驶汽车和其他基于运输的物联网应用,多访问边缘计算(MEC)和虚拟无线电接入网络(vRAN)、5G、智能建筑和城市、增强和虚拟现实、高清媒体内容交付、监控、医疗影像以及通用客户前提设备(uCPE),在今后的几年中将会呈现高速的增长。
K3s
k3s 是首个进入 CNCF 沙箱项目的 K8S 发行版,同时也是当前全球用户量最大的 CNCF 认证轻量级 K8S 发行版。自 2019 年 3 月发布以来,备受全球开发者们关注,至今 GitHub Star 数已超过 15,500,成为了开源社区最受欢迎的边缘计算 K8S 解决方案。截至目前,K3s 全球下载量超过 100 万次,每周平均被安装超过 2 万次,其中 30%的下载量来自中国。
k3s 专为在资源有限的环境中运行 Kubernetes 的研发和运维人员设计,将满足日益增长的在边缘计算环境中运行在 x86、ARM64 和 ARMv7 处理器上的小型、易于管理的 Kubernetes 集群需求。k3s 的发布,为开发者们提供了以“Rancher 2.X + k3s”为核心的从数据中心到云到边到端的 K8S 即服务(Kubernetes-as-a-Service),推动 KubernetesEverywhere。
当组织同时使用 Rancher 和 K3s 时,组织将拥有一个在边缘运行 Kubernetes 的简单且完整的解决方案。
通过消除安装 Kubernetes 的复杂性和学习成本,K3s 极大地简化了边缘部署。K3s 与架构无关,并且占用空间极小。K3s 的易用性使组织可以从堆栈中获得更高的价值,将集群部署至数百甚至数千个地点,并快速启动这些集群。Rancher 通过 Rancher 持续交付(Continuous Delivery)帮助 K3s 用户管理大量集群,Rancher 为用户提供了一个控制器,使他们能够在边缘高效地管理 Kubernetes。K3s 为边缘部署提供动力,并推动组织实现真正的数字化转型。
EdgeX Foundry
EdgeX Foundry 是由 Linux 基金会运营的厂商中立的开放源码项目,旨在为物联网边缘计算创建公共开放的框架。该项目的核心是基于与硬件和操作系统完全无关的参考软件平台建立的互操作框架,使能即插即用的组件生态系统,统一市场,加速物联网方案的部署。
EdgeX Foundry 使有意参与的各方在开放与互操作的物联网方案中自由协作,无论他们是使用公开标准或私有方案。Edgex Foundry 由 LF Edge 运营,目前有 60 多家全球企业参与,150 多名工程师贡献代码。EdgeX 中国项目于 2019 年底成立,负责运营中国区的技术推广并吸引更多的代码贡献。VMware 和 Intel 是 EdgeX 中国项目的联合维护单位。
EdgeGallery
EdgeGallery 是由设备厂商、运营商,垂直行业伙伴等联合发起的一个 5G 边缘计算开源项目。目的是打造一个符合 5G MEC“联接+计算”特点的边缘计算公共平台,实现网络能力(尤其是 5G 网络)开放的标准化和 MEC 应用开发、测试、迁移和运行等生命周期流程的通用化。EdgeGallery 不仅是一个 MEP 平台,未来更是一个面向应用和开发者的端到端解决方案,将为应用开发者、边缘运营及运维人员提供一站式服务。
EdgeGallery 针对边缘计算场景提供了设计、分发以及运行的 E2E 平台以及工具链。为了繁荣边缘计算生态,EdgeGallery 还不断丰富样例应用、联邦商城、5G 实验室等:
- E2E 应用开发部署平台:a) API 能力中心:面向 APP 开发者,提供更加丰富的开放能力 b) 开发调测换环境:提供 5G MEC 开发调测沙箱以及外场环境 c) 5G 网络集成:UPF 对接、提供 DNS、流量等规则配置能力
- APP Store 联邦以及 APP 生态共建:a) 3rd APP Store 管理:提供三方 APP 仓库的注册管理功能 b) APP Store 分布式联邦:实现与三方 APP 仓库的 APP 推送共享 c) APP 身份证:提供 APP 认证平台,运营商可定制测试用例
- 边缘节点可视化管理:a) 边缘节点 GIS 管理:提供基于在线地图的边缘节点以及资源管理,提供街道级别的 MEP 详细拓扑 b) 5G UPF 分流规则配置:UPF 流量转发规则,DNS 规则的可视化配置
- 边缘应用与服务可视化:a) 本地 Portal:新增 MEP 单节点管理界面,用以管理应用和服务,实现基本的服务治理可视化能力 b) 节点服务治理:提供单节点服务的 health check,多节点服务隔离,5G 网络集成等能力在未来的版本中,社区计划持续提升 EdgeGallery 平台的用户体验、稳定性、安全性以及提供更丰富的开放能力。
Akraino
Akraino 是针对 Edge 的一组开放式基础架构和应用蓝图,涵盖了广泛的用例,包括针对提供商和企业边缘域的 5G,AI,Edge IaaS / PaaS,IoT。这些蓝图是由 Akraino 社区创建的,专门针对各种形式的边缘。所有这些蓝图的统一之处在于它们已经由社区进行了测试,可以按原样使用,或者用作自定义新边缘蓝图的起点。
Baetyl
Baetyl,原名 OpenEdge,最早是由百度智能云打造的边缘计算平台,于 2018 年 12 月 6 日正式对外开源,也是是中国首个全面开源的边缘计算平台。在 2019 年 9 月 23 日,百度宣布将 BAETYL 捐赠给 Linux 基金会旗下社区,是中国首个 LF Edge 捐赠项目。2020-07-08,Baetyl 2.0 正式发布,同步开源了边缘计算云管平台 Baetyl-Cloud。
Baetyl 旨在将云计算能力拓展至用户现场。提供临时离线、低延时的计算服务,包括数据接入、消息路由、函数计算、流式计算、AI 推断等功能。配合最新开源的云管平台 Baetyl-Cloud,可以实现应用部署、配置下发、系统监控等功能。提供了完整的“云管理、边运行”的一体化解决方案。
云端管理套件
云端管理套件(Cloud Management Suite)负责管理所有资源,包括节点、应用、配置、部署等。所有功能的实现都插件化,方便功能扩展和第三方服务的接入,提供丰富的应用。云端管理套件的部署非常灵活,即可部署在公有云上,又可部署在私有化环境中,还可部署在普通设备上,支持 K8S/K3S 部署,支持单租户和多租户。
开源版云端管理套件提供的基础功能如下:
- 边缘节点管理
- 在线安装
- 端云同步(影子)
- 节点信息
- 节点状态
- 应用状态
- 应用部署管理
- 容器应用
- 函数应用
- 节点匹配(自动)
- 配置管理
- 普通配置
- 函数配置
- 密文
- 证书
- 镜像库凭证
开源版本包含上述所有功能的 RESTful API,暂不包含前端界面(Dashboard)。边缘计算框架(Edge Computing Framework)运行在边缘节点的 Kubernetes 上,管理和部署节点的所有应用,通过应用服务提供各式各样的能力。应用包含系统应用和普通应用,系统应用全部由 Baetyl 官方提供,用户无需配置。目前有如下几个系统应用:
- baetyl-init:负责激活边缘节点到云端,并初始化 baetyl-core,任务完成后就会退出。
- baetyl-core:负责本地节点管理(node)、端云数据同步(sync)和应用部署(engine)。
- baetyl-function: 所有函数运行时服务的代理模块,函数调用都到通过这个模块。
目前框架支持 Linux/amd64、Linux/arm64、Linux/armv,如果边缘节点的资源有限,可考虑使用轻量版 Kubernetes:K3S。
OpenYurt
OpenYurt 是业界首个开源的非侵入式边缘计算云原生平台,秉承“Extending your native Kubernetes to Edge”的非侵入式设计理念,拥有可实现边缘计算全场景覆盖的能力。使用 OpenYurt(Yurt,/jɜːrt/,蒙古包)作为开源项目名称,期望以其“形”来表示边缘计算侧重于创建一个集中管理但物理分布的基础设施,并支持自动/自治运行操作的含义。OpenYurt 主打“非侵入式云边一体化”概念,依托原生 Kubernetes 强大的容器编排、调度能力,通过众多边缘计算应用场景锤炼,实现了一整套对原生 Kubernetes“零”侵入的边缘云原生方案,提供诸如边缘自治、高效运维通道、边缘单元化管理、边缘流量拓扑管理,安全容器、边缘 Serverless/FaaS、异构资源支持等能力。OpenYurt 能帮用户解决在海量边、端资源上完成大规模应用交付、运维、管控的问题,并提供中心服务下沉通道,实现和边缘计算应用的无缝对接。
在短短一年内,作为公共云服务 ACK@Edge 的核心框架,OpenYurt 已实现全网覆盖和本地覆盖的全场景落地,全网覆盖的应用场景如 CDN、音视频直播、物联网、物流、工业大脑、城市大脑等;本地覆盖的应用场景和案例如阿里云 LinkEdge、优酷、盒马、AIBox、银泰商城等。
SuperEdge
2020 年 12 月 19 日,SuperEdge 项目由腾讯、Intel、VMware、虎牙直播、寒武纪、首都在线和美团联合宣布开源,在 github 上发布首个版本。SuperEdge 是 Kubernetes 原生的边缘容器方案,它将 Kubernetes 强大的容器管理能力扩展到边缘计算场景中,针对边缘计算场景中常见的技术挑战提供了解决方案,如:单集群节点跨地域、云边网络不可靠、边缘节点位于 NAT 网络等。这些能力可以让应用很容易地部署到边缘计算节点上,并且可靠地运行。
SuperEdge 支持所有 Kubernetes 资源类型、API 接口、使用方式、运维工具,无额外的学习成本。也兼容其他云原生项目,如:Promethues,使用者可以结合其他所需的云原生项目一起使用。SuperEdge 拥有如下特性:
- Kubernetes 原生:SuperEdge 基于 Kubernetes 强大的容器编排、调度能力加强构建,其易于集成的特性使开发者无需对 Kubernetes 进行复杂的结构性修改即可轻松部署,SuperEdge 还能完全兼容 Kubernetes 的所有原生 API 及其他资源。
- 边缘自治:SuperEdge 能够实现节点级边缘自治,当边缘节点处于离线状态或者与云端网络连接不稳定时,边缘节点和网络依然可以自主运行和工作,这能够有效化解网络不可靠所带来的不利影响。
- 分布式节点健康监测:SuperEdge 是业内首个将健康监测带到边缘侧的开源容器管理系统,这意味着 SuperEdge 能够在边缘侧持续守护进程,并收集节点的故障信息,实现更加快速和精准的问题发现与报告。此外,其分布式的设计还可以实现多区域、多范围的监测和管理。
- 内置服务网格框架:SuperEdge 能够自动部署多区域的微服务,方便管理在服务器上运行的数量庞大的微服务,从而减少管理和编程成本。同时,网格内闭环服务可以有效减少运行负载,提高系统的容错能力和可用性。
- 内网穿透:SuperEdge 能够保证 Kubernetes 节点在有无公共网络的情况下都可以连续运行和维护,并且同时支持传输控制协议(TCP)、超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)。
Azure IoT Edge
Azure IoT Edge 是基于物联网 (IoT) 中心构建的 IoT 服务。此服务供想要在设备上(也称为“在边缘上”)而不是在云中分析数据的客户使用。通过将部分工作负荷移至边缘,设备将消息发送到云所花费的时间可以更少,并且设备可以对状态更改更快地做出响应。Azure IoT Edge 主要将基于云的分析和定制的业务逻辑转移到边缘设备,使企业能够专注于洞察商业机会而非数据管理。微软表示,这些设备现在将能够立即采取实时数据行动。借助开源的 Azure IoT Edge,开发人员可以更灵活地控制自己的边缘解决方案,以及运行时或调试问题。
为了解决 Azure IoT Edge 大规模部署的安全问题,Azure IoT Edge 深入集成了设备调配服务,以安全地配置数以万计的设备和 Azure IoT Edge 安全管理员,这些管理员可以用来保护边缘设备及其组件。自动设备管理(ADM)可以基于设备元数据将大型物联网边缘模块部署到设备。
Azure IoT Edge 支持 C#,C,Node.js,Python 和 Java 等编程语言。它还提供 VSCode 模块开发,测试和部署工具,以及带 VSTS 的 CI/CD 管道。部署 Azure IoT Edge 有三个必要组件,即 Azure IoT Edge Runtime,Azure IoT Hub 和 Edge 模块。Azure IoT Edge Runtime 是免费且开源的,但客户必须使用付费的 Azure IoT Hub 实例进行扩展。边缘设备的管理和部署也将基于 Azure 服务或客户使用的 Edge 模块。