突袭阿里: 4982亿背后的164次自我“摧毁” | 猛哥 刘富贵 2020-11-13 这是一款神秘的APP,在阿里内部有权限装载并使用的人极少。 它的界面十分简洁,颜色是淘宝系惯用的橙色,logo是一个小火箭,小火箭下面的应用名称是“突袭”。 如果以为它是一款普通的淘系APP,那就大错特错。轻轻一点,“导弹”发射,阿里技术系统就会被攻击。倘使工程师们应对不当,阿里这艘航母就会颠簸乃至倾覆。 不是演习,是真正突袭! 而在2020年11月11日之前,阿里已这般自我“摧毁”了164次。 接下来就是关于突袭的故事。 1 天猫双11已经步入第十二个年头了,长期跟踪报道的记者对年年攀高的GMV已见怪不怪,他们甚至提早就写好了稿,如此开头:2020年天猫双11总成交额(——)亿元! 就等最后一秒到来,然后把括号里的数字填上,发回编辑部。 11月11日24时,阿里天猫双11大屏上最终定格为4982亿! 疫情至今还在地球肆虐,而中国内需居然如此强劲,这是媒体和绝大数人的关注点。 但另有一群人的关注点却是11月11日0时0分26秒。阿里宣布本年双11订单创建峰值——58.3万笔/秒。 他们是阿里工程师,他们扛住了世界最大流量洪峰。 流量,是互联网公司最为珍惜的资源。流量如水,虽宝贵无比,若不善调度,亦可造灾。 阿里从2004年就开始流量监控,每一次非常态的曲线下跌,意味着线上可能出现了一个故障。 作为对故障最敏感的部门,阿里运行指挥中心见证了每一个故障的发生和技术系统的迭代。 直到现在,有工程师回忆起2012年双11零点后那几分钟,仍用“度秒如年”来形容。 前一年双11订单创建峰值还在3200笔/秒,那一年暴增至14000笔/秒,流量洪峰瞬间冲垮了毫无防备的双11技术系统。 为了不再发生类似问题,2013年双11,阿里独创了全链路压力测试技术方案。 在双11开始前几个月,阿里工程师们就用人造的数据洪峰,模拟双11当天真实的用户流量,冲击搭建好的技术堤坝,只有经历十几次压力测试,找出所有可能发生的故障,他们才敢直面双11“这个世界上最极端复杂的技术系统大考”。 2 阿里就像一艘航母,在乘风破浪的同时,还要保证零部件不能出问题,一代又一代的阿里技术精英如履薄冰。 2013年夏天,杭州连续四十天温度都在40度左右,杭州市政府开始限电,优先供应居民用电。 阿里技术保障部的追源和他的同事们,急得跳脚。彼时,淘宝业务每年都是以2到5倍的速度增长,一旦限电则使得数据中心随时有断电的危机。 为了不让业务受损,那一年,技术保障部不得不采取柴油机发电,冰块散热的方式度过难关。 7年后的阿里20周年年会上播放一部片子,其中就有阿里时任技术风险官振飞手持蒲扇给机器散热的镜头。 太难堪了。 技术人自有他们的骄傲和远见,为了应对不可预知的数据中心环境变化。2014年,阿里着手研发异地多活技术,这是一项保障阿里业务拓展不受空间限制,同时能让数据中心具有应对突发性灾难的能力。 但更大的难堪接踵而至。 2015年5月27日,杭州萧山区电缆被一个修路工无意挖断,原本按照异地多活技术,阿里杭州数据中心断网后,流量应当立即被切走。但实操过程中,阿里工程师才发现,一个切换开关由于断网,无法操作。 最终这个故障导致了阿里有史以来最为严重的事故。振飞在阿里内网发帖,配图是一张偷袭珍珠港的电影海报,他要所有阿里技术人都铭记耻辱。 追源被振飞拉到了一个有100多人的大群里,组员包括阿里各个业务部们技术老大及技术保障部的成员。振飞把群名改为“头悬剑”,建好群后,他的第一句话就是“这个事情我们绝对不能再发生。” 随后的一个周末,他又把群里的人召集起来,表示之后要在日常演练之外,增加突袭训练。 追源说:“经历过527 的阿里技术人,我们常常有种危机感。” 故障的利剑,永远悬在阿里人头上。 2016年,振飞提出要做一个APP,把断电断网这种灾难性演练融入阿里的日常生产。遗憾的是,由于时机并不成熟,这款APP仅在小范围试用。 3 接力棒被交到了下一代工程师手中。 中亭,阿里高可用团队负责人,2015年双11技术保障总PM, 曾获得双11老A的称号,如今另一重身份是阿里的技术蓝军【这又是另外一个故事,稍后展开】。 那年备战双11,中亭在最后一次压测中,发现了一个不在日常演练提纲中的故障,这个故障与监控系统有关,如果未能提前准备,爆发在双11当天,系统可能失去“眼睛”。 为了保障双11核心系统的稳定,阿里工程师们提前很久就开始列一个清单,把预测可能发生的故障通通列入,按照清单进行演习。 再全面的清单,也无法网尽所有的未知故障。况且,即便列入了清单,缺乏真实场景的日常演练与实操迥然不同。 2015年双11结束后,中亭和运行指挥中心的胜通共同提出了要在电商系统做常态故障演练的想法。 他们给项目命名为“大圣归来”。大圣代表反叛精神,“大圣归来“就是要反向操作,以摧毁来促进重建。 为此,中亭搭建了一个自动故障注入系统,业务部门可以接入,自主发起故障演练。 在计算机已经形成的庞大工程中,这种通过故障演练提升系统稳定性的操作,被称为“混沌工程”,混沌代表着系统中总有一个捣乱者,它像一只上蹿下跳的猴子一样,对系统进行无组织无规律的攻击,直到系统崩溃。 混沌的想法大胆,中亭和胜通反复游说,最终有十几个部门愿意接入。 直到2020年。 4 2020年开年,阿里集团CTO鲁肃发起了四大战役,其中一项关键战役就是安全生产战役。安全和稳定,这是阿里发展21年后,形成巨大规模后的必然追求。 3月,有人提议,定制一枚“按钮”,专门用来突袭阿里的技术系统。 拥有这枚按钮,不管身在何时何地,只要点击, 就能发出“导弹”,精准迅速击中任意标的,可能是阿里任意一个产品,也可能是阿里最核心的交易系统,亦或者是阿里云某个承载内部业务的数据中心。 一个月后,“按钮”上线,即为突袭APP。 突袭APP的设计者、产品专家汉英认为阿里做突袭的的背后是一家公司多年的技术自信。 突袭APP的底层技术架构,离不开全链路压力测试、异地多活、断网断电容灾性演练、混沌工程等一系列技术的积累。 设计突袭APP时,汉英玩了几十款策略游戏。其中一款叫Worldbox的上帝沙盒模拟游戏带给她很多的灵感。 她把突袭APP视为一个战争沙盒,在沙盒中构建出了技术世界的点、线、面,形成一个大型的技术指挥沙盘,每个部门、每个系统、每个操作都在沙盘盒中都有自己的坐标。 技术系统搭建完成,阿里红蓝军登场。 5 军迷们都知道一个段子:“踏平朱日和,活捉满广志”。 中亭,就是阿里的“满广志“,作为阿里蓝军负责人,要做阿里技术的“磨刀石”,去挑战任何一个业务部门。 9月,他找到2020年双11技术大队长霜波,希望她在压测时亲自发起一次针对云机房的突袭,理由是“云机房不可用的场景之前还没有演练过。” 借这次突袭,中亭想检验业务红军能否第一时间响应和故障修复。今年年中,一个云机房突然出现断网故障,导致某家线下连锁超市无法结账。 根据中亭过往经验,如果缺乏故障演练的经验,真实操作流程中,红军未必能及时响应。 他复制了那次故障,写入突袭APP,然后建议霜波拿着这枚威力达五星级的“导弹”考核红军。 在汉英战争沙盒设定中,蓝军负责制造弹药库,对沙盘中的不同目标坐标进行打击。 中亭和高可用团队的工程师们很快就梳理出了阿里历史上发生过的大大小小故障,汇总成一个弹药库。弹药库里有“导弹”、“大炸药”、“针管”,等等。弹药根据爆炸半径划分等级级。 突袭APP上,等级用小火箭的数量标明。毫无疑问,五星级是杀伤力最大的“导弹”。 6 "导弹"来袭之前,毫无征兆。 凌晨1点,阿里西溪园区光明顶——双11指挥室,灯火通明。 霜波带领一帮工程师们为了扛住即将到来的流量洪峰,提前两个月,开始全链路压力测试。 第一波压测后,实时呈现交易流量数据的大屏,平稳无虞,作战室的工程师刚准备喘口气。 接近2点时,陡变突生。 有人攻击了远在杭州千里之外的一座数据中心,作战室大屏上代表交易的三条曲线瞬间从峰值下跌了一大半。 1分钟内,光明顶会议室内,电脑和手机都响起了“叮叮”的报错声。 起初,工程师们并不慌张,阿里2016年后逐步形成一套完善的故障处理流程。线上故障发生后,应急响应部门会立即报警,随后他们会采取智能化的协同流程把相关人员召集起来,快速处理、定位和恢复。 但这次断网,不仅涉及交易业务,工程师们的协同工具也受其影响变为不可用状态。这个意外打破了常规的处理流程,光明顶的氛围空前紧张起来。 直到17分钟后,霜波下令执行快速恢复方案后,各个业务才陆续恢复。 果真如中亭所预判,尽管距离上一次故障不到半年,但霜波再度发起线上突袭后,相关业务的红军未能达标。 “突袭练的就是紧张感。”道延说,他是阿里红军的最高指挥,过去一年,他带领红军和中亭进行过无数次的交锋。 四天后,又一次通宵压测中,霜波再度发起突袭。这一次,从发现到恢复,红军仅用了6分7秒。 突袭和演练最大的区别在于,后者是沙盘推演,而前者是真刀真枪。一群热血年轻的技术人,各自代表部门最高战力出战。每次交战后,双方的汇报邮件,都充满了硝烟味。 7 2020年9月,突袭APP 2.0上线,鲁肃决定先进行一次验收,他在流量低峰的时间发动了一场袭击。 这一次验收,指挥部只有三个人,鲁肃、霜波、道延。谁也不知道鲁肃会选中哪个部门,作为CTO,他有发射“弹药库”的全部权限。 最后被选中的是钉钉、阿里云、盒马。业务部门没有得到任何事前通知,不少工程师是在梦里被电话叫醒。 其中两个团队都在10分钟内完成了故障修复,另一个团队延迟6分钟后完成了修复。 鲁肃当场没有对这次的故障响应进行点评,他只是拍了一张未完成部门处理故障流程和时间的照片。 在场的人都清楚,APP验收成功了,但生产安全战役还远没有到可以庆功的阶段。 8 为这一天,中亭等了许久。阿里蓝军要挑战的不是一个部门,集团内所有成规模的技术系统,他们都需要去“找茬”。 还有什么“茬”比作为阿里技术底座的阿里云更硬呢? 2019年双11,阿里核心系统100%上云,旋即,中亭把阿里云的突袭演练提上日程。 曦豆是阿里云蓝军小组负责人,她和同事们拟出了多种故障场景,频繁得向阿里云各个部门发起突袭。 但也有人主动迎战,云网络稳定性负责人云舟带领团队内部梳理出了200多个故障场景。曦豆不来突袭时,他就自己打自己,不论谁来攻打,都能在1、5、10的时间内完成故障修复。 在阿里,符合预期的应急处理标准是“1、5、10” :1分钟发现故障、5分钟定位原因,10分钟恢复应用。 常态化突袭演练后,云舟团队故障分降到了历史新低。 鲁肃验收突袭APP的那天夜里,第一个向阿里云发起突袭,但仅仅2分57秒,阿里云团队就修复了故障。 速度之快,鲁肃都忍不住嘀咕,“是不是真实的故障啊?” 考察能力极限的时机很快到来,双11 携58.3万笔/秒流量洪峰如约而至,阿里云成功抗住!GMV4982亿,增速26%,持续11天的双波峰以零故障收尾。 阿里工程师们可以短暂地舒口气了,但红蓝对抗仍将继续,突袭不会停止。 精选留言 mango置顶 2 评论区都是些什么大神,仇富那些走错片场了吧 作者 撕裂 mango 3 。。。 文章讲的也算技术手段吧,再怎么裂,也得尊重事实不是,这么大体量的系统,顶得住双十一这么大流量冲击,这不牛皮吗,这有什么可黑的? 还有说负载均衡的,自己能不能做出来先 作者 很糟糕的状态 的马先生 27 资本家就缺你这样的乏走狗 作者 31 如果你认识资本家,请给他带句话。 瞿成胜 19 其实对这篇文章很失望! 作者 3 抱歉呀 Mr.lost 12 只有我注意到4982亿是1号-11号的数据,而不是以前习惯的11号单日数据吗? 作者 2 双节棍 润德 10 很久未见了,猛哥! 作者 2 好久不见~ 黄家仕 9 不就负载均衡么,堆服务器的事情,吹得这么牛逼,厉害厉害! 作者 2 哦,那你厉害。。 气定神闲 5 真就看了个云里雾里 作者 6 有一个超级系统,8亿人用,不敢出故障,于是自己发起真实场景的突袭,一次又一次捶打~ 劉钰麟 5 。。想死您啦!这么长时间干嘛去了,想的人心焦滴。 作者 2 劉钰麟 1 。。见您就高兴!感动滴。。猛哥 保重保重。 作者 见到您我也很高兴哈~ 雷🐒 5 看标题就知道老熟人终于活了 作者 1 猴赛雷 Q先生 4 时间太长了… 作者 3 因为发生了许多事…… 沿途有你 2 归来无恙否? 作者 4 安好。谢! 张三四 3 好久不见,甚是想念 作者 2 好久不见,我也想你们 月半金夆 3 猛哥 作者 1 久等了,抱歉~ Jeason 2 好久不见 作者 2 好久不见 ZY 2 hi,朋友,好久不见 作者 2 好久不见~ 舒月🍎 2 猛哥威武 作者 2 您好呀# 温国权 2 负载均衡累积服务数据, 被你丫吹到火星本部。 你丫收多少钱啊?臭不要脸的。 作者 您最厉害! 王军13934087794 1 感觉好多没读懂的人,导致“喷” 就搞装潢 期待你的猛文 作者 1 好的哈 万磊 ONE 卍 1 阿里的这种危机意识和自我挑战的意识值得大部分企业学习 作者 其实人也一样,居安思危 spinule 1 好久不见啊 作者 好久不见 Kenji 1 最近怎么了 作者 哈哈,去忙两件要紧事 红太阳 看不懂你的人也关注了你,是该高兴还是惶恐? 作者 哈哈,来的都是客~ Hennessy '€•O 终于等到你,众望所归 作者 嘿嘿,好久不见 sherlock 猛哥好久不见,没有第一时间点进来 作者 好久不见哈 shelly 终于等到猛哥更新,感觉还不够,再多来几篇呀 作者 好的哈 miss.lee婷儿 看完终于理解认识的阿里小哥半夜被电话叫起的恐怖了 于伞 我还欠猛哥一顿酒,什么时候补上? 作者 一定会有机会的! - 猛哥最近弄啥呢 作者 积累人生阅历,嘿嘿 张老头 想死你呀,猛哥! 以为你去美国大选去了,结果关注马云 作者 嘿嘿 成 猛哥,好久不见。这篇是介绍IT人员的。 还是喜欢你写“她在别墅里看大学纷飞”那样的文章,够硬! 作者 好久不见,反馈收到,哈哈 庞学文 全市场都知道紧急练攻防的重要了,特别是现在。 陈有鱼🐟 好久不见,甚是想念 作者 好久不见,甚是想念。 斌。 闭关了朋友? 作者 出关了,哈哈 伪文青 时刻准备着。 苏扬 作者 嘿嘿 時記 先抢沙发🛋️再看,猛哥好久不见 作者 好久不见 相关 作者: RESSRC 个人资源站 查看RESSRC的所有文章