扫码打开虎嗅APP
来源:界面
作者:王付娇
2018年11月10日23点45分,阿里巴巴光明顶技术作战中心,霜波拿起话筒,“还有15分钟”,现场立刻安静下来。
音量最大的是键盘的敲击声。霜波的视线一直没离开数据大屏,“目前,各项数据指标正常”、“还有5分钟”“还有1分钟”,每隔几分钟,她间或说一句,面色平静,语气平缓,音量不大。
一位参加过四年双11的工程师说,霜波的人和她的名字很不相符,“经过大风浪的人,在她脸上,你几乎什么风霜和波澜都看不到。”
零点一过,淘宝流量以肉眼可见的速度暴涨。
第一个数字产生:2分05秒,双11交易流水过100亿。GMV背后是更庞大的交易笔数,交易后发生的取消、合并订单等等。数据显示,今年双11每秒订单创建峰值达到49.1万笔。
每当过零点、1点的峰值、系统逐渐稳定的时候,霜波和团队会产生一种巨大的成就感。“我还挺喜欢那种心跳的感觉,”霜波说。
霜波是东南大学计算机专业研究生,专攻软件测试。后又去美国的林肯大学读了一年博士,方向不变。大学的时候,班里30个人,只有6个女生;到博士阶段就更少了。
霜波2008年入职阿里,现在已经过去整整十年。最早在阿里妈妈,后调动到天猫,然后一直在技术质量部,多年参与保障双11。最近三年任天猫双11的技术大队长,协同很多部门一起负责双11的稳定性工作,现在是阿里的M5。
每年双11,阿里巴巴的组织形式是这样的:委派一个团长,负责整体牵头;团长下面设立三个大队长;大队长下面有各个分队长。今年双11,不仅有天猫淘宝等核心电商部门参与,还有饿了么、口碑、居然之家等,需要协同的BU繁多。
这样的机制,会让各个业务都抽调一个队长、副队长加入。这些队长、副队长在自己的内部又会成立一个双11的团队,金字塔结构保证项目稳定。双11是整个集团最核心的问题,所有的BU都必须服从于双11的优先级调配排序。
技术部的考核标准是交易峰值。去年交易创建的峰值在30万QPS以上,今年承诺在40万以上,QPS指每秒查询率,即对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
双11十年,阿里巴巴代表了电商行业最先进的技术力量,每年双11爆发性的峰值又是整个技术团队的练兵场。霜波自己在这场硝烟和战火中成长,手下带的团队也从最开始的50人,到现在的160人左右。
霜波是两个孩子的妈妈。每年双11,她的团队从10号开始进行封闭。10号早上就会入场,白天检查各种机器工作的状态,下午开始做各种预热。作战室里备有定胜糕、大麦茶等食品,还有行军床,让大家随时能够休息。
双11当天,一直到下午6点,会有各种降级预案。对于一些对用户影响不大,但是又非常消耗性能的东西,技术团队会把它降级掉。即使是最稳定的时候,也差不多都要处理到早上6点半。
下半场时候,技术团队才开始自己看看购物车,买点东西。霜波的策略是:全家列一份销售清单,零点的时候让老公去抢。
2009年是淘宝商城成立的第二年,这一年的秋天,运营的同学想搞一场营销活动,逍遥子喜欢四个一,而11.11又是网民创造的”光棍节“。谁也没有想到,这样一个随意的选择,竟然在若干年后成为影响中国乃至全球的大事件,造就了电商行业最具影响力的品牌。
第一届双11的活动口号是全场五折,共有27个商户参加,淘宝商城的成交额是平时的十倍,超出团队预期。
幸运的是,在2009年初,“五彩石”项目将淘宝和商城的系统底层架构统一了,虽然商城的成交额增加十倍,但由于基数还比较小,与淘宝的日常成交额比起来并不大,系统上没有出现特别重大的事故。
尽管如此,暴增的流量还是让工程师们措手不及。当年第一届的工程师四虎回忆说:“第一年双11,作为交易系统的owner,接到老板指示,光棍节要搞个活动,你值一下班。那年我们啥都没做,就坐在那看服务器的情况。零点发现流量暴增,一下子服务器就挂了。我们就手忙脚乱地去重启服务器,恢复系统。系统起来后,发现店铺和商品图片又出不来了。“
第一次双11,完全是意料之外、没有做任何准备的,不仅仅是把交易和商品系统压挂了,同时把很多商家的外部图片空间也给压挂了。服务器容量、网络带宽容量、系统保护都是没有的。
2011年淘宝商城成为独立的事业部,双11对于刚刚成立的淘宝商城技术部已经是一件相当重要的事情,各团队提早几个月就开始准备,并且上线了第一期的价格申报系统,完成了双11的商家商品报名的工作。
2012年,集团从5月份开始启动双11项目。当天晚上整个集团的核心技术几乎都All in在双11。每个核心人员做好各种预案手册,当天晚上全神贯注就等着零点的到来。
霜波感觉压力巨大。她同时还兼任情报中心的队长,专门收集问题反馈。零点到来,流量来得比以往更猛一些。
零点的时候,各种系统报错、立刻下单报错、购物车支付报错、支付系统报错、购物车的东西丢失,系统显示交易成功率不到50%。系统排查的大部分指向都是一个错误——取不到商品信息了。再进去看,商品中心系统的网卡被打满了,无法再响应请求。情况紧急。
商品中心开启了事先准备的降级方案,但效果并不明显。降级手段包括降低图片像素质量、减少旺旺亮灯等。大约在1点左右,系统流量峰值慢慢缓和,系统才慢慢恢复到90%以上。
另一个发生问题的是支付宝的健康检查系统。和所有系统的自我保护系统一样,这个健康检查系统会定时扫描线上机器,根据机器应答返回时间判断是否正常,将超时严重的机器在应用列表中剔除。只是在双11的流量之下,几乎所有机器都发生了响应过慢的情况,然后大部分机器都被剔除了出去。
霜波所在的团队快速下线了这个系统,支付成功率重新回到了正常值。在1点之后,系统各项指标都恢复了,她心情才稍稍轻松了一些。
双11在逼着霜波和团队成长。
刚开始,霜波自信地认为,原先有那么多方法,做过那么多测试(统测试、单元测试、接口测试、用户测试、线上演练、性能测试、破坏性测试),所有方法都用尽的时候,是可以保障双11稳定的。但结果,2012年双11的技术指标显示,它是真的失败了。团队不得不做创新。
在当年双11结束后的复盘会上,所有技术同学达成了一个共识,一定要有一套系统能够最真实地模拟双11当天的流量,能够及时发现大压力下线上系统的所有问题和风险,保障双11的零点体验。
所以到2013年,霜波集合了各个BU创造了一套全新的压测系统:全链路压测。这个工具在2013年上线之后,第一年压测出了600多个问题。但从2013年开始,双11就没有出现过大的问题。
外界可能并不了解全链路压测在行业中的意义,是这套系统让双11的技术有了本质的飞跃。它能够安全模拟用户在双11当天的流量行为,提前预知双11当天可能会发生哪些问题,然后把它修复掉。这让整个阿里巴巴技术体系上了一个台阶。
新的压测对数据库要求非常高。因为如果写得不好,会导致数据全部错乱。基本上所有的系统、所有的中间件、所有的数据库全部要做改造——相当于要改造每一个系统,才能够让的全链路的压测成功。如果没有双11,没有公司会做这样的事情。它既耗成本、又要考验人的勇气。
在内部推行全链路压测的场景让霜波印象深刻。一个全新的系统,从产生到全面实施从来不是一帆风顺的。刚开始,大家根本不敢到线上压,担心影响用户,直到有人大胆地承诺:“出了故障我来背!”
到2013年9月时,刚开始两次大规模的压测都失败了。有人开始怀疑方案的可行性,思考要不要回到之前的压测模式,直到有人坚决地前行:“我们这次一定要成功,让所有的开发一起来加入”!有人在打趣:“摩擦了一晚上都没有动静。”有人在宽慰:“第一次从来不会一把成功,我们多磨合几次。”
”我清晰地记得第一期的那些开发同学,在一个小小的会议室里面,晚上12点我回家的时候他们在,早上8点我来公司他们还在。眼睛里经常有血丝,但是说起话来还是中气十足。每次给我的答复都是:‘我们会成功的。’感谢这些同学,无论现在是否依然在双11的岗位上奋战,但双11的功臣中一定会有你们的名字。“霜波回忆当年的场景。
针对库存的问题,有了2012年的经验教训,阿里巴巴技术团队在2013年做了独有的超卖审计系统,会实时对账所有库存,一旦有超卖马上能收到报警,这个系统在这些年的库存保障中发挥了很大的作用。
到2013年时候,由于各个系统的预案加起来已经超过2000个,无法靠人来控制和梳理了,霜波的团队做了一个所有预案的控制系统,提前降级的开关可以准时执行,准备好的预案可以录入并且做好权限和通知管理。
2015年,第一次有了双11晚会,晚会现场可以现场抽奖,技术部的同学实现了线上和线下的同期互动。效果超出期望的好,客户端注册系统当场就被用户的热情打爆了,技术紧急扩容解决问题。
零点,无线端导购的流量大大超过了预期。而当时,物流系统和导购部署在同一批物理机之上,机器资源发生争抢,有10%的物流机器被打死,无法响应,那么落入这批机器的用户就会购买失败。
在零点10分的时候,团队做了一个决策,直接剔除了这批死掉的机器,系统的成功率重新恢复到正常值。当时的决策有点风险,因为零点10分的时候流量依然很大,他们无法推测剔除这批机器的风险,那90%的机器如果扛住了,团队就成功了,如果扛不住,可能所有交易就会跌到零。
2015年,也是交易全面个性化的一年,每个用户都会被会场推荐带入自己的喜好和偏向的领域。这一变化让无线的点击率和购买率都得到了提升,也为下一年的全面个性化打下了基础。那一年双11,无线成交占比达68.67%。
”我们最亏的是不认识那些明星。当一个明星出来需要做互动时,但是技术不知道这个人是谁。旁边得配一个熟悉娱乐圈的告诉我们谁来了,我们把它弹上去。挺好玩的。“霜波说。
到了下一年,手机客户端自己做起了直播。晚上就可以在手淘和天猫客户端一边看晚会一边参加抽奖和互动游戏,再加上红包和购物券等产品,产品种类繁杂。由于零点的限流产生,就发生了组合下单被限流的现象。
双11前一天技术团队已经评估出了这个风险,所以准备了一个后台程序帮助回补没有使用的红包和购物券。可是由于流量的长时间持续,限流时间超出预期,后台程序也在大压力下挂掉了。技术的同学只能对后台程序进行扩容,从准备的几十台机器扩展到几百台机器,终于在早上6点完成了红包和购物券的回补。
也是在这一年,系统实现了50%的云化。在双11之后一周内就将机器资源释放出来,提升机器循环使用的效率。
从2015年以后,阿里技术团队更重视线上和线下的联动反馈。再加上马云自2016年云栖大会提出新零售后,新零售作为系统级战略被集团推出,技术的保障是第一步。线下零售它对稳定性的要求会更高。线上交易有bug,可以退出系统刷新一下;但如果线下系统出现问题,用户对此的容忍性会更差。
”线下的话我们基本上是每个POS、每个付码器我们必须是一台一台的去测试。而不像线上。线上我们只要监控整体的大数据,99.99%我们觉得就可以了,但是线下我们要把保证100%。“霜波说。
像盒马这种集团内部的创新项目还好,但是很多系统是商家自己的,上线的时候要有更多磨合。比如,传统商家扫码的时候,必须把用户请到固定的地方来说支付。现在,新技术可以让他们拿一个pad,用户要支付的时候让他签个名就已经可以了——更便捷、更加智能化。
这是一条漫漫长路。
未来
霜波是计划型的技术人员。
双11让她感觉时间过得飞快。上半年在准备双11、结束后需要复盘。每年的正式投入从7月份开始,从市场需求、到业务、最后反馈到技术这里,然后开始和商家开沟通会,打磨用户体验。
在西溪园区7号楼,”光明顶“办公室,核心200多个员工,一起在技术团队的作战指挥室里给这个中国最大的商业帝国提供核心保障。
霜波最近一次发火是在上周五压测时候。值班期间,一个系统出现问题,造成很多准备失效,小问题影响全局。第一轮没有压起来,因为一个降级的开关没有执行到位,相当于很多其他准备的系统都验证不到。霜波当场就要飙火了,旁边几个人把她按住。
大部分时候,霜波制定了计划都需要严格执行,手机得随时保持开机。双11值班时,不止是24小时,前面的12个小时肯定也是在的,这36个小时基本上就不会回家了。处理完事情,如果能睡的话,她可能才会睡上两个小时。
今年,阿里在张北建了大规模的绿色数据中心,承担了双11近1/3的数据量。冷风技术、服务器浸泡在溶液里的液冷技术可以降低能耗。这些服务器会支撑双11的电商交易、支撑大数据计算,让双11更节能、环保。未来这些节能技术会更大规模的覆用,在这次双十一验证之后会更大范围推广。
双11难以做到十全十美,每一年的问题都不同。但霜波说,阿里的技术人绝不会让同样的错误重复两次。