导读:本文基于边缘容器的阿里云 CDN 云原生实践, 涵盖了边缘容器的背景和趋势,边缘托管集群 ACK Managed Edge K8s(文中简称“Edge@ACK”) 的能力、架构,以及基于边缘容器构建阿里云 CDN 的云原生体系的详细过程,期望与读者分享使用阿里云容器服务打造云边端一体基础设施过程中的体会。

文章整理自 2019 年阿里云上海峰会,阿里云智能高级技术专家黄玉奇、阿里云智能技术专家吴龙辉演讲。“阿里巴巴云原生”公众号后台回复“724",可 获得云原生专场全部 PPT。

视频直播回放

了解 ACK 容器服务

边缘容器的介绍

随着互联网智能终端设备数量的急剧增加,以及 5G 和物联网时代的到来,传统云计算中心集中存储、计算的模式已经无法满足终端设备对于时效、容量、算力的需求。将云计算的能力下沉到边缘侧、设备侧,并通过中心进行统一交付、运维、管控,将是云计算的重要发展趋势。

IDC 预计,到 2020 年全球将有超过 500 亿的终端与设备联网,超过 40% 的数据要在网络边缘侧进行分析、处理与存储,这对边缘计算提供了充分的场景和想象空间。边缘计算按功能角色主要分为三个部分:

  • – 传统云计算的中心节点,有丰富的云计算产品形态和资源,是边缘计算的管控端,负责全网算力和数据的统一管理、调度、存储;
  • – 云计算的边缘侧,又分为基础设施边缘 (Infrastructure Edge) 和设备边缘 (Device Edge)。基础设施边缘通常位于 IDC 内,拥有充足的算力和存储容量,和中心有专线或骨干网连接,如 CDN 节点等;设备边缘通常指非传统 IT 基础设施的边缘节点,这类资源更靠近设备和数据源,比较常见的一般是数据网关;
  • – 终端设备,如手机、智能家电、各类传感器、摄像头等。

边缘云计算--“云边端一体”

边缘计算目前面临的主要挑战有:

  • 云边端协同:缺少统一的交付、运维、管控标准;
  • 安全:边缘服务和边缘数据的安全风险控制难度较高;
  • 网络:边缘网络的可靠性和带宽限制;
  • 异构资源:对不同硬件架构、硬件规格、通信协议的支持,以及基于异构资源、网络、规模等差异化提供标准统一的服务能力的挑战。

边缘云计算是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的云计算平台。云计算上已经具有很成熟的大规模的应用管理及资源管理的能力,希望复用该能力,开展边缘计算的业务,而这也是云边端一体的核心概念。

边缘云要素--标准化

边缘云的五个要素分别为低延时、边缘自治、资源管理、安全性及标准化。其中最关键的要素为标准化,因为在云原生时代,标准化是云原生要解决的核心问题。

标准化可以让用户在基于不同的云资源形态以及不同的云提供商上开展其业务,这正是基于云原生而获取到的标准化的能力,在边缘云里面同样也希望能够做到标准化。此外,标准化的另一个好处是能够在边缘云的场景里面可以很好复用以往在云上构建的能力。

随着边缘云规模越来越壮大,除了标准化之外,资源管理也是急需解决的问题,而减少数据传输,数据在边缘端闭环,则是低时延和安全性的考虑。

云边端--一体化协同

“云边端一体化协同”作为标准化的一个构想,将标准化的一个云原生能力向边缘端复制,需要分为三个层次:

  • 第一个层次是能够在云端提供标准化的接口、管控能力,或者是标准的云服务和云资源的接入能力。其中我们能够看到 Kubernetes 的身影;
  • 第二个层次是基于 CDN 的场景和边缘云的基础设施的场景下,能够高效的管理处在整个边缘端的众多资源,其中包括在边缘端应用的效率问题。
  1. 一个典型的场景是 CDN 的场景,计算力丰富;
  2. 第二个典型场景可以理解是边缘云的基础设施,主要是面向物联网 IoT 的场景,如智慧楼宇、智慧工厂等,其显著的特点是资源和计算力不是特别的丰富,但是分布非常广,总的体量是比较大的。

