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

2023-10-15 02:30

本文主要是介绍听说支付宝有一个“疯起来连自己都打”的项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小蚂蚁说:

自古红蓝出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胡喜现场演练的异常断网情况下,“三地五中心”自动切换,保证支付服务不中断。人祸则是指因技术人员操作失误引发故障后,系统如何快速应。

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

这篇关于听说支付宝有一个“疯起来连自己都打”的项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/214762

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca