写点什么

十年,阿里云重构“计算”

2021 年 3 月 26 日

十年,阿里云重构“计算”

十年前,“IOE”稳稳坐在 IT 架构的 C 位,不容置疑;十年后,上云成为大势所趋,云原生、Docker、Kubernetes 成为主流,以阿里云为代表的国产云计算不断追赶,不仅缩短了和国际巨头的差距,还形成了庞大的“计算”家族。本文,InfoQ 通过阿里巴巴集团研究员、阿里云智能弹性计算负责人张献涛,阿里云智能资深技术专家、阿里云容器技术负责人易立的讲述,还原阿里云十年“计算”重构史。

“计算”家族闷头攻坚的那几年


2008 年 -2015 年,从“去 IOE”到虚拟化架构的全面升级,从初涉容器到全面容器化。


2008 年,云计算的时代大幕逐步拉开,众多巨头加入开启良性竞争。与此同时,阿里巴巴提出“去 IOE”,这在行业里掀起了不小的讨论。


2009 年,阿里云成立。当时的云计算是不太可能使用 VMWare 这样的商业化软件,所以就采用了当时比较流行的开源虚拟化软件 Xen。第二年,阿里云就推出了首个弹性计算产品 ECS。


除此之外,阿里云网络产品也开始有了声音,AVS 和 SLB 相继上线。但是,从技术产品上来看,阿里云早期的“计算”家族还是比较单薄的,也存在一些限制,云计算的概念在业界基本处于萌芽阶段,玩家不多。


2011 年开始,各种各样的云开始出现,更强更新的 CPU 带来了云上虚拟机计算能力的提升和换代,阿里云的计算产品家族逐渐丰富,接连推出 ECS 2.0、ECS 企业级产品家族,从对 Xen 架构研发过渡到 KVM 架构,并为 12306 提供了技术支持。


与此同时,阿里云开始研究容器技术,如今盛行的 Docker 当时还未出现,整个团队研究的是 T4,一种基于 LXC 的云技术,容器调度技术开始逐步支撑阿里集团的在线业务,云原生时代开启。


2013 年,淘宝最后一台小型机下线,阿里自研的飞天云操作系统开始支撑集团业务。随后不久,洛神 1.0 发布,这是国内首发自研 SDN 系统。虽然这些消息的发布让外界震惊于阿里云居然有这样的实力,但只有他们自己最清楚技术瓶颈尚需突破。当时,业内依旧停留在如何把当前 CPU 提供的能力,比如 Xen、KVM 等虚拟化的软件应用好,却没有发生太大变革。除了 VMWare 提供的二进制翻译技术以及剑桥大学提出的准虚拟化技术 paravirtualization,行业内并没有太大创新。


“当时我们的虚拟化技术,已经满足不了云计算发展的步伐。尤其在那个时间点上,我们也在探讨,怎样能够把自有业务也迁移到云上面来,这遇到了很大的难题,我们需要去变革虚拟化技术。”——张献涛

“不行,我们需要创新”


2015 年,整个团队开始探索可行的改革方式。当时遇到的主要问题是虚拟化的性能损耗,这是云计算打娘胎里出来就带着的缺点。从成立以来,阿里云工程师一直在致力降低云计算虚拟化的损耗,当时已经做到比业内平均水平低很多了。但在 2016 年双 11 的技术复盘会上,时任阿里巴巴集团 CTO 张建锋提出了极为苛刻的要求——把虚拟化开销也降低到 0。这看似是违背能量守定律的,即便在学术界也没有相关研究。


最终阿里云团队另辟蹊径,想出了新的解决方案——通过专用芯片来解决虚拟化开销。


从技术的实现思路看,阿里云研发团队需要重构一套计算架构,通过研发一个新的芯片组来为每个节点提供功能性和管理性的需求支持,在此基础上,再研发出一套新的服务器硬件,和配套的系统软件;然后再将这套技术架构融入到现有的产品设计中去。


软硬协同架构设计的理念已然飘向了云端,体量大的云厂商服务器部署规模达到百万级别,意味着可以定制任何硬件,而云厂商也开始重新审视芯片、硬件和软件的协同创新。要想收获软硬融合的技术红利,重要的前提是可以自定义芯片,自主研发硬件。


就这样,张献涛的整个团队开始了下一代虚拟化技术——“神龙”的研发之旅。回忆起这个决定,张献涛在采访中表示:“我们大概从 2016 年开始规划下一代虚拟化技术,也就是神龙。我们当时对此的判断是这是未来数据中心,特别是云数据中心虚拟化技术的前进方向。比较有趣的是最近几年,业界几乎所有云计算公司都在往神龙架构的方向演进,我们则很早就开始采用神龙架构支撑双 11 业务”。


