首页 人物 内文

双11零点时刻的技术会战

2019年11月14日 文/ XY 编辑/

​​

对普通人来说,刚刚过去的双11意味着2684亿交易额、全球5亿消费者、数百万商家、超过12亿的包裹……数以亿计的人同时在手机上疯狂点击,构建了一座新消费主义时代的丰碑。同时,在不可见的数字世界,双11是阿里云上不可估量的数据、信息的调度、存储和计算,试图触碰技术能达到的极限。

在双11进入第11个年头时,阿里巴巴集团宣布核心系统100%上云,这是一项超级工程,它可以追溯到10年前阿里云成立之初,背后是10年孤注一掷的技术投入。云上的双11,这是一个关于物理世界和数字世界连通的故事,也是一场长达11年的冒险。

文|XY

吹响号角的一年

「今年开始,阿里巴巴不再采购物理机,所有新增计算都上公共云。」

2019年,正月初二,阿里巴巴几乎所有技术Leader被召回西溪园区。CTO张建锋宣布阿里巴巴全面上云的最后冲锋到来。

历史的碎片总是惊人的相似。2009年底,淘宝写下的一句:从今天开始,淘宝不再采购小型机,这拉开了浩浩荡荡「去IOE」的大幕。

两句话隔了10年,一句是出发,一句是登顶。

「我希望在两年内能完成全站云化目标,在一年的时间内有重大进展。」张建锋提出了具体的目标,「怎么衡量『重大进展』呢?就是核心系统可以完全跑在一朵云上,今年双11是第一个重大节点。」

第一个技术里程碑被设定成为今年的618大促,出征的战士们举起了一个「军令状」,登顶的号角已经吹响。

一张照片记录下当时的情景。张建锋站在前排,身后站着数十位参与动员大会的技术骨干,有人眉头紧锁,也有人在拍照时悄悄比出了V。

乐观的现实主义者往往是最先看到问题的。神龙团队被选中,阿里巴巴全面上云将全部采用神龙云服务器架构。但他们只高兴了一秒,就又皱起了眉头。

「钉钉随时都在咆哮。」杨航搜了一下项目相关的钉钉群,发现自己已经数不清有多少个。

最大的群名字叫『阿里技术大团建』,这项任务就是各个团队一起拉练,还加上了全球顶级的硬件供应商。

为了支撑阿里巴巴极其丰富的商业场景,神龙服务器衍生出了将近20个版本。

有的系统要求有64个弹性网卡,有的系统对网络的要求特别高,有的系统最早设计是物理网络……杨航拉了一下收集回来的改进事项,闭眼深吸一口气,开始了浩大工程的排期。

这是所有诞生在云计算出现之前的企业,要向公共云迁移的必经之路。在此之前,神龙在帮助企业向云上迁移这件事情上,几乎无往不利,但阿里巴巴不同。

「能把我们自己搬上云,就没有搬不上云的系统。」杨航说。

阿里巴巴有上万个应用,都是跟钱相关,每一个订单、每一个库存、每一个包裹、每一笔支付,出错了都是大事,这是全球最极端复杂的系统。

大数据系统尤为「顽皮」,常常能把带宽打满到90%,这意味着系统设计足够好,能够榨干硬件的性能。对绝大部分互联网企业而言,能够把带宽吃到50%已经是极限。

到6月18日,阿里巴巴全面上云的第一站618大促终于来了。负责总保障的霜波心里还是有些忐忑,让团队重点做了2分钟逃逸方案。

「我做了10年双11,都没有今年618紧张。」霜波说,那晚她通宵了,即使在双11,她也是能睡五六个小时的。

屏幕上是最核心的指标曲线,订单创建成功率,任何的系统抖动都能在这根线上反应。她盯了一晚,最担心的那种情况始终没有出现。

「心里终于稳了点。」

上万个应用、数以十万计的服务器、数百万容器的迁移按期进行,阿里巴巴五万多工程师和科学家基本都融入在这个浩大的项目中。

「和当年飞天的争议不同,这次大家心里都是认的,云计算一定是未来。」

9月9日,核心系统100%实现云化,没有仪式,没有庆祝。他们知道,即将到来的双11,过关了,才是真的过关。

在渐渐为双11忙碌起来的阿里巴巴园区里,还有一个人的心也是吊着的,他想来想去,给双11技术大队长霜波交代了一项绝密任务。

凌晨一点五十的突袭

10月9日,距离双11还有一个月。

原本准备出差的阿里巴巴资深技术专家万谊平被霜波拦了下来。

这天,霜波接到张勇的绝密任务——召集一个突袭小分队,向已经将核心系统100%迁移至公共云上的庞大系统,发起攻击。

埋在技术热词之下,这是云计算服务的重要一环。云计算从诞生之初就被认为是新型的数字基础设施,需要在任何情况下实现稳定服务。

行动是高度保密的,所有技术团队全都蒙在鼓里,万谊平的突袭小分队计划在三次大规模的压测中释放「炸弹」,从不同角度检验这个系统。

