✎  天下网商记者 王安忆

“踏平朱日和  活捉满广志”这句口号的背后,是中国军事迷们最津津乐道的段子——在朱日和基地的实战化军演中,中国第一蓝军旅曾把参演红军虐得死去活来,以至一提蓝军旅旅长满广志的名字,全军上下官兵都恨得牙痒痒。

12月17日,蚂蚁金服的“朱日和军演”也已拉开战幕,这是一场为期4天的大型风险防控攻防演练,简单来说,就是通过仿真环境模拟“天灾人祸”,考验技术人员的应急能力考验,红军主防,蓝军主攻。

技术蓝军正在制定“突袭”计划

这是蚂蚁金服技术蓝军成立两年来首度曝光,蓝军规模不大,目前只有9个人,却异常“凶残狡猾”,“凶残”在于他们只搞破坏,殚精竭虑寻找脆弱点攻击防御系统,“大考”时更会一次性丢出上千个故障场景,而红军则要赶在5分钟内解决任何攻击;“狡猾”在于蓝军会实时、随地、在线发起无差别突袭,最惨无人道的一次,是趁周末红军一位同学婚礼时发起突袭,逼得程序员伴郎团纷纷从包里掏出电脑,蹲坐在角落里,噼里啪啦敲着键盘修复故障。

过去两年,蚂蚁金服内部的红蓝大军技术攻防演练,以每周200+个故障场景的节奏持续上演,正如朱日和军演不是一场要红军打赢的演习,而是为了考察红军能力极限,蚂蚁金服技术蓝军的攻击“测验”,也是为了通过实战中发掘出来的脆弱点,去牵引红军升级能力。

金融交易最怕“天灾人祸”

金融交易技术的目标是“数据不丢失,业务不停机”,听上去简单,实现却很复杂,因为技术保障总会面对各类“天灾人祸”的挑战,比如爆炸、断网等灾难性事件,又比如各类人为操作失误操作不当引发的集群性故障。

2018年杭州云栖大会ATEC峰会,蚂蚁金服副CTO胡喜在现场2000多人的注视下做了一场技术演示,杭州两个数据中心的服务器网线被人为剪断,在40%服务器突然无法工作的情况下,系统只用了26秒便恢复正常,这次演示展现了蚂蚁金服“三地五中心”架构的容灾能力,也是蚂蚁金融科技开放的技术解决方案之一。

三地五中心架构容灾能力现场演示 

“技术风险是所有蚂蚁技术人需要具备的最关键的能力。”胡喜说,蚂蚁金服近万名员工里有六成是工程师,在有9亿用户的支付宝和相关平台上,工程师们每天遇到的场景也许都是独一无二,而这些场景制造出接连不断的技术挑战,“逼”得蚂蚁金服不断升级技术,也“逼”出了红蓝军技术对抗。

2016年,支付宝探索并建立了“红蓝对抗”机制,通过全栈级别的大型技术攻防演练,增强团队应急处理能力和系统防护水平。通过机制和持续不断的内部演练,让不确定的风险变得可确定可预知。

垫底红军“获奖”烂算盘

技术红军共有8支队伍——红一支付宝军、红二微贷军、红三财富军、红四保险军、红五芝麻军、红六国际军、红七安全军和红八平台军,从名字就能看出,他们来自蚂蚁金服技术风险部SRE及各业务部门的技术团队。

SRE全拼为Site Reliability Engineer,是软件工程师和系统管理员的结合,是一种要求极高的技术工种。目前全球只有少数几家顶级互联网公司拥有真正意义上的SRE团队,蚂蚁金服是其中之一。

技术蓝军同样从属于SRE,但不对各业务方负责,他们的主要职责是发掘防御系统的弱点,并在不影响用户实际操作的仿真环境发起“真实”的攻击。

阿贵带领蓝军在讨论

蓝军自诞生之日起就带有浓厚的神秘色彩,其他团队都在大开间办公,他们在支付宝大楼6楼有独立的办公室,而且大门总是紧闭,因为白板上不定时更新着每天攻击的红军队伍,以及发起攻击的时间,这是演习中需要严格保密的关键情报。

蓝军负责人阿贵,已在蚂蚁金服工作10年,从两年前起,他从各研发团队“挖”来一个个工程师,组成现在这支9人的团队。

“像是以一己之力对抗整个蚂蚁金服的技术人员。”蓝军成立之初,负责人阿贵就做好了成为众矢之的的准备,毕竟他们做的都是“不按常理出牌,尽得罪人的事”。在蓝军眼中,故障必然会发生,只是时间早晚而已,所以只能想尽办法去触发这些故障,这样,在故障真实发生的时候,才有足够的应付能力。

蚂蚁技术风险部负责人俊义介绍,技术攻防演练每周都在进行,除了每年6月初的“期中考试”周,12月第三个星期为年度技术“期末考试”周,技术蓝军随时都会组织突袭攻击“测验”,通过实战中发掘出来的脆弱点牵引红军进行能力升级。

