查看原文
其他

马云的成功背后不仅有败家娘们儿,还有他们……

2016-11-11 十万个IT为什么
“每个人只有一次机会,就是在11日凌晨的那十几分钟,顶过去就顶过去了,顶不过去,今年的双11就失败了。”——这是马云团队运维人员的感言。


网上流传着这样的话:


一个成功的男人背后一定有个伟大的女人。


马云除外,他成功的背后TM有千千万万败家的娘们。


其实,在马云的背后还有这么多的运维人:


作者:黄宗彦   编辑:曼曼掏粪工


每年的11月11日00:00:00,阿里巴巴集团最紧张激动的时刻。剁手党们的热情这一刻开始爆发,反映到数字上是截至11日早间6点54分,天猫双11成交额达571亿元,打破2014年天猫双11全天交易额纪录!而在二进制世界里,则是极短时间内如海啸般涌入的超大规模流量。


流量洪峰的杀伤力,曾在2011年和2012年的双11给阿里巴巴的技术团队留下了午夜惊魂的难忘回忆。如何不打一场没有准备的仗?全链路压力测试登场,它改变了阿里巴巴应对零点流量洪峰的态度和方式,也正一次次刷新中国互联网世界的纪录。 

“双11是整个中国商业基础设施的一个大考,也是中国技术的一个大考。”马云曾这样表述双11对中国社会的意义。


零点保卫战


2016年11月5日零点,阿里巴巴杭州西溪园区1号楼一间名为“光明顶”的双11指挥室,灯火通明。“开始!”现场指挥者陈琴(花名霜波)手里拿着话筒发出指令,巨幅屏幕上各项数据指标快速跑动。


深夜的全链路压力测试现场没有丝毫午夜的静谧,280个技术骨干在这间已多次见证双11辉煌的会议室里为2016年双11上的最后一道保险——全链路压力测试的终测正式上演。


深夜的全链路压力测试现场没有丝毫午夜的静谧,280个技术骨干在这间已多次见证双11辉煌的会议室里为2016年双11上的最后一道保险——全链路压力测试的终测正式上演。



零点在阿里巴巴园区有着特别的意味。进入11月,距离11日越近,淘宝城里的零点就越热闹紧张。巅峰当然在东八区的11日零点和12日零点到来。为了这个24小时,整个阿里巴巴要用长达半年的时间准备,严阵以待应对来自全世界剁手党们的购物热情。


零点一到,流量洪峰立即杀到,这最初的十几分钟就是每年双11阿里巴巴后台系统的生死大考。“技术团队的每个人只有一次机会,就是在11日凌晨的那十几分钟,顶过去就顶过去了,顶不过去,今年的双11大促就失败了。”这是技术团队对于零点大考的认知。2015年,压测升级到全自动备战,整个双11和阿里技术平台的稳定性实现了一次大升级。



但即便是全自动备战,5日凌晨的压测演习终测,阿里巴巴集团技术委员会主席王坚博士仍亲临现场。“不能因为我们让这么好的商业想法做不成”,此前的采访中,他这么看待技术团队在双11要承担的角色。


掌握最贵的回车键


零点的考验让每一个阿里巴巴人印象深刻。


在阿里巴巴集团CEO张勇(逍遥子)那里,它是2011年双11的午夜惊魂。他在今年的双11香港启动会上首次对外透露,“零点以后,我们的支付、系统没有问题,但是我们的库存系统出了问题。”由于系统故障,商家的库存显示被打乱,页面上的尺码与颜色与库存不匹配。经过紧急抢修,天亮前系统恢复了,但那一年的双11张勇彻夜未眠。
消费者的购物热情转化成了对系统的负担,它也直接传递到系统开发和维护体系里的每一个人身上。点击、滑动流量、下单,用户每一次行为都是二进制世界里的一个数据请求,全世界剁手党的消费热情汹涌而至时,在这种超预期的数据洪流面前,技术团队的压力可想而知。
这是一场人与时间的赛跑,人的智力与应变速度要在系统出现Bug时及时应对,保证消费行为顺利发生。对于技术团队而言,双11的顺利进行是个责任。“这个责任有一种不可承受之重,因为它输不起。它没有退路。”
用王坚对技术团队说过的话就是,“你们掌握着世界上最贵的回车键。”打错一个回车键,可能整个双11系统就崩溃了。
一个只许成功不许失败的任务摆在面前了,阿里巴巴的技术狂人们用自己的方法解压。开弓没有回头箭,但也许磨刀不误砍柴工。技术团队意识到,这个只许成功不许失败的任务或许有新的破解之道——事前先模拟一遍甚至几遍双11的交易场景,就可以发现问题及时修复,针对修复不了的漏洞制定相应的紧急预案,到了双11当日才不至于出现不可挽回的局面。
阿里巴巴技术团队应对双11当天零点流量压力从此不再毫无准备。流量给人的压迫感也在减小。5日的最终压测现场, 0点27分时交易量突然出现了明显下滑,核心的指挥者们皱起了眉头,现场却并没有失掉节奏。

