写点什么

听说支付宝有一个“疯起来连自己都打”的项目

  • 2019-08-28
  • 本文字数:3141 字

    阅读完需:约 10 分钟

听说支付宝有一个“疯起来连自己都打”的项目

小蚂蚁说:

自古红蓝出 CP,在蚂蚁金服就有这样两支“相爱相杀”的队伍——红军和蓝军。蓝军是进攻方,主要职责是挖掘系统的弱点并发起“真实”的攻击,俗称“找茬”;红军则是防守方,其防控体系建设中的实时核对平台能够做到稳定的分钟级核对异常发现能力,并提供业务快速接入的能力。


支付宝“疯起来连自己都打”的项目就是红蓝军技术攻防演练,他们不仅每周进行全栈级别的演练,每年还会举行规模极大的“期中考试”和“期末考试”。接下来就跟着小蚂蚁一起去看看这对红蓝 cp 的日常“互怼”生活吧!


如果一个技术团队不干别的,专门“搞破坏”,这是一种怎样的存在?这真的不是“天方夜谭”,在支付宝确实有这么一支队伍——技术蓝军。蓝军的任务就是不断地攻击和进攻,而防守方则是技术红军。在支付宝,蓝军从属于蚂蚁金服技术风险部(SRE),而红军则包括 SRE 及各业务部门的技术团队。



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


由蓝军主导的技术攻防演练就是那个传说中的“疯起来连自己都打”的项目,今天,就来起底一下这个神秘的项目。

从“青铜”到强者

红蓝军技术攻防演练与蚂蚁金服技术风险部的发展息息相关,而蚂蚁技术风险的演进轨迹和游戏中的不断打怪升级非常相像。


早期是质量+运维+架构师三角协同,各司其职并自发性的开展一些技术风险相关的工作。2013 年,蚂蚁金服技术团队提出了质量 2.0 战略,以统一的规章、统一的流程和统一的阵型,开始体系化地沉淀故障检测等方面的平台化能力。


大概一年后,也就是 2014 年,专门成立了技术质量部,从全域视角解决技术风险的问题。


2015 年,技术质量部正式升级成为技术风险部,专注研发及架构的技术风险问题,并完成相应解决方案和落地的平台。


2016 年,技术风险部再次升级为 SRE 团队。


SRE 团队组建后,就开始全面开展故障自动定位、自适应容灾、防抖、精细化高可用等工作。其中防抖这块,要保证任何的网络或基础设施抖动,用户都无感知;而精细化高可用,又叫单笔高可用,其颗粒度可以精准到用户的每一笔交易,远远优于行业内的机房级高可用。


同时,那个热衷“找茬”的组织——技术蓝军也正式成立。这个专门的、拥有独立职能的团队不干别的,主要职责是挖掘系统的弱点并发起“真实”的攻击,红蓝军技术攻防演练也自此诞生。


牛 X 的是,技术蓝军并不对各业务方负责,只对应用架构及防御系统的稳定性和可靠性负责。在蓝军眼中,故障的发生是必然的,只是时间早晚而已。蓝军只有想尽办法去触发这些故障,这样,在故障真实发生的时候,才有足够的应付能力。


所以,蓝军发掘各类脆弱点,并通过红蓝军技术攻防演练,不断验证防御系统的可靠性。而故障防御系统及不断优化的高可用架构则是由 SRE 团队的红军与各业务深度合作,沉淀、构建出来的。



蓝军正在研究“突袭”计划


现在,全栈级别的技术攻防演练每周都在进行,蓝军似乎对“疯起来连自己都打”很上瘾。

利矛与坚盾不断升级

持续不断的攻防演练,让蓝军和红军的技术能力得到了极大地提升,同时双方“武器库”也在不断升级。


2017 年秋天,蓝军团队在成立后的两个月内,自主研发了字节码级别的故障注入系统 Awatch,这个武器的厉害之处在于可以实时地对运行中的业务系统进行任意链路的编织侵入。这对于对于技术蓝军以及整个红蓝攻防体系,具有里程碑式的意义。


