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

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
性能测试 PTS,5000VUM额度
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 近日,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


  • 设备服务层:设备服务将“物”即传感器和设备连接到 EdgeX 的其余部分。设备服务是与 “物” 交互的边缘连接器,包括但不限于警报系统、家庭和办公楼中的供暖和空调系统、灌溉系统、无人机、自动化运输(例如一些铁路系统)等等。


  • 核心服务层:核心服务包括核心数据库,核心元数据,配置和注册表以及核心命令/控制四个服务。他们是对各类设备的一层抽象,保存和收集传感器的数据和元数据,以及来自应用的命令/控制以及配置。


  • 支持服务层:主要包括警报服务、通知服务、计划服务,以及规则引擎。


  • 应用服务层:应用服务负责从 EdgeX 提取、处理、转换和发送感测数据到用户选择的断点或者流程。EdgeX 现在提供了很多应用程序服务示例以将数据发送到一些主要的云提供商。


  • 安全服务层:保护 EdgeX 管理的设备、传感器和其它物联网对象的数据以及控制。EdgeX 的安全功能建立在开放接口、可插拔、可更换模块的基础之上。


  • 管理服务:为外部管理系统提供统一的借口以便于其启动、停止、重启 Edgex 服务、获取服务的状态或者相关指标,以便于 EdgeX 服务可以被监控。


拓展 “端” 的能力


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


  • 为了支持各种边缘设备,现有的 OpenYurt 框架必须为每个类别的设备开发专用的适配器;


  • 在直接纳管端设备的过程中,现有解决方案要么改变 Kubernetes 架构,要么显著修改核心组件,丢失一些上游 Kubernetes 特性的同时,与 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


  • EdgeX: 是一套 EdgeX foundy 部署的抽象,包括 EdgeX foundry 的版本,以及需要部署的 Nodepool 的名字。基础的 EdgeX CR 包括 8 个基础的 EdgeX 服务和部署,此外还提供 AdditionalDeployment 和 Additional Service 的字段,让用户可以部署任何所需的 EdgeX 组件和第三方应用。


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


2、云原生 IoT 模型


设备信息抽象


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


  • DeviceProfile:描述了使用相同协议的一种设备类型,其中包括一些通用信息,如制造商名称、设备描述和设备型号。DeviceProfile 还定义了此类设备提供的资源类型(例如,温度、湿度)以及如何读取/写入这些资源。每个 device 都需要关联一个 DeviceProfile;


  • DeviceService:是与设备交互的边缘连接器在云端的映射,定义了如何将设备接入到边缘设备管理平台,包括设备的通信协议,通信地址等信息。每个 device 都需要关联一个 DeviceService;


  • Device:是现实世界中端设备的映射,例如:电器、警报系统、照明、传感器等设备,它给出了特定设备的详细定义,包括关联的 DeviceProfile(属于哪类设备)、关联的 DeviceService(使用何种通信方式)以及设备特有属性(如照明设备的开关状态等)。


设备管理架构


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


  • DeviceProfile controller:它可以将边缘平台中的 deviceProfile 对象抽象为 deviceProfile CR 并同步到云端。在 deviceProfile controller 的支持下,用户可以在云端查看、创建或删除边缘平台的 deviceProfile。


  • DeviceService controller:它可以将边缘平台中的 deviceService 对象抽象为 deviceService CR 并同步到云端。在 deviceService controller 的支持下,用户可以在云端查看、创建或删除边缘平台的 deviceService 信息。


  • Device controller:它可以将边缘平台中的 device 对象抽象为 device CR 并同步到云端。在 device controller 的支持下,用户可以通过声明式修改云端 device CR 的方式来管理边缘平台上的设备信息,如创建设备、删除设备、更新设备属性(如设置灯的开和关等)。


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