他们在打的是一场有准备的战争。


“火箭发射很多次,再一点火,就成功了”


阿里团队成员庄卓然这么看待全链路压测,“意味着在一定的时间内,在一定的机器规模和业务规模之下,有能力去保障预案和稳定性的准备都能够落到确定性上。”


压力测试是评估网站性能的重要手段。
在全链路压力测试出现之前,无论是线下模拟的单一集群的压测还是线上引流压测,暴露出的基本上是一些单点问题。这两种传统的压力测试方式在模拟双11当天的高峰期真实压力,还存在着巨大的偏差。
全链路压力测试诞生于2013年双11之前,多个技术部门采用了线上真实用户数据与人为测试数据相结合的方式,首次成功地在生产环境中模拟出相对真实的超大规模的访问流量,将前端系统、网络、数据库等一整个系统环境完整地纳入压测范围,贴近实际的应用场景,为评估淘宝和天猫交易核心链路的实际承载能力提供有说服力的数据依据。“这(2013年)是具有里程碑意义的一年。”
程立曾用发射火箭的比喻来更通俗地表述它。“过去是把系统拆开成很多组件,像发射火箭,每个组件单独测试。性能ok,用理论推算拼在一起是ok的,然后大促当天就拼在一起发射。这样可能会成功,也可能不会成功。现在是把整个火箭发射很多次,发射好后还能回收。这样经历很多次,最后我们再一点火,就发射成功了。”
用有限的成本去支持最大化的吞吐能力和购物体验,这是压测存在的根本,也因为它,每年压测都需要发现和解决新问题——不断降低成本,提升流量吞吐能力,最优化购物体验。去年,备战的目标是“12,12,6”,即每秒钟会有12万人同时登陆商城页面、每秒12万人同时涌入的支付页面、以及每秒6万人同时完成的订单支付。今年,目标数字毫无疑问要被刷新。


今年的系统有个很大的改变,即全面Docker化。目前阿里有超过15万个Docker容器在线上,可以将线上应用的依赖打包成镜像,尽可能做到自包含,这对任何一个系统都会很容易地去迁移和部署,解决了一致性问题和提升部署的可靠性,以及运维的效率。


往前每走一步,都是无人之境。这是一条没有终点、不断战胜自我的征程。但除了压力,这群技术人看起来乐在其中。“它把你的潜力充分地开发出来,如果不全力以赴,你真的不知道自己能做到什么程度。”


2016年11月11日,双11进入第8年,压测进入第4年。“我们很高兴看到5年前的峰值变成了今天远低于常量的一个状态,我们也觉得这是社会进步的表现,我们也希望今天的准备能够为未来做好准备,为未来整个变革从今天做起。”在今年的双11香港启动会上张勇如此寄望,对于压测和阿里的技术体系来说,一切还在进化之中,可以确定的一点是,他们正在书写未来。


推荐阅读

双十一通知: 请一线运维同仁们认真做好最后一项工作

希拉里的总统梦,被这个胖子用一行代码毁了!

滑、滑、滑!让你的指尖拥有不一般的触感!!



每日推送一篇IT干货、新鲜科技、创意潮品,

以及IT小知识等等,

给你千万个理由关注:


十万个IT为什么

不要等!即刻长按二维码

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存