精彩演讲推荐|蚂蚁集团超大规模技术风险体系介绍

793 阅读16分钟

6月16日,由中国信息通信研究院(以下简称“中国信通院”)、中国通信标准化协会主办的“2022精益软件工程大会”以线上形式成功举行。本届大会以“云赋新生,精益求精”为主题,以保障系统稳定性、提升软件研发效能、促进软件高质量发展为目标,探索全面上云之后企业的软件质效与系统稳定性的关键技术演进和落地实践。

图片

蚂蚁集团技术风险部首席架构师李铮带来了“蚂蚁集团超大规模技术风险体系介绍”,以下是演讲实录:

图片

大家好,我是蚂蚁集团的李铮,今天给大家分享的内容是蚂蚁集团超大规模技术风险体系的介绍。

蚂蚁集团的业务主要是依托于支付宝APP,支付宝APP每月有上亿级的DAU,可以说是一个国民级的APP。但是我们在2015年也经历了一次非常惨痛的稳定性的一个严重的故障,造成了非常大规模的用户影响。

图片

那是在2015年5月27号,当时在杭州萧山有一次施工,把我们的光缆给挖断了。挖断之后,我们花了好几个小时的时间才把这个系统恢复。从那之后,我们开始对系统稳定性有一些更深入的认识。

2016年我们正式成立了蚂蚁在国内的第一支SRE团队,由SRE团队来去持续的建设蚂蚁的技术风险系统、以及文化体系。

在这个过程中,我们发现支付宝的系统其实有它自己的特性,我们任何的稳定性的工作其实都要围绕着这个系统的特性或者围绕业务的特性,来去做相应的针对性的一些建设。而支付宝的系统它除了支撑很大规模业务量以外,还有很重要它有很多的金融的属性,它需要去支撑支付、支撑一些基金理财以及相应的金融产品,所以说它对资金安全的要求也是非常的高的。同时我们的业务的变更、业务的发展是非常的快的,每天线上会有上千笔的变更出现,每一个变更背后其实都可能存在着风险。我们必须要构建一套成熟的、完善的稳定性保障的体系,去支撑我们的业务长期快速稳定地向前发展。

什么是技术风险能力?就“技术风险”这个词,是我们内部对系统稳定性这个词自己的理解。我们通过这么多年的建设,系统稳定性这一部分除了稳定本身以外,还包括绿色和智能这两个关键词。稳定的含义其实大家都比较好理解,就是要支撑到5个9以上的稳定性、5个9以上的可用率,同时能支持异地多活、全自动的容灾的体系的建设。这个在今天支撑一个上亿MAU的APP,其实已经是基本的要求。

图片

同时,我们在实践的过程中发现绿色也是非常关键的一点,所谓绿色就是指绿色计算、节能减碳。因为通常来说,SRE团队或者传统的IT运维团队来讲,他一般都会维护着公司的海量的计算资源、机器、服务器。如何在保证系统稳定的情况下,合理分配这些计算资源?这也是一个非常重要的话题。

第三个点就是智能。智能,我们在这个领域,一般讲就是AIOps。AIOps这个领域,其实我们也有非常多年的积累,我们大概在三年之前就开始布局技术风险的数据团队以及算法团队。到今天,我们超过一半的技术风险的故障的防控,都是基于智能化的体系来去做线上故障的一个防控。最终,我们把这套体系把它称之为TRAAS,就是把技术风险当作一种服务、当作一种业务来去进行。

接下来看一下我们技术风险的整个的打法。这张图的话,其实可以看到我们最近几年的故障,其实每年都连续下降超过30%以上。这背后的话,其实包括着我们整个的技术体系以及运营体系。

图片

技术体系可以看这张图,我们分成两部分:第一部分是红蓝攻防,这是左边的部分。它更多指的是红军和蓝军的一个对抗,这个是我们常态化的一个风险挖掘和解决风险的一个手段。

右半部分就是我们的各种技术平台和技术架构,我们会把这个技术架构的部分大概分成三层:第一层就是围绕着业务风险,包括业务技术风险,包括基础设施的风险,以及包括整个的面向基础架构的整个的管控;第二层是我们核心的技术风险的平台能力,包括变更防控、性能容量、定位应急、资金安全、质量技术以及根基守护,每个领域都会有它的核心系统,围绕核心系统会去建设相应技术上的功能、技术上的能力,以及相应的研发团队、数据团队以及算法团队,来逐步地提升我们这个领域的一个技术能力;第三层这一块其实就属于我们基础设施,我们认为有两个重要的基础设施:第一个就是不断提到的数据智能,第二个基础设施就是我们的仿真灰度环境。通过环境上面的隔离,通过在不同的环境上面不断地去练习和演练我们的风险防控的能力,通过这样的环境上面去训练我们的数据算法模型,从而达到更好的业务防控效果。

