把阿里巴巴的核心系统搬到云上,架构上的挑战与演进是什么?

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 阿里巴巴核心系统作为全球最大规模、峰值性能要求最高的电商交易系统,在 2018 年之前只通过混合云弹性上云方式,为 双11 节约大量成本。直到 2019 年,阿里巴巴实现了核心交易系统全面上云并经历了 双11 峰值的考验。

作者丨张瓅玶(谷朴)阿里巴巴研究员

阿里巴巴核心系统作为全球最大规模、峰值性能要求最高的电商交易系统,在 2018 年之前只通过混合云弹性上云方式,为 双11 节约大量成本。直到 2019 年,阿里巴巴实现了核心交易系统全面上云并经历了 双11 峰值的考验。

在今天由极客邦科技举办的 ArchSummit 全球架构师峰会 2019 北京站上,阿里巴巴研究员张瓅玶博士作了主题演讲《阿里巴巴核心系统上云:挑战和架构演进的思考》,以下内容为演讲整理。

核心系统上云之路

工程师时常把我们的系统用飞机来做比喻,乘客则是上面承载的业务。云也是一架这样的载客飞机,作为基础平台承载着千万家企业的业务。今年阿里巴巴实现了核心系统 100% 上云,这个过程实际上走了几年才达到今天的进展,而且这还不是结束,也只是阿里巴巴上云的一个开始。

阿里巴巴集团自身业务体量巨大,支撑其的互联网技术体系任务也非常繁重,再加上核心电商业务系统的复杂度,对技术带来的挑战可想而知。

用王坚博士的话说,核心系统上云让阿里巴巴和客户真正坐上了同一架飞机。从 in-house 的基础设施、定制化的平台能力,到通用的云平台,从 cloud hosting 到 cloud native,这个过程面临着巨大的挑战,同时也是阿里巴巴自身和阿里云的架构演进升级的历程。

1.png

阿里巴巴的核心交易系统涉及到包括天猫、淘宝、河马、菜鸟、聚划算、咸鱼、飞猪等一系列业务,其背后的核心电商系统的架构演进经历了单机房架构、同城双机房架构再到目前的中心同城容灾,三地多单元多活架构。软件也分为应用、微服务/中间件和数据库。

阿里巴巴的上云步骤一共分为三个阶段:

  • 第一阶段:在 2015 年之前未上云,全部采用内部的基础设施。

2.png

  • 第二阶段:2015 开始,双11 期间单元化的交易应用开始通过弹性使用云资源,实现成本节约的目标(注: 图中上云单元规模和实际上云规模不成比例)。

3.png

  • 第三阶段:2018 年的 12 月,CTO 行癫决定阿里巴巴启动全面上云,随后组建了以毕玄为上云总架构师的架构组,确定了上云的方案和步骤。

2019 年经过 1 年的努力,终于在 双11 前实现了核心系统的全面上云。这一年核心电商的中心和单元业务,包括数据库、中间件等组件,实现了全面上云和使用云的服务。通过弹性运化,以及离在线混部(图中未标识)等能力,使大促成本持续下降,到 2018 年,大促新增成本比前一年下降 17%,比早期方案下降 3/4。

这一年核心电商的中心和单元业务,包括数据库、中间件等组件,实现了全面上云和使用云的服务。全面上云也不只是将机器搬到云上,更重要的是 replatforming,集团的技术栈和云产品融合,应用通过神龙服务器+容器和 K8s 上云,数据库接入 PolarDB,中间件采用云中间件和消息产品,负载均衡采用云 SLB 产品等。

4.png

云已经成为了基础设施,无论是电商公司还是其他行业,都可以用云去做更多事情。

云化架构

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

5.png

这些数据背后所代表的,就是上云过程中形成的巨大挑战。针对这些挑战,阿里巴巴集团从服务器、存储、网络、数据中心等基础设施方面做了针对性的应对。

1. 自研神龙服务器