2017 年,神龙架构问世了。它真正使用软硬融合、软硬件协同设计的模式,改变了传统虚拟化技术和当前的计算架构不友好的地方。与“神龙”的意义类似,阿里云这一年推出了全球首个云企业网 CEN,引领了业界云上网络互联产品的发展方向。这一年,阿里云网络产品大爆发,先后上线了迁移 VPC 方案、VPN 网关、共享流量包、共享带宽、全球加速以及云企业网。


神龙架构发布不久,一家汽车厂商就慕名前来询问是否可以提供高性能计算方面的能力。面对工程仿真服务的计算资源供不应求,本地 HPC 集群硬件资源老化,性能难以满足业务需求,更新迭代又会影响业务进度,整个公司是进退两难。就这样,双方联手建设了业内首个 IaaS 混合型工业仿真计算服务平台,并于 2018 年初成功上线。


同期,阿里云的容器团队也开始融入 Docker 技术,并于 2015 年底正式发布了企业级容器服务 ACK,正式对外开放容器技术,整个集团也开始实现全面容器化,推动了整个应用开发,交付和运维方式的变革。易立在采访中如是说道。


这一年,全面容器化帮助双 11 大促实现快速弹性扩容。由于业务的超大规模使得其复杂程度非常高,这也为容器技术带来了更大的挑战。例如在容器镜像分发过程中,一次发布分发几万个镜像,这样巨大的流量是一个不小的挑战。为实现效率的极致要求,阿里云利用 P2P 技术,实现大规模大批量的快速分发,实现 10 秒内完成跨机房镜像下载容器启动。容器技术对于双 11 的显著影响还包括在具体的混部技术实施中,通过混部技术,阿里巴巴集团范围内能够节省 30% 左右的 IT 成本支出,在双 11 这个特殊时间段里,将每万笔交易成本下降超过 75%。


这一年,云网络也迈入了云原生时代,推出云原生 SDWAN,并全面支持 IPv6。


至此,整个阿里云“计算”家族已经相当完善且庞大,并尝试在双 11 中进行应用。

一场统一的“毕业大考”:全面支撑双 11


2016 年 -2019 年,阿里云“计算”家族从初涉双 11 到全面支撑,从这场毕业大考中取得优异成绩。


2018 年的双 11,阿里尝试将部分流量用神龙架构来支撑,这在一定程度上可以验证神龙整体产品和技术架构是否具备支撑双 11 超级流量的能力。


“我们对这件事情是非常谨慎的,不仅需要能够支撑住这些流量的冲击,还需要让其在性能、稳定性、效率等方面比上一代技术更加优异,并且可以带来成本的节约”。


经过了 2018 年的顺利过关,2019 年阿里将把核心交易系统全部搬到了云上,“这些系统对存储 IO 能力、计算能力、网络延迟等的要求相当于将神龙的能力榨取到极致。双 11 大促如果可行,我们服务超大型客户就更有信心了。”


在这个部署过程中,容器和神龙架构也完成了完美适配,神龙裸金属服务器运行的容器对比物理机有 10%-30% 的性能优势。“容器本身就是一个非常轻量的、OS 虚拟化的技术,其最大的特点是敏捷、弹性、可移植。容器化应用对底层资源的第一个要求就是具备强大的弹性能力;第二个需要有不同的弹性计算资源供给,神龙架构可以统一支持虚拟机、物理机甚至 Serverless 弹性容器实例,可以满足容器应用多样化需求;第三个要求是更高的计算密度,神龙架构下计算、存储、网络密度都有很大提升。”易立如是说道。


在 2019 年的这场大考中,整个阿里云“计算”家族顺利毕业,拿下了 2500 亿的交易额,同年发布的洛神 2.0 系统也在这次双 11 中完美首秀。


这一年双 11,集群的规模超过百万容器,单容器集群节点数量过万,数据库的峰值超过 54 万笔每秒,对应 8700 万查询每秒,而实时计算每秒峰值处理消息超过 25 亿条,消息系统 RocketMQ 峰值处理了超过每秒 1.5 亿条消息。


在总结会上,行癫表示:过去的一天,20 个小时是阿里技术上最经受考验的一次。阿里云承载阿里巴巴 100% 的核心系统,这是我们全球第一个做到的,我们有自己自研的飞天操作系统、神龙架构、云原生的数据库、计算存储分离的架构、全球第一个大规模 RDMA 网络。


经此一役,阿里云“计算”家族的技术能力被广泛认可。然而,突如其来的疫情再次将其拉回备考状态。

2020 年,突如其来的小考


2020 年一场疫情打破了很多人生活的节奏,如果说“双 11”是一场毕业大考,疫情就是一场临时小考。为应对疫情中在线办公和在线教育场景下激增的流量,阿里云迅速帮助钉钉在 2 小时内紧急扩容一万台云服务器,这个数字也创下了阿里云快速扩容的新纪录。


