自 2015 年以边缘为中心的计算被提出以来,边缘计算已连续多年被 Gartner 评为十大战略科技发展趋势之一,很多公司在边缘计算方面投入巨资以获取先发优势。本文邀请到阿里云高级技术专家、Kubernetes Member 黄玉奇来分享阿里云边缘计算落地的技术实践和主要挑战和思考,他也将在 QCon 全球软件开发大会(北京站)2020 上做主题为《“云边一体”架构支持边缘计算多场景落地实践》的演讲,敬请关注。
InfoQ:您是什么时候加入阿里云的?您在主导阿里云物联网(IoT)、CDN 等边缘计算领域相关产品/业务容器化转型的过程中,收获最多的是什么?有比较难忘的故事可以分享吗?
黄玉奇:我是 2017 年入职阿里的,在此之前大概有五年多的时间一直从事容器、容器调度相关领域的研发工作。2015 年成为国内第一批接触 Kubernetes 的 IT 从业人员,并一直持续投入到今天。在 Kubernetes 越来越稳定成熟、市场占有率越来越高的大背景下,云原生的最佳实践、方法论、优良架构不断地在新场景中落地。而拓展云原生服务边界和商业化落地也正是我工作的一大部分内容。
伴随行业发展,边缘计算正在成为云计算的新边界,而规模和复杂度的日益提升对边缘计算的效率、可靠性、资源利用率等一系列能力提出了新的诉求。2017 年底开始,阿里云物联网(IoT)和 CDN 服务作为典型的边缘计算业务面临着产品规模爆发式增长、运维复杂度急剧攀升、运维效率低下的“三难”境地,引入云原生并成功转型成为各业务团队亟需解决的问题。
记得当时最开始找我们的是菜鸟的同学,他们希望能够拥有一套基于 K8s
构建的仓储 PaaS 系统,用来管理各城市、各区域仓储的边缘节点(异构、分散、多租),并进一步通过边缘节点上部署的管控应用来管理仓储的机械手臂、机器人等,而这也是“云边端”一体化协同的萌芽。众所周知,原生 K8s 是设计成数据中心内部的调度系统(DCOS),对于满足这种需要跨地域、分散节点管理、异构、跨公网交互、多租(仓储外包运营)场景就有些吃力。因此我们做了很多定制开发,包括多租隔离,Worker 节点的自治能力、节点池、反向运维通道等等。大致的架构设计如下图示:
在第一个客户场景实施后不久,我们团队接到越来越多诸如智慧楼宇、智慧仓储、一体机形态的容器化、K8s 化的需求,而他们都来自同一个团队——阿里云 IoT。这也很快就促使我们做了“云边一体”的边缘计算云原生基础设施的产品化思考。核心诉求包括:
资源、应用管理诉求;
容器化和微服务化;
标准的 API 和工具链;
安全,数据 / 信道加密和认证授权
……
得益于 IoT 各种业务场景对产品能力的反向打磨,阿里云容器服务 ACK@Edge 第一个线下版本——“Kubernetes Edge version” 在 2018 年 7 月份诞生,作为云上 IoT 边缘托管服务底座,支持海量边缘网关节点接入,深度融合 IoT 云端市场、云端 FaaS 、消息、运维等服务,并在当年春节前支持阿里云边缘托管服务(LinkEdge)部分客户业务上线。
印象最深的应该是 2019 年元宵节那次,某商场智慧楼宇管控业务全部上线,通过容器化和 K8s 的调度能力,传统 IoT 业务拥有了强大的日志、监控、自动扩缩容等运维能力,并且运维能力在云中心汇聚。元宵节当天晚餐高峰期,业务方通过云端管控方便的扩容了车库收费系统,应对车流量压力。下图是很早期的一个架构和当时在客户现场拍摄的照片:
在这个过程中,云原生让 IoT 托管如虎添翼,持续落地智慧楼宇、智慧工厂、智慧仓储项目,云边端分层结构也日益显现。
2019 年是一个关键时间节点,业界对边缘计算的定义和边界越来越清晰(Gartner 和 IDC 都给了明确定义),对场景的划分也是更加明确。大边缘、小边缘成为边缘计算的两个标志场景。大边缘的典型代表就是 CDN。与此同时,CDN 的云原生转型和云原生的大边缘探索不期而遇了,容器服务团队和阿里云 CDN 团队一拍即合。阿里云有着国内最大体量的 CDN 业务,并正在从以内容分发服务为主转变为边缘计算,很快就确定了以 ACK@Edge 为依托构建云原生 EdgePaaS 的架构演进计划。
InfoQ:阿里云是什么时候决定要落地边缘容器的?做这个决定的背景是什么?“云边一体”架构解决的核心问题是什么?
黄玉奇:随着互联网智能终端设备数量的急剧增加和数据、业务下沉的诉求增多,边缘计算规模和业务复杂度已经发生了翻天覆地的变化,边缘智能、边缘实时计算、边缘分析等新型业务不断涌现。传统云计算中心集中存储、计算的模式已经无法满足边缘设备对于时效、容量、算力的需求,如何打造边缘基础设施成了一个新课题。阿里云容器服务在最开始面对这个课题时,就一直在思考云原生基础设施在边缘计算落地的可能性。从云到端,如果能将云计算的能力下沉到边缘侧、设备侧,并通过中心进行统一交付、运维、管控;通过粘合云计算核心能力和边缘算力,构筑在边缘基础设施之上的云计算平台,是不是就能够解决边缘计算面临的挑战?回答这个问题之前,我们先梳理一下边缘计算可能面临的一些挑战:
云边端协同:缺少统一的交付、运维、管控标准;
安全:边缘服务和边缘数据的安全风险控制难度较高;
网络:边缘网络的可靠性和带宽限制;
异构资源:对不同硬件架构、硬件规格、通信协议的支持,以及基于异构资源、网络、规模等差异化提供标准统一的服务能力的挑战。
众所周知,以 Kubernetes 为基础的云原生技术,核心价值之一是通过统一的标准,实现在任何基础设施上提供和云上一致的功能和体验:那么借助云原生技术,实现云-边-端一体化的应用分发,解决在海量边、端设备上统一完成大规模应用交付、运维、管控的诉求是不是就有可能;同时在安全方面,云原生技术可以提供容器等更加安全的工作负载运行环境,以及流量控制、网络策略等能力,能够有效提升边缘服务和边缘数据的安全性;而依托云原生领域强大的社区和厂商支持,云原生技术对异构资源的适用性逐步提升,在物联网领域,云原生技术已经能够很好的支持多种 CPU 架构(x86-64/arm/arm64)和通信协议,并实现较低的资源占用。
“云边端一体化协同”作为一个标准化构想,将云原生能力向边缘端复制,需要分为三个层次:
第一个层次是能够在云端提供标准化的接口、管控能力,或者是标准的云服务和云资源的接入能力,其中我们能够看到 Kubernetes 的身影;
第二个层次是能够高效的管理处在整个边缘端的众多资源,其中包括边缘端应用的运维效率问题;
第三层次是典型的 IoT 场景中的端设备。
InfoQ:阿里云的边缘计算落地主要分为哪几个阶段?在实际落地的过程中,遇到的主要问题是什么?
黄玉奇:在阿里云边缘计算技术形态也可以按照传统的逻辑划分为 IaaS、PaaS 和 SaaS:
IaaS:ENS 服务。主要是在边缘测提供资源虚拟化,类似云上 ECS 服务,只不过底层的物理资源是在阿里云的 CDN 机房。用户可以按需购买 CDN 虚拟化资源,并且拥有比较强大的边缘资源弹性能力;
PaaS:传统虚机方式的运维成本往往居高不下,比如机器的地域分布、网络差异等会带来不小的运维成本,难以进行快速的业务切换调度。这样一来就需要有个边缘场景的 PaaS 服务,来帮助用户管理和调度边缘的资源,容器和 K8s 是一个不错的架构选择。当前主要就是容器服务的 ACK@Edge 边缘容器,以及和 ENS 的深度融合为用户提供边缘 PaaS 服务。
SaaS:服务种类就比较多,包括边缘智能(AI)、边缘应用市场、边缘中间件(消息、缓存等)、边缘软硬一体机(数据智能一体机、通用一体机等)。而这些服务都可以通过边缘容器应用市场获取。
而随着业务形态的百花齐放,目前遇到的最大挑战就是底层基础设施和运维模式的不统一,以及现有交付方式不统一带来的巨大人力投入,和运维效率对业务创新的掣肘。比如阿里云生态体系中,有大量的软硬一体机形态的产品,中心、边缘协同的运维模式目前正在基于边缘容器体系做一次大的升级和统一。
InfoQ:5G 将开启一个全连接的新时代,海量接入需求下,对边缘计算的大规模运维、业务创新效率等提出了更高的要求。边缘容器是如何支撑阿里云 CDN 业务全面容器化转型的?
黄玉奇:CDN 是内容分发网络,目前属于云服务的一个基本件。当一个网站配置了 CDN 以后,在终端用户访问这个网站的时候,系统可以调度到离用户最近的边缘节点。现在 CDN 除了传统的图片视频加速以外,已经衍生出视频处理、AI 处理以及边缘计算的业务体系。
CDN 的重要性不仅仅在于 CDN 的业务本身,更重要的是 CDN 的基础设施属性,它天生具备分布式边缘计算平台特点。CDN 节点是全球分布的,随着 5G 的正式商用,目前来看,CDN 的规模最大、算力最强,将成为布局边缘计算最佳的位置。边缘计算跟云计算相比也面临着诸多挑战,以 CDN 为例,边缘节点分布广,单节点规模小(1~100 机器),大部分节点没有驻场人员,所以维修周期长(1~2 周)。同时节点网络复杂并且不可控,网络割接、运营商封禁是常有的事情,省与省、国与国(海外)之间都有着非常复杂的网络链路。
面对这些问题,对调度/容灾能力、运维能力就会有比较高的要求。CDN 本身的业务形态就是天然容灾和可调度的:一个节点挂了,流量就可以切换到其他节点上。CDN 节点架构也相对比较简单,经典三层架构:四层负载均衡(LVS)+七层负载均衡(Nginx 或者 HaProxy)+缓存服务(Squid),所以 CDN 运维也是比较简单的,机器上主要是缓存数据,机器挂了整体影响不大,不需要做数据迁移。
但是 CDN 要转型到通用边缘计算平台,调度/容灾能力和运维能力就会变成规模化的一个主要瓶颈,怎么做调度、怎么做容灾、怎么做运维,这些问题在边缘场景更加突出。因此容器的轻量级和 Devops 属性,加上 K8s 的调度,目前看来非常适合边缘计算。
ACK@Edge 边缘容器能够给 CDN 提供容器资源的弹性能力,以及 K8s 标准化能力。支撑异构资源的接入,包括 CDN 的物理机和 ENS 的虚拟机,并参与混合调度。CDN 和 ENS 的节点是全球分布的,策略上主要根据业务类型和区域,在阿里云的中心机房创建边缘容器的 Master 服务,然后就近接入边缘节点。目前的规划是一个边缘容器集群接入 20~30 个边缘机房,全网会部署 100 多个 ACK 集群,然后在边缘容器之上,构建 CDN PaaS,PaaS 的一个主要能力就是多 K8s 集群联邦,同时把容器调度跟 CDN 的流量调度打通。
InfoQ:阿里云在边缘计算方向上还有哪些探索工作?它未来的发展应该是什么样的?
黄玉奇:随着云原生在边缘计算的持续落地,预计将会很快消除边缘云和中心云的架构差异,云边一体的架构体系会将边缘计算坚定在“云计算新边界”的理念之上。未来的 IT 架构必将朝着“云边端一体化协同“的方向发展,而其中的核心就是边缘云原生。边缘计算新业务的开展也将和传统的中心云保持同步:Serverless、安全沙箱技术、函数计算等新的业务形态都将在边缘计算落地。
未来边缘云计算必将是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的云计算平台。形成边缘位置的计算、网络、存储、安全等能力全面的弹性云平台,并与中心云和物联网、终端形成“云边端三体协同” 的端到端的技术架构,通过将网络转发、存储、 计算,智能化数据分析等工作放在边缘处理,降低响应时延、减轻云端压力、降低带宽成本,并提供全网调度、算力分发等云服务边缘计算必将在三个方向发力:
AI、IoT 与边缘计算的融合, 云延伸
IT 去中心化,设施自治,边缘托管
5G 与边缘计算引爆新增长
InfoQ:阿里云在边缘容器领域是否有开源方案?开源的动机是什么,开源的长期规划是什么样的?
黄玉奇:北京时间 5 月 29 日,在阿里云容器服务 ACK@Edge(边缘集群托管服务) 上线一周年之际,阿里巴巴正式宣布将其核心能力开源,并向社区贡献完整的边缘计算云原生项目 OpenYurt。
作为阿里云容器服务 ACK@Edge 的开源版本,OpenYurt 将采用全开源社区开发模式,每季度发布新版本更新,包含社区上游安全/关键 bug 修复和新特性、新能力,并逐步将产品完整能力开源,预计到 2021 年一季度正式发布 OpenYurt 1.0 版本。大致的 RoadMap 如下:
嘉宾介绍
黄玉奇,阿里云高级技术专家,Kubernetes Member,拥有丰富的容器、容器调度相关业务领域经验,致力于持续探索云原生新落地场景。曾主导边缘容器支撑阿里云物联网(IoT)、CDN 一体机等边缘计算领域相关产品/业务容器化转型,目前整体负责阿里云 K8s 边缘托管产品。
活动推荐:
在QCon北京2020的分享中,黄玉奇老师将结合阿里云内部多种边缘业务形态(IoT、ENS、CDN、边缘智能),介绍云原生技术栈在边缘计算场景落地细节,并揭秘云端托管、边缘算力快速接入、K8s 零侵入增强的技术内幕。全面解剖这条将云能力从中心往边缘触达的新途径,点击了解详情。
评论