再回头解释一下红蓝攻防。什么是红蓝?肯定是包括红军和蓝军。刚才我们介绍这些技术能力,其实它相当于都是红军的技术能力;另外一部分就是蓝军,我们有专门的技术蓝军的团队,他的逻辑是围绕着混沌工程的核心风险技术,不断地去寻找红军的漏洞,然后去不断地通过日常的攻防也好,或者一些活动性的大规模的攻防,或者日常的容灾演练,去寻找我们业务上风险上的漏洞,然后让我们的整个的风险体系越来越坚固。

另外一部分是风险的运营体系。因为技术风险工作不光是一个技术上的工作,还很重要一部分就是我们研发工程师的风险意识。在内部的话有“变更三板斧”的基本的风险的条例,一旦有同学在现场变更的时候违反这样一个基本的变更的要求,也会受到相应的处罚。

当然我们在风险技术上面或者说日常应急上面做的比较好的一些同学都会受到相应的奖励,通过这样的方式来去引导我们整个的蚂蚁的工程师团队在技术风险这部分越来越重视。像每年我们5月27号,刚才我介绍到的蚂蚁历史上非常重要的一个故障,每年这个时间我们都会进行一次大规模的红蓝攻防的一个对战。通过这样的一个大型的活动,所有的BU都会去参加,通过这样大型的活动去牵引我们整个的风险意识及风险技术再往上每年走上一个新的台阶。

图片

回到我们技术风险的核心技术理念,其实刚才已经介绍很多了,所以它有两大部分驱动力:第一部分就刚才说的蓝军的驱动力,要不断去挖掘风险;另外一部分是解决故障。其实有故障并不可怕,关键是抓住每一个故障的机会,把每一个故障深挖,能够从里面去学习故障的经验,并且把这个经验落地为真正的技术能力、技术产品,确保每一个故障最多只出现一次,就不会重复犯同样的错误。

技术理念的背后,其实是我们整个分布式系统的稳定性体系,换句话说也就是红军的技术体系。在红军视角来看的话,我们整个的风险其实可以分为三大类:外部环境的变化、内部节点的异常以及人为变更的风险。通常来说,人为变更的风险才是导致线上故障占比最大的一部分,通常在60%以上。

图片

围绕这三类大的风险敞口,下面一部分就是我们解决这些风险敞口的不同的分层、不同的技术能力建设。首先在整个全局架构系统风险巡检上面,从研发、设计、编码到发布变更以及到线上运维、活动保障,其实都会有相应的规范要求以及架构上面的一些强的设计。如果你在核心系统、在关键链路上,你的系统架构设计是有不一样的要求。同时我们会有系统化的检查手段,来不断地去巡检、去发现有哪些系统没有达到我们基本的要求,都会有相应的通知,通知到这个系统的负责人去不断地改进。

在中间这一层,就是我们整个全局性的稳定性架构或者解决方案,它包括我默认要去支撑异地多活的整个支付体系、异地多活的业务体系,以及我们精细化流量调度,然后不断的进行业务的性能、稳定性的不断的优化,所以在底层的技术支撑的技术也是非常的关键,尤其像OceanBase是蚂蚁内部自研的金融级的数据库,它可以默认支撑三节点以及三地五中心的高可靠的保障能力。

另外一个就是现在蚂蚁很多的业务都是基于资金的,资金安全里面最重要的是在分布式环境下确保分布式事务,我们整个分布式事务的技术框架也是在每一次处理资金业务的时候都是必须要去操作、必须要处理的,每个蚂蚁的研发都是必须要去知道怎么去使用这样一些技术的。

最底层就是技术风险的平台,也就刚刚我们说技术风险部完全自研的智能化的风险防控体系。这里面其实可以看到我们把变更也好、监控应急也好、容量调度也好等等,所以我们都给它加上一个“智能”的关键词,我们认为在这个风险领域,智能化其实不仅仅是系统指标的一些模型化的检测或者算法的检测,更重要的是架构、工程、算法、数据多方一起,去围绕我们整个的风险场景去做一个最优的配置,少任何一环其实都是不够的。比如没有了数据,我们算法其实起不到任何的作用;没有我们很好的架构,你会发现我们获取的数据也并不精准,它也没有办法起到风险防范的作用。这个相当于是蚂蚁的红军的整个的稳定性体系。

图片

另外一部分就是刚才讲到红蓝对抗,我们蓝军的技术体系。蓝军技术体系,我们把它称作是超大规模的一个混沌工程的技术体系。

在我们内部的话可以看到这张图,尽管比较复杂,但实际上它就呈现了两个闭环:第一个闭环,上面这个闭环其实是围绕着智能化这部分的,通过蓝军的不断的演练和攻击,去找到我们上面说的智能监控、智能变更、智能容量等等的系统的漏洞和弱点,然后让这个系统不断去优化自己的算法,去改进自己的风险防控的规则。同时的话,蓝军自己又依靠自动化、智能化的能力,不断去生成更多的攻击的用例。因为在这么大规模的业务体系之下,纯靠人去做攻击,其实是不太现实的,我们必须得靠智能化、数据化的方式去驱动。同一个故障,我们让它在成百上千个系统上面去重放,这样我们就可以非常高效地去实现大规模的风险的挖掘。它下半部分是闭环的,其实就是针对人的。因为我们真正出现尤其比较严重的故障的时候,肯定是需要人上来参与应急以及决策的。这一部分的话,如果长期不练的话,我们整个应急响应的组织机制肯定都是会越来越弱化,大家在遇到故障的时候肯定是手忙脚乱。即使有精细化的监控、发现或定位能力,可能你也看不懂,你也不知道该做什么,所以我们要靠红蓝攻防这样的机制来驱动我们应急组织能力的不断的强化。

另外一部分是人这部分,我们有经验的同学也会加入到蓝军中去贡献可能的故障的案例或者说风险的漏洞,让蓝军的整个攻击更加精准、更加有效,这个是我们在蓝军这一侧的整个的技术体系。

除了红蓝攻防驱动、故障驱动,不断提升我们的稳定性以外,前面又说到我们还有关键词就是绿色。这个也是我们在近两年的工作中,不断总结出来的相关的一些对公司业务发展、对降本增效有非常有价值的一个技术方向。可以看到蚂蚁集团之前也公布了2021年我们实现运营碳排放、碳中和的目标,我们在基于绿色计算实现的减排的总量占它全部量级的78%,可以说是一个最大的贡献。

图片

在绿色计算背后的话,其实我认为有三项关键技术:第一个是在离线混部,第二个是分时调度,第三个是AI弹性容量,这里我不会去详细展开它背后的技术。可简单举一个例子,像支付宝APP上面有非常多的功能是大家经常去使用的,比如说蚂蚁森林,我们会发现绝大多数人他去使用蚂蚁森林去偷能量的时候,基本上都是在早上起来时间不久的时候,基本上早上可能七八点或者六七点的时候。蚂蚁商城支付宝APP上还有一个重要的业务就是支付。支付的量级最大的时候,其实一般都是吃饭的时候,大家要线下去买单或者说点饿了么外卖,一般都是中午午餐或者是晚餐的高峰期。还有一部分是下午3点我们的基金尾盘,因为大家在支付宝基金的平台上面去购买基金,它跟股市行情的闭市有非常大的关系。如果说我们用传统的方式的话,其实就是要准备三份资源支持这三个业务。在我们分时调度技术基础之上的话,其实我们可以用一份资源去在不同的时间复用这份资源,去支撑这三项业务,这样就把两份的资源全部省了下来。同时的话蚂蚁内部的业务它不只是这三个,其实我每天都有成百上千的业务,内部有数千个系统,其实每一个系统或每个业务背后都是有一定的运行的规律的。我们基于监控的数据、监控的指标,然后去刻画应用以及业务的画像,基于这个画像去做全局的容量资源的调度,从而实现全局的资源最优化,然后达到绿色计算、节能减碳的效果。在今天这个时期的话,我们认为这项技术也是我们做IT运维、做SRE团队可以重点突破的业务方向。

最后要提一下科技开放,因为之前很多的时间,我们很多技术都是在蚂蚁集团内部去使用,起到了非常好的效果。从最近一两年开始,我们会更多地把我们的内部技术做一个开放,去帮助大家实现企业数字化转型里面的整个的稳定性的基础设施。

图片

第一部分是技术开源。近期会开源智能监控底层的一个核心的数据库,叫CeresDB,它是智能监控里面高可靠的一个持续数据库,都是蚂蚁内部自研的。通过这个数据库,可以帮助我们的监控系统支撑更大的业务量,同时具备一定的灵活的分析能力。另外是前面有提到的绿色计算的算法,绿色计算背后的一个智能容量的调度核心算法也已经开源,都可以在GitHub上直接去获得。其他技术,也都在逐步开源的过程中。

除此之外,产品和服务也是我们目前已经去开展的一些商业化的业务。像前面介绍的监控、巡检以及容灾、预案等等全套的蚂蚁内部的技术风险的产品,以及SRE的一些技术培训、咨询等等服务,目前也都已经开放了。除此之外,在风险技术本身,我们会通过微信公众号以及一些线下的活动的方式,跟大家不断地去交流在技术风险领域的技术上面的一些最新的思考和进展。

我们现在说通过这样的一个科技开放的方式,能够和大家一起去逐步建立技术风险这个领域,或者说系统稳定性方向上面的业界的一些标准,大家对一些标准能够形成共识,然后能够帮助这个行业这个领域能更好的发展。