借助自身的大规模集群管理能力,在短短几天之内,阿里云帮助百家云团队有效升级了原有的架构方案,实现了数十倍的扩容,大幅提升了其性能与稳定性,并拥有了应对爆发性规模的能力,用户毫无察觉。


“随着阿里云计算能力不断发增强,我们已经能够一分钟扩容 1000 台虚拟机,弹性容器实例平均启动时间仅为 10 秒。”


这一年,阿里云又迎来了数据湖分析、实时计算、大数据分析等产品基于容器或者 Serverless 服务的方式对外交付,此时已经可以看到 Serverless 成为新的可能。


2020 年 9 月 18 日,2020 杭州云栖大会上,阿里巴巴正式成立云原生技术委员会,云原生成为阿里技术新战略。在云原生技术委员会成立之后的双 11,双 11 核心系统又实现了全面云原生化。


在采访中,易立表示支撑这场双 11 战役在支持规模和创新上有四点重要突破:一是极致弹性。双 11 的突发业务量可以达到平时的十倍以上,不只是阿里集团,还有与之合作的商家、物流等都需要面对这样的流量冲击,阿里云都可以有效支撑。


二是极致算力,双 11 期间的大数据平台批处理日志量及实时计算的数据都非常大,阿里云实现了核心数据库的全面云原生化,让整个数据库充满弹性。


三是三位一体,开源产品与商业云产品以及集团内部实现统一,比如 OpenKruise 是容器团队开源的云原生应用自动化引擎,本质是基于 Kubernetes 标准扩展出来一个的应用负载项目,它可以配合原生 Kubernetes 使用,并为管理应用容器、sidecar、镜像分发等方面提供更加强大和高效的能力,从而在不同维度上通过自动化的方式解决 Kubernetes 之上应用的规模化运维和规模化建站问题,包括部署、升级、弹性扩缩容、QoS 调节、健康检查、迁移修复等。截至 2020 年 双 11,阿里巴巴内部已运行近十万 OpenKruise 的 workload、管理着上百万容器。而且,阿里巴巴内部运行的 OpenKruise 版本代码超 95% 来自社区仓库。


四是 Serverless 的大规模实践。众多业务都在采用 Serverless 的方式进行开发,其弹性伸缩能力相比以前提升了至少 10 倍,可以极大提升整个平台的弹性和稳定性。


截至 2020 年,经过 10 多年的技术实践,阿里云已经拥有国内最丰富的云原生产品家族,覆盖 10 多个类别 100 余款产品,涵盖底层基础设施、数据智能、分布式应用等,可以满足不同行业场景的需求,为企业数字创新打造最短路径。



面向下一个十年的技术筹备


“我们坚信 Serverless 是云计算的未来”


随着以 Kubernetes 为代表的云原生技术成为云计算的容器界面,Kubernetes 成为云计算的新一代操作系统。因为屏蔽了服务器的各种运维复杂度,Serverless 让开发人员可以将更多精力用于业务逻辑设计与实现,而逐渐成为云原生主流技术之一。


易立表示,Serverless 计算可以分为 Serverless 运行时 和后端服务( Backend as a Service)。其中 Serverless 应用运行时在阿里云上有非常丰富的产品选择:如面向事件驱动应用的函数计算 FunctionCompute,提供了极简的编程和运维体验;面向微服务应用的 Serverless 应用引擎(SAE),对于传统微服务架构应用无需任何修改即可以轻松上云。


此外,阿里云还提供了 Serverless 容器的产品,比如弹性容器实例 ECI 和 Serverless Kubernetes(ASK),它们提供了标准的 Kubernetes 界面,不但可以让用户享受到极致的弹性能力,并且是完全免运维的。它们在过去一年有了 9 倍的高速增长。


动态、混合、分布式的云环境将成为新常态


上云已是大势所趋,但对于企业而言,有些业务出于对数据主权、安全隐私的考量,会采用混合云架构。


此外,边缘计算将成为企业云战略的重要组成部分,为应用提供更低网络延迟,更高网络带宽和更低网络成本。我们需要有能力将智能决策、实时处理能力从云延展到边缘和 IoT 设备端。随着云平台成为企业数字化转型的创新平台,一个变化随之产生——云正在靠近它们。在分布式云中,公有云的服务能力可以位于不同的物理位置,而公共云平台提供者会负责服务的运维、治理、更新和演变。

软硬一体化全面升级


云计算的发展推动了整个计算架构的演进,面向数据中心的芯片层出不穷,计算密度得到了大幅提升,如果将其与 Serverless 结合能够全面提升计算效率和资源利用率;过去,我们已经经历了 CPU 和存储资源的池化,如今我们可以看到越来越多的 GPU 资源池化,开发者可以按需创建弹性的 GPU,大幅降低 AI 的计算成本,资源池化使得整个计算能力的弹性进一步增强,可以让 Serverless 计算场景覆盖更多的领域。


