QCon演讲实录|徐广治:边缘云原生操作系统的设计与思考

10月18日,在 QCon 全球软件开发大会 2024(上海站),火山引擎边缘云资深架构师徐广治围绕火山引擎边缘计算产品背后的算力底座 - 边缘云原生操作系统,探讨如何实现算力服务的混合部署和跨区域弹性调度,以及在小型化、集成化、轻量化基础上的技术创新,并展开介绍了边缘云原生操作系统的研发动因、面临挑战、架构设计和未来演进方向。

演讲内容主要包括了五部分:边缘云行业现状和发展历程,边缘场景的技术挑战,边缘云原生操作系统,业务应用实践,演进和未来思考。

以下是演讲实录:

大家好,很高兴有机会和大家分享火山引擎边缘云在边缘计算场景架构设计上的思考和实践,我今天分享的主题是《边缘云原生操作系统设计与思考》。分享分为五个部分:

  1. 第一部分,边缘云当前的业务状态以及历史发展路径;
  2. 第二部分,边缘场景存在的技术挑战和解决思路;
  3. 第三部分,在技术挑战、业务发展的背景下,火山引擎边缘云的思考与实践,也就是边缘云原生操作系统;
  4. 第四部分,云原生操作系统之上的应用,即边缘云的产品矩阵和行业应用;
  5. 最后,回归技术主线,畅想边缘云技术架构的未来。

1.边缘云行业现状和发展历程

从 06 年 AWS 推出 EC2 、S3 到今天已经过去了 18 年,云计算早已不是一个新鲜词汇,从当前业务来看,我们能看到云计算从中心到中心+边缘的发展趋势,为什么会有这样的变化呢?在业务角度有三个关键的诱因:

  • 第一,越来越多的本地化应用。 最近 Meta 发布了新的 AR 智能眼镜,APPLE 也有 Vision Pro ,这些都是典型的 AR/VR 应用的场景,随着更多工业制造、网络直播、智慧园区、自动驾驶、云游戏等本地化应用的崛起,促使计算资源从中心走到边缘。

  • 第二,基础设施的演变。 正因为应用就近部署的需求,基础设施正在从中心向边缘靠拢,形成靠近客户的三种边缘基础设施形态:现场边缘、近场边缘和云边缘,这三种基础设施分别提供不同的延时保证和资源,现场边缘的延时是 1-5 ms,近场边缘是 5-20 ms,云边缘是 20-40 ms。

  • 第三,算力和网络的结合。 有了靠近用户的基础设施、广泛分布的网络和算力,企业因此产生了对最优算力访问链路的需求,期望能找到靠近客户的算力和靠近算力的存储,这就是算力和网络的融合。通过算网融合,可以为企业提供更好的云服务。

这三个业务诱因,驱动云计算向边缘迈进。

除了业务诱因,我们也观察到了业务驱动力之外的技术演进背景。从应用架构的角度来看,当前应用将看到三类资源:

  • 终端资源: 提供实时的服务响应,具备友好的硬件形态,可以是用户使用的手机、平板、车机等,能为应用提供最好的呈现,同时还具备通用的辅助算力;

  • 中心资源: 提供弹性资源池,可以方便地进行数据计算和聚合,支持敏捷的开发流程;

  • 边缘资源: 提供就近的接入服务,覆盖广域的城市和运营商,具备对整个网络的精确感知能力,可以快速找到就近的算力和资源。

传统的中心部署架构,已经不能充分利用云、边、端这三者的资源,不能充分发挥三者的组合优势,因此我们观察到应用正在从集中部署迈向云边端混合部署的新架构。

同时,云计算也开启了边缘时代。据 IDC 预估,到 2024 年底,全球在边缘计算上的开支将达到 2320 亿美元,另外,据 Gartner 预估,到 2025 年底,全球 75% 的企业生成数据将会在边缘产生和处理。另外,从市场发展上看,IDC 预估到 2026 年中国边缘云的市场增速年复合增长率可达到 40% 。在这样的蓬勃发展背后是越来越多业务和边缘的结合,这些业务的发展可分为三个阶段:萌芽期、爆发期、成熟期。随着时间的推移,像 vCDN、直播这类业务会趋于成熟,而像自动驾驶、AR 等业务将迎来爆发,共同推动边缘云的进一步扩张。

