2020年11月11日晚,又一年天猫双11狂欢接近尾声。
新交易纪录、新流量峰值,一切都是十全十美的样子。
此时,阿里巴巴CTO程立(鲁肃)才将一段实录视频公之于众——
11月5日凌晨,阿里技术上下完成双11大考期间最后一次全链路压测后休息和交接间隙……服务器连续遭遇了两次攻击。
第一次,凌晨两点左右,监控大屏显示四个地区数据中心数值迅速下跌,技术保障团队启动紧急响应处理,确定遭遇了断网攻击。
紧接着第二次,2:10,更凶猛直接的攻击来了。华东区域某个数据中心,直接被拉闸断了电……
但最令人震惊的是,这一切居然是阿里巴巴合伙人、双11新零售技术负责人吴泽明(花名范禹)干的。
这不是事先明确的一次突袭。
甚至只有范禹和霜波——阿里双11技术大队长、技术安全生产负责人陈琴“小范围”知道。
但是即便如此,陈琴看到这次断网攻击时还是吓了一跳,因为与之前商定的攻击量级并不符合。
当时,明面上压测已经结束,参与的阿里技术工程师们,有的在进行夜宵补给,有的在工位上小憩休息,对于这次意料之外的实弹攻击,没有一点点防备。
庆幸的是,技术保障上下训练有序。迅速锁定故障源头,启动应急方案,紧急展开修复……
仅1分28秒,一切如故。
甚至如果恰好有在那时下单的用户,都难以察觉有过“抖动”。
对于阿里技术上下,虽然事出突然毫无防备,但对于这样的突袭应对,已然肌肉记忆一样……因为在阿里,这种突袭早已普遍而日常,还有专门因此形成的红蓝军对抗。
蓝军负责设计突袭弹药,常在不经意间发起突袭。红军则需要在极短时间内修复故障。
对外,这种技术突袭和红蓝对抗一直不为人知。
对内,无数次突袭和演练之后,连故障恢复机制都形成了“1-5-10”的方法论,即在1分钟内发出警报、5分钟内定位故障、10分钟内修复故障。
这也是阿里敢将可用性目标提升到达99.9999%的底气所在。
之所以能如此精确,就是因为一次次突袭演练之后得出的结果。
阿里内部,还将这种红蓝军的偷袭与防守,类比为对系统打疫苗。
故意在可控半径内将故障注入系统以测试系统的响应,类似于将少量有害物质注入体内激发免疫反应以防止未来疾病。
这似乎很疯狂,但能让公司提前为包括宕机在内的各种故障做好准备,将其影响降至最低。
甚至还有更疯狂的举动。阿里为这种突袭专门设计了App,简化成一个“按钮”,串联了阿里巴巴经济体的各种技术架构和业务手段。
方便随时随地,按下按钮完成突袭。
它可能发生在任何时候,比如,某一次会议结束后所有人都处于放松状态时。
这次双11前的突袭攻击,就出现在范禹闲庭信步走出“光明顶”时——双11核心作战室内没人察觉异常。
有内部工程师把这种偷袭演练与马斯克SpaceX那次知名的“事故逃逸”演习类比。
核心都是以真实可能发生的事故,来实际检验自身的技术和应急保障机制。
Chaos Engineering,混沌工程。
被称为“故意破坏的艺术”,主要通过主动制造故障,测试系统在各种压力下的行为,从而识别并修复故障问题,以此提高生产环境中系统的容错性和可恢复性,最终实现系统弹性的提升。
在硅谷科技公司中,混沌工程已经有过实践。
2010年,Netflix团队开发出了Chaos Monkey——混沌猴子这个工具用于测试系统。
模拟一只讨厌的猴子,在系统中随机位置上蹦下窜,不停捣乱,直到搞挂你的系统。
随后的几年里,Netflix还将混沌猴子在GitHub上开源分享,并指出这种随机故障测试,对测试分布式系统的稳定性有传统方式难以超越的优势。
在这样一整套原理基础上,混沌工程师这样的岗位开始在硅谷出现,角色和功能如这次阿里对外公开的蓝军,把这种随机破坏性攻击,变成一种日常测试手段来提升自身的抗灾能力。
混沌工程是一种专门的理论,本质上是一种反脆弱的思想。
如果再往上追溯,哲学源头可以找到尼采——杀不死我的必使我更强大。
而对于阿里来说,混沌工程思想理念,与技术稳定体系需求不谋而合,与阿里异地多活、容灾容错的发展需求契合在一起。
实际上从2010年左右,阿里电商域开始尝试故障注入测试的工作,开始的目标是想解决微服务架构带来的强弱依赖问题。
后来经过多个阶段的改进,最终演进到MonkeyKing线上故障演练平台。
作为阿里集团使用广泛的混沌工程平台,MonkeyKing不但帮助很多业务团队进行故障演练,提升了业务稳定性,同时也支撑阿里集团内部定期的联合演练活动。
2019年开始,还开始在小范围生产环境内推进突袭演练,并对外开源了阿里巴巴混沌工程工具ChaosBlade。
而这次双11前夜的突然袭击、断网断电,本质也是混沌工程的一次实践。
即便双11这样的节点里,显得异常惊险,但对于阿里来说,拥抱「混沌工程」,搞出「红蓝演练」,也是业务倒逼的结果。
阿里历史上很多业务改革,都与双11密切相关。
比如「异地多活」,起初就是因为双11很火,流量带来扩容需求。
阿里集团CTO程立就回忆说,2009年第一次双11,因为是淘宝商城临时决定搞的活动,技术侧还不太有感觉。
但2010年,双11流量一下子涨了好几倍,服务器根本不够用……当时在支付宝的程立,亲身经历了把支付宝系统一再瘦身,只留下核心的支付链路,才总算扛过了那次交易洪峰。
而其后对于每年迎来新纪录流量洪峰挑战的双11,阿里开始在平时倒逼改革。
另外,也有一些意想不到的天灾人祸,带来容灾警醒。
2013年夏天,因为杭州40°高温酷暑,全城电力供应极度紧张,而阿里的服务器机房又是耗电大户,拉闸限电的威胁迫在眉睫,一旦机房停电,业务就关门大吉了……
上述等等经历,让阿里技术意识到,不能再等到下一个高温酷暑的夏天,不能再等到下一次天灾教训,再来思考如何保障业务稳定性。
也不能忽视地域中的物理灾害,影响到线上数以亿计的用户。更不能因为基础设施的限制,阻碍快速增长的业务。
所以先是解决同城多活的挑战,其后又进一步解决异地多活的世界难题。
都是面对问题和挑战,倒逼出来的创新。
实际上,这种倒逼出创新的案例,在阿里发展历史上比比皆是,例如支付宝研发OceanBase,阿里云研发飞天云操作系统……
当年为了支撑双11的流量,支付宝一个不到100人的团队,研发出可代替甲骨文数据库的OceanBase数据库。
今年,在去年双11核心系统100%上云后,程立透露——阿里把全副身家性命放到云上,飞天云操作系统、神龙服务器集群、中台等数字新基建还在不断升级,技术的沟沟坎坎几近解决,应对峰值不再是最大技术挑战。
消费者的热情越来越高,倒逼阿里技术持续进化。
而混沌工程和突袭计划,也是这种倒逼着进化的一部分。
互联网本身就充满了未知和不确定性,例如高温、洪水、台风、暴雨、地震、雷电等自然灾害以及人为操作失误等种种黑天鹅事件,都可能对业务造成严重打击。阿里敢在双11期间对业务系统发起各种高危故障,这种自信源自成熟的突袭机制,而底气则来自阿里云十年来搭建的灾备体系。。
Gartner就曾预测过,2020年,90%的容灾操作会发生在云端。尤其是大型云服务商,数据中心都遍布全球,是企业天然的异地灾备中心。
而阿里云的云灾备能力无疑处于云厂商第一阵营。
阿里云曾率先在业内提出数据中心的“四个不”原则,即不在同一火山地震带,不在同一水系,不在同一电网,不在同一运营商网络出口。这是传统企业所不具备的硬实力。
另一方面,阿里云的灾备能力全面涵盖了网络、数据库、存储等领域,这是能应对各种故障的软实力。
举个栗子,在存储领域,阿里云凭借存储高可用等能力,持续三年入选Gartner全球云存储魔力象限,并且被列为全球领导者地位。
所以只有兼具软硬实力,才能最大程度地保障业务和数据稳定安全。这也是阿里敢把全副身家性命都放在云上的原因之一。
甚至这种「最大程度保障」,还需要考虑到被断网断电的极端场景……
所以,拉闸断电的攻击成功了吗?
11月5日凌晨02:10,阿里华东区域某一数据中心被内部拉闸断电。
瞬间,蓄电系统启动……服务器供能无缝切换,未受一丝影响。
4秒钟后,柴油发电机群启动。电力完全恢复供应,数据中心运转如常。
阿里云灾备体系,至此交了满分答卷。
1
《混沌工程:Netflix系统稳定性之道》
【美】Casey Rosenthal 等 著
侯杰 译
本书介绍了 Netflix 的工程师团队是如何根据多年实践经验 主动发现系统中脆弱点的一整套方法。这套方法现在已经逐渐演变成计算机科学的一门 新兴学科,即“混沌工程”。通过一系列可控的实验和执行实验的原则,混沌工程将揭 示出分布式系统中随时发生的各类事件是如何逐步导致系统整体不可用的。
(扫码了解本书详情)
2
《尽在双11:阿里巴巴技术演进与超越》
阿里巴巴集团双11技术团队 著
本书由阿里巴巴集团官方出品、全面阐述双 11 多年以来在技术和商业上演进和创新历程的书籍。内容涵盖在双 11 背景下阿里技术架构多年来的演进,如何确保稳定性这条双 11 生命线的安全和可靠,技术和商业交织发展的历程,无线和互动的持续创新与突破,以及对商家的赋能和生态的促进与繁荣。
(扫码了解本书详情)
如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连
热文推荐
秒懂商用区块链关键技术:智能合约
演说泰斗加尔·雷纳德亲自解读《演说之禅》的奥秘
博文视点架构师成长书单,5本书助你少走弯路
前端中台化,把格局做大:Node.js与测试服务探索
本文分享自 博文视点Broadview 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!