阿贵认为,红蓝对抗没有输赢之分,但在“期末考试”中,每支红军在被攻击后,花费多长时间发现故障,又用了多长时间恢复等都会被视作评定指标,而结果会根据“无损”攻防体系相匹配的度量平台,对攻防结果进行排名。

红军军长将关公交给蚂蚁副CTO胡喜

去年“期末考试”冠军得主是红一支付宝军,军长祢衡提到,去年12月21日的红蓝大军颁奖仪式上,第一名获得了一副金算盘,以及关公铜像一年所有权,而今年还给最后一名准备了特别“奖品”——一副烂算盘,“真的是很烂的算盘,也就淘宝上才能买到。”

每周制造200+故障场景

持续高强度的攻防演练,大幅提升了蓝军和红军的技术能力,最好的例证是双方不断升级的“武器库”。

2017年秋天,蓝军在成立两个月内,便自主研发了无侵入式故障注入系统Awatch,这套系统的厉害之处,在于可实时随地对正在运行中的业务系统,进行任意链路的编织侵入。

红军见招拆招,实时核对平台横空出世。该平台具备稳定的分钟级核对异常发现能力,在某些场景下甚至可以做到秒级发现。红军还在此基础上,升级了一套智能核对平台(内部代号四道防线),引入AI(人工智能)技术,利用智能算法自动识别问题。目前,这套防线已经覆盖蚂蚁金服80%以上业务。

另一方,蓝军又通过对过往故障的收集、工程师主动分析代码健壮性等方式集合成了一套蓝军平台。阿贵解释,例如支付宝转账,之所以可以给用户提供正常服务,是因为整条服务链上有很多关键资源:记录数据的数据库,传输数据的网络,网络的接入点,内部路由的交换机等,“我们根据关键资源的特性制造相关性的故障现象,比如可以让网络出现拥堵、交换机或者数据库挂机等。”

2018年3月,蓝军推出故障场景挖掘平台,基于Awatch探针探测应用内数据流,以此进行“弱点挖掘”。这套弱点挖掘体系,能够自动发现故障场景,最高能够在5分钟内产生500+的故障场景。

用“可乐山”明志,是程序员常见的套路

蓝军的故障挖掘平台制造了高频攻击,给红军带来大量的人力消耗,有攻就有守。红军又开发出“故障自愈”架构体系,并结合仿真,与蓝军一起研发了“无损”攻防体系,并推出与之匹配的度量平台,自动度量攻防的结果,生产有数据的报告。

目前,常态红蓝技术对抗保持在每周200+个故障场景的节奏,阿贵透露,“期末考试”则有1000余个故障等着红军发现和做应急修复。

实战磨砺出的技术能力

在线、实时、随地、无差别、突袭……蓝军的攻击总让人防不胜防。

2018年年中,蓝军在周末发起突袭,刚好红军的一位同学正在举办婚礼,为了不影响新郎迎娶新娘,由红军组成的程序员伴郎团纷纷从包里掏出电脑,蹲坐在角落里,噼里啪啦敲着键盘进行修复。

作为报复,红军也祭出了“尖端武器”——自适应容灾、防抖(保证任何网络或基础设施抖动,用户都无感知)等系统,这让蓝军吃尽苦头,几乎每一记攻击都像打在棉花上,毫无作用。

“说实话,那时候很有一种挫败感。” 阿贵心有不甘,但转念一想,红军有了强有力的防御系统,不正意味着蓝军不辱使命。

“蓝军的作用是检测我们系统的稳定性、抵御和自愈能力。”作为去年“期末考试”冠军团队,支付宝红军的军长祢衡举例说明了“故障自愈”架构体系的作用。

“在支付场景下,用户可以自主选择支付工具,比方说页面应该出现3个选项,花呗、余额宝和银行卡,但由于用户操作失误,将支付工具又设置成0个,那用户在支付时就什么选项都看不到了。”故障自愈系统检测后,能感知变更的出现,“明白”三个工具选项才是正确版本,就会帮用户自动回归到正确版本。

任何故障被要求在5分钟之内解决恢复,“这非常有挑战。”祢衡提到,现在红军在5分钟内恢复极限只有几百种故障。

除了设计缜密的防御措施防止蓝军的袭击,拜关公求庇佑也是红军的“习俗”

为了确保挫败蓝军的突袭,红军除了在防御系统上下足功夫,还会在每年期中和期末的攻防演练前举办仪式——拜关公,除了叩拜,还得摆上旺仔牛奶、格子衬衫、键盘、香烟等贡品。

目前,蚂蚁金服的“红蓝对抗”演练已经沉淀出一整套成熟的风险防控体系,通过仿真环境模拟天灾人祸,去考验技术架构的健壮性及技术人员的应急能力,从而全面地提升系统稳定,实现系统的高可靠性和高可用性。

技术风险部负责人俊义还提到,这些技术风险相关的能力已经对外开放,目前共有3款产品,包括容灾应急平台、全链路压测和资金安全监控;另外,还有3款产品,变更管控、巡检平台和黑屏运维管控即将上线对外开放。

声明:本文来自天下网商,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。