2020 年是非常特别的一年,各行各业都非常艰难,但是有一股力量逆势增长,不断迎来新的突破,那就是开源。即使是资本寒冬,一些开源公司如EMQ也能逆势融资,Rancher也能和SUSE强强联合,开源充满无限可能,这是属于开源的最好的时代,每一位开发者都是星星之火,星星之火可以燎原。
边缘计算社区经过一个月调研,梳理了 2020 年边缘计算领域较为活跃和创新、热门的十个开源项目 KubeEdge、StarlingX、K3s、EdgeXfoundry、EdgeGallery、Akraino、Baetyl、OpenYurt、SuperEdge、Azure IoT Edge,无关派别,以下排名不分先后,万字长文,建议收藏。
1.KubeEdge
项目介绍:
KubeEdge 名字来源于 Kube + Edge,是面向边缘计算场景、专为边云协同设计的业界首个云原生边缘计算框架,在 Kubernetes 原生的容器编排调度能力之上实现了边云之间的应用协同、资源协同、数据协同和设备协同等能力,完整打通了边缘计算中云、边、设备协同的场景。
KubeEdge 于 2019 年 3 月正式进入 CNCF 成为沙箱级项目(Sandbox),也成为 CNCF 首个云原生边缘计算项目。并于 2020 年 9 月晋升为孵化级项目(Incubating),成为 CNCF 首个孵化的云原生边缘计算项目。
2020 年大事记
2020 年 9 月 KubeEdge 晋升为 CNCF 孵化级项目(Incubating),标志着项目已进入大规模生产落地期。目前已在包括 CDN、工业、能源、园区、交通等在内的多个行业迅速发展并生产落地,落地用户包括联通沃云、谐云、时速云、中移在线、瑞斯康达等组织。
截至 2020 年 12 月,KubeEdge 社区累计吸引全球开发者 6 万+,其中来自超过 40 个企业组织的 550 多名开发者参与了社区的核心代码贡献,社区合作伙伴包括 Arm、三星电子、法国电信、中国移动、中国联通、中国电信、华为云、时速云、KubeSphere、EMQ 等。
相关介绍
KubeEdge 架构上分为云、边、端三个层次。云端负责应用和配置的校验、下发,边缘侧负责运行边缘应用和管理接入的设备,设备端运行各种边缘设备。KubeEdge 完整打通了边缘计算中云、边、设备协同的场景。
其核心能力包括:
- 支持复杂的边云网络环境:双向多路复用边云消息通道提供应用层可靠增量同步机制,支持高时延、低质量网络环境。
- 应用/数据边缘自治:支持边缘离线自治及边缘数据处理工作流
- 边云一体资源调度和流量协同:支持边云节点混合管理、应用流量统一调度
- 支持海量边缘设备管理:资源占用业界同类最小;提供可插拔设备管理框架,支持自定义插件扩展
- 开放生态:100%兼容 Kubernetes 原生能力;支持 MQTT、Modbus、Bluetooth、Wifi、ZigBee 等业界主流设备通信协议。
未来 KubeEdge 将持续以云原生技术为基础、结合边缘计算场景,将云原生技术无缝扩展到边缘,打造最好用的云原生边缘计算平台。
官网:https://kubeedge.io
Github:https://github.com/kubeedge
2.Starlingx
项目介绍:
StarlingX,一个专注于对低延迟和高性能应用进行优化的开源边缘计算及物联网云平台,StarlingX 项目旨在为边缘计算重新配置经过验证的云技术,在大规模分布式计算环境中提供成熟且稳健的云平台。StarlingX 是适用于裸机、虚拟机和容器化部署环境的完整边缘云基础设施平台,适用于对高可用性(HA)、服务质量(QoS)、性能和低延迟等有严格要求的应用场景。
2020 年大事记
2020 年 8 月正式发布 4.0 版本。社区将对 Kata Containers 的支持添加为一个容器运行时,集成了 OpenStack 的 Ussuri 版本,将剩余的平台服务容器化,以列出对软件的一些增强。
2020 年,StarlingX 项目被批准为开源基础设施基金会的顶级项目之一。在这一年中,有 111 位贡献者将 2237 项代码更改合并到了代码库中。这还不包括提交到平台集成的相邻项目的代码库中的更改(例如 Kubernetes)。
相关介绍
StarlingX 提供了可部署、可扩展和高度可靠的边缘基础设施软件平台,用以构建关键任务边缘云。作为完整的堆栈进行测试和发布,StarlingX 利用了其他开源项目的组件,例如 Ceph、Linux、KVM、OpenStack 和 Kubernetes,并通过配置和故障管理等新服务对其进行了补充。StarlingX 社区针对安全性,超低延迟,超高服务正常运行时间以及面向边缘和 IoT 用例的简化操作优化了解决方案。
StarlingX的应用场景包括远端或最后一英里,以及应用用例,例如工厂中的内部云、工业物联网、自动驾驶汽车和其他基于运输的物联网应用,多访问边缘计算(MEC)和虚拟无线电接入网络(vRAN)、5G、智能建筑和城市、增强和虚拟现实、高清媒体内容交付、监控、医疗影像以及通用客户前提设备(uCPE),在今后的几年中将会呈现高速的增长。
官网:www.starlingx.io
Github:https://github.com/starlingx
3.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。
2020 大事记
2020 年 8 月,K3s 加入 CNCF 沙箱项目,是首个进入 CNCF 沙箱项目的 Kubernetes 发行版,同时也是当前全球用户量最大的 CNCF 认证轻量级 Kubernetes 发行版。
2020 年 10 月,Rancher 中国团队正式发布并开源了 K3s 自动化工具项目 AutoK3s, 它是一款轻量级工具,用于在多个云供应商上快速创建和管理 K3s 集群。它可以帮助用户快速完成 K3s 集群的个性化配置,同时集成 Kubectl 以提供便捷的集群访问功能。
相关介绍
当组织同时使用 Rancher 和 K3s 时,组织将拥有一个在边缘运行 Kubernetes 的简单且完整的解决方案。
通过消除安装 Kubernetes 的复杂性和学习成本,K3s 极大地简化了边缘部署。K3s 与架构无关,并且占用空间极小。K3s 的易用性使组织可以从堆栈中获得更高的价值,将集群部署至数百甚至数千个地点,并快速启动这些集群。Rancher 通过 Rancher 持续交付(Continuous Delivery)帮助 K3s 用户管理大量集群,Rancher 为用户提供了一个控制器,使他们能够在边缘高效地管理 Kubernetes。K3s 为边缘部署提供动力,并推动组织实现真正的数字化转型。
官网:https://www.rancher.cn/k3s/
Github:https://github.com/k3s-io/k3s
4.EdgeX Foundry
项目介绍:
EdgeX Foundry 是由 Linux 基金会运营的厂商中立的开放源码项目,旨在为物联网边缘计算创建公共开放的框架。该项目的核心是基于与硬件和操作系统完全无关的参考软件平台建立的互操作框架,使能即插即用的组件生态系统,统一市场,加速物联网方案的部署。
EdgeX Foundry 使有意参与的各方在开放与互操作的物联网方案中自由协作,无论他们是使用公开标准或私有方案。Edgex Foundry 由 LF Edge 运营,目前有 60 多家全球企业参与,150 多名工程师贡献代码。EdgeX 中国项目于 2019 年底成立,负责运营中国区的技术推广并吸引更多的代码贡献。VMware 和 Intel 是 EdgeX 中国项目的联合维护单位。
大事记
2020 年 EdgeX 全球下载量累计达到 800 万次,来自中国的下载排名全球第二,像 Dell、惠普、埃森哲、Intel、Wipro、TIBCO 这样的全球企业都推出了基于 EdgeX 的行业解决方案。中国今年有 1000 多名专业人士参与社区活动。估计代表了约 200 家各类机构,其中有 30-40 家活跃组织,有 10 家以上的公司(研华科技、京东、中科创达、江行智能、新华三、赞同科技、云创远景等)公布了基于 EdgeX 的商业技术解决方案,并已经有大量项目落地客户。
官网:https://www.edgexfoundry.org/
Github:https://github.com/edgexfoundry/
5.EdgeGallery
项目介绍
EdgeGallery 是由设备厂商、运营商,垂直行业伙伴等联合发起的一个 5G 边缘计算开源项目。目的是打造一个符合 5G MEC“联接+计算”特点的边缘计算公共平台,实现网络能力(尤其是 5G 网络)开放的标准化和 MEC 应用开发、测试、迁移和运行等生命周期流程的通用化。
EdgeGallery 不仅是一个 MEP 平台,未来更是一个面向应用和开发者的端到端解决方案,将为应用开发者、边缘运营及运维人员提供一站式服务。
2020 大事记
2020 年 7 月 30 日,来自中国信息通信研究院、中国移动、中国联通、华为、腾讯、紫金山实验室、九州云和安恒信息的代表召开首届 EdgeGallery 开源社区董事会,标志着聚焦 5G 边缘计算场景的 EdgeGallery 开源项目筹备工作完成,社区正式成立,社区治理进入董事会领导下的规范运作新阶段。
2020 年 8 月 6 日,业界首个 5G 边缘计算开源平台 EdgeGallery 宣布在码云上正式开源。9 月 30 日,EdgeGallery 社区正式发布了第二个版本 Blue release。
相关介绍
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 平台的用户体验、稳定性、安全性以及提供更丰富的开放能力。
在未来的版本中,社区计划持续提升EdgeGallery平台的用户体验、稳定性、安全性以及提供更丰富的开放能力。
官网:http://www.edgegallery.org/
Github:https://gitee.com/edgegallery
6.Akraino
项目介绍
Akraino 是针对 Edge 的一组开放式基础架构和应用蓝图,涵盖了广泛的用例,包括针对提供商和企业边缘域的 5G,AI,Edge IaaS / PaaS,IoT。这些蓝图是由 Akraino 社区创建的,专门针对各种形式的边缘。所有这些蓝图的统一之处在于它们已经由社区进行了测试,可以按原样使用,或者用作自定义新边缘蓝图的起点。
2020 大事记
2020 年 8 月批准的Akraino版本3(R3)包括6个新的蓝图:
① 5G MEC / Slice系统,支持云游戏,高清视频和现场直播蓝图
②AI Edge:教育视频安全监控;
③微型MEC
④IEC类型3:Arm服务器上的AndroidCloud本机应用程序边缘
⑤IEC类型5:用于集成边缘云的SmartNIC
⑥轻量级5G电信边缘上的企业应用程序
官网:https://www.lfedge.org/projects/akraino/
Github:https://gerrit.akraino.org/
7.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,可以实现应用部署、配置下发、系统监控等功能。提供了完整的“云管理、边运行”的一体化解决方案。
大事记
2020-07-08,Baetyl 2.0 正式发布,Baetyl2.0 最重要的亮点包括:
- 增加全新的远程管理系统 Baetyl-Cloud,支持对多个边缘节点的管理。
- 边缘和远程管理框架全部向云原生演化,已支持运行在原生 Kubernetes 或 K3S 之上。
- 引入声明式的设计,通过设备影子实现端云同步。
- 升级内部架构,支持未来升级到边缘集群。
相关介绍
云端管理套件和边缘计算框架
云端管理套件
1.云端管理套件(Cloud Management Suite)负责管理所有资源,包括节点、应用、配置、部署等。所有功能的实现都插件化,方便功能扩展和第三方服务的接入,提供丰富的应用。云端管理套件的部署非常灵活,即可部署在公有云上,又可部署在私有化环境中,还可部署在普通设备上,支持 K8S/K3S 部署,支持单租户和多租户。
2.开源版云端管理套件提供的基础功能如下:
- 边缘节点管理
- 在线安装
- 端云同步(影子)
- 节点信息
- 节点状态
- 应用状态
- 应用部署管理
- 容器应用
- 函数应用
- 节点匹配(自动)
- 配置管理
- 普通配置
- 函数配置
- 密文
- 证书
- 镜像库凭证
- 开源版本包含上述所有功能的 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。
官网:https://baetyl.io/
Github:https://github.com/baetyl
8. OpenYurt
项目介绍
OpenYurt 是业界首个开源的非侵入式边缘计算云原生平台,秉承“Extending your native Kubernetes to Edge”的非侵入式设计理念,拥有可实现边缘计算全场景覆盖的能力。
使用 OpenYurt(Yurt,/jɜːrt/,蒙古包)作为开源项目名称,期望以其“形”来表示边缘计算侧重于创建一个集中管理但物理分布的基础设施,并支持自动/自治运行操作的含义。OpenYurt 主打“非侵入式云边一体化”概念,依托原生 Kubernetes 强大的容器编排、调度能力,通过众多边缘计算应用场景锤炼,实现了一整套对原生 Kubernetes“零”侵入的边缘云原生方案,提供诸如边缘自治、高效运维通道、边缘单元化管理、边缘流量拓扑管理,安全容器、边缘 Serverless/FaaS、异构资源支持等能力。OpenYurt 能帮用户解决在海量边、端资源上完成大规模应用交付、运维、管控的问题,并提供中心服务下沉通道,实现和边缘计算应用的无缝对接。
在短短一年内,作为公共云服务 ACK@Edge 的核心框架,OpenYurt 已实现全网覆盖和本地覆盖的全场景落地,全网覆盖的应用场景如 CDN、音视频直播、物联网、物流、工业大脑、城市大脑等;本地覆盖的应用场景和案例如阿里云 LinkEdge、优酷、盒马、AIBox、银泰商城等。
大事记
2020 年 5 月 OpenYurt 正式对外开源,发布 v0.1.0 版本,成为业界首个开源的非侵入式边缘计算云原生平台。
2020 年 8 月,开源云边隧道功能并发布 v0.2.0 版本
2020 年 9 月,开源 3 个月后经过社区一起努力 OpenYurt 正式成为 CNCF 沙箱级别项目,标志着 OpenYurt 在边缘计算场景中构建云原生基础设施的能力受到了行业的广泛认可
2020 年 12 月,社区活跃度继续攀升,经 intel,谐云科技等外部同学一起合作努力,开源边缘单元化功能,并发布 v0.3.0 版本
相关介绍
OpenYurt 的主要组件包括:
- YurtHub:Kubernetes 集群中节点上运行的守护程序,它的作用是作为(Kubelet,Kubeproxy,CNI 插件等)的出站流量的代理。它在边缘节点的本地存储中缓存 Kubernetes 节点守护进程可能访问的所有资源的状态。如果边缘节点离线,则这些守护程序可以帮助节点在重新启动后恢复状态。
- YurtController Manager:在各种不同的边缘计算用例中 Yurt Controller Manager 负责管理一个节点控制器( NodeController )。举例来说即使节点心跳丢失,处于自治模式的节点中的 Pod 也不会从 API Server 中被驱逐( evicted )。
- YurtApp Manager:它管理 OpenYurt 中引入的两个 CRD 资源。NodePool 和 UnitedDeployment. 前者为位于同一区域的节点池提供了便利的管理方法。后者定义了一种新的边缘应用模型以节点池为单位来管理工作负载。
- YurtTunnel (server/agent):TunnelServer 通过反向代理与在每个边缘节点中运行的 TunnelAgent 守护进程建立连接并以此在公共云的控制平面与 处于 企业内网(Intranet)环境的边缘节点之间建立安全的网络访问。
作为首个对原生 Kubernetes 完整生态全部兼容的智能开放平台,OpenYurt 将以更灵活和可扩展的体系结构方向发展,不断增强开源开发者友好体验。OpenYurt 还将基于行业场景与 5G、AI、大数据、区块链等新兴技术结合,驱动企业业务加速创新。未来 OpenYurt 将与社区并肩、与生态同行,致力于推进云原生技术在边缘计算领域的生态建设与普及,与全球开发者一起拓展云原生的边界。
官网:https://openyurt.io
Github:https://github.com/alibaba/openyurt
9.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)。
Github:https://github.com/superedge/superedge
10.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 模块。
Github:https://github.com/Azure/iotedge