专栏名称: 算法与数据结构
算法与数据结构知识、资源分享
目录
相关文章推荐
九章算法  ·  「九点热评」Intel新任CEO宣布裁员50%! ·  昨天  
算法与数学之美  ·  被数学虐了这么多年,才发现其实是打开方式错了! ·  2 天前  
九章算法  ·  「九点热评」亚麻开始用AI打击员工! ·  3 天前  
算法爱好者  ·  误杀!微软道歉了! ·  2 天前  
51好读  ›  专栏  ›  算法与数据结构

阿里突遭断网断电!双11最惊险一幕刚刚曝光

算法与数据结构  · 公众号  · 算法  · 2020-11-20 09:12

正文

本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处
雷刚 发自 凹非寺

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线上故障演练平台。







请到「今天看啥」查看全文