蓝军研发出了厉害的武器,红军也没闲着。


与此同时,技术红军的防控体系建设也在如火如荼地进行着,实时核对平台横空而出。该平台能够做到稳定的分钟级核对异常发现能力,在某些场景下可以做到秒级发现,并且平台提供了业务快速接入的能力;红军还在实时核对平台的基础之上,升级演化出一套智能核对平台(内部代号四道防线),引入 AI 技术自动识别业务问题,目前这套防线已经覆盖蚂蚁 80%以上的业务。另外,各个业务域针对自身业务的一些特殊性,也研发了相应的核对系统。


尽管蓝军制造故障的能力有很大的提高,但大部分的故障场景主要是各个业务方提供的,只有极少数是蓝军人工梳理业务或者分析代码产出。此时,蓝军团队认为,日常演练常态化,在故障场景发现方面不能再依赖业务,必须建立自主发现故障场景的能力。



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


2018 年 3 月,蓝军推出故障场景挖掘平台,基于 Awatch 探针探测应用内数据流,以此进行“弱点挖掘”。这套弱点挖掘体系,能够自动发现故障场景,最高能够在 5 分钟内产生 500+的故障场景,红蓝攻防的日常演练的最为重要一块拼图终于完成!


然而新的问题来了。


蓝军的故障挖掘平台能力毋庸置疑,但有攻击就需要应急,高频攻防实施亦会给红军带来大量的人力消耗。持续应急压力驱动,红军开展““故障自愈”架构体系升级及能力建设,以效能为目标,结合仿真,红蓝军一起研发了“无损”攻防体系,并且推出与之匹配的度量平台,自动度量攻防结果,数据可视化。


目前,常态红蓝技术对抗保持每周 200+个故障场景的节奏在持续运作。

常态化的红蓝“互怼”

在线、实时、随地、无差别……这是支付宝技术蓝军实施攻击行为的几大标签。


2017 年年底的红蓝技术攻防周,技术蓝军发起攻击,但由于故障组件一处隐藏 bug 导致故障命中数量远远大于预期,给红军增添了不少麻烦,业务线的技术同学投入大量的人力和资源进行善后。此情此景之下,红军方面不仅没有抱怨,反而给予蓝军鼓励,“这次预期外的故障攻击是最真实的应急锻炼!”


2018 年年中的一次红蓝技术攻防中,蓝军在周末发起突袭,而刚好红军的相关同学正在举办婚礼。于是,一群程序员赶紧拿出吃饭的家伙,噼里啪啦敲着键盘进行应急,那画面简直不要太美了。


还是在 2018 年的一次对抗中,红军祭出了“尖端武器”——自适应防灾、防抖等,这让蓝军吃尽苦头,几乎每次攻击都无功而返。挫败感飙升的蓝军最终放出大招,让红军接受了非常猛烈的炮火洗礼。


有意思的是,似乎蓝军攻击得越欢,红军的同学越高兴……虽然看上去很受虐,但却没毛病,因为蓝军攻击得越狠越深入,被挖掘和发现出来的技术风险就会越确定,防御系统的能力也会因此而得到提升。



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


令人震惊的是,为了防止蓝军的“袭击”,红军除了在防御系统方面下十足的功夫,每年期中和期末的红蓝技术攻防演练,红军都要举办一个仪式——那就是拜关公,除了叩拜,还得给驱邪镇恶的关公献礼,礼品包括旺仔牛奶、格子衬衫、键盘、香烟等。

风险防控技术全面开放

蚂蚁金服技术风险部门经过不断地升级,并将红蓝技术攻防演练形成常态化。除了每周进行全栈级别的演练,每年还会举行规模极大的“期中考试”和“期末考试”。这意味着,支付宝的风险防控体系持续地经受打磨与锤炼。


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


