来源:大数据DT
01 边缘计算的历史背景
1946年在美国宾夕法尼亚大学,电子晶体管计算机ENIAC携170平方米、18000个晶体管的庞大身躯悄然问世,作为计算的载体,开启了现代计算机的发展之路。
此后,晶体管代替了电子管,集成电路代替了晶体管,计算机的发展沿着摩尔定律的轨道一路狂奔,从巨大的机房一步步走进了千家万户,登上了小小的桌面,甚至作为可穿戴嵌入式设备成为人体的一部分。伴随这一过程,越来越多的物理世界需求被转化为计算需求,计算的形态也经历了几次重要变化。
1. 共享到独占
在计算机发展初期,由于高昂的成本,计算机主要用于大型科学实验,几乎不存在现代意义的个人计算机。因此,此时的计算过程往往是很多用户采用分时的方式共享一台计算机,这一需求也造就了后来人们熟知的UNIX系统和类UNIX系统。
虽然此时所有的计算需求是在大型机“本地”执行的,但其任务来源通常是多个用户,资源也是由多用户共享的。因此从计算模式的角度而言,大型机的计算采用了多用户共享的模式。
而随着集成电路的出现,计算机体积沿着“摩尔定律”的轨迹不断缩小,计算成本不断降低,使得用户逐渐能够通过个人计算机来满足各类计算和数据存储的需求,计算的形态也从多用户分时共享为主流变为了独占资源的个人计算机为主流。
2. 本地到云端
随着计算机网络和通信技术的不断发展,计算机再也不仅仅是数据存储和运算的载体,而是承担了越来越多的信息传输和交互任务。与此同时,智能手机、交互式Web服务、社交网络的出现和普及,使得大量的用户信息由本地迁移到网络服务器当中。
伴随着“信息网络化”这一过程,在数据被带到网络服务器上的同时,一部分运算过程也被带到了服务器上,例如网站托管、推荐算法、各类在线服务等。不仅如此,随着通信和网络技术的不断发展,越来越多的计算业务得以通过网络实现,从而一步步形成了如今云计算的形态。
3. 云端到边缘
随着智能手机、可穿戴设备等智能化计算设备的普及,以及高清视频、人工智能算法等需求的涌现,各类游戏、应用、视频业务对于数据和实时性的要求越来越高,例如风靡一时的增强现实(Augmented Reality,AR)游戏口袋妖怪(PoKeMon GO),对摄像头实时采集的图像进行识别和处理,并在识别出的目标位置显示不同种类的“口袋妖怪”。
对于此类应用业务,一方面本地计算会出现能力不足或者电量消耗过快的问题;另一方面若采用云计算架构,则无法达到游戏的延迟要求,不仅如此,当应用规模扩大时,云计算架构中网络带宽将会成为瓶颈,难以支撑来自海量前端设备的大规模实时计算和数据请求。
即便对于实时性要求不高的传统业务,越来越多的设备接入网络,也会使得云计算网络基础设施不堪重负,甚至使得云计算中心成为许多地区能源消耗的最大来源。
与此同时,随着5G/6G、Wi-Fi 6等通信技术和标准的快速发展,用户端到网络接入端的直接延迟可以降到个位数毫秒级。此时我们发现,在云计算架构中,数据从接入点到云计算中心的传输过程已经占据了绝大部分的延迟。考虑到互联网数据需要经过主干网多级路由的过程,这一延迟几乎无可避免。
因此,计算资源从云中心下降到靠近用户的网络边缘设备(如移动无线基站、家用路由等),则成为实现大规模实时计算的必然要求。如此,不仅彻底避免了广域网中的数据传输延迟,也提升了数据的隐私安全级别、访问效率以及服务部署和管理的灵活性。
02 边缘计算的概念
简而言之,边缘计算是一种计算模式:在该计算模式下,服务与计算资源被放置在靠近终端用户的网络边缘设备中。
与传统的云计算数据中心相比,边缘计算中直接为用户提供服务的计算实体(如移动通信基站、WLAN网络、家用网关等)距离用户很近,通常只有一跳的距离,即直接相连。这些与用户直接相连的计算服务设备称为网络的“边缘设备”。
如下图所示,对于校园、工业园区等场景,配备计算和存储资源的设备即可作为边缘设备,为其前端用户提供边缘计算服务;对于城市街区场景,移动蜂窝网络的通信基站可作为边缘计算设备提供服务;对于家庭住宅场景,家用路由器可作为边缘计算设备。
关于边缘计算的概念,目前国内外学术界与工业界存在几种不同的定义。根据其出发点的不同,本文将边缘计算的定义整理如下:
-
边缘计算作为云计算的延伸:边缘计算是一种云计算优化方法,“通过将网络集中节点(云核心)上的应用、数据和服务放置到逻辑边界节点(边缘)”,从而建立与物理世界的直接联系。
-
边缘计算作为前端设备和云计算的中介:边缘计算是指那些使得计算发生在网络边缘的技术合集,向下的数据流来自云计算服务,向上的数据流来自前端的各类物联网设备。
-
描述计算平台的角度:根据中国边缘计算产业联盟的定义,在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的开放平台,就近提供边缘智能服务,满足行业数字化在敏捷连接、实时业务、数据优化、应用智能、安全与隐私保护等方面的关键需求。它可以作为连接物理和数字世界的桥梁,使能智能资产、智能网关、智能系统和智能服务。
-
泛化的云与用户之间的补充:边缘计算是指从数据源到云数据中心的路径上任意计算和网络资源的统称。该定义明确将边缘计算看作云计算中心与用户之间所有计算和资源的统称。
从计算模式发展的角度给出边缘计算的定义:边缘计算是一种计算资源与用户接近、计算过程与用户协同、整体计算性能高于用户本地计算和云计算的计算模式,是实现无处不在的“泛在算力”的具体手段。其中,边缘设备可以是任意形式,其计算能力通常高于前端设备,且前端设备与边缘设备之间应当具有相对稳定、低延迟的网络连接。
03 边缘计算系统的组成
组成部分:边缘计算系统由云、边、端
三部分组成,每部分的解决方案不止一种。本文的云组成部分选择Kubernetes,边组成部分选择KubeEdge,端组成部分选择EdgeX Foundry。
概念解析:对组成边缘计算系统的云、边、端三部分涉及的相关概念进行说明。
组成边缘计算系统的云、边、端三部分的相关概念如下。
-
云:涉及的概念包括Container、Pod、ReplicaSet、Service、Deployment、DaemonSet、Job、Volume、ConfigMap、NameSpace、Ingress等。
-
边:目前边缘系统的实现方式是通过对云原有的组件进行裁剪并下沉到边缘,所以边涉及的概念是云的子集,而且与云保持一致。
-
端:部署在边上的一套微服务,目前没有引入新的概念。
1. 云——Kubernetes
Kubernetes是Google开源的大规模容器编排解决方案。整套解决方案由核心组件、第三方组件和容器运行时组成,具体如下所示。
1)核心组件
-
Kube-apiserver
:Kubernetes内部组件相互通信的消息总线,对外暴露集群API资源的唯一出口 -
Kube-controller
:保证集群内部资源的现实状态与期望状态保持一致 -
Kube-scheduler
:将需要调度的负载与可用资源最佳匹配 -
Kube-proxy
:为节点内的负载访问和节点间的负载访问做代理 -
Kubelet
:根据Kube-scheduler的调度结果,操作相应负载
2)第三方组件
-
Etcd
:存储集群的元数据和状态数据 -
Flannel
集群的跨主机负载网络通信的解决方案
需要对原来的数据包进行额外的封装、解封装,性能损耗较大 -
Calico
集群的跨主机负载网络通信的解决方案
纯三层网络解决方案,不需要额外的封装、解封装,性能损耗较小 -
CoreDNS
:负责集群中负载的域名解析
3)容器运行时
-
Docker
:目前默认的容器运行时 -
Containerd
:比Docker轻量,稳定性与Docker相当的容器运行时 -
Cri-o
轻量级容器运行时
目前稳定性没有保证 -
Frakti
基于Hypervisor的容器运行时
目前稳定性没有保证
2. 边——KubeEdge
KubeEdge是华为开源的一款基于Kubernetes的边缘计算平台,用于将容器化应用的编排功能从云扩展到边缘的节点和设备,并为云和边缘之间的网络、应用部署和元数据同步提供基础架构支持。KubeEdge使用Apache 2.0许可,并且可以免费用于个人或商业用途。
KubeEdge由云部分、边缘部分和容器运行时组成,具体如下所示。
云部分 | CloudCore
- 负责将云部分的事件和指令下发到边缘端,同时接收边缘端上报的状态信息和事件信息
边缘部分 | EdgeCore
- 接收云部分下发的事件和指令,并执行相关指令,同时将边缘的状态信息和事件信息上报到云部分
容器运行时 | Docker
-
目前,KubeEdge默认支持Docker
-
官方表示未来会支持Containerd、Cri-o等容器运行时
3. 端——EdgeX Foundry
EdgeX Foundry是一个由Linux基金会运营的开源边缘计算物联网软件框架项目。该项目的核心是基于与硬件和操作系统完全无关的参考软件平台建立的互操作框架,构建即插即用的组件生态系统,加速物联网方案的部署。EdgeX Foundry使有意参与的各方在开放与互操作的物联网方案中自由协作,无论其是使用公开标准还是私有方案。
EdgeX Foundry微服务集合构成了4个微服务层及两个增强的基础系统服务。4个微服务层包含从物理域数据采集到信息域数据处理等一系列服务,两个增强的基础系统服务为4个微服务层提供服务支撑。
4个微服务层从物理层到应用层依次为设备服务(Device Service) 层、核心服务(Core Service) 层、支持服务(Supporting Service) 层、导出服务(Export Service) 层,两个增强的基础系统服务包括安全和系统管理服务,具体说明如下所示。
1)设备服务层
-
Device-modbus-go
:Go实现对接使用Modbus协议设备的服务 -
Device-camera-go
:Go实现对接摄像头设备的服务 -
Device-snmp-go
:Go实现对接SNMP服务 -
Device-mqtt-go
:Go实现对接使用MQTT协议设备的服务 -
Device-sdk-go
Go实现对接其他设备的SDK
SDK给设备接入提供了较大的灵活性
2)核心服务层
-
Core-command
:负责向南向设备发送命令 -
Core-metadata
:负责设备自身能力描述,提供配置新设备,并将它们与其拥有的设备服务配对的功能 -
Core-data
:负责采集南向设备层数据,并向北向服务提供数据服务
Registry & Config:负责服务注册与发现,为其他EdgeX Foundry微服务提供关于EdgeX Foundry的相关服务的信息,包括微服务配置属性
3)支持服务层
-
Support-logging
:负责日志记录 -
Support-notification
:负责事件通知 -
Support-scheduler
:负责数据调度
4)导出服务层
-
Export-client
:导出数据的客户端 -
Export-distro
:导出数据的应用
5)两个增强的基础系统服务
-
System-mgmt-agent
:提供启动、停止所有微服务的API文章来源:https://www.toymoban.com/news/detail-723884.html -
Sys-mgmt-executo
r:负责启动、停止所有微服务的最终执行文章来源地址https://www.toymoban.com/news/detail-723884.html
到了这里,关于边缘计算是什么?边缘计算系统的组成及概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!