当前位置: 首页 > news >正文

详解边缘计算系统逻辑架构:云、边、端协同

b17e0f8a6d24d20a431df8ed2c881b60.gif

导读:本文将对整个边缘计算系统的逻辑架构及云、边、端之间的逻辑关系进行系统梳理。

作者:崔广章

来源:大数据DT(ID:hzdashuju)

52c1df3d897e61d61d5c49a48c78bb58.png

01 边缘计算系统逻辑架构简介

由图3-1可知,逻辑架构侧重边缘计算系统云、边、端各部分之间的交互和协同,包括云、边协同,边、端协同和云、边、端协同3个部分。

adf5d299418834d8eec5ae9a8938bc26.png

▲图3-1 边缘计算系统逻辑架构

  1. 云、边协同:通过云部分Kubernetes的控制节点和边部分KubeEdge所运行的节点共同实现。

  2. 边、端协同:通过边部分KubeEdge和端部分EdgeX Foundry共同实现。

  3. 云、边、端协同:通过云解决方案Kubernetes的控制节点、边缘解决方案KubeEdge和端解决方案EdgeX Foundry共同实现。

02 云、边协同

云、边协同的具体实现如图3-2所示。

9499cfa729649691668a9ce039e2145a.png

▲图3-2 边缘计算系统中云、边协同逻辑架构

Kubernetes控制节点沿用云部分原有的数据模型,保持原有的控制、数据流程不变,即KubeEdge所运行的节点在Kubernetes上呈现出来的是一个普通节点。Kubernetes可以像管理普通节点一样管理KubeEdge所运行的节点。

KubeEdge之所以能够运行在资源受限、网络质量不可控的边缘节点上,是因为KubeEdge在Kubernetes控制节点的基础上通过云部分的CloudCore和边缘部分的EdgeCore实现了对Kubernetes云计算编排容器化应用的下沉。

云部分的CloudCore负责监听Kubernetes控制节点的指令和事件下发到边缘部分的EdgeCore,同时将边缘部分的EdgeCore上报的状态信息和事件信息提交给Kubernetes的控制节点;边缘部分的EdgeCore负责接收云部分CloudCore的指令和事件信息,并执行相关指令和维护边缘负载,同时将边缘部分的状态信息和事件信息上报给云部分的CloudCore。

除此之外,EdgeCore是在Kubelet组件基础上裁剪、定制而成的,即将Kubelet在边缘上用不到的富功能进行裁剪,针对边缘部分资源受限、网络质量不佳的现状在Kubelet的基础上增加了离线计算功能,使EdgeCore能够很好地适应边缘环境。

03 边、端协同

边、端协同的具体实现如图3-3所示。

31724e22e0ae89078b867e1ff63cad28.png

▲图3-3 边缘计算系统中边、端协同逻辑架构

  1. KubeEdge作为运行在边缘节点的管理程序,负责管理在边缘节点上应用负载的资源、运行状态和故障等。在一些的边缘计算系统中,KubeEdge为EdgeX Foundry服务提供所需的计算资源,同时负责管理EdgeX Foundry端服务的整个生命周期。

  2. EdgeX Foundry是由KubeEdge管理的一套IoT SaaS平台。该平台以微服务的形式管理多种物联网终端设备。同时,EdgeX Foundry可以通过所管理的微服务采集、过滤、存储和挖掘多种物联网终端设备的数据,也可以通过所管理的微服务向多种物联网终端设备下发指令来对终端设备进行控制。

由图3-4可知,KubeEdge的解决方案由MQTT代理和对接支持各种协议设备的服务组成。

331e7e53ca3db27bf737e54c8d3e67b6.png

▲图3-4 KubeEdge端解决方案逻辑架构

  1. MQTT代理:作为各种物联网终端设备和KubeEdge节点之间的一个通信管道,负责接收终端设备发送的数据,并将接收到的数据发送到已经订阅MQTT代理的KubeEdge节点上。

  2. 对接支持各种协议设备的服务:负责与支持相应协议的设备进行交互,能够采集设备的数据并发送给MQTT代理,能够从MQTT代理接收相关指令并下发到设备。

通过上述分析可知,KubeEdge的端解决方案还比较初级。

  1. KubeEdge的端解决方案支持的负载类型还比较单一,目前只能通过MQTT代理支持一些物联网终端设备,对视频处理和使用AI模型进行推理的应用负载还不支持。

  2. 对接支持各种协议设备的服务目前还比较少,只支持使用Bluetooth和Modbus两种协议的设备。

基于上述原因,我们的边缘计算系统的端解决方案没有使用KubeEdge的端解决方案,而是使用EdgeX Foundry这款功能相对完善的IoT SaaS平台。

04 云、边、端协同

边缘计算系统中云、边、端协同的理想效果如图3-5所示。

e83092b13e240140505cade7c1010a25.png

▲图3-5 边缘系统中云、边、端协同的理想效果

