2019 双11,订单创新峰值达到 54.4 万笔/秒,单日数据处理量达到 970PB,面对世界级流量洪峰,今年的阿里巴巴交出了一份亮眼的云原生技术成绩单,并实现了100% 核心应用以云原生的方式上云:

  • 双11 基础设施 100% 上云
  • 支撑 双11 在线业务容器规模达到 200 万
  • 采用神龙弹性裸金属服务器计算性价比提升 20%

这些数据背后是对一个个技术问题的反复尝试与实践。这一次,我们对云原生技术在 双11 的实践细节进行深挖,筛选了其中 22 篇有代表性的文章进行重新编排,整理成书《不一样的 双11 技术:阿里巴巴经济体云原生实践》旨在为行走在云原生之路上的开发者打开新思路、提供一些有益参考。

大咖寄语

我们采访了上云总架构师毕玄,以下是他对于 双11 核心系统 100% 上云背后云原生的技术思考。

与客户在同一架“飞机”上

王坚院士曾在很多场合都和阿里的技术人员讲到:阿里云作为一家输出技术的公司,我们需要做到和我们的客户在同一架“飞机”上,而不仅仅是“造飞机”或看着“飞机”在空中飞,阿里经济体云化最重要的就是要做到让我们和客户在同一架“飞机”上。

早在几年前,阿里巴巴经济体就开始借助阿里云的机器资源来支撑 双11 零点的高峰,云的弹性资源优势使得 双11 的机器资源投入成本下降超过 50% 以上,但在这些机器资源上部署的却是我们自己的技术体系,例如容器、中间件、数据库、缓存等,也就意味着我们和客户其实是在不同类型的“飞机”上,而且阿里巴巴经济体在的“飞机”是专为阿里巴巴定制打造的,外部客户是买不到的,这是一个典型的从 Hosting 演进到 Cloud Hosting 的阶段。为了切实做到和客户在同一架“飞机”上,在今年 3 月份,阿里云智能事业群 CTO 张建锋(花名:行癫)正式对外宣布未来一到两年,阿里巴巴百分之百的业务要跑在公共云上,成为“云上的阿里巴巴”。

从 Cloud Hosting 到 Cloud Native

阿里巴巴经济体云化是阿里技术发展史上继之前的分布式架构、异地多活后的又一轮巨大的架构升级,这次架构升级需要把我们从 Cloud Hosting 演进到 Cloud Native,Cloud Native 作为技术圈最火热的名词,不同的人的眼中有不同的定义,我们认为 CloudNative 带来的是一次系统构建方式的巨大变革,Cloud Native 是指业务系统的构建从基于自有、封闭的技术体系,走向基于开放、公共的 Cloud 的技术体系。

在 Cloud Native 时代之前,多数公司随着业务的发展,或多或少都会打造出自有、封闭的技术体系,这一方面造成了巨大的投入,使得公司的技术人才力量没有完全专注的投入在业务上,另一方面也造成了这个行业人才流动的困难,因为知识体系的不同,每到一家新的公司几乎都是全新的一套,这个一定程度上影响了业务创新的速度,尽管很多的开源产品在一定程度上有助于解决这个问题,但还不足以体系化,而在 Cloud Native 时代,我们认为会有两个典型的特征:

1.对于业务系统端而言,在做系统设计的技术选型上,Cloud 提供了远比自有技术体系更为丰富了多的选择,这使得架构师可以更好的根据业务的状况、阶段等来进行更合理、合适的技术选型,最后表现出来的特征会是业务系统基于 Cloud 的技术体系来搭建,而越来越少的自建或自研,就像 Cloud Hosting 带来的越来越少的公司自己 Hosting 机器的变化一样;

2.对于云厂商而言,会提供越来越多开放、主流的技术栈的技术产品,从而让客户有更为丰富和自主的选择权,同时云厂商会去做到让这些技术产品的互通性更好,这样客户才能真正做到对于不同类型的业务选择不同的技术产品和体系。

按照这样的思路,阿里巴巴经济体云化在走向 Cloud Native 的道路上,我们的原则是:

1.业务系统不再采用自有、封闭的技术产品,而是阿里云上对外提供哪些技术产品,我们就基于这些来重构、新建我们的业务系统;