核心系统全面上云决定采用了神龙服务器。神龙服务器自研了 HyperVisor 虚拟化卡来替代软件虚拟化,从而实现无性能损耗的虚拟化架构。其特点在于:

  • 高性能:去掉了虚拟化带来的 8% 的性能损耗;
  • 支持二次虚拟化:使多样虚拟化技术 (Kata, Firecracker 等) 的探索和创新成为可能。

6.png

在阿里巴巴上云过程中,双11 期间压力测试显示,高负载压力下的电商应用,实现 30% 的 QPS 上升,而 rt 也有明显下降,长尾 rt 下降尤其明显。同时,云化的神龙服务器,促进了运维管理的自动化和在线率水平的提升。阿里巴巴认为,神龙是容器的最佳载体,神龙+服务是无服务器化基础设施的最佳载体。

存储方面,走向了全面云化存储,也即全面存储计算分离。

7.png

上云也带来了大规模使用云存储产品:盘古(盘古 2.0),实现了集团业务的更大规模的存储计算分离。存储计算分离即业务逻辑执行在计算集群上面,存储部署在存储集群上面。计算和存储集群之间通过高速网络连接。

随着数据处理对存储需求和计算需求在规模、速度、容量和成本等维度的不断变化,计算与存储分离可以最大限度地解耦并使这两类不同的关键资源相对独立地扩展和演进,获得更好的弹性、资源效率,同时可以让应用更容易的获得分布式存储的可靠性。

上云过程中,盘古 2.0 的升级也带来更好的 io 长尾延迟的稳定性,通过慢盘黑名单、backup read、动态 timeout 等关键技术大幅度的改进了长尾延迟。

8.png

2. 网络:高速混合云

原有的集团安全域,由现有的集团自建网络为主体逐渐转变为以云上集团的虚拟网络为主体,以 VPC 的方式实现网络隔离混合云网络:为了实现集团网络与云上 VPC 内业务单元的互通,采用了云专线产品方案,组成了混合云网络。云专线方案中的虚拟网络网关(xGW 集群),采用硬件化 HGW 集群。

9.png

3. 数据中心:自建网络迁移上云

数据中心自建网络迁移到 VPC,在上云过程中,实现了云 VPC 最大规模提升 4 倍。安全组性能大幅度优化,企业级安全组最大容量提升 25 倍。

在公司内部,各业务自建的网络之间是相互独立的。随着全站云化,网络安全域的形态也随之发生变化,TB 级别的云上云下网络流量对穿,从软件实现的 XGW 升级到软硬结合的 HGW,单节点性能提升 20 倍。

10.png

另外,值得指出的是,资源、账号和权限体系对接互通是上云的重要环节。

上云架构未来演进:云原生

上云已成为趋势,但是核心系统上云只是下一个开始。

企业上云今天已经成为广泛接受的必然趋势,Rightscale state of the cloud report 2019 显示,94% 企业已经在使用云,其中公有云 91%,on prem 70%。

企业的数字化转型的过程中,利用云的能力的过程也分为不同的阶段,一般来说也会是走过和阿里上云类似的过程:首先是弹性使用云的资源,实现部分业务上云,Cloud-hosting。在此过程中,一般是非核心系统使用云资源。然后涉及到核心系统的云化,这里发生的变化不仅仅是上云的应用的数量,更是底层基础设施整体使用云平台的能力的过程。

在阿里巴巴看来,未来是云原生化的。

11.png

什么是云原生?从技术角度讲,云原生技术是一系列的应用构建和运维最佳实践的集合。云原生技术的生命力在于它聚焦于给用户带来价值,这些价值分为几个方面:

  • 容器和资源的编排,如 K8s、Container,带来的运维效率提升,和资源利用率的提升。中心化的编排可以很好的充分编排资源降低企业成本;
  • 分布式系统的可以弹性扩展的能力 Scalability 以及可靠性。尽管互联网技术发展了几十年,到今天,分布式、可扩展、可靠的系统,仍然是很难构建的。也得益于云原生领域开放技术和云的快速发展,一切正在变得越来越容易;
  • 开放治理和开放的技术,改变了云厂商和用户之间的信赖关系,越来越多的企业信赖开放标准的云服务。同时云原生也降低了迁云的成本;
  • 云原生技术所倡导的持续交付,聚焦于企业真正关注的价值,即迭代创新的速度,time to market。

12.png

从上云视角看,云原生(Cloud native)化是最大化使用云的能力,使企业聚焦于业务的实践。

为什么这么说?我们以阿里核心系统演进为例说明云原生化和使用云的能力的关系。

阿里巴巴的应用上云前仍然存在应用和基础设施耦合问题,由于采用自建软件基础设施,配置管理、发布升级、监控观测、流量治理等与业务应用耦合在一起,对于运维效率、研发演进效率和稳定性都带来了挑战。

我们在上云过程中看到,实现标准的云基础设施和业务应用的全面解耦,将会带来全面的研发运维效率提升。

13.png

那么,使用 in-house 自建基础设施就一定不行吗?

阿里巴巴集团的基础设施也是由专门的团队维护的,也在一定意义上实现了基础设施和应用的解耦。不是所有的 in-house 的基础设施就不云原生。事实上,云原生技术的很多发源地,比如 Google 内部的基础设施很好地实现了和应用的解耦并带来了业界领先的研发运维效率。

但是一般来说,由于内部开发容易忽视基础设施和应用的边界而实现了过多的非标功能或者倾向于采用更快速落地的方案,这些容易带来基础设施和应用的更多耦合,不利于长期的演进和效率。

例如阿里的容器化虽然带来了应用发布的标准化的优势,但是在容器化过程中我们采用了富容器方案加快容器化进程,使容器支持了很多虚拟机使用模式(启停、原地更新等),带来了容器的可迁移性比较差,容器运行生命周期可变带来运维成本等。因此运维效率、稳定性和业务的演进效率,在这种耦合中,都受到了不同程度损失。

所以云原生化的关键路径,是实现应用和基础设施的解耦,并且通过采用标准化的云产品方式来支持。

那么基础设施和业务的边界应该在哪里?

阿里巴巴认为边界是在不断的变化过程中,真正的判断标准是业务关注的边界而非架构边界,基础设施应无须业务持续关注和维护。例如,使用了容器服务,是否能让业务无须关注底层资源?也未必,取决于资源的弹性能力是否有充分的支持(否则业务仍需时刻关注流量和资源压力),也取决于可观测性(否则问题的排查仍需关注底层环境)的能力。因此,能够让业务无须持续关注的基础设施本身是一次重要技术演进。

无服务器化的基础设施,具有以下三个特点:

14.png

阿里核心系统的云原生化演进

阿里巴巴集团的核心系统的云原生架构演进,将继续朝着基础设施解耦,业务研发运维效率提升,成本下降的整体目标推进。具体来说,围绕几个重点的方向工作正在展开:

1. 节点托管的 K8s 服务

实现节点运行环境全托管的标准 K8s 基础设施,实现资源和节点运行环境解耦:通过全托管的节点计算资源,业务无须管理服务器降低运维成本。今年 双11 集团实现了上海单元的 ASI 升级,带来发布扩容效率提升、运行时更稳定容器自愈率提升的效果。未来一年将实现核心系统整体 ASI 化。

15.png

2. Service Mesh 化

实现网络、流量管理配置下沉基础设施,与应用充分解耦。Mesh 化带来的价值:

  • 软件基础设施和业务解耦,各自独立演进;
  • 全链路精准流量控制和资源动态隔离;
  • 提供对应用透明的云安全特性(安全特性解耦)。

16.png

3. 应用和基础设施全面解耦

阿里巴巴集团核心系统通过云原生化,实现应用基础设施全面解耦,将有效解决此前存在的运维、研发效率及可迁移性、稳定性风险,这也是云原生带来的技术赋能。像下图所表示的,应用的关注对象,从繁杂的基础设施耦合组件,到只需要关于业务逻辑本身。

17.png

4. 应用交付的标准化:OAM

今天应用的交付仍然面临挑战:目前云上进行应用管理,需要面对的是差异性的云基础设施能力和多样化的运行环境, 需要分别对接和管理,如 SLB、日志、网络环境、后端依赖等。