最狠的一次,突袭让阿里巴巴位于张北的数据中心直接宕机一个高效云盘,瞬间将淘宝天猫的订单创建打掉了35%。

当晚,在双11技术作战指挥室的工程师们有些懵,而后依据预案在5分钟内把系统救了回来,一切恢复正常。

到11月2日,突袭小分队还有最后一次机会,他们决定将炮火抛向今年几乎承包了整个核心系统的神龙服务器。

这天他选了一个隐蔽的会议室里,远离灯火通明的光明顶。在灰暗的灯光里,万谊平平静地看着电脑屏幕上的流量曲线。当压测流量达到100%时,他按下键盘,向神龙发射了一枚「导弹」。

「卧槽!」神龙团队的杨航在同一秒被「炸」到了,电脑屏幕上不间断的跳出报警信息,手机被钉钉震得掉下了桌子。

100台神龙服务器集体宕机了!

抬头看了一眼光明顶的计时器,凌晨1点50分。心陡然一沉,瞬间血涌大脑。

工程师们纷纷看向杨航坐的角落。这晚,阿里巴巴西溪园区的1号楼7楼的光明顶聚集了几乎所有的技术Leader。

既定的流程是从凌晨0点开始,模拟的双11流量开始冲击整个系统,就像洪水灌向一个城市纵横复杂的下水道体系,正在灵魂叩问每一个关卡。

就在洪峰最大的时刻,这条报警信息冲向了所有人的屏幕。

杨航迅速拉起一个六十多人的钉钉群,按照既定预案开始排查,2分钟后,他提到嗓子眼的心终于放了下去,「是系统误报,神龙没有问题!」

这是万谊平故意设计的误报,考验的是应急流程和执行,2分钟内的协同排查和结果回报,完美通过考验。

在那个隐蔽的小会议室里,万谊平满意地合上了电脑。

历经三次突袭,而且是高风险的线上流血演练,阿里巴巴数十个参战BU的集团军应急协同、排查定位、快速恢复能力考核合格。

心里一句「双11,稳了。」

零点时刻

11月10日,中国杭州,阿里巴巴园区亮起璀璨的灯光。

双11终于来了。

全球数亿人都在不停的刷着手机,静等零点。

2019年11月10日23点45分,光明顶技术作战中心,霜波拿起话筒,「还有15分钟」,现场立刻安静下来。

光明顶,位于阿里巴巴西溪园区一号楼7楼,屋内有一块硕大的屏幕,实时播报阿里各项核心数据,绝密之地,双11的技术作战中心。整个阿里大约11万人,能有资格入内者不足200人,绝对的阿里「技术天团」。

霜波,双11技术大队长。每年,为了应对「双11」,阿里巴巴都会成立集团技术大促小分队,由集团49个BU的上千名工程师组成,并且任命技术团部以及大队长。

透过光明顶的窗户,园区灯火璀璨,宛如一场魔幻的灯光秀,媒体云集,「定胜鼓」间隔响起。

光明顶里是另一番景象。音量最大的是键盘的敲击声。霜波的视线一直没离开数据大屏,「目前,各项数据指标正常」、「还有5分钟」「还有1分钟」,每隔几分钟,她间或说一句,面色平静,语气平缓。

零点一到,流量洪峰以肉眼可见的速度暴涨。

根据过往十年双11的经验,最初的十几分钟是阿里巴巴后台系统的生死大考。「技术团队的每个人只有一次机会,就是在11日凌晨的那十几分钟,顶过去就顶过去了,顶不过去,今年的双11大促就失败了。」

大屏上的数字在快速滚动。

1分36秒, 成交额100亿! 「技术天团」没有丝毫欢欣,今年订单创建峰值又创世界纪录,达到 54.4万笔/秒,是2009年第一次双11的1360倍。

一分一秒过去,峰值曲线还是一条直线,丝毫没有顿挫迹象。

13分钟后,霜波通过连线,告知守候在光明顶外部同事,平稳度过峰值。

阿里巴巴正式宣布,其核心系统已100%跑在阿里云公共云上。中国唯一自研的飞天云操作系统,成功扛住全球最大规模的流量洪峰!

现场响起了掌声,11年双11,终于做到了。

十一年技术长征

11日晚,阿里巴巴集团CTO张建锋有足够的底气去叙述这个历时11年的技术长征:「用公共云来承载这样一个万亿规模的核心系统,阿里云是第一个做到的。」

「不是任何一朵云都能撑住这个流量。中国有两朵云,一朵是阿里云,一朵叫其他云。」张建锋说,「阿里云不一样,10年前我们从第一行代码写起,构建了中国唯一自研的云操作系统飞天。」

这不是一个简单的替换,而是一个11年的技术跨越。

历史拉回到11年前,2009年,第一届双11,成交额5000万,峰值订单创建仅有400笔/秒,只是今年的一千三百六十分之一。

当时阿里巴巴办公室还在杭州的华星时代广场,同样是零点时刻,电脑前的运营小二就从座位上跳了起来。

「卧槽!页面打不开了!」他惊呼,求爷爷告奶奶才说服商家来搞双11,结果0点一到就被流量冲垮了。

直到今年的阿里20周年年会上,回顾视频依旧在调侃当年服务器过热的情景,当时负责淘宝技术的刘振飞对服务器扇着扇子,嘴里嘟囔着「重启!重启!」

当时,阿里巴巴流水一样的钱花在了「IOE」上,跟IBM买服务器、跟甲骨文买数据库、跟EMC买存储。

一封邮件直达董事局:「如果再没有替代方案,『IOE』就要拖垮阿里了。」

这年双11后最重要的复盘,就是淘宝写下了一句改变中国IT历史进程的话:从2010年起,淘宝不再采购小型机。

「去IOE」的大旗竖起,飞天的研发同步启动。

这年,阿里云工程师在北京上地一个没有空调和暖气的办公楼里,写下了飞天云操作系统的第一行代码。

中国从来没人做成过操作系统,更别说飞天这样面向下一代的云计算操作系统。不出意料地错漏百出。

工程师必须24小时盯着系统,从云计算变成了人肉计算。一位奶爸工程师为了值夜班盯系统,把自己小孩的哭声设成了闹铃,才能不论多困都从床上跳起来。

到2012年,自研飞天的进展缓慢,潮水般的质疑声扑向了飞天团队,阿里内网上出现了一场前所未有的巨大争议,卷入了从P5到P11的几乎所有技术员工。

其中也包括马云。

马云在一次内部会议上回应了这场争议。他说,如果输的只是钱,为什么不输?没什么好输的怕什么?万一失败了,但我们为中国培养了成千上万的工程师,没什么可惜。

就在这年,双11加入了飞天「陪练团」,服务商家的IT基础设施「聚石塔」迁移上云。

到2013年,飞天单一集群规模达到5000台,成为全球第一家对外提供这一能力的公司,这场从「去IOE」到飞天的故事才告一段落。

在算力上的第二次跃升,是在2016年。又是一年双11后技术复盘会,阿里巴巴集团CTO张建锋还是抛出了一个致命的问题:虚拟化损耗必须想办法降到0。

虚拟化几乎是困扰云计算行业的第一项「原罪」 ——虚拟化技术导致物理机的算力被损耗,于是上云就会带来更大的开销。

既然能从无到有,造出飞天,阿里云的工程师们决定干脆捅开最后一层天花板。

旭卿,阿里云弹性计算的技术负责人,这项攻坚任务就落在他的肩头了。与阿里云副总裁李津「脑暴」后,他们想出一个软硬结合的方案。

以往的解决路线都是让虚拟化软件去迁就CPU的特性,而阿里云的打算是新造出一个带有智能芯片的专用板卡负责虚拟化调度,从而把那些CPU解救出来。

接下来差不多一年时间,阿里云解决了四件事:虚拟化软件开发、软硬件衔接的中间层、核心芯片设计、硬件(板卡、服务器)设计。

2017年,神龙云服务器正式发布。2018年,首次规模化应用在双11。到2019年,神龙已经承包了阿里巴巴的算力基础。

风起于青萍之末,在飞天、神龙之外,还有云数据库、数据中台、业务中台、AI技术……数不尽的技术投入。

2010年阿里巴巴开始研发OceanBase数据库,去掉了对「IOE」的依赖。云数据库PolarDB广泛应用,创新了数据库的标准。

回望十一年双11的历程——2009年开始自研云操作系统飞天、2011年首次应用自研数据库OceanBase、2014年实现异地多活,2015年实现混合云弹性架构、2018年首次应用神龙服务器,到今年核心系统100%上公共云。

没有10年来的技术投入就没有今天上云的可能。

永不停止的创新

如果将视线从双十一的天文数字上移开,回到一个更根本的问题:阿里为什么要冒险让大象在云端起舞?

对于阿里云而言,这等于翻过了一座高山。AWS还没有完成承载Amazon,而阿里云上承载了阿里巴巴。双十一本身,也是对阿里云技术能力的一次压测,这也意味着,视野可及的范围内,再也没有阿里云不能服务的公司。

对客户而言,阿里巴巴把自己的身家性命和客户紧密绑定在一起。就好比民航飞机上,机组人员包括飞行员、空乘等都是不配备降落伞的。所以每一次飞行,机组人员都会认真处理。

另一方面,这一问题的答案最终还指向我们的时代「焦虑」——下一个颠覆性创新最有可能发生在哪里?

在科技领域,一个基本的共识是,技术荒漠化很久了,真正颠覆性的创新一直没有出现。所有人都在等待,仿佛等待黎明破晓。

「云上。」这是阿里的答案。

数字经济时代,云计算已经成为水电煤这样的基础设施,未来几乎所有新生的科技公司,都将基于云来搭建自己的架构。

只要人类在向前,技术和商业的创新永远不会停止。

充满想象力的未知世界是一座没有光的房间,阿里云今天做的,只是凿开了一扇小小的窗户,让光透进去。后来的人,可以循着他们走过的路,打开一扇门,找到正确的方向,走得更远。

就像那句亘古的话:「功成不必在我,当然,我希望是我。」