所谓的天灾和人祸。天灾指的是,当出现台风、断网、火情等极端异常情况的时候,系统如何快速应对。这有点类似于今年杭州云栖 ATEC 大会上,蚂蚁金服副 CTO 胡喜现场演练的异常断网情况下,“三地五中心”自动切换,保证支付服务不中断。人祸则是指因技术人员操作失误引发故障后,系统如何快速应。


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


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/8XpJa75cHle61kRGI3Af1w


2019-08-28 18:202137
用户头像

发布了 150 篇内容, 共 39.4 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

Moment.js 转换 UTC 格式的 2 个小问题

HoneyMoose

MySQL打印死锁日志

Simon

MySQL 死锁

金融级数据库新坐标:腾讯云TDSQL发布全自研新敏态引擎

腾讯云数据库

数据库 tdsql

云小课 | DSC:快速识别敏感数据并脱敏

华为云开发者联盟

华为云 识别 数据脱敏 数据安全中心 敏感数据

企业采购管理的这些痛点,如何解决?

低代码小观

企业管理 管理系统 管理工具 采购管理 企业采购管理

模块三作业

Geek_1d37ea

架构训练营

毫米波 5G 比公共 Wifi 快近 30 倍,但覆盖范围相似

吴脑的键客

网络

CSS布局之display:flex

Augus

CSS 11月日更

用明道云集成多平台多部门数据,发挥数据分析的力量

明道云

一文帮你掌握TDengine的降采样查询+跨时区统计

TDengine

数据库 tdengine 后端

智联招聘的Web模块扩展落地方案

智联大前端

组件化 SSR

在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务

汪子熙

SAP abap CloudFoundry 11月日更

CodeGuide 300+文档、100+代码库,一个指导程序员写代码的,Github 仓库开源啦!

小傅哥

Java GitHub 小傅哥 开源社区 代码库

TDSQL首次登上腾讯财报!金融机构核心系统落地实现规模化复制

腾讯云数据库

数据库 tdsql

重点人员动态管控系统开发,智慧公安情报研判系统搭建

电微13828808271

TypeScript 针对 JavaScript 做了什么

HoneyMoose

100G云服务器诞生记

科技热闻

10行代码,撸一个在线个人简历页面!

老表

Python GitHub Linux web开发 跟老表学云服务器

新机遇,拨开证劵企业生态转型迷雾

大咖说

云计算 阿里云 数字化转型 数字化 企业上云

作业三总结

Geek_1d37ea

架构训练营

TDSQL | 多类型数据库统一管理,腾讯云数据库DBhouse工具重磅发布

腾讯云数据库

数据库 tdsql

Apache Pulsar 荣获中国开源云联盟「2021 优秀开源项目」

Apache Pulsar

大数据 云原生 开源项目 Apache Pulsar 消息系统 Apache Pulsar 社区

架构实战营模块八作业

Geek_d18264

架构实战营

OPPO 图数据库平台建设及业务落地

NebulaGraph

图数据库 知识图谱 图数据库实战 分布式图数据库

ABAP Netweaver和git的快捷方式

汪子熙

SAP Netweaver CloudFoundry 11月日更

JDK的第三个LTS版本JDK17来了

程序那些事

程序那些事 11月日更 jdk17 java17

8大原则带你秒懂Happens-Before原则

华为云开发者联盟

线程 并发 Happens-Bfore Java内存

新时代下如何构建TDSQL-C数据库产品

腾讯云数据库

数据库 tdsql

用一个极致简单的场景演练领域建模

神帅

DDD 领域建模

国家质量基础设施(NQI)一站式综合服务平台开发搭建

电微13828808271

【Promise 源码学习】第八篇 - 完善 Promise 并通过 promise-aplus-tests 测试

Brave

源码 Promise 11月日更

听说支付宝有一个“疯起来连自己都打”的项目_文化 & 方法_Geek_cb7643_InfoQ精选文章