例如一个智慧小区里面有两到三台或者三到五台的边缘节点服务器,用来部署其 IoT 业务(IoT 网管或音视频分析应用等)。

  • 第三层次是典型的 IoT 场景中的端设备,例如智慧楼宇智能停车设备,环境监测蓝牙设备、人脸识别设备等。

基于以上三层的逻辑划分和一些云原生方案,希望能够在云边端打造一体化协同的基础设施。下图展示了云边端一体化协同的基础设施。

Edge@ACK 的能力和架构

阿里云容器服务--Edge@ACK

阿里云容器服务最核心的业务就是给终端用户提供标准的 K8s 的托管服务,主要解决了 K8s 的升级、扩缩容以及日志监控等运维问题,所有运维的事情都交给阿里云容器服务进行处理。

阿里云容器服务核心提供很多垂直领域的 K8s 的托管服务,比如大数据 AI 领域,基因领域等托管服务。边缘容器也是基于容器服务的 K8s 的托管底座推出的。

边缘容器面向边缘计算场景,提供了一个具备边缘能力的 K8s 的服务,并保留了 K8s 原生的一致性体验。

基于 K8s 强大的插件机制,边缘容器将很多边缘应用和边缘资源的管理能力通过插件化的形式集成到了边缘 K8s 里面,且都是非侵入式的,所以可以提供标准的 K8s API 供上层领域 PaaS 集成,也可以把边缘的托管 K8s 提供给终端用户直接使用,还可以很灵活的基于 K8s 以往的运维经验开展新的边缘计算的业务。

Managed K8s 托管服务已经打通与阿里云其它云服务的连接,这些能力也是 EdgeK8s 天然所具备的。

边缘 K8s 核心的价值点主要有两点:

  • 第一是能够支持诸多类型的边缘异构计算资源的接入,包括 CDN 领域的资源,ENS(边缘节点服务 Edge Node Service)资源接入;
  • 第二是自有资源的接入,通过云端标准的 K8s 管理和运维,边缘容器提供便捷的接入体验,执行一条命令即可完成快速接入。

此外,云上的很多创新业务也会向边缘端下沉,给边缘计算赋能。希望通过边缘的 K8s 做二、三方云产品的下沉通道,使边缘端能够便捷的使用云上产品能力。

Edge@ACK 的边缘自治能力

在边缘场景中,边缘的 worker 节点和云上管控通过公网链路交互,而公网通常是不可靠的,这也是边缘场景的弱网络连接问题;而 K8s 的设计原则需要管控接收到 worker 节点源源不断上报的心跳,作为资源管理和应用调度的依据。

一旦接收不到边缘节点的心跳,并且超过最大容忍时间之后,K8s 管控就会对节点上的应用做驱逐处理,这个在边缘场景里面是不可接受的。

因此,边缘托管在边缘节点上增加了一个核心组件 Edge-Hub,在断网的情况下替代云端的管控,给边缘节点上所有的 agent 提供配置数据,保证断网场景下节点自治。Edge-Hub 能够保证 Worker 节点上的 Agent 正常运行,但是节点自治除此之外还要保证节点上应用的持续运行。例如,在断网情况下,节点或者应用重启需要能够保证应用元信息不变,例如保证 Pod 的 IP 不变。这些都是边缘容器在 K8s 体系下做的边缘场景适配。

当然,业界也有很多其他边缘自治方案,包括将整个 K8s 管控下沉的办法来解决边缘端的自治;下图为 Edge@ACK  边缘自治能力流程图。

阿里云容器服务边缘容器已经正式开始公测,未来还将在边缘容器领域持续发力,包括:基于 OpenKruise 实现的边缘场景的调度策略和业务模型的封装,以及像函数计算、安全容器等创新业务的落地等等。