此外,Serverless 也在全面推动软硬一体化的进一步升级。阿里云“计算”家族的整体性价比不断提升,企业用云的成本逐步下降,底层硬件对上层应用的支持越来越强,“可以理解为下一代神龙是以应用为中心的,我们将对上层的函数计算等应用的支持越来越好,效率提升的同时大幅降低成本”。

无处不在的计算催生新一代容器实现


针对不同计算场景,容器运行时会有不同需求。KataContainer、Firecracker、gVisor、Unikernel 等新的容器运行时技术层出不穷,分别解决安全隔离性、执行效率和通用性三个不同维度的要求。OCI(Open Container Initiative)标准的出现,使不同技术采用一致的方式进行容器生命周期管理,进一步促进了容器引擎技术的持续创新。


综上,这些技术趋势未来的发展将由阿里云“计算”家族继续演绎。过去十年,云计算重构了“计算”,未来十年,计算将如何被定义呢?


嘉宾介绍:


易立,阿里巴巴资深技术专家,阿里云容器团队负责人。曾在 IBM 中国开发中心工作,担任资深技术专员;作为架构师和主要开发人员负责和参与了阿里云在云计算、区块链、Web 2.0、SOA 领域的一系列产品研发和创新。


张献涛,博士,阿里巴巴集团研究员、阿里云智能弹性计算产品线负责人,QCon 专题演讲嘉宾;业界知名的云计算和虚拟化技术专家,加入阿里云后,主导了弹性计算产品和技术的演进工作,他的主要研究方向涉及信息安全,系统软件、芯片以及软硬协同设计;作为阿里云飞天神⻰架构发明者,推动了云数据中心 IaaS 核心技术的变革;在国内外发表多篇关于云计算和虚拟化的高质量学术论文,拥有近 30 项专利申请和授权。

2021 年 3 月 26 日 09:353040
用户头像
赵钰莹 InfoQ高级编辑

发布了 691 篇内容, 共 405.2 次阅读, 收获喜欢 2255 次。

关注

评论

发布
暂无评论
发现更多内容

第三周总结

LEAF

第三周学习总结

秦宝齐

学习

再谈云原生:我的看法

lidaobing

云原生 k8s 中间件

618 我们狂欢的是什么?

Neco.W

拼多多 电商 京东 活动专区

锦囊篇|一文摸懂EventBus

ClericYi

锦囊篇|一文摸懂Handler

ClericYi

锦囊篇|一文摸懂RxJava

ClericYi

ARTS-03 -- ARTS-04

NIMO

ARTS 打卡计划 ARTS活动

ARTS 打卡week#2

对方正在输入…

ARTS 打卡计划

架构师训练营第三周作业

一剑

区块链系列教程之:比特币中的网络和区块链

程序那些事

比特币 区块链 网络 p2p

面试中的HashMap、ConcurrentHashMap和Hashtable,你知道多少?

ClericYi

还不会十大排序,是准备家里蹲吗!?

ClericYi

面向对象架构设计

Jeff

Websocket IM聊天教程-教你用GoEasy快速实现IM聊天

GoEasy消息推送

websocket 即时通讯 聊天室 聊天 IM

我们是如何做go语言系统测试覆盖率收集的?

大卡尔

go 测试覆盖率 精准测试

关于JVM,你必须知道的那些玩意儿

ClericYi

Redis系列(二): 连集合底层实现原理都不知道,你敢说Redis用的很溜?

z小赵

Java redis 高并发 高并发系统设计

锦囊篇|一文摸懂LeakCanary

ClericYi

关于多线程,你必须知道的那些玩意儿

ClericYi

锦囊篇|一文摸懂OkHttp

ClericYi

JVM面试题68问,面试又可以多扯一个小时了!

Java小咖秀

JVM Java 面试 经验分享

设计模式的十八般武艺

ClericYi

Glide都在用的LruCache,你学会了吗?

ClericYi

ARTS|Week 04 (2020第25周)

MiracleWong

elasticsearch 算法 ARTS 打卡计划

第三周学习总结

iHai

极客大学架构师训练营

架构师训练营第三周学习总结

CATTY

重学 Java 设计模式:实战命令模式「模拟高档餐厅八大菜系,小二点单厨师烹饪场景」

小傅哥

设计模式 小傅哥 重构 代码优化 命令模式

面向对象架构设计-课后作业

Jeff

学习总结 - 第3周

饶军

锦囊篇|一文摸懂ButterKnife

ClericYi

4月17日 HarmonyOS 开发者日·上海站

4月17日 HarmonyOS 开发者日·上海站

十年,阿里云重构“计算”-InfoQ