2.阿里云上提供相应技术领域的主流技术产品,同时根据阿里业务的需求去新增、完善、改造相应的技术产品,并增强不同技术产品的互通性、开放性。

按照这样的原则,随着阿里经济体云化项目的进展,阿里的业务系统就必将完成从基于自有、封闭的自有体系构建,进化到和阿里云的客户一样,基于阿里云上公共的技术产品的体系来构建,从而实现和客户在同一架“飞机”上。

不一样的双11,云原生技术亮点

在这个双11,我们在以下几个方面有了一些不错的进展:

超大规模 Kubernetes 实践

2017 年下半年,阿里集团开始尝试使用 Kubernetes API 来改造内部自研平台,并开始了对应用交付链路的改造,以适配 Kubernetes。2018 年下半年,阿里集团和蚂蚁金服共同投入 Kubernetes 技术生态的研发,力求通过 Kubernetes 替换内部自研平台,实现了小规模的验证,支撑了当年部分 双11 的流量。2019 年初,阿里经济体开始进行全面上云改造,阿里集团通过重新设计 Kubernetes 落地方案,适配云化环境,改造落后运维习惯,在 618 前完成了云化机房的小规模验证。2019 年 618 之后,阿里集团内部开始全面推动 Kubernetes 落地,在大促之前完成了全部核心应用运行在 Kubernetes 的目标,并完美支撑了 双11 大考。

阿里巴巴超大规模 Kubernetes 落地,经受了双11大促真实场景的考验, 单集群能支撑万级别 Node、十万级别 POD 的规模。我们推进了三个方面改造:面向终态的改造;自愈能力改造;不可变基础设施改造。相比原有传统的运维链路,扩容效率提升了 50%,集群节点在线率达到了 99.9% 以上。

阿里巴巴云原生化的最佳组合:Kubernetes+容器+神龙

今年 双11,我们通过 K8s+容器+神龙的最佳组合实现了阿里核心系统 100%以云原生的方式上云,完美支撑了 54.4w 峰值流量以及 2684 亿的成交量。基于 0 虚拟化开销的神龙裸金属,通过使用行业标准的容器与调度、编排、管理技术,推动经济体云原生技术全面升级。容器性能提升 10%、神龙节点可调度率达到 99% 以上、容器稳定性与在线率全面提升。

Service Mesh 超大规模落地

阿里巴巴在 双11 的部分电商核心应用上落地了完整的 Service Mesh 解决方案,借助 双11 的严苛业务场景完成了规模化落地前的初步技术验证;蚂蚁金服也实现了 Service Mesh 的大规模落地。Service Mesh 所带来的变化体现于:服务治理手段从过去的框架思维向平台思维转变;技术平台的建设从面向单一编程语言向面向多编程语言转变。

Service Mesh 创造了一次以开发者为中心去打造面向未来的分布式应用开发平台的机会,给其他技术产品创造了重新思考在云原生时代发展的机会,给技术基础设施如何与业务基础技术更好地协同提供了一次探索机会,并为探索面向未来的异地多活、应用永远在线的整体技术解决方案打开了一扇大门。

双11 同款云产品

1.容器服务 Kubernetes 版(ACK)

2.容器镜像服务 Container Registry (ACR)

3.函数计算 2.0(事件驱动的全托管 Serverless 计算服务)

4.企业级分布式应用服务 EDAS(应用托管 + 微服务治理)

5.[Serverless 应用引擎(阿里云首个面向应用的 Serverless 产品)](https://www.aliyun.com/product/sae)

6.应用实时监控服务 ARMS(全栈式的性能监控)

7.链路追踪(云上华佗,成本是自建链路追踪系统的1/5或更少)

8.应用高可用服务AHAS(限流降级神器)

9.性能测试 PTS(双11同款性能压测工具)

10.消息队列 for Apache RocketMQ(服务于阿里集团 13 年,覆盖全集团所有业务)

11.消息队列 for Apache Kafka(更专业、更可靠、更安全)

12.全局事务服务 GTS(传统分布式事务10倍性能)

“阿里巴巴云原生微信公众号(ID:Alicloudnative)关注微服务、Serverless、容器、Service Mesh等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术公众号。”

版权声明:本文为alisystemsoftware原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/alisystemsoftware/p/11950058.html