本篇文章3581字,读完约9分钟
雷刚从凹非寺出来
年11月11日晚,另一年的天猫双11狂欢接近尾声。
新交易记录,新流量高峰,一切都是完美的样子。
这时,阿里巴巴cto程立(鲁肃)公开了实录录像—— 。
11月5日凌晨,蚂蚁技术上下完成双11大试验期间最后的全链路压力测试后,休息和交接的间隙……服务器连续两次受到攻击。
第一次表明,凌晨2点左右,监视大屏幕上4个地区的数据中心数值急速下降,技术保障小组开始紧急应对解决,遭遇了网络切断攻击。
继第二次之后,2:10,更凶猛直接的攻击来了。 华东地区的一个数据中心直接被水闸断电了……
但最令人吃惊的是,这一切都是阿里巴巴的合作伙伴、双11新零售技术负责人吴泽明(花名范禹)干的。
突然袭击,实弹攻击
这不是事先决定的袭击。
范禹和霜波——阿里双11技术大队长,只有技术安全生产负责人陈琴“小范围”知道。
但是陈琴看到这次断网攻击很吃惊。 因为与以前商定的攻击量水平不一致。
当时,明面的压测结束,参加的蚂蚁技术人员们,既有补充夜宵的人,也有在车站休息的人,但对这次意想不到的实弹攻击,一点也没有做好准备。
幸运的是,技术上下训练有秩序地得到了保障。 迅速查明故障的原因,启动应急方案,紧急展开修复……
一分二十八秒,一切都不会改变。
只要当时有订购的顾客,就没有注意到有“抖动”。
蚂蚁的技术上下,突然变得毫无防备,但为了应对这样的袭击,肌肉的记忆是一样的……因为在蚂蚁中,这样的袭击已经是普遍的、日常的,为此形成的红色蓝军与之对抗。
蓝军负责袭击弹药,经常发动意外袭击。 红军需要在极短的时间内修复故障。
对外,这项技术的奇袭和红蓝对抗一直不为人知。
内部,多次袭击和演习后,连故障恢复机制都形成了“1-5-10”的做法论,1分钟内发出警报,5分钟内查明故障,10分钟内修复故障。
这也是蚂蚁有勇气将可用性目标提高到99.9999%的潜力。
这么正确的是一次奇袭演习后得到的结果。
在蚂蚁内部,把这种红色蓝军的袭击和防守比作给系统打疫苗。
故意在可控半径内把故障注入系统测试系统的响应,类似于把少量有害物质注入体内激发免疫反应,防止将来的疾病。
这似乎很疯狂,但企业可以为包括停机在内的各种故障做好准备,将影响降到最低。
还有更疯狂的行为。 蚂蚁为这次袭击专门设计了app,简化为“按钮”,连接了阿里巴巴经济的各种技术架构和业务手段。
随时随地,按按钮完成袭击。
这可能在任何时候发生,例如在一次会议结束后,所有人都处于放松状态。
这次双11前的奇袭攻击,范禹闲庭信步离开“光明顶”时出现——双11的核心作战室里没有人注意到异常。
内部工程师把这次袭击演习与面具spacex有名的“事故逃生”演习进行了对比。
核心是实际可能发生的事故,实际验证自己的技术和应急保障机制。
你听说过混沌工程吗?
chaos engineering,混沌工程。
被称为“故意破坏的艺术”,主要是积极制造故障,测试各种压力下的系统动作来识别和修复故障问题,从而提高系统在生产环境中的容错性和恢复性,最终实现系统灵活性的提高。
在硅谷科技企业,混沌工程已经实践。
年,netflix团队开发了chaos monkey——称为混沌猴子的工具测试了系统。
模拟讨厌的猴子,在系统里随机跳下,继续闹直到把你的系统挂了。
在随后的几年里,netflix在github上共享混沌猴子,指出这种随机故障测试是以前流传下来的测试分布式系统稳定性的方法的特征。
基于这样一系列原理,混沌工程师这样的岗位开始出现在硅谷,作用和功能就像这次蚂蚁对外公开的蓝军一样,将这种随机破坏性攻击变成日常测试手段,提高自己的防灾能力。
混沌工程是专业理论,本质上是反脆弱的思想。
再追溯一下,哲学的源头就能找到尼采——杀不了我的人会使我更强大。
对蚂蚁来说,混沌工程思想的理念与技术稳定系统的诉求相协调,与蚂蚁异地的许多生活、灾难恢复快速发展的诉求相一致。
实际上,从2010年左右开始,蚂蚁电商区域就尝试从事故障注入测试,试图处理由微服务结构引起的强弱依存问题。
后来经过几个阶段的改善,最终发展成了monkeyking在线障碍演习平台。
作为阿里集团采用广泛的混沌工程平台,monkeyking帮助许多商业团队进行故障演习,不仅提高了商业稳定性,还支持阿里集团内部的定期联合演习活动。
从2019年开始,在小范围的生产环境中推进袭击演习,使阿里巴巴混沌工程工具chaosblade成为开源。
这次双11前夜的突然袭击,网络断电,本质上也是混沌工程的实践。
即使是双11这样的节点,看起来也异常惊险,但对蚂蚁来说,拥抱“混沌工程”进行“红蓝演习”是业务逆推的结果。
被逼得走投无路的蚂蚁
蚂蚁历史上许多业务改革与双11密切相关。
比如“异地的很多生活”,最初双11很受欢迎,流量带来了扩大的诉求。
阿里集团cto程立在2009年第一次想起了双11。 因为是淘宝商城的临时决策活动,技术方面还没什么感觉。
但是,双11流量一下子增加了好几倍,服务器完全没用了……当时在支付宝( Alipay )的程度上,继续瘦支付宝( Alipay )体系,只留下核心支付链接,才扛起了那个交易洪峰。
之后,对于每年挑战新记录流量洪峰的双11,蚂蚁从平时开始被迫进行改革。
另外,也有一些意想不到的天灾人祸,灾害警醒。
年夏天,由于杭州40°的高温酷暑,街上的电力供给非常紧张,但是蚂蚁的服务器室是电力消费的大房子,停电的威胁迫在眉睫,一旦机房停电,业务就会关闭大吉…… 。
根据这些经验,蚂蚁技术认识到不能等到下一个炎热的夏天,不能等待下一次天灾的教训,想出确保业务稳定性的方法。
区域物理灾害也不容忽视,影响了网上数亿客户。 不要妨碍因基础设施限制而迅速增长的业务。
所以,首先处理同城多活的挑战,然后进一步处理异地多活的世界课题。
面对问题和挑战,是被逼入绝境的创新。
事实上,迫使这种创新的例子是,在蚂蚁迅速发展的历史上,例如,支付宝( Alipay )开发oceanbase,AlibabaCloud (阿里巴巴云)开发飞天云操作系统的情况很多……。
那一年,为了支持双方11个流量,我们支付宝了不到100人的团队( Alipay ),开发了oceanbase数据库来代替甲骨文数据库。
今年,去年双11核心系统100%上云后,程立把全家人的生命放在云层上,飞天云操作系统、神龙服务器集群、中台等数字新基础设施还在升级,技术沟坎基本得到了处理。
客户的热情越来越高,蚂蚁技术持续进化。
混沌的工程和袭击计划也是这种强迫进化的一部分。
网络本身充满了未知和不明确性,例如高温、洪水、台风、暴雨、地震、雷电等自然灾害和人为操作错误等各种各样的黑天鹅,有可能对业务造成严重打击。 蚂蚁在双11期间敢对业务系统造成各种高危障碍。 这种自信来自成熟的袭击机制,底气来自AlibabaCloud (阿里巴巴云)十年建立的灾难恢复系统。 。
gartner预计每年会有90%的灾难恢复工作发生在云中。 特别是大型云提供商,数据中心遍布全球,是企业的天然异地灾难恢复中心。
AlibabaCloud (阿里巴巴云)的云灾害恢复能力一定在云制造商的第一阵营。
AlibabaCloud (阿里巴巴云)曾在业界率先提交过数据中心的“四个否”。 也就是说,不在同一个火山地震带,不出口到同一个水系,不出口到同一个电网,也不出口到同一个运营商的网络。 这是以前传到公司的硬实力。
另一方面,AlibabaCloud (阿里巴巴云)的灾难恢复能力全面覆盖了互联网、数据库、存储等行业,是能够应对各种故障的软实力。
举个栗子,在存储行业,AlibabaCloud (阿里巴巴云)利用存储高可用性等能力,被选为gartner全球云存储的魔力象限,占据世界领先地位。
所以,只有兼具硬件和软件的实力,才能最大限度地保障业务和数据的稳定安全。 这是蚂蚁不敢把完整的家族生命放在云层上的理由之一。
到这样的“最大限度的保障”为止,还需要考虑被网络切断电源被切断的极端场景……
所以,切断水闸电源的攻击成功了吗?
11月5日上午02点10分,阿里华东地区的一个数据中心在内门被切断了电源。
一瞬间,蓄电系统启动……服务器可以无缝切换,一点也不受影响。
4秒后,柴油发电机组启动。 完全供电,数据中心运行正常。
对灾害恢复系统进行了AlibabaCloud (阿里巴巴云),至此提出了满分的答案。
传送门:
混沌工程chaosblade项目地址
github/chaos blade-io/chaos blade 本文最初在微信的公共平台——量子比特上发布。 复印件是作者个人的观点,不代表上海热线网的角度。 投资者据此,风险请自己承担。