由图3-5可知,云、边、端协同包括两层,即云、边协同和云、边、端协同。

  1. 云、边协同:云作为控制平面,边作为计算平台。

  2. 云、边、端协同:在云、边协同的基础上,管理终端设备的服务作为边上的负载。云可以通过控制边来影响端,从而实现云、边、端协同。

云、边、端协同是通过Kubernetes的控制节点、KubeEdge和EdgeX Foundry共同实现的,Kubernetes的控制节点下发指令到KubeEdge的边缘集群,操作EdgeX Foundry的服务,从而影响终端设备。目前,我们还不能通过Kubernetes的控制节点与终端设备直接交互。

05 小结

本文对整个边缘计算系统的逻辑架构及云、边、端之间的逻辑关系和现状进行了系统梳理。

  1. 从云、边协同的架构切入,对目前云、边协同的架构和原理进行了梳理,同时对边解决方案的一些特性进行了说明。

  2. 从边、端协同的架构切入,对目前边、端协同的架构和原理进行了系统梳理,并对KubeEdge自有的端解决方案的架构、原理和现状进行了说明。

  3. 从云、边、端协同的架构切入,主要对云、边、端协同的理想效果进行了说明。

关于作者:崔广章,之江实验室高级研究专员,资深云计算和边缘计算技术工程师。从2014年接触云计算以来,参与过多个云计算生产项目,其中代表性的项目有基于OpenStack进行定制开发的运营商私有云、政务云,基于开源容器云方案定制开发的面向运营商的数据中心操作系统(DCOS),2018年开始从事边缘计算相关研究与开发。

本文摘编自《深入理解边缘计算:云、边、端工作原理与源码分析》(ISBN:978-7-111-68422-0),经出版方授权发布。

8ab000022787d33e412ce55665488bb7.png

延伸阅读《深入理解边缘计算》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:这是一本从环境搭建、部署配置、系统架构、工作原理、源码分析、二次开发等维度系统讲解如何打造协同的云、边、端系统的著作。 

64f8642594a2f9d484e4e8a8d4d08685.gif

刷刷视频👇

更多精彩回顾

书讯 | 5月书讯(上)|  元宇宙、因果推断、薛定谔方程...你关注的都在这

书讯 | 5月书讯(下)|设计致物系列+少儿编程好书推荐

资讯 |为企业数字人才建粮仓:专访极客邦科技双数研究院院长付晓岩

资讯 |2022美国科学院院士名单公布:图灵奖得主、龙书作者Alfred V. Aho当选!

干货 | 为什么每一名程序员都应该学习 C++?

干货 | 如果机器翻译始终存在缺陷和错误,那它还有什么用处?

0440ceadfee149dd51a6845ec0c4d111.gif

相关文章:

  • 人工智能技术的演进和发展
  • 终于有人把工业数据采集讲明白了
  • 揭秘华为数字化转型框架:1套方法、4类场景、3个平台能力
  • 【第104期】7本适合设计师提升交互设计能力的书
  • Go语言精进之路:绞尽脑汁,帮你理解方法本质并选择正确的receiver类型
  • 盘点知识图谱在 5 大智能领域的应用
  • AI 与合成生物学「联姻」的五大挑战:技术、数据、算法、评估与社会学
  • 产品和运营双视角,9个维度全面讲解用户运营
  • 详解元宇宙 6 大核心属性
  • 速戳,用户管理体系的搭建全攻略
  • 花了一周,我总结了120个数据指标与术语。
  • 3步实现神经机器翻译模型处理
  • 玩转电商数据分析及运营,推荐你看这 7 本好书
  • 再谈:数据治理的长效运营机制!
  • 15个SaaS问答(图文并茂版)
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 30秒的PHP代码片段(1)数组 - Array
  • Android优雅地处理按钮重复点击
  • Git学习与使用心得(1)—— 初始化
  • Java新版本的开发已正式进入轨道,版本号18.3
  • leetcode386. Lexicographical Numbers
  • React-Native - 收藏集 - 掘金
  • Webpack 4x 之路 ( 四 )
  • 第十八天-企业应用架构模式-基本模式
  • 聚簇索引和非聚簇索引
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 聊一聊前端的监控
  • 嵌入式文件系统
  • 入门级的git使用指北
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用parted解决大于2T的磁盘分区
  • 收藏好这篇,别再只说“数据劫持”了
  • 为视图添加丝滑的水波纹
  • 我看到的前端
  • 小而合理的前端理论:rscss和rsjs
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 通过调用文摘列表API获取文摘
  • # C++之functional库用法整理
  • # 安徽锐锋科技IDMS系统简介
  • #DBA杂记1
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (分类)KNN算法- 参数调优
  • (一一四)第九章编程练习
  • (轉)JSON.stringify 语法实例讲解
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .dwp和.webpart的区别
  • .FileZilla的使用和主动模式被动模式介绍
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .net 流——流的类型体系简单介绍
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @Autowired @Resource @Qualifier的区别
  • @Data注解的作用
  • @requestBody写与不写的情况