这里也跟大家简单介绍一下边缘云的发展历程。

  • 阿卡迈在 1998 年首次提出了 CDN 的概念,从那之后,内容分发网络成为了 APP 、网站、客户端背后的基础服务,通过就近缓存内容,提升了数据的访问效率。

  • 到了 2002 年,微软和 IBM 与阿卡迈合作,将 .Net 和 J2EE 服务部署到了CDN PoP 节点,这形成了最早的边缘计算的概念。

  • 到 2009 年,CMU 提出了 Cloudlet 的概念,将 VM 与边缘基础设施结合,这就有了在边缘提供 IaaS 服务的雏形,到 2012 年,我们迎来了万物互联的物联网时代,也因此产生了处理海量数据的需求,于是雾计算、MEC 的概念相继出现,从那时到现在,我们迎来了云计算和边缘的结合。边缘云,在端和中心云之间,提供弹性、轻量、低延时的云服务。

2.边缘场景的技术挑战

了解了整个边缘云业务状态和发展历程之后,再来聊聊发展背后对技术上的挑战。从整体看,边缘场景有四个挑战,分别是海量节点管控、小型化约束、弱网环境、复合场景。

  • 挑战一:海量节点管控。 从宏观角度来看,要提供就近的算力和网络就要从地理位置上接近客户的业务,这意味着我们面对的是广域分布的物理资源。火山引擎边缘云在全球有 2500 多个节点,如何高效管理节点、如何调度节点上的异构资源,是关键挑战之一;

  • 挑战二:小型化约束。 从节点本身来看,与传统中心云不同,单个边缘节点的资源是有限的,这就对我们管控的资源开销提出了要求,如何做到小型化、轻量化,如何做到最大限度售卖节点资源;

  • 挑战三:弱网环境。 从网络环境上看,大多数边缘节点之间,以及节点和中心机房的连接,都采用公网通信,这导致了网络环境的问题,可能存在网络中断、连接不稳定的情况,也存在安全上的隐患;

  • 挑战四:复合场景。 从业务维度来看的,当前面向的边缘业务场景比较复杂,需要技术具备较高灵活性,需要提供多形态算力支撑,包括虚拟机、裸金属、容器等等。还需要考虑不同硬件环境,比如 x86 arm,异构计算需要 GPU ,需要算力的 ASIC 。

2.1管理广域分布的边缘算力资源

首先,我们来看看如何纳管、调度广域分布的算力资源?两个非常关键的因素:抽象、编排 。抽象意味着标准化,从资源维度出发,足够好的抽象和标准化才能形成统一的资源池,不同的 CPU 型号也可以通过抽象和统一的指令集来提供。从服务维度出发,基于多数量节点,每个节点部署着不同异构服务,好的服务抽象可以将服务原子化,从而为部署和运维提供便利。基于良好的抽象和编排能力,就能实现资源和服务的标准、统一,以及服务的灵活组合,从而达到为客户提供差异化算力的目的。因此在管控关于分布的算力资源,好的抽象和编排能力很重要。

2.2在节点内实现资源的最大化利用

小型化是边缘场景特有的问题,相较于传统中心云环境,单个边缘节点的资源有限,如何在这个背景下为客户最大化提供可售卖资源就成了一个问题。要解决这个问题,有两个同时要做的事情:

  • 第一点是按需混部。 每个节点可以按照业务需求发布算力和对应服务,例如不需要云盘就不用部署云盘,按需混部服务是做到小型化的路径之一。混部又包含两点,第一是算力的混部,虚拟机、容器实例、函数这些算力本身就是混部的,混合部署在同样的资源池上。其次是服务的混部,例如本地盘、云盘这类存储服务,VPC、LB 等网元服务,这些服务按照节点的需求混合部署,共享同个物理资源。算力和服务混部的底层依赖统一资源池和统一调度,也需要关联的资源隔离机制和对应系统实现。

  • 第二点是在管控层面实现极致的轻量化。 这又有两个要点,第一点相对传统,是做边缘管控组件的轻量化,降低组件数量和组件的资源开销。另一点更重要,就是要做管控分层,把非必要逻辑从边缘抽离出来,形成中心/区域 + 边缘的多级管控形态,边缘仅保留数据缓存和基础能力,通过这种方式来大幅降低边缘开销。

2.3弱网环境下的服务连续性