Edge@ACK 的落地案例--IoT 智慧楼宇

虽然边缘容器的公测时间稍微有些晚,但是在阿里内部已经实施了一年多的时间。

最开始支撑的用户是公司内部的 IoT 团队,主要覆盖一些智慧楼宇、智慧工厂的业务场景,与前面讲到的云边端分层结构吻合,通过边缘 K8s 构建 IoT 领域的 PaaS;其次把边缘节点接入到边缘集群里面,边缘节点上部署了 IoT 智能网关等 IoT 应用来管理整个智慧楼宇设备,也很符合前面讲到的云边端一致性体验的分层结构。

下图为阿里云容器服务 Edge@ACK 的整体框架。

基于边缘容器打造阿里云 CDN 边缘计算的架构体系

边缘容器除了在 IoT 做了一些尝试之外,另外一个比较大的场景,就是 CDN 场景。CDN 不仅规模比较大,而且也能锤炼整个边缘集群的稳定性和大规模的服务能力。

CDN 是内容分发网络,目前是属于云服务的一个基本件。一个网站配置了 CDN 以后,当终端用户访问这个网站的时候,系统可以调度到离用户最近的边缘节点。现在 CDN 除了传统的图片视频加速以外,已经衍生出视频处理、AI 处理、以及边缘计算的业务体系。目前,阿里 CDN 在全球有超过 2500 个节点,120T 的带宽储备。

CDN 的重要性不仅仅在于 CDN 的业务本身,更重要的是 CDN 的基础设施属性,它天生具备分布式边缘计算平台特点。CDN 节点是全球分布的,随着 5G 的正式商用,目前来看,CDN 的规模最大、算力最强,将成为布局边缘计算最佳的位置。

Apsara Edge Stack 技术体系

传统 CDN 是以内容分发为主的服务形态,随着 5G 场景对低延时以及新场景的诉求,就需要 CDN 转变成一个更通用的,包含计算、存储、以及网络传输的通用边缘计算平台。

在这个背景下,阿里云已经生产出另一个产品叫 ENS,目前该产品已经具备了完整的 IaaS 能力,用户可以在 ENS 上购买一台边缘的虚机,以及在虚机里面部署自己的能力。

除了 IaaS 的工作以外,在资源层级上可以通过容器和 ACK 来打造 PaaS 和 Serverless 的服务能力,整个体系包含底层的 IaaS、容器、以及上层的 SaaS。下图展示了 Apsara Edge Stack 的技术体系。

基于 Edge@ACK 的资源调度

从上文提到的边缘 ACK 来说,主要是看中容器资源的弹性能力,以及 K8s 标准化的能力。ACK 能够支撑异构资源的接入,包括 CDN 的物理机和 ENS 的虚拟机都可以直接接入到 ACK 里面,我们把所有的 CDN 以及一部分的 ENS 接入到 ACK 进行资源的整合。

CDN 和 ENS 的节点是全球分布的,策略上主要根据业务类型和区域,在阿里云的中心机房创建 ACK 的 Master 服务,然后就近把边缘节点接入到 ACK Master 中。

目前的规划是一个 ACK 接入 20~30 个边缘机房,全网会部署 100 多个 ACK 集群,然后在 ACK 之上,我们会构建 PaaS,PaaS 的一个主要能力就是多 K8S 集群邦联,同时把容器调度跟 CDN 的流量调度打通。

基于 Edge@ACK 的中台管控

当把资源接到 ACK 以后,就要开始部署业务,部署业务是管控运维的能力。CDN 已经具备了比较完整的发布运维的体系,针对容器本身的特点需要做一些增强。

除了上述介绍的基于边缘 ACK 本身的边缘自治能力之外,另外 CDN 自有的内容分发的管道能力是能够实现秒级全网节点的数据分发和同步。基于这个能力,目前可以用这个通道下发一些业务的配置,以及针对容器下发一些指令。

