2015 年,微信在春晚发红包,在全国观众的冲击下,一度跪倒长达一小时,俯首拜年;


2018 年,淘宝在主持人口播活动开始的一瞬间,服务器瞬间超过负荷,重蹈腾讯三年前的覆辙;


2019 年,百度呕心沥血,成功接下春晚红包项目,洗刷过往十年风尘。

 

春晚战事下,强大如腾讯、阿里皆落得狼狈收场,百度也大有“一将功成万骨枯”之势方才稳下阵脚。

 

上述种种,在罗振宇的口中,“我们对春晚一无所知”,道出了其中的艰辛和挑战。

 

无知、不慎、血拼之后,尘埃落定,春晚战事告一段落。表面上看,是中国三大互联网巨头在春晚巨大流量面前的脆弱。再往深处看,看到的则是数据库、服务器等 IT 设施无法满足时代需求。

 

春晚一战后,BAT 回归自己的商业地盘,在趋势需求和技术驱动下,化曾经的不堪、不甘、不逮为新的动力,奋力去构建更稳固的护城河。

 

或许,相比之下,阿里有更多机会去再次证明自己。

 

 

2019 年双 11,就是一个不错的机会,在需求和挑战面前,静待曾经的不堪被打破。

 

96 秒成交额破 100 亿,达全球最大流量洪峰,每秒订单峰值 54.4 万笔,在这个刚刚过去的 2019 年双 11 中,一个个数字对于消费者多是一场惊叹的狂欢,对于局中人则是静默的宣告着战场的残酷。

 

这一次,阿里技术团队面对第十一次双 11,他们扛住了。

 

在平稳度过 2019 天猫双 11 流量峰值后,阿里宣布其核心系统已 100%跑在阿里云公共云上,中国唯一自研的飞天云操作系统成功扛住全球最大规模的流量洪峰。今年的订单创建峰值更是创下新的世界纪录,达到 54.4 万笔 / 秒,是 2009 年第一次天猫双 11 的 1360 倍。

 

据阿里介绍,两个月前悄悄完成这一浩大的迁徙工程,将数以十万计的物理服务器从线下数据中心迁移到了云上。由此,阿里巴巴成为全球首个将核心交易系统 100%运行在公共云上的大型互联网公司,同为云计算巨头的亚马逊、微软、Google 等无人能出其右。

 

天猫双 11 十一年来一直在推动着阿里的技术进步,每一个峰值性能的背后都需要一个大规模数据中心来支撑,征服双 11 流量洪峰意味着阿里云已经有能力应对商业世界更加复杂的技术挑战。

 

从 0 到 1 的跨越,外人或知此非易事,唯有阿里苦走了十年。今天,站在阿里以技术引领时代的潮头,回顾往昔,忆其峥嵘岁月。

 

忆往昔峥嵘岁月

回顾阿里数据库发展历程,大概可以分为三个阶段:

 

  •  第一阶段(2005-2009)商业数据库时代;
  •  第二阶段(2009-2015)开源数据库时代;
  •  第三阶段(2016 年 - 至今)自研数据库时代。

 


 

商业数据库时代:IOE 成瘾

商业数据库时代是大家熟知的 IOE 时代。

IOE 即:

I(IBM,服务器提供商,他们提供的服务器俗称“小型机”)

O(Oracle,数据库提供商,他们的软件是著名的“甲骨文商业数据库”)

E(EMC,存储设备提供商,他们提供的是“集中式存储”)

 

商业数据库时代,购买国外成熟的设备和系统,几乎是 BAT 和所有国内大企业的唯一选择。从阿里业务规模起始到 2008 年渐成规模,阿里的 IT 架构中,淘宝和支付宝使用的绝大部分都是 IBM 小型机、Oracle 商业数据库以及 EMC 集中式存储。

 

随着用户数和数据量的猛增,服务器的处理能力几近满载,同时伴随着彼时阿里的崛起之势,IOE 的设备和系统逐渐开始暴露出问题,价格太高以及对于大数据量处理能力的瓶颈成为了“去 IOE”最大的诱因。
2008 年中旬,研发一套新技术架构替换掉阿里旧引擎的计划,在公司内部开始萌芽、发酵。

 

同年,王坚加入阿里,为阿里技术的基因埋下种子。

 

 

开源数据库时代:“去 IOE”拥抱开源数据库

 

  • “去 IOE”

2009 年,阿里的 Oracle RAC 集群节点数达到了创记录的 20 个,排名亚洲第一。但随之而来的是服务器的频繁宕机、无法很好满足业务需求和设备、软件等方面越来越高昂的成本支出。

 

规模和动荡之间,有对阿里业务发展速度的褒奖,另一方面又无不是对摆脱 IOE 的敦促。

 

在 2009 一整年的摸索和筹备之后,“去 IOE”正式写进了阿里的公司战略:“2010 年以后,再也不购买小型机、放弃 Oracle、转投开源数据库。”

 

“去 IOE”:即去除以 IBM、Oracle、EMC 为代表的小型机、集中式数据库和高端存储所组成的传统 IT 基础架构,转而以商业化的 x86 服务器和 SSD、开源数据库 AliSQL(阿里巴巴的 MySQL 分支)和分布式数据库中间件 TDDL 组成的更加灵活、易于扩展、成本更优的适合互联网需求的新型 IT 基础架构。

 

“去 IOE”带来了三个重大的意义:

  • 第一是解决了扩展性的问题,让数据库具备了横向扩展(弹性)的能力,为未来很多年双 11 零点交易峰值打下了很好的基础;
  • 第二是自主可控,阿里在 AliSQL 中加入了大量的特性,更能满足双 11 等特定情况下对于数据库的技术要求;
  • 第三是稳定性,原来在商业数据库时代,把所有数据都放在小型机里,去 IOE 之后不仅仅解决了单机故障,更是通过异地多活的架构升级让数据库跨出了城市的限制,可以实现数据库城市间的多活和容灾,大大提升了系统的可用性。

 

从更深层的意义上说,“去 IOE”是在互联网+、云计算快速兴起后,企业用户迫切需要能够保证其业务发展和创新的更加开放、灵活、高效的 IT 基础架构。此举推动了用横向扩展取代纵向扩展,用开源软件代替商业软件的进程,为云计算的发展搭桥铺路。

 

此外,“去 IOE”还促进了我国自主可控的发展。阿里的成功让大量中国的服务器厂商、软件平台和应用软件厂商,以及立足自主研发的存储厂商看到了实现跨越式发展的契机。

 

2009 年,阿里云正式成立,在王坚的带领下从零开始打造那个想象中的属于中国的云计算系统,取名“飞天”。

 

 

  • 开源数据库

“去 IOE”迫在眉睫,一众阿里技术大牛投入其中。一年的努力,开源数据库 MySQL 的一个阿里专属分支 AliSQL 被雕刻出来。2011 年 7 月,淘宝商品库完成了从 Oracle 到 AliSQL 的大迁移,意味着软件替代方案被验证成功。

 

硬件方面,AliSQL 团队在硬件替代方案上不断验证,协助设计了一套兼顾网络性能、存储性能和成本最优的服务器采购方案。

 

软硬俱全,阿里扣响了通往开源数据库的大门。整个阿里巴巴集团进入了 2012-2013 年史诗般的整体大迁移。

 

AliSQL 数据库开始一点一滴地渗透进集团每一个服务中。2013 年 5 月,阿里最后一台小型机下线;2013 年 7 月,淘宝核心系统中的最后一台 Oracle 数据库下线。至此,“去 IOE”战略宣告达成,这场史诗般的大迁移落下帷幕。

 

2012 年双 11 前,淘宝天猫的所有数据库都从 Oracle 替换成 AliSQL,阿里巴巴依靠 AliSQL 重返那个盛大的战场,接受最严酷的考验;

 

2013 年,阿里惊险的实现单集群 5000 台服务器,把飞天推上 5K,杜绝了诸多业务停摆的灾难。
其中,在 2013 年双 11 前,阿里技术团队还完成了两项技术创新:“服务器资源弹性部署”和“数据中心异地双活”。

 

服务器资源弹性部署,可以应对不可预知的业务爆发。一旦有超出预期的业务热点出现,系统可自动调用其他资源使用不足的服务器,实现“分钟级无缝切换”,在不增加硬件部署的情况下应对更复杂的流量变化;数据中心异地双活则可以帮助阿里应对极端的情况,即使杭州的数据中心宕机,系统仍然能够支撑双 11 的顺利运转。

 

在此,有业内人士指出,目前行业普遍采用的是“两地三中心”部署架构,即在一个城市设两个机房,在另一个城市设一个冷备机房。而阿里的容灾系统是“三地五中心”,即在三座城市部署五个机房,一旦其中一个或两个机房发生故障,阿里的底层技术系统会将故障城市的流量全部切换到运行正常的机房,并且能做到数据保持一致且零丢失。

 

帷幕之下,大众尽兴四散,看不到的背后是阿里 2012 年双 11 的涅槃重生,是 2013 年双 11 有惊无险。惊险一跃,飞天 5K 的成功开始让阿里云驶上了快车道。

 

因为突破了技术瓶颈,在 5K 之后,ODPS(飞天 5K 计划项目名)只用了几个月就冲上了单集群 10K,进而实现了无限制扩展。到 2018 年,已经更名为 MaxCompute 的 ODPS 达到了数万台的规模。

 

飞天是国内目前唯一自主研发的云操作系统,已发展成国内规模最大的计算平台,调度全球数百万台服务器,在全球 200 多个国家和地区为数百万客户提供服务,可扩展至 10 万台计算集群,在阿里经济体中支撑了全局数据存储和计算,年数据处理量超过 600PB,阿里提供的数据显示,公司 AI 服务的每日调用量高达百亿次,服务全球近 15 亿人。

 

 

自研数据库时代:开创未来

2016 年,阿里决定开始自研数据库。

 

对于自研数据库的原因,有以下三点:

第一,阿里需要一个能够全球部署的原生分布式数据库;

第二,双 11 的场景对数据库提出了极高的要求:

  • 性能:在双 11 零点需要数据库提供非常高的读写能力;
  • 存储成本:数据库使用 SSD 来存储数据,而数据存在明显的冷热特性,大量冷的历史数据和热的在线数据存放在一起,日积月累,占用了大量宝贵的存储空间,存储成本的压力越来越大。继续在开源数据库基础上进行改进已经无法满足业务需求。

第三,新的硬件技术的出现,如果说 SSD 的大规模使用和 X86 服务器性能的极大提升推动了去 IOE 的进程,那么 NVM 非易失内存,FPGA 异构计算,RDMA 高速网络等技术将第二次推动数据库技术的变革。

 

  • POLARDB

2017 年 9 月,POLARDB 盛大发布。

 

POLARDB 是阿里自主研发的下一代关系型分布式云原生数据库,目前兼容三种数据库引擎:MySQL、PostgreSQL、高度兼容 Oracle 语法。计算能力最高可扩展至 1000 核以上,存储容量最高可达 100T,能够解决数据量瓶颈、扩展难以及数据一致性和可用性难保证等主要问题。

 

大概能够理解为,过去需要 70 个小时的 10TB 的业务数据创建只读副本,在 POLARDB 上只需 2 分多钟。更关键的是,它的成本只有商用数据库的十分之一。发布后半年内,上千个用户用上了这个新数据库。

 

  • X-DB

此外,针对淘宝订单地域多样的特殊业务场景,要求数据要可扩展,持续可用、强一致。因此,新一代数据库必须要包含全球部署、对存储数据冷热隔离等几个重要特点。

 

一个自研的超大规模数据库系统 X-DB 由此诞生。短短几个月,X-DB 就在集团体系内完成了 MySQL、AliSQL 集群的升级换代。

 

可以看到,对阿里的自研数据库而言,2017 年意义非凡。正是从这一年开始,以大致胜的 X-DB 和以快致胜的 POLARDB 成为了阿里数据库的两款拳头产品。
(X-DB 现已更名 POLARDBX,成为 POLARDB 的分布式版本,共同通过阿里云为社会提供服务。)

 

神龙架构

同年,阿里云“神龙架构”横空出世,此后的 2018、2019 年,神龙架构一年一个台阶,第二代、第三代神龙服务器接踵而至。

 

在今年的阿里云栖大会上,阿里云正式发布第三代自研神龙架构,全面支持 ECS 虚拟机、裸金属、云原生容器等,贯穿整个 IaaS 计算平台,并在 IOPS、PPS 等方面提升 5 倍性能,用户能在云上获得物理机 100%的计算能力。在历经软件虚拟化、通用硬件虚拟化、专用硬件芯片虚拟化三个阶段后,第三代神龙架构实现了裸金属服务器、ECS 虚拟机等计算平台的架构统一,用户可获得高质量的弹性资源。

 

阿里云官方透露,神龙架构已大规模应用于淘宝、天猫、菜鸟等业务。未来,阿里云遍布全球的百万服务器将全面升级至第三代神龙架构。


上述是阿里在数据库方面的改进和革新,三个阶段分别代表着阿里在三个不同的发展时期对不同业务需求做出的应对之举。每一个阶段过渡的背后,都是一代代阿里人对于信念和执着的真实写照。

 

那么,数据库之外,阿里还做了哪些尝试和颠覆?

 


其它技术突破

  • Tair

在双 11 的历史上,阿里自研缓存 Tair 是非常重要的技术产品,Tair 是一个高性能、分布式、可扩展、高可靠的 key/value 结构存储系统。数据库正是因为有了 Tair 的帮助,才扛起了双 11 如此巨大的数据访问量。

 

但是,在 2016 年双 11 期间,Tair 遇到热点这一技术难题,由于热点无法预测,加上访问量非常大,很容易就超出了单机的容量限制,CPU 和网卡都会成为瓶颈。

 

对 Tair 来说,在保证高并发访问的同时,如何确保低延迟,如何确保成本低于业务增速的技术挑战越来越大。对于分布式存储系统来说,热点问题都是比较难解决的。而缓存系统流量特别大,热点问题更为突出。

 

2017 年,团队开发出热点散列技术,当发现热点后,应用服务器和 Tair 服务端就会联动起来,根据预先设定好的访问模型,将热点数据动态散列到 Tair 服务端其它数据节点的 HotZone 存储区域去访问。通过将热点散列到整个集群,所有集群的水位均降低到了安全线下。

 

  • “预热”技术

双 11 期间,购物车等数据库在零点的一刹那,由于 Buffer pool 中的数据是“冷”的,当大量请求在零点一瞬间到来时,数据库需要先“热”起来,需要把数据从 SSD 读取到 Buffer pool 中,这就导致瞬间大量请求的响应时间变长,影响了用户的体验。

 

因此推出“预热”技术,即在双 11 前,让各个系统充分“热”起来,包括 Tair,数据库,应用等等。为此专门研发了一套预热系统,预热分为数据预热和应用预热两大部分,数据预热包括:数据库和缓存预热,预热系统会模拟应用的访问,通过这种访问将数据加载到缓存和数据库中,保证缓存和数据库 BP 的命中率;应用预热包括:预建连接和 JIT 预热,我们会在双 11 零点前预先建立好数据库连接,防止在高峰时建立连接的开销,也保证了 JAVA 代码可以提前充分编译。

 

  • 存储计算分离

如果计算和存储绑定在一起,无法实现极致的弹性,因为计算节点的迁移必须“搬迁”数据。此外,发现在双 11 高峰时,对于计算能力的要求陡增,但是对于存储能力的要求并没有发生显著变化,如果可以实现存储计算分离,双 11 高峰只需要扩容计算节点即可,因此催生出存储计算分离技术。

2018 年双 11,随着存储计算分离技术的大规模使用,标志着数据库进入了一个新的时代。

 

  • 在线离线混部

日常让离线任务跑在在线(应用和数据库)的服务器上,双 11 大促在线应用使用离线的计算资源,在实现存储计算分离技术后,数据库可以在双 11 使用离线的计算资源,从而实现极致的弹性能力。通过使用云资源和混部技术,可以最大程度降低双 11 交易峰值带来的成本。

 

  • 智能化

数据库和智能化相结合也是阿里一直在探索的一个方向,比如 Self-driving Database 等。2017 年,第一次使用智能化的技术对 SQL 进行自动优化。近年来,全网推广 SQL 自动优化和空间自动优化,希望可以借此来降低 DBA 的工作负担,提升开发人员效率,并有效提升稳定性。相信,在未来的双 11 备战工作中,会有越来越多的工作可以交给机器来完成。

 

达摩院

2017 年云栖大会上,“达摩院”成立,致力于通过科技研究和创新探索未知领域,誓要争夺未来 10 年的技术高峰。阿里巴巴达摩院由三大主体组成,一是在全球建设的自主研究中心;二是与高校和研究机构建立的联合实验室;三是全球开放研究项目 - 阿里巴巴创新研究计划(AIR 计划)。
如今,达摩院建立 14 个实验室,专注于机器智能、数据运算、机器人技术、金融科技 X 实验室五个方面的研究。

 

平头哥

2018 年,平头哥成立,平头哥是阿里全资收购杭州中天微后的半导体芯片业务主体,主要针对下一代云端一体芯片新型架构开发数据中心和嵌入式 IoT 芯片产品。平头哥从云和端两个方面进行软硬深度协同的技术创新,目标是让数据和计算更普惠,持续拓展数据技术的边界。

 

如今,平头哥已陆续有多款产品亮相:

2019 年 7 月,平头哥发布了高性能 RISC-V 架构处理器玄铁 910,集成 16 个核心,主频 2.5GHz,采用 12 级乱序流水线,最大支持 8MB 二级缓存,搭载 AI 增强的向量计算引擎,可用在人工智能加速器、网络通信和自动驾驶等领域。当时公布的数据显示,玄铁 910 较业界主流芯片性能提高 40%,较标准指令性能高出 20%。

 

8 月,平头哥又发布 SoC 芯片平台“无剑”,无剑平台由 SoC 架构、处理器、各类 IP、操作系统、软件驱动和开发工具等模块构成,面向 AIoT 提供的集芯片架构、基础软件、算法与开发工具于一体的整体解决方案。根据官方的说法,无剑能够帮助芯片设计企业将设计成本降低 50%,设计周期压缩 50%。

 

9 月,在阿里今年的云栖大会上,平头哥发布了其第一颗自研芯片含光 800,该芯片推理性 78563IPS,业界第一,能效比 500IPS/W,是目前全球最强 AI 推理芯片。目前,含光 800 正在应用于城市大脑、拍立淘等业务,基于该芯片的 AI 云服务也已正式上线,明年双 11 将大规模应用平头哥自研的含光 AI 芯片。
另外,在生态建设方面,平头哥还将成立芯片开放社区。不仅如此,平头哥还在研发用于阿里云神龙服务器的 SoC 专用芯片。未来,阿里还将进一步完善产品形态,推出包括云端 AI 训练芯片和终端 AI 推理芯片,满足更多场景的算力需求。

 

“双 11”回顾

回顾历届双 11,根据阿里云官方分享的数据可以看到,阿里云的发展历程和算力峰值都在不断变化和提升。

 


对于本次如何撑住了双 11 世界级的流量洪峰,阿里巴巴集团 CTO、阿里云智能总裁张建锋总结道:

 

第一,阿里在核心虚拟机系统上,自研神龙架构,用自研的服务器来做虚拟化。一般的服务器随着压力增长,最终负载能力会慢慢下降,它不是线性的。而神龙服务器压力越大,输出也是保持线性的,这是非常难做到的;

 

第二,自研了云原生的数据库。今年有两个数据库,一个是自研的 OceanBase,大家知道我们在 TPC-C 测试里面拿下了全球第一。第二是 POLARDB,也广泛用在这次双 11 上,每秒峰值也是远远超越于原来 Oracle 这样传统的数据库。

 

第三,计算与存储做了分离,现在阿里存储是有一个地方专门存数据。数据都是从远端存取的,有一个专门的池,所以存储可以很方便的扩容。原来做不到是因为远端存储,访问网络速度跟不上。

 

第四,之所以现在能够做到在远端存储,能够比本地读写磁盘更快,是因为阿里做了 RDMA 网络,这也是全球第一个大规模做 RDMA 网络的公司。

 

在上述四个方面都做了核心突破,以此来应对愈发庞大的交易峰值。相信,随着达摩院和平头哥的发展和产品融合,未来将会有更完善的产品去助力算力提升,应对更大的流量洪峰,满足更高的业务发展需求。

 

结语

十年来,阿里巴巴数据库团队秉承着推动中国数据库技术变革的使命,从商业数据库到开源数据库再到自研数据库,一直在为这个使命而努力奋斗。

 

如果说“去 IOE”是变革的开始,那么云就是变革的继续,如今的阿里云,已经在中国公有云市场占据了近一半的份额,稳居全球前三大云之列,40%的中国 500 强企业和 80%的科技类公司都汇集在阿里云之上,使用着阿里云提供的云服务。

 

下一个十年,阿里云又将带来怎样的惊喜和颠覆?

 

未来可期是留给我们最好的答案。

 

 

文章参考

史中:《阿里云的这群疯子》、《阿里巴巴“数据库侠客”:此行路远,不问归期》、《百度的春晚战事》
云哥特:《十年,从“去 IOE”走出来的阿里云》
维科网:《起底阿里云“神龙架构”》
知乎:“净整些没用的”博主回答内容
技术小能手:《阿里 CTO 张建锋:不是任何一朵云都撑得住双 11》
张瑞:《一个阿里技术男经历的六年“双 11”:技术改变阿里》