边缘节点之间、边缘节点与中心节点之间大多数采用公网连接。然而,公网链路上存在很多传输的不确定性,有可能存在传输链路抖动、机房故障、区域断网等情况,怎么在弱网环境下保证服务的连续性?依靠边缘的两个核心要点:

  • 第一是边缘自治。 边缘自治意味在网络抖动/中断的情况下边缘集群仍能继续维持集群内算力服务运行。;

  • 第****二是系统化的数据传输保障方案。 怎么保证云边服务之间、算力应用之间的网络通信稳定、可靠?这就需要系统化的解决方案 - 云边通道。云边通道在高可用维度提供在机房故障,网络链路故障等场景下的数据传输能力,同时也提供了鉴权和加解密能力保障了公网传输的数据安全。

2.4边缘业务场景的多形态算力需求

为了支持边缘泛 CDN、云游戏、车联网、AIGC 等广泛应用场景,边缘侧需要提供虚拟机/裸金属/容器/函数多种算力形态,叠加底层异构算力资源,这也要求技术架构具备足够广的覆盖面和较高的灵活性。

上述技术挑战促使着边缘技术架构的持续演进,大体可以分为三个阶段:

  • 第一个阶段是面向资源的传统虚拟化,主要方式是通过 hypervisor 和上层管控实现资源隔离,这里比较有代表性的是基于 OpenStack 的传统 IaaS 架构;

  • 第二个阶段是随着 K8s 兴起的云原生技术,借助云原生可以降低运维复杂度,实现面向应用的统一调度、统一编排,但是依然没法彻底应对上述边缘场景的技术挑战,这也就引出了架构演进的第三个阶段;

  • 第三个阶段是面向边缘场景和应用,通过将云原生与边缘特性结合,形成边缘独有的技术方案,也就是边缘原生,在火山引擎的落地实践,就是我们的边缘云原生操作系统。

3.边缘云原生操作系统

边缘云原生操作系统,统一纳管了字节跳动边缘计算硬件资源,在小型化、集成化、轻量化的基础上,为业务就近提供虚拟机、裸金属、容器等多形态算力,实现算力服务混合部署、跨区域弹性调度。

边缘云原生操作系统拥有 4 个核心特点:

  • 统一资源纳管&调度: 纳管全球边缘云硬件资源,为边缘应用提供统一资源调度支撑

  • 算力&服务按需混部: 按需混部单节点计算实例和关联服务,降低节点资源开销,提高服务灵活性

  • 云边分层轻量化管控: 部分上移边缘管控逻辑,在保证自治能力的基础上最大化节点可售卖资源

  • 云边&边边协同支持: 基于全球云网基础设施和云边、边边数据通道,提供可靠数据传输支持

从架构上来看,边缘云原生操作系统有八个组成部分:

  • 编排中心: 面向应用、服务编排需求,编排中心提供集群编排、多应用编排、中间件编排、多集群管理等核心能力,基于这些能力,实现服务的按需混部和对客户交付侧的支撑;

  • 调度中心: 调度中心通过在线、离线调度,实现对异构资源的池化和统一调配,保障资源交付效率及资源交付稳定性,支撑持续资源运营、治理;

  • 可观测中心: 要掌控边缘离散分布的算力资源和支撑服务状态,系统提供的可观测能力就非常关键,可观测中心支持资源、服务、产品观测,提供一站式观测平台,支撑对外可观测产品和内部系统运维及质量保障;

  • 运维中心: 基于编排中心、可观测中心能力,运维中心统一支撑云原生操作系统自身组件和上层算力应用日常运维和稳定性保障;

  • 云边中间件: 提供中间件统一接入平台,具备云边通道等边缘场景核心能力,支撑云边、边边场景编排、运维、服务、数据多维度协同;

  • 边缘轻量管控: 指算力产品底层依赖的计算、存储、网络管控,为了实现边缘的轻量化,实现了两个层面的工作,一个是分层管控,把业务逻辑、数据处理、数据持久化上移,另一个是精简管控逻辑本身;

  • 边缘云原生套件: 这部分是定制的云原生组件,包含基础的 K8s、ETCD 等服务,定制化的工作一是保障组件在边缘场景下的安全性和稳定性,二是在资源占用和带宽占用维度对组件做的轻量化;

  • 边缘轻量基础环境: 标准化的操作系统环境、内核、固件基线,包含在边缘场景下对操作系统层面进行的的轻量化裁剪,也包含支撑算力的高性能虚拟化实现;