图片 4.png


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


  • 在与云端 apiserver 的通信中,Yurt-device-controller 只会监听属于该节点池内的设备对象,并将更新信息通过 Edgex Foundry 实例及时地同步至对应的设备上;


  • 在与 Edgex Foundry 实例的通信中,复用 YurtHub、节点池以及单元化部署等能力,Yurt-device-controller 组件只会访问本节点池内的 Edgex Foundry 实例,并将接入该节点池内的设备信息抽象为 device、deviceService 和 deviceProfile 对象同步至云端。


社区合作规划


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 项目!




了解更多相关信息,请扫描下方二维码或搜索微信号(AlibabaCloud888)添加云原生小助手!获取更多相关资讯!

二维码.png


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
网络协议 Linux 网络安全
openstack 云平台一体化部署(超详细)
openstack 云平台一体化部署(超详细)
1279 0
openstack 云平台一体化部署(超详细)
|
监控 Kubernetes Cloud Native
浅谈基于 OpenStack 和 k8s 建设云原生研发基础设施
建设公司云原生研发基础设施,为研发部门提供安全、可靠、高效的基础资源、数据存储服务、DevOps 流水线以及运维自动化服务等。
4192 4
浅谈基于 OpenStack 和 k8s 建设云原生研发基础设施
|
1月前
|
边缘计算 运维 监控
|
3月前
|
Cloud Native 云计算 Docker
云端探索:构建你的首个云原生应用
【8月更文挑战第24天】 本文将带你走进云原生的世界,从基础的云平台概念出发,逐步深入到如何利用云原生技术构建和部署一个简单应用。我们将一起探讨云服务模型、容器化技术以及微服务架构,并最终实现一个简单的待办事项应用。通过这篇文章,你将了解如何利用云计算资源高效地开发、部署和管理应用,为未来的云端之旅打下坚实的基础。
|
3月前
|
边缘计算 Kubernetes Cloud Native
边缘计算问题之OpenYurt 实现“云边一体化”如何解决
边缘计算问题之OpenYurt 实现“云边一体化”如何解决
42 1
|
运维 Kubernetes Cloud Native
KubeVela 再升级:交付管理一体化的云原生应用平台
11月3日,2022 杭州 · 云栖大会上,阿里云智能云原生应用平台总经理丁宇宣布:KubeVela 面向四大核心方向能力升级,打造交付管理一体化的云原生应用平台。
423 3
KubeVela 再升级:交付管理一体化的云原生应用平台
|
存储 边缘计算 运维
CNStack 云服务&云组件:打造丰富的云原生技术中台生态
CNStack 云服务&云组件:打造丰富的云原生技术中台生态
CNStack 云服务&云组件:打造丰富的云原生技术中台生态
|
边缘计算 缓存 运维
OpenYurt 在龙源 CNStack 云边协同项目的应用
OpenYurt 在龙源 CNStack 云边协同项目的应用
OpenYurt 在龙源 CNStack 云边协同项目的应用
|
数据采集 传感器 供应链
从云原生到混合云集成,用友iuap构筑新一代产业互联技术底座
我们知道,技术的迭代赋予企业数字化转型与变革的新能力——在社会化商业时代,企业可以看作是社会化商业生态系统中一个功能单元,还可以看作是构成产业互联的一个连接器;而云原生技术,则可以最大化利用云的能力,构建和运行可弹性扩展的社会化应用,并通过混合云技术来实现云上云下的数据与系统融合,支撑多云环境下的社会化场景落地。
272 0
|
人工智能 运维 自然语言处理
云原生技术中台 CNStack2.0 正式发布
CNStack 2.0 让企业以最低的成本和门槛享受来自技术革新的发展红利,而在遇到种种必然的困难阻碍时,也能提供强有力的支撑手段,终究能以更开放、更全面和更轻量的形态为客户打造更具竞争力的云原生技术中台产品,进而服务企业数字化转型步入下一个阶段。
云原生技术中台 CNStack2.0 正式发布
下一篇
无影云桌面