今年,阿里云和微软云 Azure 联合发布了一个全新的项目,叫做 Open Application Model OAM:开放应用模型。是业界第一个云原生应用标准定义与架构模型。在这个模型下,应用的开发人员、运维人员和支持 OAM 模型的平台层,就可以通过一个标准的 OAM 应用描述来进行协作。

18.png

通过上云,最大化的使阿里巴巴的业务使用云的技术,通过技术架构的演进使业务更好的聚焦于自身的发展而无须关于通用底层技术,使业务研发效率提升,迭代速度更快是技术人的真正目标。正如阿里巴巴集团上云项目的代号所说的,“云创未来”,通过技术创造新的价值和机会,通过技术创新带来更好的未来。

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
28天前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
81 1
|
22天前
|
监控 持续交付 API
深入理解微服务架构:构建高效、可扩展的系统
【10月更文挑战第14天】深入理解微服务架构:构建高效、可扩展的系统
72 0
|
7天前
|
前端开发 安全 关系型数据库
秒合约系统/开发模式规则/技术架构实现
秒合约系统是一种高频交易平台,支持快速交易、双向持仓和高杠杆。系统涵盖用户注册登录、合约创建与编辑、自动执行、状态记录、提醒通知、搜索筛选、安全权限管理等功能。交易规则明确,设有价格限制和强平机制,确保风险可控。技术架构采用高并发后端语言、关系型数据库和前端框架,通过智能合约实现自动化交易,确保安全性和用户体验。
|
15天前
|
存储 数据管理 调度
HarmonyOS架构理解:揭开鸿蒙系统的神秘面纱
【10月更文挑战第21天】华为的鸿蒙系统(HarmonyOS)以其独特的分布式架构备受关注。该架构包括分布式软总线、分布式数据管理和分布式任务调度。分布式软总线实现设备间的无缝连接;分布式数据管理支持跨设备数据共享;分布式任务调度则实现跨设备任务协同。这些特性为开发者提供了强大的工具,助力智能设备的未来发展。
59 1
|
1月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
169 1
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
25天前
|
存储 监控 负载均衡
|
1月前
|
传感器 存储 架构师
构建基于 IoT 的废物管理系统:软件架构师指南
构建基于 IoT 的废物管理系统:软件架构师指南
66 9
|
1月前
|
存储 安全 开发工具
百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现
本文主要介绍了百度公共IM系统的Andriod端IM SDK的建设背景、IM SDK主要结构和工作流程以及建设过程遇到的问题和解决方案。
49 3
|
2月前
|
监控 Android开发 iOS开发
深入探索安卓与iOS的系统架构差异:理解两大移动平台的技术根基在移动技术日新月异的今天,安卓和iOS作为市场上最为流行的两个操作系统,各自拥有独特的技术特性和庞大的用户基础。本文将深入探讨这两个平台的系统架构差异,揭示它们如何支撑起各自的生态系统,并影响着全球数亿用户的使用体验。
本文通过对比分析安卓和iOS的系统架构,揭示了这两个平台在设计理念、安全性、用户体验和技术生态上的根本区别。不同于常规的技术综述,本文以深入浅出的方式,带领读者理解这些差异是如何影响应用开发、用户选择和市场趋势的。通过梳理历史脉络和未来展望,本文旨在为开发者、用户以及行业分析师提供有价值的见解,帮助大家更好地把握移动技术发展的脉络。
81 6
|
2月前
|
网络协议 安全 中间件
系统架构设计师【第2章】: 计算机系统基础知识 (核心总结)
本文全面介绍了计算机系统及其相关技术,涵盖计算机系统概述、硬件、软件等内容。计算机系统由硬件(如处理器、存储器、输入输出设备)和软件(系统软件、应用软件)组成,旨在高效处理和管理数据。硬件核心为处理器,历经从4位到64位的发展,软件则分为系统软件和应用软件,满足不同需求。此外,深入探讨了计算机网络、嵌入式系统、多媒体技术、系统工程及性能评估等多个领域,强调了各组件和技术在现代信息技术中的重要作用与应用。
69 4
下一篇
无影云桌面