另外一个问题是怎样将镜像高效的分发到各个节点呢?首先会在每个机房内去部署一个 Mirror 镜像仓库,通知配置 CDN 本身的加速实现全球镜像分发。基于数据管控、镜像通道及管控通道,我们能够保证业务在 CDN 的环境上快速的 DevOps。下图为基于 Edge Kuberentes 的中台管控流程图。

CDN 边缘节点架构升级

将 CDN 原有的服务与整个云原生的体系打通,策略上跟中心机房的业务没有本质的区别,过程是容器化接入到 K8s 以后,把里面通用的一些能力 API 化,通过 Servicemesh 提供出去。

目的是将 CDN 的资源和能力充分的利用起来,在云原生的背景之下提供创新服务,这种创新服务包括刚刚公测上线的可编程的 CDN,所谓可编程 CDN,是指通过 CDN 边缘脚本 EdgeScript,可以用简单易学的语法实现 CDN 复杂配置,快速构建 CDN 个性化业务体系并进行敏捷的业务迭代。目前,EdgeScript 已经支持定制化鉴权、缓存控制、请求头/响应头控制、A/BTesting、改写/重定向和限速等应用场景,这也将是未来重要的发展方向,欢迎大家来申请公测。

同时,也可以在 CDN 的环境上去部署像函数计算等的 Serverless 业务、将 CDN 原有的缓存服务通过 API 给到函数计算串接起来。下图展示了 CDN 边缘节点的架构升级。

基于 Edge@ACK 的边缘计算体系

原来阿里云 CDN 已经是一个完整的边缘生态,其中有供应链的管理,以及一些中台的能力。在这个基础之上,现在通过边缘容器以及 ACK 云原生的能力,打通上下游,实现能力的串通,支撑边缘计算业务爆发。下图为基于Edge@ACK 的 CDN 边缘计算体系。

阿里云 CDN 业务基于边缘容器的云原生转型实践的更多相关文章

  1. 阿里云杨敬宇:边缘计算行业通识与阿里云ENS的技术演进之路

    近日,阿里云杨敬宇在CSDN阿里云核心技术竞争力在线峰会上进行了<5G基础设施-阿里云边缘计算的技术演进之路>主题演讲,针对5G时代下,行业和技术的趋势.边缘计算产业通识以及阿里云边缘计算 ...

  2. 腾讯云联合多家生态伙伴,重磅开源 SuperEdge 边缘容器项目

    在2020年12月19-20日腾讯 Techo Park 开发者大会上,腾讯云联合英特尔.VMware 威睿.虎牙.寒武纪.美团.首都在线,共同发布 SuperEdge 边缘容器开源项目. Super ...

  3. 内存回收导致关键业务抖动案例分析-论云原生OS内存QoS保障

    蒋彪,腾讯云高级工程师,10+年专注于操作系统相关技术,Linux内核资深发烧友.目前负责腾讯云原生OS的研发,以及OS/虚拟化的性能优化工作. 导语 云原生场景,相比于传统的IDC场景,业务更加复杂 ...

  4. 阿里云CDN边缘脚本EdgeScript公测:简单语法完成CDN复杂配置

    CDN可以将源站内容分发至最靠近用户侧的节点,使得用户就近获取内容,提高用户的访问成功率和效率.作为CDN运维工程师,他的日常工作就是通过CDN系统的配置和管理,来确保CDN业务正常运转,以此来保障网 ...

  5. C#调用阿里云CDN API刷新缓存

    使用CDN必须要解决CDN缓存的问题,要么在每次更新文件时生成不同的URL,要么在每次更新文件时刷新CDN缓存.我们在一个实际应用场景中用到了后者,所以需要调用阿里云CDN的API进行缓存刷新的操作. ...

  6. 图片流量节省大杀器:基于腾讯云CDN的sharpP自适应图片技术实践

    目前移动端运营素材大部分依赖图片,基于对图片流量更少,渲染速度更快的诉求,我们推动CDN,X5内核,即通产品部共同推出了一套业务透明,无痛接入的CDN图片优化方案:基于CDN的sharpP自适应图片无 ...

  7. 阿里云有对手了!CDN横评:腾讯云优势明显

    如今,云计算产品越来越多,像国内的BAT三大巨头都提供了云主机(腾讯云CVM.阿里云ECS.百度云BCC),另外还有存储.数据库.安全等相关云服务.在这其中,CDN也是一项重要的云服务,CDN指的是内 ...

  8. 发放福利:原价135元/年的阿里云CDN流量包(500GB)免费送

    不少朋友看过本站推荐的两篇文章:1. <阿里云全民云计算活动:云服务器ECS二折起>2. <阿里云双11优惠活动-爆款云服务器> 大部分人都说不错,很快下单购买了服务器,后续使 ...

  9. 【公开课】【阿里在线技术峰会】魏鹏:基于Java容器的多应用部署技术实践

    对于公开课,可能目前用不上这些,但是往往能在以后想解决方案的时候帮助到我.以下是阿里对公开课的整理 摘要: 在首届阿里巴巴在线峰会上,阿里巴巴中间件技术部专家魏鹏为大家带来了题为<基于Java容 ...