在八大能力之下是底层的资源池,包括现场边缘、近场边缘、云边缘的硬件资源,在这之上是对外提供的不同形态的算力产品,包括边缘计算节点(虚拟机/裸金属)、边缘容器、边缘函数及周边服务,这些共同构成了小型化、集成化、轻量化 的边缘云原生操作系统。

3.1纳管边缘异构硬件,统一在离线资源调度

前述介绍边缘云原生操作系统的一大特点是建立在资源池之上的统一调度。调度面向资源交付场景,为客户和内部服务统一交付计算、存储、网络等资源,同时保障资源交付的效率和稳定性,持续优化碎片率并提供对应运营能力。

在统一资源交付背后,是在线调度和离线调度两大核心能力,在线调度负责实时为业务提供资源,离线调度负责资源运营以及为在线调度提供调度推荐。目前支持的调度域覆盖全局、区域、节点内三个维度,针对客户弹性需求,可以提供跨节点的算力资源交付。在线调度、离线调度之下是为调度提供数据支撑的库存中心系统,这里维护了线上的实时资源情况,支持对应的审计、规划和资源流转,同时为了支撑离线调度,库存中心也维护了离线计算所依赖的数据仓库,包含客户、业务画像及从实时库同步的离线信息。

3.2充分利用硬件资源,算力&服务按需混部

为应对边缘小型化约束,边缘云原生操作系统通过运维中心和编排中心的配合实现算力和服务的按需混部,其有两个关键实现:

  • 一是算力实例和依赖服务共享同个资源池,虚拟机、容器实例可以和存储、网络、管控等服务分布到同个物理资源上;

  • 二是服务的按需部署,运维中心结合编排中心的能力,实现集群功能的定制化,每个集群有自己的集群模板,集群模板动态可同时关联多应用编排,实现根据集群业务需求部署必要服务,从而减少非必要服务的资源开销。

3.3降低边缘资源开销,实现云边分层轻量管控

为实现轻边缘,边缘云原生操作系统在各个细分管控均引入了分层设计。通过将管控拆分为中心控制、区域、边缘管控,边缘仅保留最必要的处理逻辑,其他数据处理、持久化和业务逻辑上移至中心或区域管控,以此实现了边缘的极致轻量化。图里举了一个例子,在 IaaS 管控这一侧,拆分出中心控制器和边缘管控,裸金属的持久化数据放在中心管控维护,边缘维护的仅仅是缓存的元数据信息。

3.4云原生 laaS 管控,虚拟机生命周期与容器解耦

这里针对 IaaS 管控再进行一下延展。我们自研了一套 IaaS 的云原生管控,针对虚拟机,结合了云原生运维上的便利性和调度能力,以及传统虚拟化的实现,实现了数据面在容器之外,虚拟机生命周期与容器解耦,通过自研 Resource Manager 来管理单机资源,并实现和统一调度对接;针对裸金属,我们把数据持久化和处理尽量上移至中心管控,实现了边缘裸金属管控的轻量化。结合了分层管控和自研管控,真正在管控这一侧做到了轻边缘。

3.5降低弱网影响,支持云边&边边协同

为了应对弱网环境带来的挑战,边缘云原生操作系统在中间件维度建设了云边通道方案,通过云边通道,在高可用维度,提供了机房容灾,网络容灾的能力;在安全性维度,提供了必要的鉴权和隔离支持。云边通道覆盖了边缘不同的协同场景,包含编排的协同、服务间的协同、运维协同和数据协同。通过云边通道的整体解决方案,我们实现了在边缘网络环境下对客户及内部业务间通信的有效保障。

3.6全面一站式观测,及时掌握系统&应用状态

在边缘云原生操作系统内,我们提供了资源、服务、产品的全面一站式观测,通过数据采集、治理、到标准化观测,到业务能力打通,可观测这一侧支撑了边缘云操作系统的自身运维、稳定性建设,也支撑了上层服务的质量保障。

3.7海量节点统一运维界面,稳定支撑边缘业务要求

最后是支撑边缘云操作系统系统运行的关键子系统 - 运维中心,运维中心覆盖场景包括服务和资源交付、运营分析、稳定性保障等。运维能力的建设搭建在其他基础能力之上,比如基于编排中心,实现了集群编排和多集群管理。运维中心的原子能力还包括 CMDB 、软件包管理、配置单元、作业管理等,通过原子能力、服务能力打造出来的整体运维能力,支撑了边缘云操作系统和其上应用/服务的稳定运行和日常发布。

有了对边缘云原生操作系统特性、架构和子系统的了解,下面来看看边缘云原生操作系统实际落地的业务场景 - 火山引擎边缘云。

4.业务应用实践

4.1火山引擎边缘云

首先来总体了解一下火山引擎边缘云。火山引擎边缘云,融合异构算力和边缘网络,构建在大规模边缘基础设施之上的云计算服务,覆盖了现场边缘到云边缘,形成了以边缘位置的计算、分发、网络、存储、安全、智能为核心能力的新一代分布式云计算平台,这个平台的底座就是边缘云原生操作系统,目前,火山引擎边缘云在全球覆盖了 2500+ 节点,拥有 150T+ 的储备带宽。

4.2火山引擎边缘云产品矩阵

火山引擎边缘云基于覆盖现场边缘、近场边缘、云边缘的基础设施,在核心底座边缘云原生操作系统之上,提供计算服务和网络服务。计算服务分为通用化计算服务和场景化计算服务,通用化计算服务又包括边缘计算节点,虚拟机、裸金属、x86 各种各样的 IaaS 算力、包括安全容器和普通容器在内的边缘容器实例,以及边缘函数;场景化计算服务则包括支持面向 AI 场景的边缘智能。在网络服务这一侧,我们也支持两类服务,一类是全球一体化内容分发与加速服务,包括火山引擎 CDN 、 BytePlus CDN 和多云 CDN,第二类是基于边缘网络原生的全域联网加速解决方案类,包括全站加速DCDN、全球加速GA、边缘联网ECW。在计算服务和网络服务之上,构建了我们的行业解决方案,涵盖音视频、应用分发、云游戏、智慧城市等等。

4.3火山引擎边缘云行业应用

目前,火山引擎边缘云已在多个行业领域实现应用落地,包括但不限于:泛互联网领域的视频直播、实时音视频、影视娱乐、移动终端、在线教育、电商零售和媒资信息处理;汽车行业的辅助驾驶和车联网技术;媒体行业的数字人和影视渲染;游戏行业的游戏加速、AR/VR体验;以及金融行业的税票政务本地化和分布式计算等。

5.演进和未来思考

面向未来,我们将从以下三个维度持续提升产品与服务能力:

  • 在地域覆盖方面,随着边缘云服务内外部客户业务的增长,边缘云覆盖的节点范围也将持续扩大。火山引擎边缘云将从节点管理规模和合规性两个技术维度,满足业务发展诉求。

  • 在技术链路方面,随着部分业务场景的成熟,在成本、性能等核心技术点的建设将成为边缘云的强技术竞争力和业务探索的基础。火山引擎边缘云将持续建设该部分能力,帮助业务实现单位性能的大幅提升。

  • 在前沿技术领域,随着人工智能的发展,大量的 AIGC(AI生成内容)将推动 AI 计算能力向边缘端延伸,以降低带宽需求和减少延迟。火山引擎边缘云也将持续探索边缘计算与 AI 技术的融合,致力于让 AI 触手可及,从而为用户带来更加卓越的体验。

同时,边缘云原生操作系统针对追求极致轻量化、提供高性价比边缘算力的目标,未来将在持续优化基础设施成本的基础上,构建更轻量基础环境,叠加细粒度资源管理、轻量化管控、按需混合部署的持续建设,结合资源调度优化,实现物理资源的最大化利用及客户业务资源的最优配比。

相关推荐
林小果11 小时前
K8S搭建
云原生·容器·kubernetes
行者Sun19894 小时前
【K8s】专题十五(1):Kubernetes 网络之概念总览
网络·云原生·容器·kubernetes
=(^.^)=哈哈哈5 小时前
Kubernetes(K8s)相关漏洞介绍
云原生·容器·kubernetes·云原生安全
莱特昂5 小时前
virtualBox部署minikube+istio
云原生·istio
牛角上的男孩9 小时前
部署istio应用未能产生Envoy sidecar代理
云原生·istio
筑梦之路9 小时前
k8s 处理namespace删除一直处于Terminating —— 筑梦之路
云原生·容器·kubernetes
景天科技苑9 小时前
【云原生开发】如何通过client-go来操作K8S集群
云原生·golang·kubernetes·client-go·k8s二次开发
颜淡慕潇10 小时前
【K8S系列】Kubernetes 中 Service 的流量不均匀问题【已解决】
后端·云原生·容器·kubernetes