【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

支付宝技术期末考:专业技术蓝军首次对外公开

  • 2018-12-22
  • 本文字数:3332 字

    阅读完需:约 11 分钟

支付宝技术期末考:专业技术蓝军首次对外公开

转眼间 2018 年的进度条已经拉到 98%,年底正是大家忙碌的时候,我等上班族忙着做年终总结,学生忙着复习功课准备期末考试,而在支付宝大楼里,本周也在进行着技术人员的期末考试:红蓝军技术攻防演练。


12 月的第三周,是支付宝技术人的“期末考试”。今年从 12 月 7 日开始,在支付宝办公大楼 6 层的一间办公室里,9 名技术人员身穿统一的蓝色 T 恤,在一排蓝色的可乐山之后紧张地工作,他们就是支付宝的专业技术蓝军,他们的工作是对蚂蚁金服的各个业务线系统注入故障进行攻击。而各业务线的技术人员则作为红军,要对蓝军发起的突袭见招拆招,抵御他们的进攻。


支付宝蓝军诞生背景

红蓝军技术攻防演练与蚂蚁金服的技术风险部发展息息相关。不管是数据中心遭雷劈光缆被挖断这样的天灾,还是人工操作失误代码 bug 这样的人祸,真实的故障都是随机和不确定的。支付宝人意识到,如果只能等真实故障发生时才能够检验,防控能力将处于被动的局面,所以他们必须要有未雨绸缪的策略,提高对技术风险的防御能力。


2015 年,支付宝把原来的技术质量部正式升级为技术风险部,专注研发及架构的技术风险问题,并完成相应解决方案和落地平台。2016 年,技术风险部再次升级为 SRE 团队。蚂蚁金服技术风险部负责人俊义介绍说,相较于谷歌提倡的以确保网站可靠性为目的的 SRE 实践来说,蚂蚁金服的 SRE 团队其实更应该叫做 TRE (Tech Risk Engineering),因为蚂蚁金服的 SRE 团队除了要确保网站、应用的可靠性,还花了很大一部分精力来建设技术风险防控的能力。近年来蚂蚁金服自研的分布式数据库 OceanBase,金融级分布式中间件 SOFA,TRaaS 技术风险防控平台等技术,从底层基础设施到平台都在不断加强支付宝体系的抗风险能力。


SRE 团队成立后不久便发现,以往的技术攻防演练几乎都是小打小闹,不成体系,也很零散。同时,技术团队发现了两个极为重要的现象,一是生产故障不是必然的,而通常都是偶然性的;二是生产故障是低频的。这样就带来了一个很大的问题:故障的样本很少。这意味着,没有办法证明,在真实的故障到来的时候以前设计的平台和能力是不是管用。也就是说,SRE 团队建设的防御系统的可靠性,无法充分验证。


2017 年 7 月,SRE 团队成立了专门的、独立职能的技术蓝军,其主要的工作就是发掘防御系统的弱点并发起真实的攻击。技术蓝军并不对各业务方负责,只对这套防御系统的稳定性和可靠性负责。


在技术蓝军看来,故障的发生是必然的,只是时间早晚而已,技术蓝军要想尽办法去触发这些故障,这样,在故障真实发生的时候,才有足够的应付能力。所以,技术蓝军发掘各类脆弱点,并高频地制造任意可能发生的故障,以验证防御系统的可靠性。

红蓝军对抗

蓝军的执行军长阿贵,在支付宝有十余年的工作经验。当我们惊讶于蓝军团队目前总人数不超过 10 人时,阿贵说是的,尤其刚开始时感觉是在“以一己之力挑战整个公司的技术人”。阿贵介绍说,蓝军要做的事情是去找各个业务线系统的脆弱点,并想尽办法去触发这些脆弱点。攻防对抗发生在镜像系统中,该系统可以模拟生产环境中的流量行为,避免对线上环境造成影响。



红军按业务线分为 8 支队伍:红一支付军,红二微贷军,红三财富军,红四保险君,红五芝麻军,红六国际军,红七安全军和红八平台军


技术蓝军日常的工作除了要对各业务线系统发出攻击,还要从历史事故中总结或从代码逻辑中找漏洞,把故障表现模型抽象出来,基于模型去发现系统的脆弱点。但是蓝军一共还不到 10 个人,要找出蚂蚁金服全局系统的脆弱点,阿贵承认压力还是很大的。“在团队招人的时候,除了看他们是否有好奇心,对高可用是否有很深刻的理解,候选人心理承受能力也相当重要。”蓝军团队平时还需要开发故障挖掘平台,设计探针和算法来采集和分析数据。


2017 年秋天,蓝军团队在成立后的两个月内,自主研发了无侵入式故障注入系统 Awatch,可以实时地对运行中的业务系统进行任意链路的编织侵入。2018 年 3 月,蓝军推出故障场景挖掘平台,基于 Awatch 探针探测应用内数据流,以此进行“弱点挖掘”。这套弱点挖掘体系,能够自动发现故障场景,最高能够在 5 分钟内产生 500+的故障场景。


而红军方面自然也是见招拆招。据俊义介绍,红军不像蓝军专门抽出了一支队伍,而是分布在各个业务线。当有人感觉到系统可能受到了攻击,他会主动站出来去处理问题,这时候他就是一名红军。而在平时,各个业务线也会有专门的值班机制来紧盯系统是不是受到了攻击。


蓝军有自己的故障挖掘平台,红军也练就了一身好的防御本领,祭出了全链路压测平台和资金监控平台,能很好的监测故障并进行预防。同时红军也加强了“故障自愈”架构体系升级及能力建设,以效能为目标,结合仿真,红蓝军一起研发了“无损”攻防体系,并且推出与之匹配的度量平台,自动度量攻防结果,将数据可视化。


红蓝军双方在相互较量中共同提高蚂蚁金服的技术风险防控能力。有时候蓝军发动的攻击会被红军的故障自愈体系防范住,这时候阿贵也会觉得“有点失落”。也有的时候会有红军找蓝军理论:这种低概率的问题为什么要费劲去改善?但是在阿贵看来,不管一个问题发生的概率有多低,都应该被注意到,并尽量对系统做改进以消除这些隐患。所以在红军感知到蓝军确实攻击到脆弱点之后,会及时进行修复,如果不能在短时间内修复的,也会和蓝军约定时间提交修复方案。


目前,常态红蓝技术对抗保持每周 200+个故障场景的节奏在持续运作。而在期末考期间,蓝军的攻击密度会大大提升,在一星期内对各业务线猛烈地发动大约 1000 个攻击。在期末考之前,红军也有个传统,就是拜关公,给关二爷孝敬点瓜子、旺仔牛奶甚至是格子衬衫,这也是蚂蚁金服独特的工程师文化之一。



大概从 2012 年开始,在每年备战双十一的时候,支付宝技术人都会拜一拜关公,而关公也从照片到木质再到铜质不断升级,成为支付宝人的一个传统:既是一种仪式感,也代表了支付宝人对技术的敬畏之心。


在期末考试中,红军会按照发现攻击的时间和故障恢复的时间来进行排名。去年,红军的第一名和最后一名分别获得了“金算盘”和“烂算盘”的奖品。阿贵对烂算盘印象深刻:是真的烂,铁杆绣到发黑,算珠也有缺口,“也就只有在淘宝上能买到了”。

考试有排名,目的不是争输赢

当被问到是希望红军赢还是蓝军赢,阿贵回答说,其实红蓝军攻防演练并不是为了要争谁输谁赢。而是双方在对抗的过程中都能不断反思升级,了解到蚂蚁金服全局系统中有哪些容易出问题的脆弱点,在现实生活中发生问题之前把问题免疫掉,再大的问题也能达到 5 分钟故障恢复的目标。因为金融行业关系到我们的日常生活,很多时候甚至会关系到整个社会的稳定。支付宝迄今全球活跃用户已超过 9 亿,安全稳定的技术系统是事关生死的基石。


除了平常的故障演练红蓝军技术攻防,蚂蚁金服还在前沿技术上不断探索,致力于打造更稳定安全的技术体系,如:


  • AI。使用人工智能技术进行校验业务。蚂蚁金服内部有四道安全防线:第一道是研发团队的代码,第二道是质量团队,第三道是 SRE 团队,第四道是人工智能技术。目前蚂蚁金服已经在其资金安全监控系统中使用 AI 技术,利用算法自动识别异常,做到故障自愈,再结合蚂蚁金服的 TRaaS 技术风险平台,可以覆盖蚂蚁金服 80%以上的业务。

  • 区块链。安全是区块链技术的一大特点,而金融行业是对安全性、稳定性要求极高的行业,所以当区块链技术刚被提出的时候,金融被认为是最主要的应用场景之一。蚂蚁金服也在探索区块链技术,比如用于做容灾等,在未来也计划打造安全可靠的区块链平台。


经过不断的打磨和锤炼,支付宝的技术风险防控体系已经具有较好的可靠性和稳定性。从蚂蚁金融科技官网上可以看到,这些技术风险相关的能力已经对外开放,目前共有 3 款产品,包括容灾应急平台、全链路压测和资金安全监控;另外,变更管控、巡检平台和黑屏运维管控即将上线对外开放。

写在最后

任何系统和软件都不可能做到十全十美,只要是人在写代码,就难免会有漏洞,难免有考虑不到的盲区。我们身处技术改善生活的时代,也需要对技术保持敬畏之心,居安思危未雨绸缪才能设计打磨出更加稳定易用的产品。当今年双十一能顺利完成再创新高的 2135 亿交易纪录,当支付宝能扛住 25.6 万笔/秒的交易峰值,这背后离不开这支蓝军队伍的专业“找茬”,也离不开所有支付宝技术人强烈的风险意识。


2018-12-22 09:003225
用户头像
张婵 InfoQ 技术编辑

发布了 87 篇内容, 共 51.4 次阅读, 收获喜欢 218 次。

关注

评论 1 条评论

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

积分盲盒商城系统开发方案(成熟定制技术)

I8O28578624

Golang中利用BPF进行动态追踪

MatrixOrigin

Go 数据库 云原生 MatrixOrigin MatrixOne

AngularJS进阶(二十二)实现时间选择插件

No Silver Bullet

AngularJS 12月月更 AngularJS时间插件

AngularJS进阶(二十四)AngularJS与单选框及多选框的双向动态绑定

No Silver Bullet

AngularJS 12月月更 单选 多选

如何用 7 分钟击破 Serverless 落地难点?

Serverless Devs

DQMIS 2022第六届数据质量管理国际峰会议程新鲜出炉

数据质量管理智库

大数据 数据 数据治理 数据安全 隐私计算

4.0体验站|OceanBase 4.0,从分布式到单机,从单机到分布式

OceanBase 数据库

数据库 oceanbase

会议报道 | 第二届百家医院单细胞中心联盟年度峰会圆满落幕

联营汇聚

4.如何做好架构设计

程序员小张

「架构实战营」

火山引擎DataTester:一个爆款游戏产品,是如何用A/B测试打磨出来的?

字节跳动数据平台

大数据 游戏 AB testing实战 12 月 PK 榜

EasyRecovery2023不要钱的硬盘数据恢复工具

茶色酒

EasyRecovery EasyRecovery15 easyrecovery2023

LED透明屏在夜晚经济有怎样的发展机遇

Dylan

LED LED显示屏

华为云低代码技术:让矿区管理“智变”,一览无遗

华为云开发者联盟

云计算 低代码 华为云 12 月 PK 榜

AngularJS进阶(二十五)requirejs + angular + angular-route 浅谈HTML5单页面架构

No Silver Bullet

AngularJS 12月月更 requirejs angular-route

底层逻辑-理解Go语言的本质

面向加薪学习

golang go语言 源代码 golang 面试 Go源代码

MetaTown:一个可以自己构建数字资产的平台

华为云开发者联盟

区块链 华为云 12 月 PK 榜 数字资产平台

TDengine3.0:解决高基数问题的时序数据库设计思路

TDengine

数据库 tdengine 时序数据库

2023最新版EasyRecovery软件下载安装教程

茶色酒

EasyRecovery EasyRecovery15 easyrecovery2023

鸿蒙开发实例 | 可复用列表项的ListContainer

TiAmo

华为 华为云 12月月更

浅谈 Apache Flume 数据接入的实现原理以及问题分析处理方式

移动云大数据

flume

Meta Force佛萨奇2.0元宇宙项目系统开发技术讲解方案

I8O28578624

喜讯!YMatrix 当选新能源汽车国家大数据联盟理事单位

YMatrix 超融合数据库

数据库 新能源汽车 新能源 超融合数据库 YMatrix

架构实战营 - 微信业务架构图 & “学生管理系统”毕设架构设计

huiwen

架构实战营

踩坑之旅:配置 ROS 环境

eng八戒

机器人 ROS 移动机器人 机器人开发

理解DALL·E 2, Stable Diffusion和 Midjourney的工作原理

Baihai IDP

人工智能 AI 工具 AIGC 文转图

工作中常用的设计模式--策略模式

lpe234

Java 后端 设计模式 策略模式 spring-boot

MMM互助系统开发智能合约部署

薇電13242772558

dapp

源码解析:Dubbo3 的 Spring 适配原理与初始化流程

Apache Dubbo

Java 开源 微服务 dubbo

CDH+Kylin三部曲之一:准备工作

程序员欣宸

大数据 kylin 12月月更

CorelDRAW2023中文版专业矢量软件更新介绍

茶色酒

CorelDRAW 2022 CorelDraw2023 CorelDraw

DTALK直播预约 | 12月8日开播:后疫情时代,制造企业如何实现数字化转型?

袋鼠云数栈

数字化转型

支付宝技术期末考:专业技术蓝军首次对外公开_文化 & 方法_张婵_InfoQ精选文章