随机推荐

  1. C#上手练习5(GOTO语句)

    C# goto 语句用于直接在一个程序中转到程序中的标签指定的位置,标签实际上由标识符加上冒号构成 语法形式如下. goto Labell;    语句块 1;Labell    语句块 2; 如果要 ...

  2. PDF目录编辑器使用介绍

    PDF目录编辑器使用介绍 魏刘宏 2019.06.28 PDF 是一个比较优秀的文档格式,能够保证在任何终端显示的样式是一样的.但同时也带来了一个问题,就是编辑不方便,其实这也是这个格式特意为之的,无 ...

  3. 易优CMS:关于assign你知道多少

    [基础用法] 名称:assign 功能:模板文件中定义变量,可在其他标签里使用该变量 语法: {eyou:assign name='typeid' value='5' /} 文件: 无 参数: nam ...

  4. JS基础语法---分支语句之:switch-case语句---3个练习

    switch-case语句---分支语句---多分支语句 语法: switch(表达式){ case 值1:代码1;break; case 值2:代码2;break; case 值3:代码3;brea ...

  5. log4cxx日志库在Windows+VS2017上的编译使用

    项目中用到了log4cxx,但是Debug版本运行时老是提示找不到Properities::setProperty?怀疑是提供的库有问题,所以尝试源码来重新编译一下.log4cxx官方主页:https ...

  6. SAP HUMO VLMOVE不支持E库存发货到成本中心

    SAP HUMO VLMOVE不支持E库存发货到成本中心 如下HU 194810300235,里面物料的库存是E库存, 执行VLMOVE,试图将该HU整托发货到成本中心, 输入成本中心后,点击按钮'P ...

  7. YYLable 的使用 以及注意点

    NSString *title = @"不得不说 YYKit第三方框架确实很牛,YYLabel在富文本显示和操作方面相当强大,尤其是其异步渲染,让界面要多流畅有多流畅,这里我们介绍下简单的使 ...

  8. swift(五)swift的函数

    /** * 函数的定义和调用 */ func showIntegerArray(array:[Int]) { for a in array { println("\(a)") } ...

  9. Linux 内存文件系统-ramfs and tmpfs

    Linux内存文件系统:可满足高IO的要求 ramdisk: 基于虚拟在内存中的其他文件系统(ex2fs). 挂载方式:mount /dev/ram /mnt/ramdisk ramfs: 物理内存文 ...

  10. CPU 架构SMP/NUMA,调优

    CPU 架构SMP/NUMA,调优 SMP:全称是"对称多处理"(Symmetrical Multi-Processing)技术 . 是指在一个计算机上汇集了一组处理器(多CPU) ...