2023-07-31
简介: 作为阿里云(专家技术服务)企业容器技术支持的一员,每天会面对全球各地企业级客户提出的关于容器的各种问题,通过这几年的技术支持的经历,逐步发现容器问题客户的一些惯性,哪些是重度用户,哪些是轻度客户,这些客户大概分布在什么行业等等。 在渐渐地接触过程中,发现有些重度容器使用客户,所提出的问题场景也在逐步变化中,由于涉及法律法规,下面数据无法完整提供,只是提供相关简要说明。
从去年底开始,关于边缘集群的工单数量逐渐开始上升,增长幅度较大。其中涉及问题的边缘集群,超过一半左右来的客户集群规模比较大,集群节点规模数量级在几百个节点,甚至几千个节点成都。
客户一
该用户是目前是国内ToC端个性化推荐服务提供商之一,该客户在今年x月份左右开始使用ACK Edge产品,到目前为止边缘集群的节点数已经快速破百。
客户二
该用户是目前是国内电动汽车行业先驱者,并且一直处于新能源热门话题榜中,该客户在今年x月左右才开始使用ACK Edge产品,到目前为止,边缘集群的节点数已经破xxx,占该客户所有容器集群节点数的近一半。
客户三
该用户是全球著名无人IOT设备提供商之一。于去年xx月开始使用ACK Edge后,快速增加ACK edge比重,目前边缘集群已经承担了该客户容器的xx%以上的业务,同时该客户提问的容器工单,超7成是关于边缘集群的。
客户四
该用户是私域电商领域的领头羊企业,于今年x月开始使用ACK Edge集群,并快速的进行集群规模的扩张,到目前为止,边缘集群的节点数规模接近x k+。
这些客户在边缘集群上的使用,和我这几个月服务企业客户的体感是一致的,那就是边缘计算似乎越来越成为客户业务云原生化的一个方向,并且该比重会越来越高。这些短平快使用边缘集群的客户貌似并没统一的客户行业属性和画像,既有互联网电商,也有制造业,新能源骑车等交通行业线等等,并不像公有云具有强烈的行业属性,比如互联网,教培客户偏向于公有云,ToG,大交通客户偏向于专有云等等,似乎边缘计算出现就是为了终端复杂业务场景而生的。
这里其实又引申了几个问题:
1. 什么是边缘计算。
2. 到底是先有边缘计算产品提供给了客户使用,扩大了规模;还是因为客户有大量需求,所以形成了边缘计算的产品开发需求。
关于第1点,这个问题太庞大了,这里卖个关子,以后有时间慢慢说明。关于第二点,我个人认为这不是个鸡和蛋的问题,我理解是未来的云计算将充分地释放云计算的潜力,将会有更多的业务应用生于云,长于云;面对客户愈加复杂的个性化的需求,需要利用好云原生的优势,从中心到边缘;云原生的理念也愈加完善和清晰,从Kubernetes到服务网格再到serverless,云和业务是相辅相成,互相成就的,套用一句话:业驱云长,云随业动。
根据polarismarketresearch的边缘计算市场分析,2021年全球的边缘计算市场规模在741亿美元,预计到2030年,整个市场规模持续增长到1.4万亿美元,年复合增长率接近38.8%,其中增长最快的是亚太市场,可以看到边缘计算在未来十年还是处于高速发展期。
大量的设备连接到互联网上,这在传统的数据中心基础设施中产生了大量的数据。新兴技术和计算设备在许多行业的快速采用预计会产生大量的分散数据。大量的数据生成降低了处理时的延迟和低效性;边缘计算将这种数据处理重新定位到数据源,而不是依赖数据中心来处理和分析数据。这有助于组织效率优化。
由于中国、印度、日本和韩国等国家的快速数字化、技术创新和连接设备的扩展,亚太地区预计将在预测期内实现更快的增长。此外,主要电信公司的存在和部署边缘计算的IT投资的增加支持了区域增长。
政府为数字化提供的资金不断增加,以及许多企业对存储和处理数据的需求不断增加,都有助于市场的增长。此外,跨智慧城市的新兴物联网应用产生了大量数据,与云计算相比,以相对较低的成本处理和分析数据以产生信息并增强数据源附近的实时决策的需求日益增长,推动了细分市场的增长。
依据艾瑞咨询分析数据,2020年中国企业中仅有不足5%使用了边缘计算,但计划使用的比例高达44.2%。可以见得,虽然边缘云计算尚处在发展的萌芽期,但未来成长空间非常广阔。根据艾瑞咨询测算,预计到2025年整体边缘云规模将以44.0%的年复合增长率增长至550亿元,其中区域边缘云将凭借互动直播、vCDN、车联网等率先成熟的场景实现增速领跑。 2030年,中国边缘云计算市场规模预计达到接近2500亿元,2025年至2030年的年复合增长率相比前五年有所下降,现场边缘云中工业互联网、智慧园区、智慧物流等场景将在这一期间快速走向成熟。
自通用计算机诞生至今,算力和处理的分布表现出了在集中式架构和分布式架构之间交替循环的特征,每个周期大概是二十年左右的时间。
主机模式: 通用计算机诞生伊 始,采用基于大型 计算机的集中式计 算模式,通过分时技术服务于多终端。
C/S模式: 随着半导体技术的发展和集成电路平民化的演进,个人计算机体积越来越小、而性能得到了显著提升。PC的范围普及使终端用户通过局域网与服务器相连;
云计算模式:基于虚拟化、分布式计算等技术,云计算实现随时随地、 按需从资源共享池中获取所需资源,算力回归到集中式架构 ;
边缘云计算:随着5G的普及,物联网,终端量和数据量快速增长, 集中式云计算表现出瓶颈,算力开始 向边缘侧迁移。
技术的快速进步推动云计算性能提升和成本降低,新的模式打破既有的成本与效益平衡,进而进入新一轮的算力分布周期。
边缘云计算构筑在位于中心云与终端之间的边缘基础设施上的新型分布式计算,是云计算能力由中心向边缘的下沉,强调通过云边一体、协同管理实现中心云计算模式下所无法满足的业务需求,是一种更加靠近数据产生源的云计算。
“边缘”是一个非绝对的相对概念,边缘业务对网络时延、带宽、数据量级、经济性等多方面的不同需求都会影响边缘云部署的最佳位置。自动驾驶、云游戏等共享型业务,可部署在区域级别or省市级别的区域边缘云上,而面向工厂、港口、园区等的专享型边缘云业务既可以部署在贴近客户现场的边缘数据中上,也可以通过边缘网关等更轻量级的设备来实现。从技术路线上看,区域边缘云和现场边缘云同是基于边缘数据中心,是通过ICT基础设施的下沉实现边缘云的能力,而IoT边缘云是对于以工业场景为代表的各类现场设备进行云化的升级改造。
边缘云计算出现是为了补充集中式云计算能力的不足,因此边缘云计算的出现不是为了替代集中式云计算,当我们广义上去讨论的时候,其实应放在云-边-端的整体框架之下,将边缘云视作中心云在靠近终端用户的下沉。其实边缘云计算就类比章鱼,章鱼的大脑仅有40%的神经元,其余的60%神经元分布在章鱼个各个大腿之上,形成了“1个大脑+N个小脑”神经计算结构。这个和中心云+边缘云+终端用户架构极为相似,各种各样的终端用户采集到海量数据后,将需要进行实时处理的小规模、局部数据就近在边缘云上完成处理和反馈;而复杂、大规模的全局性的数据处理,则交给中心云进行处理和发布,中心云与边缘云统一管控、智能调度,形成算力的合理分配和业务逻辑的实现。
边缘云计算相比中心云计算更加贴近数据产生和使用的终端用户,这些终端用户对网络时延和传输成本方面具有非常大的敏感性,而边缘云计算是云计算能力向边缘的下沉,同时也契合了低延迟和低成本的诉求。但是边缘侧的物理物理设备和运行环境不像中心云有统一的标准,硬件的性能参差不齐,因此边缘云需要与中心云进行协同处理,结合中心云的大规模计算能力和边缘云的低延迟,成本低的特点,既要实现在集中式云计算模式下无法实现的超低延时的信息交互,又要实现一部分的数据自闭环处理和反馈。
超低延迟
现阶段应用边缘云最主要的动力即为时延,尤其是需要实时交互、实时反馈的场景,比如智能终端设备,车辆网,自动驾驶等等。传统云计算模式下,从终端用户到中心云因物理距离的强力限制,网络延迟难以进一步降低,同时智能终端设备数量级的增长,必然对海量数据处理带来了要求。
传输成本
中心云计算下终端用户产生的数据都需要回传到云端进行处理,远距离的数据传输消耗的成本比较高,且大多数传回云端的数据,多是无用信息,在终端量级爆发增长下,对中心云的计算能力产生了大量损耗。
网络安全
有些行业因国家政策、行业特性、数据隐私保护等要求,对数据安全要求极高,敏感数据无法传回云端,但是这些行业也有业务云化的需求。
超低时延需求、海量数据处理、边缘智能调度、数据安全规范是促使企业选择边缘云计算的几个主要因素,目前超低延迟特性和海量数据处理是边缘云计算相比中心云计算的最大优势。如右图所示,在工业互联网、 车联网、智慧交通、云游戏和VR/AR等场景中,数据的传输和计算能力的需求是巨大的,边缘云计算恰好能满足这些高要求。
经过前面的铺垫,我们可以对未来云计算有大概的一个初步判断。那么作为云原生基石的Kubernetes在边缘计算场景下又是该如发展呢?是类似于IOE这种随着时代潮流逐渐淘汰,还是类似Vmware在自己的私域里不受影响,还是像现在AI大模型成为未来主流呢。这里先说下个人观点,Kubernetes插件体系和list-watch机制,让它天生就适合边缘云计算。
Kubernetes是以应用为中心而设计的架构方案,以Kubernetes为编排工具,向下屏蔽底层基础设施和架构,实现不同底层资源架构的统一调度和管理;向上通过标准的容器镜像手段,实现承载多种业务形态和应用的自动化部署和快速恢复;横向拓展实现了突破中心云计算的边界,让底层算力的调用突破地域、云厂商和物理设备的限制,形成了云-边-端一体化的协同部署方案。
Kubernetes是一个分布式架构的云原生系统,实现了管控-业务的分离,master节点负责管理worker节点,调度Pod以及控制集群运行状态。worker节点,负责运行容器,架空容器状态并及时上报。在边缘云计算场景下,主要面临以下挑战:
1.Kubernetes是一个强一致性的中心存储架构,相关Kubernetes资源的状态都会记录到管控侧并对这些资源进行统一调度和管理,那么在边缘多场景下,边缘和中心之间的网络状态是不稳定的,那么这种强一致性的逻辑就会遇到挑战;
2.Worker节点通过List-Watch机制与Matser节点通信,实现该节点的上Kuberbets资源的同步,但是当出现边缘和中心的网络瓶颈时候,Worker节点是无自治能力,无法进行自我决策。
3.Kubelet所需要执行的策略比较多,比如容器CRI,CSI, CNI等网络,存储,计算等资源,在大规模节点,有时候kubelet占用的资源接近1GB,这对边缘低配置硬件版本设施是个挑战。
Kubernetes社区的主版本并没有主流开源边缘版本,而且边缘云计算涉及场景更加复杂,目前CNCF社区的边缘云计算开源项目主要针对就是上面三点挑战,利用Kubernetes多插件支持能力,将管控中心任务分布是部署,实现Kubernetes Master节点统一管控,智能调度;各个边缘集群节点有独立管控实现各自边缘的自治和业务同步,从而实现了云端管控、边缘自治的云-边-端一体化协同。
KubeEdge是华为开发的面向边缘计算场景、专为边云协同设计的业界首个云原生边缘计算框架,基于 Kubernetes构建的,并为云,边缘之间的网络通信,应用程序部署以及元数据同步提供核心基础架构支持,打通了云-边-端场景。2020年9月,KubeEdge正式晋级为CNCF孵化级别的托管项目。
EdgeX Foundry 是由Linux基金会主持,供应商中立的边缘计算开源项目,旨在为物联网边缘计算提供开放、可扩展的平台。EdgeX 在许多方面都独具特色,比如服务范围、广泛的行业支持、可信度、投入,以及由 Linux 基金会旗下 LF Edge 组织所提供的不受供应商限制的 Apache 2.0 开源许可模式。
Baetyl 是 LF Edge 旗下的边缘计算项目,旨在将云计算能力拓展至用户现场。提供临时离线、低延时的计算服务,包括设备接入、消息路由、数据遥传、函数计算、视频采集、AI推断、状态上报、配置下发等功能。
Baetyl v2 提供了一个全新的边云融合平台,采用云端管理、边缘运行的方案,分成边缘计算框架和云端管理套件两部分,支持多种部署方式。可在云端管理所有资源,比如节点、应用、配置等,自动部署应用到边缘节点,满足各种边缘计算场景,特别适合新兴的强边缘设备,比如 AI 一体机、5G 路侧盒子等。
K3s 是轻量级的 Kubernetes,首个进入CNCF 沙箱项目的 K8S 发行版,同时也是当前全球用户量最大的 CNCF认证轻量级K8S发行版。Server 节点指的是运行server 命令的主机,control plane 和数据存储组件由 K3s 管理;Agent 节点指的是运行agent 命令的主机,不具有任何数据存储或 control plane 组件;Server 和 Agent 都运行 kubelet、容器运行时和 CNI。
OpenYurt 是由阿里云云原生团队于 2020 年 5 月开源的边缘容器项目,现为 CNCF 沙箱项目。OpenYurt 是业界首个对云原生体系无侵入的边缘计算平台。从管控端(位于云端或中心机房等)将分散的海量边缘异构资源(如CDN站点,IoT一体机等边缘算力)进行统一管理, 帮助用户轻松完成在海量边缘资源上的大规模应用交付、运维、管控。
边缘自治能力
OpenYurt 引入了一个每节点代理(YurtHub)和本地存储来缓存云 apiserver 状态,因此如果节点断开连接,缓存数据可以被 Kubelet、KubeProxy 或用户 Pod 使用。
跨NodePool网络通信能力
OpenYurt使用Raven提供跨 NodePool 网络通信能力。 每个节点安装一个节点守护进程,同时每个节点池中只选择一个守护进程作为Gateway,在节点池之间建立VPN隧道,节点池中的其他守护进程配置跨节点池网络路由规则以确保流量通过 Gateway节点。
多 NodePool 管理
为了更好地支持云边协同架构,OpenYurt 首创了管理 Pool 的理念,Pool 封装了对节点资源、应用程序和工作负载流量的管理。
高级的工作负载升级模型
OpenYurt增强了DaemonSet 升级模型,增加了OTA(On-The-Air) 和Auto Upgrade 模型。比如汽车的OTA升级场景等。
可编程资源访问控制
YurtHub组件内置了可编程的数据过滤框架,来自云端的返回数据会经过一个过滤器链,从而对返回数据进行非感知和按需转换,以满足云边协同场景下的特定需求。
云边网络带宽减少
OpenYurt 建议引入 Pool Scope Data 的概念,其他YurtHub 将从pool-coordinator中获取 Pool Scope Data,从而消除每个节点使用公共网络带宽从云 kube-apiserver 获取此类数据。
云原生边缘设备管理
OpenYurt从云原生视角对边缘终端设备的基本特征(是什么)、主要能力(能做什么)、产生的数据(能够传递什么信息)进行了抽象与定义。最终通过云原生声明式API,向开发者提供设备数据采集处理与管理控制的能力。
而相对的Openyurt商业化产品是ACK@Edge,支持对边缘计算场景的容器应用和资源全生命周期管理。
KubeEdge和OpenYurt的架构设计差异比较大,相比而言OpenYurt的架构设计更优雅一些,但是目前都是属于CNCF的孵化或沙箱项目,未来的项目发展还是取决于各自生态的建设和完善。如果从云原生生态兼容和Kubernetes的侵入性考虑,建议选择OpenYurt。
Kubernetes是一个庞大且复杂的架构,仅仅目前主流的组件就有近百,而将整个Kubernets下沉至边缘场景,面临的业务挑战和架构挑战是巨大的。不同的场景和需求侧重点有不同的方案,这也是为什么目前Kubernetes边缘场景下的方案比较碎片化,并无主流的,占绝对优势的边缘化云计算方案。
打破中心云计算的边界,将Kubernetes从中心化拓展至边缘化,构建云-边-端一体的基础云设施架构是目前边缘云计算项目的发方向,都是为了更好的服务边缘化业务场景。业务上实现应用的中心化管控和边缘侧运行的云-边-端协同;运维上边缘业务的自动化运维、高可靠性快恢,降低边缘场景下的运维成本。故边缘云计算的场景就是云和业务是相辅相成,互相成就,业驱云长,云随业动。