其他分享
首页 > 其他分享> > 基于 OpenYurt & EdgeX Foundry 的云边端一体化解决方案

基于 OpenYurt & EdgeX Foundry 的云边端一体化解决方案

作者:互联网

简介:近日,OpenYurt 与 EdgeX Foundry 社区合作,完成了集成对接:从 v0.5.0 版本开始,OpenYurt 将正式支持部署和管理 EdgeX Foundry,并以云原生的方式管理端设备,双方将共同帮助开发者轻松、高效地解决物联网边缘计算场景下端设备管理和运维的挑战。

者|VMWare 主任工程师:刘武明、浙江大学 SEL 实验室研究生:陈涛

审核&校对:溪洋、海珠

编辑&排版:雯燕


背景介绍


边缘计算区别于传统的中心云计算模式,并被广泛地应用于汽车、农业、能源、交通等各行各业。Gartner 将边缘计算分为 "Cloud" 、"Far Edge"  、"Near Edge" 三部分,分别对应常见的公共云/私有云、云下 IDC/CDN 节点以及设备终端;即常说的 “云、边、端” 三层结构。随着算力和业务的逐级下沉,网络环境越来越复杂,设备资源越来越受限,设备架构越来越丰富,这些变化给运维管理边缘节点、设备,提高边缘应用的可靠性、资源的利用率等方面,都带来了巨大的挑战。


近日,OpenYurt 与 EdgeX Foundry 社区合作,完成了集成对接:从 v0.5.0 版本开始,OpenYurt 将正式支持部署和管理 EdgeX Foundry,并以云原生的方式管理端设备,双方将共同帮助开发者轻松、高效地解决物联网边缘计算场景下端设备管理和运维的挑战。


1、OpenYurt:非侵入式的边缘云原生智能平台


OpenYurt 基于原生 Kubernetes 构建,由阿里云于 2020 年 5 月开源,并于同年 9 月份入选 CNCF SandBox 项目,是业界首个对 Kubernetes 无侵入的边缘计算云原生开源平台。OpenYurt 主打 “云边一体化” 的概念,针对边缘计算场景中的网络环境复杂、大规模应用交付、运维困难等痛点,提供了边缘自治、云边运维通道、单元化部署、一键式集群转化等能力,通过将云边节点统一管理,使得边缘节点拥有与云端相同的能力,帮助开发者轻松完成在海量边缘资源上的大规模应用交付、运维、管控。

image.gif

图片 1.png


2、EdgeX Foundry:边缘物联网管理平台


EdgeX Foundry 是一款由生态系统提供强力支持的边缘物联网即插即用型、开放式软件平台。它具有高度灵活和可扩展性,可以大大的降低应用与边缘设备,传感器等硬件互操作的复杂性。EdgeX Foundy 采用分层和服务的设计,从下至上分别是设备服务,核心服务,支持服务,应用服务以及安全和管理两个辅助服务。EdgeX Foundry 的分层和服务为边缘设备/节点和云/企业应用之间提供了一个双向转换引擎。可以将传感器和节点数据按特定格式传输到应用,也可以将应用指令下发到边缘设备。


图片 2.png








拓展 “端” 的能力


根据上述介绍可以看到,OpenYurt 擅长以非侵入的方式,实现云边资源的统一管理和运维,使得边缘节点拥有云端相同的能力。但随着将相关纳管能力拓展至 “ 端 ”这一层时,由于近端设备异构资源支持复杂、通信方式多样、分布位置分散等特点,会出现以下问题:




从 v0.5.0 版本开始,Openyurt 和 EdgeX Foundry 社区通过可扩展方式深度融合,在边缘计算、设备管理、物模型定义、云原生 IoT 领域进一步合作,实现 “云、边、端” 三者的强力协同。OpenYurt 通过集成 EdgeX Foundry 设备管理平台,正式支持端设备的管理能力。用户可以使用 Yurt-edgex-manager 组件一键式部署 Edgex Foundry 实例,并通过部署 Yurt-device-controller 组件打通边缘设备管理平台和云端之间的运维管理通道,允许用户声明式地管理边缘设备,为用户提供 Kubernetes 原生管理端设备的体验。


OpenYurt v0.5.0 设备管理解决方案


1、使用 OpenYurt 编排部署 EdgeX Foundry


在最新 OpenYurt 中引入了一个 Yurt-edgex-controller 的控制器来管理 EdgeX CR。EdgeX CR 是对 EdgeX Foundy 在 OpenYurt 中部署的一个抽象,用户可以操作 CR 的方式来管理 EdgeX 的部署,更新,删除。不再需要写复杂的 Yaml 文件以及 Helm Chart。


用户只需要创建一个 EdgeX 的 CR,Yurt-edgex-controller 会根据 CR 中版本以及对应的 Nodepool 的名字部署 EdgeX。用户在一个集群中可以根据 Nodepool 的数量部署多个 EdgeX,每个 EdgeX 的版本,以及包括的 EdgeX 服务可以配置。

 

图片 3.png



在 OpenYurt 中,EdgeX 的服务通过以 Kubernetes 服务的形式来对外提供访问,尽管不同的 EdgeX 实例使用相同 Kubernates 服务名称,ServiceToploy 会确保 EdgeX 组件只能访问属于同一 EdgeX 实例的其他组件,而不会发生交叉访问的情绪。Yurt-edgex-controller 利用 unitedeployment 的能力,在 Nodepool 中部署 EdgeX 的组件。


2、云原生 IoT 模型


设备信息抽象


为管理现实世界中的设备,需要对设备管理相关的服务进行抽象,Yurt-device-controller 作为连通云和边缘管理平台的组件,抽象出了三个 CRD,用于映射对应设备管理平台上的资源,它们分别是 DeviceProfile、DeviceService 和 Device:





设备管理架构


通过抽象出上述三种 CRD,可以反应出设备基本的状态信息,再使用对应的 controller 与边缘设备管理平台进行交互,可以将边侧发现的端设备及时映射至云端;与此同时,Yurt-device-controller 组件将云端针对设备属性的修改(例如:设置照明设备的开关状态)同步至端设备上,从而影响真实世界中的物理设备。用户只需要声明式地修改 CRs 的相应字段,以一种云原生的方式即可达到运维、管理复杂端设备的目的,下面是组成 Yurt-device-controller 的三个组件:





下面是云边端三者整体的架构模型:


图片 4.png


边缘端设备的通信范围往往局限于某一网络区域内,因此可以将同一网络区域内的边缘节点划分为一个节点池,在每一个节点池内部署一个 Edgex Foundry 实例和一个 yurt-device-controller 组件:




社区合作规划


image.gif图片 5.png


未来,双方还将面向 IoT 行业继续探索云原生边缘设备管理的解决方案,并吸引更多轻量级边缘设备管理平台加入 OpenYurt 生态,使端设备的管理更加便捷、高效以及云原生。


相关链接:


1)Yurt-edgex-manager:

https://github.com/openyurtio/yurt-edgex-manager

2)Yurt-device-controller:

https://github.com/openyurtio/yurt-device-controller

3)OpenYurt 官网:

https://openyurt.io/en-us/

4)EdgeX Foundry官网:

https://www.edgexfoundry.org/


这里,立即了解 OpenYurt 项目!


原文链接:https://developer.aliyun.com/article/801046?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

标签:云边,Foundry,边缘,controller,EdgeX,OpenYurt,设备
来源: https://blog.csdn.net/alitech2017/article/details/121288932