上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

“混沌工程先锋实践者”优秀案例集(2022年)(165页).pdf

编号:86407 PDF 165页 9.55MB 下载积分:VIP专享
下载报告请您先登录!

“混沌工程先锋实践者”优秀案例集(2022年)(165页).pdf

1、 混沌工程先锋实践者混沌工程先锋实践者 优秀案例优秀案例 (2022022 2 年)年)混沌工程实验室混沌工程实验室 20222022年年7 7月月 前前 言言 随着分布式、云原生成为主流的系统架构设计方案,大规模分布式系统的稳定性保障能力越来越成为业界关注的重点。在此背景下,混沌工程以其防患未然、视“危”为“机”的理念迅速成为检验、增强分布式系统韧性的有效工具,近些年来得到业内广泛关注。混沌工程作为保障分布式系统稳定性的重要技术,已成为推动企业 IT 韧性系统建设的强大助力。为促进混沌工程创新发展,交流行业内先进经验,引导国内企业更好地应用混沌工程,提升国内云系统稳定性建设水平,混沌工程实验

2、室开展了首届“混沌工程先锋实践者”优秀案例评选活动。案例评选历时 4 个月,对国内一批成熟度高、具有示范标杆作用的优秀混沌工程实践案例进行了调研和评选,最终 16 个混沌工程优秀案例脱颖而出,覆盖互联网、软件、银行、证券、通信、零售、能源等行业和领域。本案例集按照“混沌工程先锋实践者”获奖案例的所属行业领域进行划分,充分征求企业意见后汇集成册,希望能对混沌工程领域相关人员有一定的启发和指引。目目 录录 第一部分 互联网领域.1 1.阿里云:阿里云容器服务混沌实践.1 2.蚂蚁集团:蚂蚁集团红蓝攻防实践.9 3.腾讯云:混沌工程对于云计算服务应用案例.19 4.京东科技:京东云全平台破坏演练.2

3、7 第二部分 银行领域.38 5.工商银行:工商银行混沌工程平台及混沌演练实践.38 6.农行研发中心:农行金库系统混沌演练实践.47 7.建信金科:建信金科混沌实践之道.63 8.北京银行:顺天技术平台混沌工程实践.78 9.平安银行:平安银行 ASTA 非功能测试平台.91 10.中电金信:恒丰银行红蓝对抗演练.100 第三部分 证券领域.111 11.中信建投:故障演练平台项目.111 12.中泰证券:混沌工程在互联网金融业务的应用与实践.119 第四部分 通信领域.132 13.中移信息:磐基 PaaS 平台混沌能力山东应急演练.132 第五部分 零售领域.139 14.永辉科技:永辉

4、生活电商全链路故障演练实践.139 第六部分 能源领域.144 15.南网数研院:云原生应用架构驱动的全栈高可靠探测.144 编后语.150 附录 1.151 附录 2.152 附录 3.154 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)图图 目目 录录 图 1 阿里云容器服务混沌实践实施流程.3 图 2 阿里云容器服务混沌实践实施框架.4 图 3 阿里云容器服务混沌演练模型.5 图 4 蚂蚁集团-为世界带来微小而美好的改变.10 图 5 蚂蚁混沌工程整体技术框架图.12 图 6 混沌工程整体技术框架图.21 图 7 京东云平台仿真环境.30 图

5、 8 京东云全平台故障演练流程.30 图 9 云资源稳态示意图.31 图 10 业务稳态示意图:.31 图 11 压测结果观测稳态变化.32 图 12 演练场景执行和问题分析定位.33 图 13 云泰故障注入与演练平台技术框架.34 图 14 工商银行混沌工程平台框架示意图.40 图 15 工商银行混沌平台故障注入能力.41 图 16 工商银行混沌演练实施效果.45 图 17 金库系统混沌演练部署架构.49 图 18 金库系统混沌演练平台总体架构.50 图 19 金库系统混沌试验演练流程图.50 图 20 混沌工程故障演练平台功能架构图.68 图 21 故障演练平台技术架构图.69 “混沌工程

6、先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)图 22 故障演练平台实施流程图.70 图 23 混沌工具集原子能力图.71 图 24 顺天技术平台生态体系整体框架图.81 图 25 混沌工程整体技术框架图.82 图 26 两阶段测试实验流程管理情况.83 图 27 混沌工程案例应用范围示意图.85 图 28 平台演练解决思路(重点实施).85 图 29 平台演练解决思路(安全可信测试).85 图 30 应用中间件演练解决思路.86 图 31 平台可观测性能力.86 图 32 平台可观测性能力.87 图 33 ASTA 平台 PaaS 层技术方案.94 图 34

7、 ASTA 平台能力全景.94 图 35 实验流程管理模型.95 图 36 典型案例图.96 图 37 Starlink 平台可视化展示能力.97 图 38 非功能指标观测指标评分体系.97 图 39 ASTA 平台助力降本增效减少风险.99 图 40 恒丰银行团队.101 图 41 中电金信团队.102 图 42 混沌工程平台.104 图 43 全链路演练.105 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)图 44 红蓝对抗演练.107 图 45 自动生成实验报告.110 图 46 中信建投故障演练平台能力.115 图 47 平台故障演练活动.

8、116 图 48 仿真环境架构图.123 图 49 混沌工程平台技术架构图.124 图 50 混沌工程平台原子能力.125 图 51 基于混沌工程与演练质保的故障演练.126 图 52 混沌平台核心组件架构图.141 图 53 云原生系统高可用故障探测框架.147 图 54 应用系统高可用总体架构.148 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)表表 目目 录录 表 1 主要故障场景和预期结果.32 表 2 混沌工程分布式平台应用效果表.74 表 3 混沌工程实验演练步骤.127 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(

9、20222022 年)年)1 第一部分第一部分 互联网领域互联网领域 1.阿里云:阿里云:阿里云容器服务混沌实践阿里云容器服务混沌实践 一、一、申报单位申报单位 阿里云计算有限公司。二、二、案例简介案例简介 阿里云创立于 2009 年,是全球领先的云计算及人工智能科技公司。阿里云为 200 多个国家和地区的企业、公共机构和开发者,提供安全、可靠的云计算、大数据、人工智能等产品和服务。阿里云作为全国首家云等保试点示范平台和首家通过国家等保四级备案测评的云服务商,为中国超过一半的上市公司,80%的中国科技创新企业提供云计算服务。2021 年 7 月可信云大会,阿里云故障演练平台入选可信云最佳技术实

10、践,并首批通过可信云混沌工程平台能力要求最高等级先进级认证。阿里云容器服务混沌实践是一套应用于云原生架构的混沌工程实践案例,内部实践沉淀了针对云原生架构丰富的 200+核心场景及其组合,通过无人值守演练和生产突袭有效发现了 90 多个高可用问题,提升了响应应急能力,推进了各个产品的自动恢复能力、预案能力演进,使得整体公有云产品高可用能力大大提升。同时一部分场景转化成为了商业化产品 AHAS Chaos,更好地服务云客户,为其提供混沌工程解决方案。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)2 三、三、用户简介用户简介 阿里云云原生容器服务产品族,作

11、为阿里云产品,在传统云计算基础上,具备更快更低成本的弹性,更好的软硬一体化灵活性,以标准的 Kubernetes 界面丰富生态,已经成为了云计算发展最快的技术方向。云原生帮助开发者大幅度降低资源成本和交付成本,从而更快更好地赢得市场。同时,云原生也给传统运维、研发方式带来了彻底的变革,这就使得传统的混沌工程手段需要跟随演进。四、四、需求分析需求分析 阿里云容器服务支持业务分析:阿里云容器服务支持业务分析:阿里云容器服务需要同时支持阿里云公有云、专有云客户和阿里集团客户。云产品面临的业务场景、周边设施越来越复杂。为了应对复杂的架构演进,面向失败设计和稳定性显得尤为重要。阿里内部需要支撑 30W

12、级别的 POD 量级,挑战巨大。阿里云容器服务依赖分阿里云容器服务依赖分析:析:相比其他行业或者系统,阿里云容器服务面对的客户更为复杂,体量更大,作为整个阿里集团底座,承载了几乎全部的在线业务及离线运行资源;对于容器来说,所有的这些运行资源都是无差别的,但一旦出现故障,故障打击也是无差别的;为了 k8s 在阿里集团内的落地,需要对内部的网络、存储、OS 进行适配,同时这也会依赖内部的运维体系和基础设施,导致拓扑结构变得非常复杂。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)3 社区追寻:社区追寻:近两年的云原生技术风起云涌,内部为了紧跟社区架构更替速

13、度,每年会有两次的版本迭代,紧跟社区版本迭代,同时这也会引入新的风险。故障演练:故障演练:作为稳定性问题充分暴露的练兵场,可以在更接近实际故障场景的环境中,暴露系统在生产环境中可能出现的问题,而混沌工程的引入,使得演练测试更接近真实的故障场景,在不断混沌化实验的过程中发掘可能出现的一些系统问题。五、五、技术方案介绍技术方案介绍 (一)(一)整体实施流程及框架整体实施流程及框架 整体实施流程一般分为这几个阶段:手工演练,流程工具自动化演练,常态化无人值守演练,生产突袭演练。这几个阶段的实施难度是从低到高,当然相应的收益也是从低到高。一个组织(云用户)可以随着自己业务应用服务体量的增大、复杂化和高

14、可用能力的增高的历程,根据实际情况需要来选择自己合适的阶段,然后随之进行升级和发展。即使从最简便的手工演练开始做起实施,经常也能带来相当明显且长远的高可用能力系统性提升。图 1 阿里云容器服务混沌实践实施流程 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)4 手工演练:手工演练:一般在高可用能力建设初期阶段,或者一次性验收的情况下手工注入故障完成。通过人为查看告警是否生效,系统恢复情况来进行演练。在这个阶段只需要一些故障注入的小工具或者脚本,方便后续使用即可。自动化演练:自动化演练:高可用能力建设到一定阶段后,往往会有定期检查高可用能力是否退化的需求

15、,自动化演练开始排上日程。自动化演练步骤一般包括:环境准备-故障注入-检查-环境恢复。在每个步骤中配置相应的脚本来形成演练流程,下一次就可以一键点击自动化执行了。常态化执行:常态化执行:演练进行到下一阶段,我们会有更高的要求,希望演练可以自主混沌化执行,以无人值守的方式进行,这又对系统的高可用能力有了新的挑战。这要求系统不仅有监控告警可以发现故障,也有对应的预案模块来负责恢复,而要做到无人值守,需要系统进行更智能精确的判断故障情况,自动执行相应预案。图 2 阿里云容器服务混沌实践实施框架 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)5 生产突袭:生

16、产突袭:以上演练大多在灰度环境进行,不会影响到业务,生产突袭则要求系统有能力在生产环境控制爆炸半径的前提下进行故障演练,以期发现一些业务相关、规模相关、配置相关、应急响应相关的,在灰度环境中遗漏的部分,生产环境的演练对系统的要求较高,需要有一套执行规范,对系统的隔离能力也有较高要求。大多数的工作,能力建设都在灰度环境完成验证,但生产突袭仍作为一个有效且必要的演练手段,用更真实的场景给研发体感,让其真实执行预案,也锻炼了应急能力,对系统有更多信心和认知。原子能力支持:原子能力支持:在阿里云原生的架构上,我们整理了如下所示的演练模型,在这个高可用能力模型中,我们根据系统架构按照管控层组件、元集群组

17、件、addon 组件,数据存储,节点层,整体集群进行区分,在每个模块中有一些通用的故障可以互相借鉴。图 3 阿里云容器服务混沌演练模型(二)(二)常见问题及解决常见问题及解决 常态化运行的稳定性:常态化运行的稳定性:由于容器服务本身的架构特性,系统自带很多自愈能力,正因如此,可以进行规模化的无人值守常态演练;常 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)6 态化运行可能因为环境原因、依赖系统不稳定等因素导致运行不稳定,不能反映系统真实的能力情况。针对环境问题,一般会使用一个较为稳定、和生产网络环境、依赖一致、但无生产流量的灰度环境进行,同时透明变

18、更记录,有问题马上告警介入。针对依赖系统不稳定等因素导致的演练失败,需要提高系统自身的容错性建设,增加重试机制,及时更新系统依赖。生产突袭的风险控制:生产突袭的风险控制:生产突袭会在有用户流量的集群进行,绝不能有超出预期的行为。可以通过流量隔离的方式圈定影响范围,也可以通过黑白名单、多重校验的方式增加拦截,一旦超出预期,系统可以自动熔断或人工介入主动熔断,防止进一步扩大影响范围。六、六、实验创新点实验创新点 (一)(一)无人值守混沌化演练无人值守混沌化演练 在形式上做到了创新,真正做到无人值守,注入故障后触发系统告警及自愈机制,故障升级自动告警升级,进而值班介入。节省人效,问题自动发现。混沌化

19、能力的创新,在实践中支持定制故障集合、时间周期、随机参数等混沌指数,使得故障注入更接近真实场景,得以探测系统问题。(二)(二)云服务在线生产突袭云服务在线生产突袭 相比其他行业或者系统,阿里云容器服务面对的客户更为复杂,在线服务影响也较大,但为了更真实的进行生产突袭,评估系统提供 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)7 服务的稳定性,内部进行了架构改造、环境隔离、数据分离等全链路的隔离,使得生产级别的演练可以进行。在突袭过程中,可以在不影响用户流量的情况下识别系统高可用能力的退化情况,同时触发真实的故障处理流程,锻炼了运维人员的处理故障能力

20、和整个系统的鲁棒性。阿里云容器服务的混沌工程实践影响范围大,会在 1500+节点、10W+用户容器规模生产集群进行突袭实践。同时形式上有所创新,突袭频次很高,截止 2021 年度,内部实施过程突袭了 150+次,在突袭过程中模拟真实故障发生情况,生产环境、历史故障、一定范围内随机时间及场景进行注入。(三)(三)分层演练,推进预案产品化演进分层演练,推进预案产品化演进 通过无人值守演练,不断验收产品自动化恢复能力;通过生产突袭推进产品,将非自愈预案逐步转化为自愈;通过以上的方式,使得短期人治能力逐渐转换成普适的产品能力,不随人员更迭而变动,同时普惠云产品广泛用户。七、七、实验收益实验收益 在阿里

21、云内部实施过程中,常态化无人值守演练有效的覆盖了100%历史故障及业务核心故障场景 200 个,年执行次数 8000+,有效的发现了 90+个高可用问题,其中 17 个告警问题得到优化,43 个预案得到优化,在演练的有效推进下,产品的告警发现率提升了 20%,预案覆盖率也从无到有,自动化预案比例提升了 40%。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)8 生产突袭演练覆盖了所有核心云产品,发现解决了 14 个问题,响应力预案告警能力有整体提升,2021 全年生产突袭次数达到 150+,有效推进了各个产品的预案能力,应急能力,etcd 故障响应时长

22、从10min 到 3min,公有云 ACK apiserver 故障:响应时长从10min到 4min;镜像仓库产品告警时长从 11min 到 1min,系统恶意流量场景恢复时长从 35min 提升到 8min。同时在演练过程中推进了各个产品轮班制度的建立,整体公有云产品高可用能力大大提升。除此外,混沌工程实施过程中的工具具备一定的通用性,对接了内部各种告警平台,20+种故障注入插件,演练流程灵活适配,给业务团队提供了便捷工具。八、八、反思及改进反思及改进 目前的故障注入基本都基于已有已知的场景进行随机组织、参数变化得到,后续考虑进行 AI 探测架构,自动分析系统薄弱点,组织场景集,可以根据集

23、群入口、网关等配置,自动嗅探薄弱点,同时自动组织注入点,和负载 liveness hook 等配置结合,判断健康度,减少配置成本,增加风险覆盖。对于生产故障,目前通常需要人工捞取现场进行回溯,问题的复现也往往依赖人工组织场景,后续考虑进行问题复现路径全息回放能力建设,每次根据现场情况上下文不同进行回放现场,解决问题后,也可以利用该能力复现历史具体故障进行复盘和回归,用同时刻的全息 360 复现能力以确保问题解决。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)9 2.蚂蚁集团:蚂蚁集团:蚂蚁集团红蓝攻防实践蚂蚁集团红蓝攻防实践 一、一、申报单位申报单位

24、 蚂蚁科技集团股份有限公司。二、二、案例简介案例简介 蚂蚁集团混沌工程实践起源于技术风险部。蚂蚁集团技术风险部于 2015 年正式成立,部门组建之初的目标主要是夯实容灾能力,构建资金安全防控体系;2016 年部门组建国内第一支 SRE 团队,开始全面开展故障自动定位、自适应容灾、灰度环境搭建、资金安全免疫、精细化高可用等工作;时至今日,技术风险部已取得云通未来、容灾三地五中心建设、模化应用“绿色计算”等里程碑,并完成仿真环境从 0 到 1 建设,实现风险左移、有损演练;目前,部门正朝着建设数字化运营管理体系方向前进,驱动风险、效能和成本持续改进。蚂蚁混沌工程实践以红蓝攻防为主要表现形式,已持续

25、数年,其显著特点为超大规模,主要体现在如下几点:1.参与的团队和人数多:几乎涵盖所有蚂蚁业务及其技术团队,直接参与混沌工程的工程师人数有近千人;2.覆盖的应用系统多:覆盖数千个应用系统;3.发现的问题多:包括系统问题,业务问题,配置问题等,2021年全年发现问题 500 多个;4.攻防执行的次数多:2021 年全年各领域的故障注入次数合计达到上亿级别,大部分演练以天为粒度进行持续回归。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)10 三、三、用户简介用户简介 蚂蚁集团是移动支付平台支付宝的母公司,也是全球领先的金融科技开放平台,致力于以科技推动包括

26、金融服务业在内的全球现代服务业的数字化升级,携手合作伙伴为消费者和小微企业提供普惠、绿色、可持续的服务,为世界带来微小而美好的改变。图 4 蚂蚁集团-为世界带来微小而美好的改变 四、四、需求分析需求分析 蚂蚁集团的业务大多具有金融属性,每天都有大量的交易在生产环境发生,涉及的金额巨大,另外,支付宝 app 已深深融入国民的日常生活,其中诸如扫码支付、地铁出行等是人们每天高频使用的功能,因此,蚂蚁对系统稳定性和可用性,以及业务逻辑的正确性的要求极高,生产环境一旦发生故障,很可能导致用户发生资损,或者导致社会舆情。蚂蚁技术风险部围绕生产故障开展工作,在故障发生前能够识别出潜在风险并阻断,在发生故障

27、后能够快速止血减少影响,为此 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)11 建设了一整套的分布式系统稳定性以及业务风险防控系统,包括监控,变更,容量,应急,资金核对等,这些系统有效降低了生产故障数量,蚂蚁近 3 年的生产故障数量呈现明显下降的趋势。在上述背景下,混沌工程(红蓝攻防)的主要?求包括:第一,在生产故障逐年降低的背景下,全套技术风险防控能力仍然需要不断被检验,保障这些能力在下一次故障发生前或者发生时能够起作用;第二,故障处理相关人员的能力需要不断被检验,包括个人处理能力,团队之间的协作能力,故障处理能力在团队的传承等;第三,通过混沌工

28、程帮助业务发现潜在风险,例如通过故障泛化的能力,将某个业务出现过的故障泛化至还未发生过类似故障的业务,做到提前防范;第四,技术风险智能化是当前蚂蚁技术的主要方向之一,通过混沌工程提供智能化防线需要的海量数据,训练智能算法,牵引智能防线建设;第五,宣导混沌工程的文化,通过混沌工程在技术工程师心中建立技术风险心智,时刻对线上系统保持敬畏之心。五、五、技术方案介绍技术方案介绍 蚂蚁混沌工程的整体技术框架图如下:“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)12 图 5 蚂蚁混沌工程整体技术框架图(一)(一)技术方案的要点包括:技术方案的要点包括:1.在软件

29、生命周期的各个阶段,都有混沌工程的实践,包括开发测试阶段,发布阶段,运行阶段,数据处理阶段。这部分会在“实验创新点”中详细叙述。2.混沌工程的业务主要包括三个方面,场景构建,攻击(故障注入),度量和运营。(1)场景构建。主要作用是生成混沌工程的攻击场景,分为自动化构建和人工构建两种类型。自动化构建基于统一场景模型和元数据,结合一些算法,构建出通用防线的攻击场景,例如在资金核对防线方面,通过资金表识别技术(资金表模型+采集生产资金流数据+算法),自动化生成资金一致性的攻击场景(资金表的资金字段内容错误);人工构建主要是将专家经验转化为攻击场景,用于业务逻辑较强的复杂场景设计。另外,还运用泛化技术

30、,将针对某个业务的攻击场景,扩展到其他业务中。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)13 (2)攻击,即故障注入。包括上层的业务逻辑,如攻击流程的编排(攻击之前的权限控制和环境准备,攻击时的故障下发,攻击之后的度量和环境回收)、攻击持续集成调度(周期性的持续运行),攻击执行统一客户端(屏蔽底层不同故障原子能力);底层的混沌攻击武器库,即故障原子能力,包括任意 JAVA 方法的代码化攻击(可动态替换任意 JAVA 方法的执行逻辑)、日志攻击(篡改日志,追加日志)、云原生攻击(k8s 和容器层面的故障)等等。从蚂蚁技术整体来看,目前故障注入的覆盖

31、范围包括,任意 JAVA 应用,中间件,容器,K8S,数据库,离线数据仓库。(3)度量和运营。度量主要是将攻击产生的效果以及发现的问题揭示出来,目前大部分可持续集成运行的攻击,其度量也是自动化的;攻击会发现一些问题,也会由专门的系统负责记录和追踪;通过攻击体现出的业务防控水平,会定期形成报表呈现给业务用户。运营分为日常运营和活动运营,日常运营通过业务之间的横向比较,驱动防控能力低的业务不断提升;活动运营会在每年定期组织大型的红蓝攻防活动,目前包括一年两次的 527 和 1218 红蓝攻防活动。混沌工程依赖很多基础技术和基础设施,基础技术包括统一应用切面 awatch(主要提供 JAVA 代码化

32、故障注入能力,以及资金流数据采集能力),污点分析(主要服务于资金服务攻击场景的自动化构建),流量染色(主要目的是识别出攻击影响的用户,将影响限制在内部用户);基础设施包括多云(蚂蚁的业务分布在多云环境中,要求混沌工程这套技术能够支持私有云,公有云,混合云的多云环境),依赖 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)14 的软件基础数据和运行数据(主要帮助构建场景),以及各类环境(生产环境,仿真环境,线下环境等)。(二)(二)实施案例遇到的问题实施案例遇到的问题 案例实施过程中遇到和解决了不少问题,这里选取几个重要的问题进行阐述:第一,在混沌工程实

33、践初期,攻击主要以真实故障注入为主要方式,即“有损”攻击,这类攻击需要业务进行应急恢复,成本较高,导致攻击频率无法提升。针对这个问题,主要的解决思路是“无损”攻击思路的提出,即将攻击的目的进行拆解,有损攻击类似生产故障,需要先发现再应急,如果将发现和应急二者拆分开来,如果只检验发现(发现率也是更重要的指标),那就无需制造真实故障。例如,在资金核对的攻防上面,有损攻击发生在业务系统,会真实篡改业务数据,而无损攻击发生在资金核对系统,篡改的是核对系统消费的数据(该数据可以认为是真实业务数据的副本),这是与业务主路径无关的一条旁路,注入核对系统不会对业务产生影响,业务也无需应急,这种注入主要检验核对

34、系统中的核对规则是否有效,以及核对系统本身是否有问题。第二,无损攻击的真实度不够,有些复杂场景也不能通过无损攻击实现,解决这个问题的思路主要是依赖仿真环境的建设,仿真环境与生产环境高度相似,但应用和数据都与生产环境进行隔离,这个环境特别适合进行真实故障注入,目前很多复杂的业务攻击场景都是在仿真环境完成的。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)15 第三,无损攻击会产生很多告警,对业务开发测试人员的打扰严重,解决这个问题,有两个思路,第一是对无损攻击的链路进行改造,监控能够区分出异常来源,对来源于攻击的异常进行告警屏蔽;第二,也是一个创新的思路

35、,是建设混沌靶场,将针对通用防线的无损攻击,转移到靶场进行,靶场会在“实验创新点”中详细叙述。六、六、实验创新点实验创新点 (一)(一)面向软件完整生命周期的混沌工程面向软件完整生命周期的混沌工程 软件完整生命周期包括开发测试,发布,运行,数据等多个阶段,每个阶段都会产生技术风险,蚂蚁在每个阶段都有技术风险的防控工作,因此要求混沌工程也能够覆盖到每个阶段。具体包括:1.开发阶段,进行源代码级别的故障注入,在源代码中增加注入代码,目的是检验 code review 是否做的足够充分和细致。2.测试阶段,进行测试用例级别的故障注入,修改测试用例目标方法入参,检验测试用例是否会因为入参的变化而失败,

36、从而检验是否有断言(不写断言,测试用例总会通过,有风险)。3.发布阶段,发布本质上是一种变更行为,在这个阶段进行的是针对变更的故障注入,蚂蚁技术风险建设有统一变更核心,通过各种变更防御规则对有风险的变更进行拦截,变更故障注入模拟不符合规则的变更,例如模拟一个发生在中午 12 点的变更(12 点属于午餐时间段,业务高峰期,本来不允许变更),检验相应的变更防御规则是否能够拦截该变更;或者模拟变更导致的系统故障,检验变更核心是 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)16 否能够发现该故障并关联到正确的变更,并将该变更回滚;另外,变更影响面(变更影响

37、的服务,变更影响的资金表等)也是风险挖掘的主要方向之一。4.运行阶段,包括系统稳定性和可用性的故障注入,以及面向业务的故障注入。前者例如服务异常,数据库超时,后者例如资金表数据篡改,业务代码逻辑篡改。5.数据阶段,在线运行的系统,产生的数据会周期性同步至离线,离线进行加工处理之后的数据,又会被一些在线系统使用,在这个过程中也会进行故障注入,例如在离线数据同步发生延迟,数据计算过程中出现数据错误和丢失,等等。(二)(二)面向业务的故障注入面向业务的故障注入 由于蚂蚁的业务大多具有金融属性,对业务正确性的要求极高,对资金相关故障是零容忍的。根据内部数据分析,蚂蚁的生产故障跟资金相关的,多数为业务内

38、部逻辑错误导致,某些逻辑错误在测试阶段难以发现,发生的条件极其复杂,因此对该类型故障的设计,就必须紧贴业务进行。面向业务的故障注入,基于蚂蚁自研的统一 JAVA 字节码框架Awatch,在技术上能够做到 JAVA 应用的代码级替换注入,即用故障注入设计的代码片段,在系统运行过程中,动态替换掉业务原本运行的代码片段,从而达到非常灵活的业务逻辑层面的错误。例如,运用此技术,可以实现修改方法的参数和返回值,跳过方法内部某些关键操作,重复执行某些操作,打乱操作的顺序,等等。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)17 (三)(三)混沌靶场混沌靶场 混沌

39、靶场是指在生产环境中自建的一套小型分布式系统,专门用于在生产环境进行故障注入。混沌靶场提出的主要考虑是,目前蚂蚁技术风险的各种防线,大多为通用防线,即提供各个业务通用的防御能力,例如高可用领域中的服务限流,通用定位(服务异常定位等),通用变更防御(通用防御规则),等等,这些能力不因应用系统的差异而发生变化,因此没有必要一定通过注入业务系统对其进行检验,靶场系统接入这些通用防御能力之后,通过注入靶场系统也能够达到相同的检验目的,同时不会因故障注入而影响业务,也不会因高频的故障注入产生大量告警而打扰开发测试人员。(四)(四)污点分析技术污点分析技术 污点分析作为一种经典的信息流分析技术,可以追踪指

40、定的关键数据字段在程序中的传播和流向。通过指定关注的数据(source)作为污点,分析该数据字段是否在程序中可以传播到指定的终点(sink),此技术主要用于混沌工程中的风险挖掘领域,在该领域,资金服务和消息到达资金表的路径是关键挖掘目标,通过污点分析技术,可以准确识别出资金表的字段的源头对应的服务和消息中的参数,进而为面向业务的故障注入提供丰富的攻击场景(修改服务和消息的关键参数)。七、七、实验收益实验收益 在 2021 年,通过混沌工程发现的业务风险和问题有 300 多个,推进解决的有 200 多个;日常红蓝攻防次数有几十万次,涵盖高可用,“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者

41、”优秀案例(20222022 年)年)18 资金安全,研发质量等领域,混沌工程的服务覆盖到蚂蚁所有主要业务,核心业务单元的技术风险防控保持较高水位(例如核心业务变更防御率达到 90%以上,核心业务指标异常的监控发现率达到 99%以上,资金一致性核对的发现率达到 90%以上);大型活动如 1218 牵引资金核对规则部署新增 1000 多条;诞生自混沌工程的统一 JAVA 字节码框架 awatch,不仅服务于混沌工程,而且扩展到其他业务领域,包括仿真环境、安全切面、业务巡检等,有效解决了业务遇到的问题。八、八、反思及改进反思及改进 1.混沌工程智能化程度不够,目前需要人参与的比例较高,主要集中在场

42、景构建方面,专家经验转化为场景需要大量人力投入,未来需要结合数据和算法,采用泛化的方式,提升智能化场景构建的水平。2.风险挖掘的结果准确性不足,需要较多人为打标的修正工作,未来在技术上需要有所突破,数据和算法的使用需要更加有深度。3.混沌工程平台使用门槛较高,部分故障注入的配置较为复杂,需要不断降低学习成本,提升使用体验,提升易用性。4.基础设施建设例如仿真环境还需要加速,部分业务由于环境的制约,无法大规模的进行混沌工程实践。5.大型活动的人力时间投入较多,主要体现在活动的故障场景设计方面,需要加强日常面向业务的红蓝攻防,提升大型活动的举办效率。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实

43、践者”优秀案例(20222022 年)年)19 3.腾讯云:混沌工程对于云计算服务应用案例腾讯云:混沌工程对于云计算服务应用案例 一、一、申报单位申报单位 深圳市腾讯计算机系统有限公司。二、二、案例简介案例简介 腾讯云混沌工程旨于为客户提供适合各业务环节的混沌工程实践解决方案,集成数百余故障注入原子能力,并采用混沌工程全生命周期的管理方案形式进行整体管控,满足客户开展常态化混沌工程实验需求。腾讯云混沌工程共累计实战演练万余次,发现并排查系统隐患故障,助力客户系统优化系统高可用性架构,有效地减少系统故障出现次数,降低系统故障影响时长,提升客户系统的运营质量。三、三、用户简介用户简介 腾讯云,腾讯

44、集团倾力打造的云计算品牌,面向全世界各个国家和地区的政府机构、企业组织和个人开发者,提供全球领先的云计算、大数据、人工智能等技术产品与服务,以卓越的科技能力打造丰富的行业解决方案,构建开放共赢的云端生态,推动产业互联网建设,助力各行各业实现数字化升级。四、四、需求分析需求分析 越来越多的业务选择基于云原生技术构建系统架构,在云原生架构迁移的过程中,混沌工程可以助力构建容错性好、弹性可扩展的云原生系统。在这种时代背景下,混沌工程开源协同联合协同团队与腾讯学院通力打造混沌工程系列课程,帮助业务了解混沌工程的思想和 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年

45、)年)20 原则,并分享在不同的业务场景下如何实施落地混沌工程,为希望通过混沌工程来提升系统韧性的业务提供指引和帮助。随着腾讯云的规模越来越大,无论是基础设施还是产品架构都越来越复杂,出现故障的风险也越来越大,希望有个系统能够:持续发现云产品服务的故障隐患,优化服务架构;持续检验云产品服务应对解决故障的能力;持续检验腾讯云监控告警及服务自恢复的能力。腾讯云混沌工程正是因这个背景,通过主动注入故障,提前发现潜在问题,迭代改进架构和运维方式,最终实现业务韧性。五、五、技术方案介绍技术方案介绍 (一)(一)混沌工程整体技术框架图混沌工程整体技术框架图 用户在通过云 API 的形式访问的混沌工程平台,

46、通过网关过滤掉非法的请求内容。由平台根据用户的权限提供相应的功能。用户的故障演练任务数据存储在数据库,故障注入整个流程采用的异步事务处理流程。服务端会创建演练数据,通过消息队列产生故障注入消息。动作库在监听到消息内容后,通过数据库获取到故障注入参数后,通过与 Agent 探针的通信通道,下发故障到目标机。在执行完成后,动作库更新任务状态,完成整体的故障注入过程。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)21 图 6 混沌工程整体技术框架图 (二)(二)基础设施支持情况基础设施支持情况 目前混沌工程平台已支持物理机、虚拟机、Kubernetes(K

47、8s)、关系型数据库(MySQL)、负载均衡器(CLB)、非关系型数据库(Redis)等资源的故障注入能力。(三)(三)故障注入原子能力(共故障注入原子能力(共 200+故障原子能力)故障原子能力)“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)22 1.物理机、虚拟机 CPU 负载、IO 负载、主机重启、内存负载、文件删除、时间偏移、磁盘填充、网络压测、网络限速、网络丢包、自定义 Shell 脚本、网络访问不可达等;2.Kubernetes 容器:CPU 负载、网络延迟、域名访问异常、网络丢包、删除容器等;Pod:网络延迟、网络丢包、删除 Pod、磁

48、盘 IO 负载、磁盘满载等;3.关系型数据库(MySQL)主从实例不可以达、主备切换、设置最大连接数等;4.非关系数据库(Redis)主备切换、主备节点不可用等;5.负载均衡器(CLB)集群宕机故障、外网 IP 封堵等。(四)(四)实验流程管理方案实验流程管理方案 目前采用混沌工程全生命周期的管理方案形式,将生命周期分为事前、事中、事后三大部分进行整体管控。1.事前:由产品架构师根据现有的产品架构提出基础设施故障假说,明确演练的爆破顺序编排、爆破范围、人员安排。然后在混沌工程中创建 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)23 演练计划,通过演

49、练计划自动通知相关人员,同步整体的演练计划方案。2.事中:(1)创建演练,根据演练计划的内容一键生成演练任务,由运维人员根据整体方案的部署内容以及爆破目标的类型设定护栏阈值,确保控制影响范围。配置稳态监控指标,方便及时了解相关目标的数据指标波动情况。(2)演练审批,运维人员在执行前需要通过相关机器负责人审批授权,方便相关人员在第一时间知晓自身所负责的机器要进行演练。(3)演练执行,执行人员根据配置的执行模式(手动或者自动)进行操作进行故障注入。观察稳态指标,验证产品对于故障的反应是否符合预期。执行完成故障注入后,通过恢复动作移除故障,进行稳妥恢复。3.事后:(1)总结复盘:根据本次演练的执行结

50、果进行总结复盘。然后创建相应的改进事件督促产研方进行容灾能力提升。(2)演练报告:将事件的全流程形成大屏报告,发送给相关人员了解本次演练的全流程。(五)(五)实施遇到问题及解决思路实施遇到问题及解决思路 问题:问题:涉及的产品较多,其中包含了公司的重点产品。产研方出行安全的考虑,没有深度参与混沌工程的使用。解决思路:解决思路:“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)24 第一,成立混沌工程推广专项。从上到下推广混沌工程全流程管理方案理念,设定各个产品的使用目标;定期组织内部分享会,协助产品方正确的使用混沌工程平台。第二,提出准生产模拟方案,利用

51、产品方的准生产环境进行混沌工程爆破实验,降低在生产环境的爆破风险;对于未构建准生产环境的产品,利用容器能力,混沌工程平台快速根据用户提供的配置文件构建沙箱环境,然后进行实验。六、六、实验创新点实验创新点 云上产品存在几个特点:底层依赖多、迭代快、多地域部署,针对这几个特点,腾讯云混沌工程平台做出创新的解决方案:1.结合网络管理部门,实现快速探查目标机器的组件依赖能力。通过混沌平台的扫描工具,输入目标的域名,在 10 分钟内完成整体架构的扫描。从而解决产品方在构建准生产环境时,需要大量人力来梳理复杂的组件依赖关系。2.配合内部的DevOps研效工具,以插件形式切入到持续部署(CD)流水线中。提高

52、测试人员使用混沌工程的效率,从原先的半小时提高到 10 分钟(在混沌工程的构建与使用上所耗费的时间)。极大的减轻测试人员在验证准生产环境的工作量。3.组建虚拟组织,从上至下的推到混沌工程的使用落地。以纵向方式传递混沌工作全事件管理理念,以及混沌工程实施的好处;以横 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)25 向方式组织混沌工作案例交流会,让各云产品相关人员针对混沌工程实施经验进行横向交流。4.内部设定产品的混沌工程成熟度评级制度,对于优秀的云产品进行嘉奖;对于成熟度低的产品制定辅导推进计划,协助相关负责人推进云产品使用混沌工程平台。七、七、实

53、验收益实验收益 为腾讯云提供适合各业务环节的混沌工程实践的解决方案,满足业务测试日常的混沌试验,提高分布式系统的弹性与韧性,建设了腾讯云混沌工程项目和混沌演练平台项目。腾讯云混沌工程项目截止目前覆盖 30+云产品,共累计实战演练万余次,发现并排查掉了发现并排查系统隐患故障,助力客户系统优化系统高可用性架构,有效地减少系统故障出现次数,降低系统故障影响时长,提升客户系统的运营质量。同时,在一个月内结合内部混沌工程最佳实践从 0 到 1 建设并上线了腾讯云混沌演练平台产品,目前已接入多家大客户,助力客户双活架构改造,提升腾讯云对客户的支持效率。八、八、反思及改进反思及改进 1.反思:反思:(1)混

54、沌工程在内部体系下的实施与云上协助用户实施效果存在较大差异,云上混沌工程产品效果低于预期。(2)协助用户在企业内部进行混沌工程的实验主要通过自上而下的推行,用户的成员可以快速的响应政策,加入到混沌工程使用的 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)26 队伍中。但是协助用户构建云上混沌工程产品时,因为大部分客户还处于一个观望和测试阶段,难以将较为真实的场景进行混沌工程实验。2.改进措施:改进措施:(1)协助用户举办线下活动。以行业范围来划分客户群体,协助用户对客户进行混沌工程理念的宣讲与沟通;提高用户的混沌工程产品在行业内的影响力。(2)协助用

55、户将相关培训资料定期通过线上课程、论坛、博客等形式推广产品,提高客户对于用户产品的认可度。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)27 4.京东科技:京东云全平台破坏演练京东科技:京东云全平台破坏演练 一、一、申报单位申报单位 京东科技信息技术有限公司。二、二、案例简介案例简介 随着云计算被各行业广泛应用并成为关键基础设施,云的稳定性越来越重要。政务、金融、互联网、制造、能源等各行业逐渐将核心业务和数据部署到云上,如何评估及保障云产品特别是云平台整体的稳定性是各家云厂商必须面临和解决的问题,也是已上云、有上云计划企业关注的核心问题。为了评价和提

56、升云平台面对失控情况下的抗脆弱能力、建立产品信心,京东云需要落地混沌工程中更为复杂的业务场景,即全平台阶段性验收大演练,涉及全平台、全系统、大规模下的复杂场景。一方面验证系统在各类真实故障场景下的表现,并对问题加以分析和优化,使得系统的“抗脆弱性”持续增强,同时提高云产品的稳定性,进而提高服务可用性 SLA。本案例主要描述了京东云全平台破坏演练场景下的解决方案和落地效果。通过多年的京东 618、双 11,以及 2022 央视春晚的磨练,京东云成为混沌工程的领先实践者和受益者,从单业务场景故障到整机房故障宕机,京东云完美通过各类复杂场景考验。作为最懂产业的云,京东云将积极在混沌工程领域的探索,并

57、持续输出京东云的成功经验,助力产业数字化过程中 IT 系统稳定性的持续提升。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)28 三、三、用户简介用户简介 京东科技集团是京东集团旗下专注于以技术为产业服务的业务子集团,致力于为企业、金融机构、政府等各类客户提供全价值链的技术性产品与解决方案。依托人工智能、大数据、云计算、物联网等前沿科技能力,京东科技打造出了面向不同行业的产品和解决方案,以此帮助全社会各行业企业降低供应链成本,提升运营效率,成为值得产业信赖的数字合作伙伴。京东云(JD Cloud)是京东科技旗下的智能技术提供商,依托京东集团在人工智能、

58、大数据、云计算、物联网等方面的业务实践和技术积淀,打造服务于数字企业、数字政府的多维场景解决方案。四、四、需求分析需求分析 为了评价和提升云平台面对失控情况下的抗脆弱能力、建立产品信心,京东云需要落地混沌工程:1.验证系统在各类真实故障场景下的表现 2.对问题加以分析和优化,使得系统的“抗脆弱性”持续增强 3.提高云产品的稳定性,进而提高服务可用性 SLA 在具体的落地中,方案需要支持两种场景:1.CICD 场景,单产品单系统的故障注入和演练,确保单系统、或少量产品组合下的抗脆弱能力。此场景主要覆盖:资源占满、进程异常、网络延时、实例切换等场景。2.全平台阶段性验收大演练,关注全平台、全系统、

59、大规模下的复杂场景。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)29 五、五、技术方案介绍技术方案介绍 (一)(一)演练目的:演练目的:主动发现公有云稳定性风险,提前加固,模拟严重故障,需要全平台一起联动的场景。验证故障发生时,各产品:可用性(SLA 偏移及损耗)、报警及时性、预案有效性、MTTR、人员操作熟练度等。(二)(二)演练环境:演练环境:由于是全平台严重故障模拟,在当前情况下为避免在生产环境爆炸半径过大导致产生重大影响的线上故障,本次云平台整体故障演练是在公有云仿真环境进行。为更真实的模拟生产环境,演练前需要对仿真环境进行治理和必要的准备

60、:1.模拟京东公有云某区域多可用区部署 2.参演产品根据特点进行跨 AZ、AZ 内高可用部署 3.明确所部署产品与对应物理机资源、虚拟机资源的对应关系 4.各产品留足资源冗余水位,确保满足自愈、稳态验证等需求 5.各产品部署版本大于等于生产环境版本 6.将服务间依赖信息作为基准数据 7.设计有一定云产品覆盖度的业务场景,例如电商场景、物流场景等 8.对业务进行大并发压力准备 9.资源稳态和业务稳态监控准备 仿真环境概况:仿真环境概况:“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)30 图 7 京东云平台仿真环境(三)(三)演练流程:演练流程:图 8

61、京东云全平台故障演练流程 稳态指标:稳态指标:为实现在演练过程中实时、全局观测各产品稳态,需要在演练前做好稳态监控的配置。京东云云泰故障注入与演练平台提供了强大的稳态监控能力,包括云资源稳态(SLI 实时探测、SLA 损耗分析)和业务稳态两大部分。云资源稳态示意图:云资源稳态示意图:采用云所承诺的 SLA 算法,对每一个云资源实例进行可用性主动探测。通过实时对 SLI 和 SLA 偏移量对比,评价故障对云资源可用性的影响。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)31 图 9 云资源稳态示意图 业务稳态示意图:业务稳态示意图:支持配置任意协议及自

62、定义脚本,支持调试。首屏实时观测云平台所有产品当前的整体稳态情况,次屏可观察产品各监控项的成功率和耗时以及失败日志。图 10 业务稳态示意图:通过压测结果反馈稳态变化:通过压测结果反馈稳态变化:“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)32 图 11 压测结果观测稳态变化 (四)(四)演练场景编排:演练场景编排:本案例目标是模拟会影响整个京东云的严重故障,爆炸半径较大,期望在严重故障场景下发现各产品稳定性风险。梳理了内外部容易发生的严重故障,结合内部实际需求,制定了主要故障场景和预期结果如下表:表 1 主要故障场景和预期结果 京东云云泰故障注入与

63、演练平台的基础资源故障可很好的支持虚拟路由、虚拟交换机、柜顶交换机以及普通服务器的开关机、数据 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)33 库无法访问、DNS 服务不可用等故障,自定义故障类型可支持专线网络到骨干网不通和恢复的模拟。(五)(五)演练场景执行和问题分析定位演练场景执行和问题分析定位 在全平台大演练中,对参与演练的同事进行了角色划分,各角色在演练过程中按照如下分工协同作战,完成各故障场景的演练执行以及问题分析定位。图 12 演练场景执行和问题分析定位(六)(六)演练总结演练总结 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者

64、”优秀案例(20222022 年)年)34 演练结束后,从以下几个方面进行了总结:1.复盘演练全过程,总结得与失;2.各演练 case 是否满足预期,如不满足预期,明确根因及待解决项;3.故障发生时各产品监控报警是否及时准确、预案是否有效等;4.服务依赖情况校准。(七)(七)平台技术框架平台技术框架 京东云-云泰故障注入与演练平台,基于混沌工程原理,通过故障的仿真和注入、结合业务“稳定状态”监控检验系统的健壮性和可用性。图 13 云泰故障注入与演练平台技术框架 1.基础设施故障:CPU、内存占用、网络延迟/丢包、磁盘故障、杀进程等。2.K8S 故障:杀 pod、pod 资源占用类故障、pod

65、网络类故障、容器 remove、容器资源占用类故障、容器网络类故障、node 资源及网络类故障等。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)35 3.应用服务故障:数据库、Redis、ES 延时和自定义异常,JVM类故障。4.自定义故障:主机宕机、开机、自定义 shell 命令、交换机等自定义故障。六、六、实验创新点实验创新点 组织云底座&100+云产品参与的云平台整体破坏性演练是非常有挑战性的,如何保证在一天的时间内有序完成多个严重故障模拟、实时评价各产品业务稳态、并同步定位和分析可能出现的高可用问题,需要在演练组织上、混沌工程平台功能上都有所

66、创新。(一)(一)创新的组织保障机制创新的组织保障机制 成立演练小组,明确总指挥和导演小组。成立演练小组,明确总指挥和导演小组。1.总指挥负责总体把控演练启动宣贯、演练前各项工作的准备和治理、演练当天的各事项明确和推进。2.导演小组有多人,每人负责多个产品的具体事项跟进,如演练前的产品部署情况确认、高可用情况确认、稳态监控和配置;演练中的产品稳态实时监控、问题定位和分析;演练后的问题梳理和待跟进项明确。在本演练案例中,正是得益于总指挥的全局统筹、导演小组各成员的协调推进,加上各产品接口人职责明确,促成了本次大规模演练有序、按时、高质量的完成。创新的多视角稳态评价、故障根因定位创新的多视角稳态评

67、价、故障根因定位 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)36 云产品不是常规的接口类业务系统,每个云产品的日常监控能力和监控项都是分散在各个监控途径,且具体的监控项内容基本是不一致的。为了满足大规模演练时有统一的监控结果展示和问题定位的途径,混沌工程平台创新性的支持了:1.在平台进行各云产品的控制面和数据面监控项分别配置(支持任意协议、自定义脚本等)和调试。2.自动在混沌工程平台生成实时可用性趋势大屏,次屏可展示详细监控项成功率和耗时趋势、异常日志追溯。3.次屏可以关联故障事件,能直观、精确的看到故障发生、恢复时,稳态的变化情况,满足一站式演

68、练、实时的监控和快速的问题定位。4.综合多视角稳态评估:“业务稳态+资源 SLI 稳态+产品功能稳态+性能稳态”。(二)(二)创新的云底座故障模拟方法创新的云底座故障模拟方法 通过自定义故障注入的方案,可自动化模拟主机宕机、开机、自定义 shell、交换机等故障。使深层次、大面积故障的自动模拟和恢复得以低门槛实施。七、七、实验收益实验收益 “京东云全平台破坏演练项目”积累了混沌工程在大规模、复杂场景落地实践的经验,提前发现了近 40 个风险和问题,验证了在机房、专线、机架、物理机、虚拟机、进程、依赖等故障下,预案的 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(2022202

69、2 年)年)37 有效性、监控及时性、流程适配性、人员熟练度,并获取了第一手 MTTR数据,进一步理清服务依赖,潜在风险挖掘,和风险影响范围,有助于制定下一步全平台稳定性改进方向和方案。得益于“京东云全平台破坏演练项目”的阶段性、持续性实施和迭代,京东云可用性大幅提升,其中云计算可用性提升至 99.995%,跻身世界一流云计算厂商行列。在细化指标上,京东云的故障数、MTTR大幅降低,故障提前发现率大幅提升。八、八、反思及改进反思及改进 在故障演练过程中,个别被其他产品依赖的基础组件和产品在出现不可用问题后,分析、定位和解决的时间较长,影响了其他产品的MTTR 数据有效性,需要针对此类产品在大演

70、练前进行单项小演练,最大程度避免此类问题在大演练时发生。为了识别此类组件和产品,需要对所有参演产品提前进行关键依赖梳理和验证。(未来改进工作项:Ring 环依赖识别和治理)本次演练中有多个产品出现了因运维人员对预案执行不熟练导致操作遗漏、操作错误的问题,为了避免此类问题在后续演练甚至线上运维时发生,需要提高各产品运维人员对预案,特别是较少发生的故障应对预案的熟悉程度,提高预案执行的效率和准确性。(未来改进工作项:定期演练,预案自动化率提升,故障自愈率提升。)“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)38 第二部分第二部分 银行领域银行领域 5.工

71、商银行:工商银行:工商银行工商银行混沌工程平台及混沌演练实践混沌工程平台及混沌演练实践 一、一、申报单位申报单位 中国工商银行。二、二、案例简介案例简介 本案例为中国工商银行在混沌技术领域三年的研究实践分享。为提升“云计算+分布式”架构体系运行稳定性,中国工商银行于 2019年开始建设混沌工程故障演练方案,运用混沌工程技术,建设故障演练平台,形成涵盖系统、应用、容器三大类 100 余种故障演练能力,提供介质下发、压测发起、故障实施、环境恢复的自动化演练能力,形成常态化的故障演练机制。截至 2022 年 4 月,故障演练平台使用人员已超 700 人,落地 250 余个业务系统,累计超 1 万个演

72、练案例。通过主动制造故障,帮助落地应用发现 400 余个高可用问题,提前预防平台系统性风险,并通过信通院可信云混沌工程平台能力评估最高级别“先进级”认证,成为业界首批且金融同业首家拿到最高级别评估的银行。三、三、用户简介用户简介 中国工商银行股份有限公司是一家资金雄厚、管理先进、经验丰富、国际知名的股份制商业银行,连续 5 年被英国银行家杂志评选为全球 1000 家大银行之一,连续三次被美国环球金融杂志评 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)39 为“中国最佳银行”,连续两次被香港亚洲货币杂志评为“中国最佳内地商业银行”。工商银行前四代系统

73、基于传统的集中式大型主机搭建,在过去几十年间较好地支撑了业务运行。近年来,随着数字经济蓬勃发展,银行系统交易量快速增长,传统的集中式系统架构受制于可扩展性差、升级成本高等问题,在适应移动互联时代海量数据、海量交易处理需要时遇到了瓶颈。为此,工商银行自主研发构建了以“云计算+分布式”为核心、灵活兼容适配国内外主流信息技术产品的技术新基座,实施全球银行业规模最大的主机业务下移,实现大型银行主机系统转型的重大历史性突破,打造了银行业科技高水平自立自强样板。四、四、需求分析需求分析 随着分布式、云计算及国产化的大环境导向,金融机构由传统架构向分布式转型已成为主流趋势。工商银行从 2015 年启动了 I

74、T 架构转型工程,发挥自身金融科技优势,构建了以“云计算+分布式”为核心、灵活兼容适配国内外主流信息技术产品的技术新基座,实现了从传统集中式向全分布式转型突破。但在此过程中,始终面临三大难点问题:一是银行业务架构相对比较复杂,业务交易链路长,对交易可靠性、幂等性要求比一般非账务类的业务系统要高出很多;二是系统底层部署架构复杂,涉及诸如虚机、物理机、容器及其他非标准设施等多种类型;三是随着分布式技术体系的不断推进,将大幅增加平台侧系统的运维复杂度,导致业务系统运行中的不确定性增加。为解决上述问题,确保生产稳定运行,工商银行对标业界主流技术,通过 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践

75、者”优秀案例(20222022 年)年)40 混沌工程故障演练,提前发现问题,让业务系统更好地适应复杂多变的运行环境。五、五、技术方案介绍技术方案介绍 (一)(一)技术框架技术框架 工商银行在建设混沌工程演练平台中主要有三大宗旨:一是要屏蔽应用架构和底层部署架构的差异,针对诸多底层设施,平台实现统一封装,用户只需关注故障实施内容,无需关注底层差异;二是在故障注入工具之上,提供故障编排、任务调度、演练场景配置、自动生成故障演练报告等核心能力,实现企业级的平台能力;三是通过应用自身架构自动匹配高可用专家库,实现一键生成多类故障,混沌平台需要具备通用、便捷甚至智能的特性。基于上述宗旨,入选的混沌故障

76、演练平台整体技术框架包括基础设施、底层能力、任务调度、系统集成和上层业务。图 14 工商银行混沌工程平台框架示意图 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)41 1.基础设施:类型包括物理机、虚拟机、容器等多种目标类型资源。2.底层能力:是指注入介质,集成了超 100 种系统级、应用级原子能力。3.任务调度:负责将用户在前台编排的任务进行批量下发和调度。4.系统集成:代表混沌工程故障演练平台,集成了演练编排、监控、专家库等多个核心功能。5.上层业务:代表各业务系统根据需求对平台进行特色化应用的场景,如红蓝攻防、日常演练和应用评级等。图 15 工

77、商银行混沌平台故障注入能力(二)(二)案例实施过程中遇到的问题及解决思路案例实施过程中遇到的问题及解决思路 中国工商银行于 2019 年完成混沌工程故障演练平台建设,并首先在快捷支付、聚合收单等重点业务领域开展混沌演练工作,然后再逐步扩大推广范围。截至 2022 年 1 月,混沌工程已在工商银行大规模落地。混沌推广团队定期推动指导各部门制定故障演练场景并开展 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)42 故障演练,演练内容覆盖网络、存储、宿主机、数据库、消息等多个基础设施场景。在这一过程中,也遇到了一些困难,工商银行针对这些问题也提出了相应的解

78、决方案。总结问题,大致分为以下几点:问题一:门槛较高问题一:门槛较高 混沌演练对实施人员有一定门槛,不仅需要熟悉混沌工程故障演练平台的各个功能,还需要熟悉业务系统的架构、业务节点上每一个重要节点,以及节点异常后造成的影响,以便于设计高价值的演练场景。解决思路:解决思路:一是组建混沌演练专家团队,对各基地混沌实施人员进行分层培训,包括混沌演练平台能力介绍、混沌演练最佳实践案例、混沌测试工作指引等,并在日常工作中对基地各混沌人员进行点对点指导。二是制定混沌工程演练规则,要求混沌工程演练的标准场景要求作为应用必备演练场景,演练场景必须由演练人员和应用架构师同时参与设计。三是建设高可用专家库,把相同的

79、故障场景封装成演练模板,形成一键式创建故障演练场景的能力,降低门槛。问题二:演练结果准确性有待提升问题二:演练结果准确性有待提升 演练结果是否符合预期,非常依赖实施人员的知识经验,容易出现误判,遗漏演练发现的问题。解决思路:解决思路:一是建设自动化评价机制,辅助演练人员更加准确的判断演练结果。二是建设演练结果评测机制,演练结果需要经过多方人员评测,必须全员通过,才能算“演练结果符合预期”,否则将作为问题纳入跟踪列表。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)43 问题三:操作便捷性不足问题三:操作便捷性不足 混沌工程提供了丰富的故障模拟手段,但这

80、也同时提高了混沌演练的操作复杂度,降低了演练人员的演练效率。解决思路:解决思路:建设混沌自动化能力,提升常态化高可用能力守护。通过故障演练平台的演练场景自动编排能力和稳态指标智能断言能力,实现故障演练自动化,提升混沌测试效能。六、六、实验创新点实验创新点 工商银行在近三年的混沌技术实践中,深刻理解混沌技术特点,从技术和管理两方面进行了实验创新。(一)(一)技术方面:技术方面:1.建设高可用专家库。为了快速响应行内云原生自动化评价的建设要求,工商银行软件开发中心杭州产品部通过设计专家库的实验背景、架构弱点、容错方案、实验步骤、预期方案等内容形成一键式创建故障演练场景的能力,通过对应用层、数据库层

81、、路由层、消息中间件和缓存层维度的混沌设计和实践达到分层测试效果,目前共建设高可用专家库 73 个。2.建立混沌自动化能力,提升常态化高可用能力守护。工商银行软件开发中心云计算实验室探索混沌自动化实践,结合故障演练平台的演练场景自动编排能力和稳态指标智能断言能力,实现故障演练自动化,提升混沌测试效能。(二)(二)管理方面:管理方面:“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)44 1.推进混沌工程标准化体系建设。为降低混沌测试门槛、规范混沌测试场景,团队编写完成了混沌测试工作指引、混沌测试公共案例、混沌工程故障演练平台高可用专家库使用指南等多项参考

82、资料;建立常态化演练机制,通过存量混沌自动化、增量混沌演练的模式,实现混沌工程常态化演练的目标;通过对标典型生产问题以及应用成熟度要求,设计混沌故障演练应用必备能力文档混沌工程演练的标准场景要求,作为高敏应用必备演练场景要求。2.为提升工商银行各应用高可用测试能力,混沌攻坚团队以专家身份对行内各基地混沌人员进行分层培训,并在日常工作中完成对基地各混沌人员进行点对点指导,同时组建混沌团队,开展全行的混沌深度演练工作。3.引入红蓝攻防演练体系,通过丰富高可用专家库的标签能力、组建红军团队以及定期组织红蓝攻防的活动,赋能开发达到风险应急能力;推动日常红黑榜的建设,建立固定攻防日。七、七、实验收益实验

83、收益 混沌工程在工商银行实践过程中体现出了其应有的目标价值,截至目前,日常使用混沌平台人员 700 余名,已落地 300 余个业务系统,累计超 1 万个演练案例,覆盖应用自隔离、同城双活、优雅启停等六方面生产常用重点高可用能力,帮助落地应用发现 600 余个高可用问题。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)45 图 16 工商银行混沌演练实施效果 八、八、反思及改进反思及改进 随着工商银行 IT 架构转型的持续推进,分布式开放平台已逐步开始承接银行核心业务,这对分布式体系下开放平台应用的稳定性和高可用性提出了更高的要求。通过混沌工程故障演练,

84、模拟在各种突发异常情况下各应用系统的运行和服务状况,提升开放平台整体应用高可用性已成为例行化工作。后续工商银行将持续全面推广混沌工程文化,依靠自身技术优势,进一步提升混沌工程故障演练平台能力。目前主要计划提升如下两方面能力:1.混沌工程系统稳态定义实践:针对混沌工程自动化实验结论对技术能力要求高的痛点,通过对标业界构建混沌工程 2.0 体系,新增稳定性模型建设,基于服务的关键指标和机器学习等算法实现系统稳态计算。从混沌自动化的原理来说,真正的自动化演练应当无需人工干预,因此需要一个系统来识别被演练的系统是否稳定。2022 年计划通过实践稳态系统的算法,实现混沌场景的自识别,包含时序序列的动态分

85、析、AB 对比稳态分析及检测机制,包含阈值检测、稀疏规则、“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)46 3sigma 原则及曼-惠特尼 U 检验等算法,通过以上算法去刻画系统稳定性,提升可靠性测试的效能。2.混沌实验场景全流程自动化能力:在工商银行主机下平台全面切流的背景下,通过高可用专家库实现混沌案例自动生成的能力,通过自研算法并结合 AIOPS 达到实验结果自动分析的能力,形成分布式系统全自动演练目标,保障主机应用在平台端的稳定运行。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)47 6.农行研发

86、中心:农行研发中心:农行农行金库系统混沌演练实践金库系统混沌演练实践 一、一、申报单位申报单位 中国农业银行研发中心。二、二、案例简介案例简介 该案例介绍了中国农业银行现金运营领域金库系统应用混沌工程,在系统软硬件升级的过程中,针对复杂异构的部署现状实施的系统稳定性建设和验证工作。针对金融行业如何利用混沌工程获得效益、测试环境稳态指标和爆炸半径认定、演练团队职责、平台建设思路和多源异构的系统架构演练样例设计上进行了阐述。该案例实施的混沌演练依托农行特色的故障场景和分类化演练案例实现了复杂链路服务依赖治理,完善优化演练平台,并接入农行 DevOps 流水线推动实验的可持续化、流程化、制度化。三、

87、三、用户简介用户简介 中国农业银行作为中国主要综合性金融服务提供商和全球系统重要性银行,致力于建设多功能协同的现代金融服务集团。为农行2.4万家境内分支机构、17 家境外分支机构和 15 家控股子公司提供多业务领域完善、可靠的金融交易支撑,为全球 6.6 亿客户提供高效稳健金融服务。作为承载农业银行信息化建设、金融科技创新和数字化转型重任的总行直属部门,研发中心始终坚持自主创新道路,依托一流的人才队伍和强大的自主研发实力,深耕人工智能、大数据、云计算、区块链、5G 等前沿技术领域,通过实施分布式核心、智能掌银、乡村振兴、“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222

88、022 年)年)48 数字人民币等一系列重点工程,不断推动农业银行数字化转型走向深入。金库系统作为农行现金运营领域的重要核心系统,支持农行全国范围内现金调拨、仓储和机具管理。四、四、需求分析需求分析 互联网金融的时代背景下,交易量随着业务模式的不断创新大幅攀升,传统 IT 架构能力日趋薄弱。为此农行广泛应用云计算、分布式等新技术,构建分布式架构和运维体系以支撑业务快速迭代。金库系统正处于基础设施整体优化,协同融合的关键时期,既需支持物理机+WAS+集中式数据库的传统架构环境,也需支持商业容器云/容器云平台+Tomcat+分布式数据库的新架构环境。分布式异构的特点提高了系统脆弱度,生产环境中不可

89、预见的用户操作对系统、应用架构的可靠性提出了更高的要求。特别是基于数字化转型的要求,核心系统下沉,微服务架构、分布式事务、云原生等新技术、新手段的不断引入,在实现远超主机性能容量的集群处理能力的同时,底层技术架构和平台系统也日益复杂,生产不确定因素相较主机明显增加。如何为客户提供平稳、高效、安全的科技支撑,打造新环境下稳定的 IT 基础设施保障业务连续性,这一银行业的老问题迎来了新挑战。这些变化与挑战亟需通过一套方法论支持系统的进化过程,也是我们引入混沌工程的主要驱动力。通过混沌工程的引入,我们希望:1.通过一系列实验考察系统在故障场景中的表现,增强系统反脆 “混沌工程先锋实践者”优秀案例(“

90、混沌工程先锋实践者”优秀案例(20222022 年)年)49 弱性。2.缓解因架构升级过程中软硬异构等原因带来的持续扩大的维护边界和运维代际适配的矛盾。3.增强团队应对突发状况的能力,提高生产环境中失控条件产生时的系统稳定性。五、五、技术方案介绍技术方案介绍 农行金库业务管理系统存在单体、SOA、微服务等架构共存的情况,系统容器数量、用户数和日均交易调用量十分庞大。(一)(一)混沌演练技术框架总体介绍混沌演练技术框架总体介绍 图 17 金库系统混沌演练部署架构 如图所示,此次混沌演练案例部署架构中,包含管理层的混沌演练工具平台和流程化调度工具、监测分析层的参数监控工具,以及执行层的相关部署情况

91、,在支持维度方面,既需支持系统云下既存物理机+WAS+集中式数据库的传统架构环境,也需要支持商业容器云/容器云平台+Tomcat+分布式数据库的新架构环境。还包括 TLQ、Kafka 等中间件基础设施的故障演练。混沌工程控制台联机服务一 联机服务二批量应用云上环境商业容器云/容器云平台+Tomcat联机服务批量应用一批量应用二云下环境WAS+Suse12联机库批量库开源数据库缓存平台访问入口分行服务混沌演练管理端环境混沌工程工具Chaos Tool数据交换服务流量发送故障注入故障注入故障注入故障注入故障注入故障注入流量模拟工具平台服务调用ATP 自动化测试任务调度CHAOSAGENTCHAOS

92、AGENTCHAOSAGENTCHAOSAGENTChaosToolChaosToolPrometheus+grafana应用监控平台流量注入工具平台云下环境监控工具演练执行层检测分析层演练管理层核心系统总行关联系统服务交互Devops控制台自动化测试平台调起实验外部系统分行系统自动化测试平台商业数据库联机库批量库CHAOSAGENT消息中间件流处理系统抵御调起流量注入混沌工程云上工具Chaos Oper “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)50 图 18 金库系统混沌演练平台总体架构 混沌实验环境的系统架构如上图所示,工具平台统一部署在云

93、上环境,通过与部署在云上、云下环境的待演练平台或机器上的响应服务(Agent)进行通信,做到云上、云下环境无差别运行混沌实验任务,以适应系统架构特点。同时监控告警平台实现无差别云上、云下环境管理,监控系统各项运行指标。图 19 金库系统混沌试验演练流程图 混沌工程演练平台编排注入指令任务,并从平台数据系统获取目标机器数据。下发故障注入指令,启动故障注入任务后,下发相关指令到待演练环境。混沌平台需要和各网络区打通。特点如下:安全管控:对身份和指令进行验证,确保任务执行安全;分散部署:承担并发压力以减少故障注入时间,降低业务影响。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20

94、222022 年)年)51 故障注入:待演练环境上部署 Agent 探针或服务,收到指令后负责具体的注入操作。告警检测:故障注入后,监控系统会探测到告警信息。流量切换:根据告警机器,告警类型,告警级别触发流量的切换。(二)(二)实施过程中遇到的问题及解决思路实施过程中遇到的问题及解决思路 问题问题 1 1:金融行业生产环境相较互联网系统,IT 基础设施的安全性稳定性尤为敏感,在生产环境直接实施故障实验存在运行和业务风险,如何利用混沌工程理论获得最大收益?解决思路解决思路:我们认为混沌工程是一项特殊的测试工作。在一般的测试工作中,会针对开发环境、测试环境、灰度环境、正式环境等不同层级开展测试和验

95、证工作,也包含部分探索型测试和场景测试的相关内容。虽然混沌工程的终极目标是在弹性的生产环境中进行自动化实验,但在非全云上的系统环境下,尽可能接近于生产的环境中的演练仍具备一定意义。具体实施过程是:首先,通过末次投产的基线程序搭建稳定测试环境,并将生产资源尽可能复刻至该环境中,作为准生产环境。虽然实时、准确、系统级别的生产交易流量无法在测试环境同步,为保证试验的有效性,可以通过在应用监控平台中采集本系统生产的大盘数据流量,对测试环境流量值及流量方向进行铺底,并通过自动化测试平台定时对准生产环境注入流量,使之尽可能接近生产状态。由此实施演练可以发现生产环境中会暴露的 85%的问题。“混沌工程先锋实

96、践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)52 另外,在微观角度上针对直接影响核心大盘数据的关键服务节点进行混沌场景化的集成测试,通过观察测试结果来评估系统的可靠性。寻找系统弱点,在测试环境是可行的。因此,在准生产环境中进行混沌演练对于系统稳定性建设仍具有重要的意义,试点中也起到了应有的效果。问题二:问题二:在异构的基础设施测试环境进行混沌实验时,如何认定可靠的系统的稳态指标和爆炸半径?解决思路:解决思路:首先,我们搭建了接近于生产的目标环境并通过自动化测试平台评估了相对平行的流量注入量。鉴于混沌工程实施的理想应用原则的第一条是假设系统的稳定状态,用于比对判断实

97、验结果是否对系统产生了实质性的影响。试点过程中,我们通过生产作业监控对本系统的大盘数据进行分析比较来对稳定态业务指标进行了合理推断。具体包括:生产状态观测:通过在业务监控平台观察到的生产数据的运行状态和生产、测试资源环境的差异性对比可以作为混沌测试系统稳定状态-基础资源稳态认证的主要依据。性能测试引入:准生产环境中,通过对关键节点的历次性能实测的标准和结论可以作为认定具体场景技术指标的重要手段。爆炸半径确认:通过对服务调用返回值的补充,引入混沌稳定性指标,可以获取目标环境中爆炸半径。在接口方法的公共参数中增加混沌标记以消除指标曲线噪声,在读到该属性值后,认为该次交易满 “混沌工程先锋实践者”优

98、秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)53 足稳定性,据此绘制的指标曲线可以作为通用的稳定性描述,同时辅助判断接口成功的 QPS 等指标。引入该指标后,在准生产环境中通过从 0 不断增大注入的流量得到生产环境评估下的指标稳定值后,即可确定最小的发压流量,并得到爆炸半径。问题三:问题三:在混沌工程实施过程中,演练团队如何划分,职责如何确认?解决思路:解决思路:系统在进行混沌故障演练时,将团队分为实施和响应两个组,采取攻防对抗的方式进行演练,以期随机性地考察故障发生时,团队对故障的检测、响应、处理和恢复能力。最终达到小故障无需介入,大故障快速响应的目的,最终提高系统和团

99、队应对大型故障的容错能力。具体职责:实施组:建议由测试部门人员担任,作为故障的注入方,在前期确定的演练环境和演练对象上,以随机调起故障注入的方式验证预先设计好的演练样例。响应组:建议由开发部门人员担任,作为故障的检测和响应方,关注系统运行相关参数,针对随机注入的故障,确定是否符合预设的监测指标,确认系统风险,并对存在的风险进行治理。问题四:问题四:针对银行业系统繁多,特别是技术架构快速迭代期间基础设施多样、调用关系复杂的特点,如何有针对性地对混沌演练平台功能进行定制?“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)54 解决思路:解决思路:在混沌演练平

100、台的优化过程中,团队梳理总结了农行各类系统的业务需求、部署架构和演练需求,形成了演练平台优化思路并明确演练平台的系统功能定位:实现有系统针对性的应用系统高效、灵活的故障注入,并持续提升分布式系统的容错和弹性能力。演练平台系统功能:提供丰富的故障场景,不仅覆盖一般性基础资源,如 CPU、磁盘、网络等,还包括运行在 JVM 上的应用试验场景,如调用超时和调用异常、指定方法延迟或抛异常以及返回特定值,同时纳管容器相关的实验,如杀容器、杀 Pod。特别是针对农行特有的公共服务组件设计了相应的实验场景。提供细粒度的故障参数配置:对目前已支持的故障场景,力求做到更细粒度的可控制,更灵活的参数配置。以 CP

101、U 满载故障为例,目前不仅可配置 CPU 满载核数、满载百分比、满载执行通道,还可以配置满载峰值持续时间、满载总持续时间,随机/定时调度等。故障场景高扩展性:采用基于混沌原则的统一故障注入模型,使实验场景模型统一,便于开发和维护,方便扩展更多混沌实验场景。故障注入对业务无侵入:故障注入无需在业务代码中埋点,跟业务代码不存在任何耦合。一站式的管理界面:目前主流的混沌工具大多是基于命令行或者执行脚本对混沌实验任务进行编排和调度,一站式的操作管理界面和可视化演练任务的编排和调度,降低了混沌实验的使用门槛,便于推广。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)

102、年)55 实施团队在混沌试点工作中成功优化演练平台,并结合农行系统特点完成了创新型研发,实现了几大特色:1.云上、云下机器统一纳管,同时支持云上容器、云下主机接入混沌工具平台,无差别运行混沌实验;2.简化混沌工具安装,详细分析云上云下环境的特点,研发了 Agent 自动安装工具,实现混沌工具自动化、极简化安装;3.加强安全管理,增加登陆认证,对外暴露的 HTTP 接口增加报文加密、报文防篡改等功能;4.接入自动化测试平台,完成自动化测试平台对接,实现持续自动化测试;5.细粒度的混沌实验任务参数配置,支持多维度、细粒度的实验故障参数配置;6.更灵活的混沌实验任务调度方式,支持混沌实验任务实时调起

103、、定时调起、固定时间段随机调起,便于红蓝对抗的演练实施。将相关优化功能回馈开源社区,促进协同发展。问题五:问题五:多源异构的系统架构下,如何设计更适合系统的演练样例?解决思路:解决思路:样例组设计:根据 Netflix 的 ABTEST 原则,在演练案例的实施过程中,创建实验组和对照组,分别针对两套环境进行同步压测,通过结果对演练参数、监控指标和通过性门禁进行调整。样例设计依据:曾发生过的故障具有最高的演练优先级。生产发生过的故障很有可能在不同的时间或节点再次出现,针对本系统的架构特点和业务关键点,结合农行历史生产问题的案例库中适用于本系统的相关事件,以及在业界混沌实践中归纳得到的高可用测试模

104、型等,“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)56 依照历史故障、历史故障类型相似故障、相似链路目标、随机故障的优先级顺序进行演练。故障范围选择:故障应从小范围、低强度、单一故障开始逐渐扩大,针对应用层、数据库层、基础环境层、缓存层、消息中间件层、服务调用链层,设计有代表性的样例,依照单一接口服务、单台设备、集群环境、部署环境、全链路故障的顺序进行验证。演练样例实践:演练样例实践:依据相关原则设计有针对性的案例,特别是针对复杂架构情况下的消息链路和分布式数据库、商业云容器等新基础设施。如:演练样例类型 1:分布式数据库组件依赖。包含数据库切换、

105、单节点服务中断、连接数满、大量备份恢复、慢 SQL 冲高、索引失效等,以发现分布式数据库数据库在技术保障上的不足,及时分析、处理和优化数据库结构,从而进一步提升该依赖对业务系统支撑的应用保障能力。演练样例类型 2:云端、云下复杂链路调用。其目的为确认服务调用链的强弱依赖关系,即下游服务发生异常时,调用方的稳定性和系统可用性是否受到影响。在农行分布式环境中,很多线上生产事故都是因为不合理的依赖关系导致的,比如强依赖和依赖环等,是业务负责人重点关注的对象。如针对现有常见故障点中,从云上服务相互调用、云下服务相互调用、云上-云下-主机环境调用形成复杂链路中,对单链路进行网络故障模拟逐一验证,直到全链

106、路网络故障模拟验证。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)57 演练样例类型3:容灾演练。针对金融行业系统常见的同城双活、异地灾备等针对数据库、中间件和应用灾备设计,分别对主库、主应用进行针对灾备切换点的故障注入,测试异常状态发生时系统的容灾能力和稳定性。问题六:问题六:云上云下异构的系统架构下,如何通过混沌演练分析调用链关系?解决思路:解决思路:首先,要进行稳态分析。分析服务或微服务在正常流量下各方面的状态,分析粒度包括单个接口、单个服务、多个服务等;分析范围为单个请求或多个请求;分析角度包含但不限于埋点指标、依赖关系、流量大小。稳态分析反

107、映的是调用链的健康状态,混沌工程演练如节点状态变化、下游日志报错等都会对稳态产生影响。具体包括稳态性能分析,即定位和排查性能问题;以及服务依赖分析,以构建接口级别的依赖关系图。其次,利用监控工具,也就是农行的分布式侧写工具,采集不同资源的使用负载,采样一段时间后,得到微服务之间的资源占用比例,比如时延。通过结构化分析确定合理阈值,或通过类似单机的数据可视化方式分析接口或服务的整体性能瓶颈,有目标埋点进行故障注入。由关键节点触发,进行全链路故障埋点,包括不限于下游慢查询、慢请求、无限循环调用、错误反馈问题等。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年

108、)58 再次,混沌演练完成后,进行资源归因,回答“谁为服务成本买单”的问题。将资源消耗或占用与请求方关联,进行成本分析。最后,进行负载建模。分析和推测系统的行为表现,该场景要解答“如果出现XX异常现象,系统整体和关键链路状态会发生什么改变”这一问题。试点通过元数据传播法,进行有代码侵入的追踪方式,完成采样、上报、处理、存储和索引,最后完成可视化和问题治理。混沌演练相较全链路压测的传统方式,更具科学性和真实模拟度。六、六、实验创新点实验创新点 1.1.设计符合金融业特点的故障场景,实现云上云下复杂链路服务设计符合金融业特点的故障场景,实现云上云下复杂链路服务依赖治理:依赖治理:结合试点系统的多源

109、异构的架构特点,通过全链路故障埋点,以系统间服务调用链路及新基础设施性能为切入点,由点到线进行场景覆盖,验证服务间的强弱依赖关系,构建依赖拓扑图,治理不合理的强弱依赖和循坏依赖。2.2.结合金融业系统特色,实现分类化演练案例设计:结合金融业系统特色,实现分类化演练案例设计:通过对样例类型进行评估,针对系统的架构特点和业务关键点,并结合农行历史生产问题的案例库中适用系统业务的相关事件,对服务调用链层、应用层、数据库层、基础环境层、缓存层、中间件层设计有代表性的样例。特别是针对农行用户鉴权、分布式平台等特色公共组件的软硬件稳定性,针对系统应用方式形成可复用组件库,达到基础依赖演练样例编排的优化组合

110、,便于复用推广。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)59 3.3.优化混沌演练工具平台,统一云上云下实验环境,实现持续智优化混沌演练工具平台,统一云上云下实验环境,实现持续智能化演练:能化演练:针对农行业务系统特点,自研混沌演练平台,支持多种混沌实施工具的接入,提供混沌故障实验的全流程管理。优化故障注入工具的底层逻辑,提供细粒度的混沌实验任务参数配置和更灵活的混沌实验调度方式。抽象演练流程编排三层能力架构,统一云上、云下环境的接入和故障注入能力,打通云上、云下架构感知,做到混沌实验与业务系统完全无耦合,充分降低技术层面接入门槛,实现了安全管

111、控、分散部署、统一注入、即时中止、自动故障恢复、告警检测及流量切换。4.4.将混沌演练接入将混沌演练接入 DevOpsDevOps 流水线,推动混沌实验可持续化、流流水线,推动混沌实验可持续化、流程化、制度化:程化、制度化:通过开放式接口支持演练流程外部调起,实现 DevOps企业级流水线对接,依托场景库针对应用实现故障的随机注入能力,完成 DevOps 应用过程中的混沌功能验收,将混沌测试质量门禁纳入CI/CD流水线指标,持续跟踪业务系统开发增量问题。建立故障发现、故障响应、故障定位、故障决策、故障恢复的完整链条。七、七、实验收益实验收益 以试点工程为依托,在演练样例的执行过程中发现了系统风

112、险,指导了系统优化设计,加强监控手段,提高了系统稳定性,对混沌工程理论有了更为深层的理解。1.完成系统稳定性验证,应急预案验证,告警有效性验证:完成系统稳定性验证,应急预案验证,告警有效性验证:在实际混沌演练过程中,项目组发现了下游实例异常隔离风险,并在投产前针对相关问题完成系统加固工作,有效预防了生产系统风险。修正 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)60 系统应急预案 5 个,优化无效系统告警 12 个。2.完成服务依赖治理:完成服务依赖治理:通过演练绘制依赖关系图谱,梳理依赖关系定位服务间的强弱依赖和循坏依赖,针对非必要依赖和强依赖进

113、行了有效治理。3.完成容灾架构验证:完成容灾架构验证:针对即将搭建的容灾体系,利用混沌工具的故障注入能力,在测试环境进行了主备切换、负载均衡、流量调度等的容灾架构验证。4.持续提升农行持续提升农行 DevOpsDevOps 建设能力:建设能力:通过开放式接口支持演练流程外部调起实现 DevOps 企业级流水线对接。依托场景库针对应用实现故障的随机注入能力,完成 DevOps 应用过程中的混沌功能验收,将混沌测试质量门禁纳入 CI/CD 流水线指标,持续跟踪业务系统开发增量问题。试点工程投产后,经过持续生产验证,相关新增产品模块不存在低可用性交易,原有功能系统可用性由 4 个 9 提高到 5 个

114、 9,通过混沌演练结果对告警信息进行了优化,平均故障?断时间由之前 30 分钟降低到 3 分钟,平均故障修复时间降低到 30 分钟。依托混沌工程的理念和方法论,可在很大程度上规避新技术的引入过程中可能遇到的障碍和不确定性问题,缩短技术成熟周期。在为户提供平稳、高效、安全的科技支撑方面展现了巨大价值,有助于企业构建完整、可度量的系统稳定性保障体系。混沌工程的引入为农行打造新技术、新环境下稳定的 IT 基础设施提供了稳定性保障工具和建设指引。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)61 八、八、反思及改进反思及改进 通过混沌工程实践,在混沌工程方法

115、论的指导下系统稳定性得到了进一步提升。我们对混沌工程的理论和原则有了更深入的思考,通过对实施过程的复盘,总结了下一步的改进思路:1.在混沌工程的持续推进过程中,要做好后期总体布局和战略规划。由于混沌工程的实施需要针对企业现有的开发运维生态环境和部门职能产生影响,通过由点到面、由平台到立体化、自动化的发展,将混沌演练融入到体系建设之中。农行现已完成测试引入、平台建设、红蓝对抗、平台建设工作,下一步应更加着力注重自动化和工程化建设,在系统趋于稳定和高透明度时,实现无间断演练和版本库变更自动演练等功能,将混沌工程融入部署和发布流程。2.目前分布式架构应用范围广泛,系统间的依赖和调用关系频繁。在平台建

116、设过程中,不仅要将各种监测方式和平台工具相结合,更应该对稳定指标的自动化波动检测进行深挖,通过引入机器学习、统计规则组合等检测算法,进一步把握动态稳态,并自动触发超阈值预警。同时力求建立配置化、标签化的故障场景画像,以适配系统的架构和运行的特殊要素。通过维护相关的系统特征标签达到与故障场景画像相匹配,实现装载型的差异化故障演练。进一步降低各系统的演练门槛,实现混沌演练智能化、靶向化;打磨演练的通过性指标,推动混沌工程与 DevOps 的深度整合,并进一步提高专家库等场景模型的成熟度和应用范围,以达到无人实验、故障自动?断和自动运维的目的。3.进一步培养混沌工程方向的专业人才。由于混沌工程演练会

117、对 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)62 整个系统运作造成影响,需要相关人员沟通协调以降低影响性,问题的暴露和治理也需要多方配合协调完成工作。在今后的工作中,应在整体层面普及混沌工程理念和基本知识。特别作为一门蓬勃发展的实验学科,很多知识和原理还需要在不断探索发现中积累,专职人员需要大量的实践经验,要对故障注入、流程编排、监控数据分析和系统架构有深入的理解,才能发现和设计更有针对性的实验目标。在此方面农行也需要培养知识储备丰富、精于研究探索的专业人员。4.打造企业混沌工程文化。掌握了混沌工程实施的方法论之后,还需建立公司科技团队进行开发

118、运维相关工作时的“混沌世界观”。建立宽松的上海品茶,正视并主动面向错误、拥抱失败,在不断试错的过程中暴露问题,通过文化普及使相关人员养成通过排障积累经验的习惯,最终通过建立一套实事求是的建设理念,使得系统的稳定性在开发运维的工作中不断提升。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)63 7.建信金科:建信金科:建信金科建信金科混沌实践之道混沌实践之道 一、一、申报单位申报单位 建信金融科技有限责任公司。二、二、案例简介案例简介 建信金科混沌工程实践案例基于国内开源混沌引擎 chaos-mesh实现,在达到云原生和虚拟机/物理机混沌实验双支持的情况

119、下,可进行一站式故障演练。实验模块提供混沌实验功能,发压监控模块满足混沌测试场景下对背景压力和对系统稳态观察的需求,通过在监控页面中集成混沌实验的数据,用户可以一目了然地观察到混沌实验对被测试系统的影响。除此之外,本实践还具有丰富且高效的故障模拟场景,不仅覆盖了各类基础场景下的故障模拟,如磁盘、网络、JVM 等,还结合了建信金科内部分布式平台高可用测试案例,设计出如服务自拉起、服务水平扩展等富有分布式特性和银行金融特性等故障模拟场景;在实践过程中构建的专家库体系可沉淀成熟混沌实验场景,同时本实践案例还支持进行多次故障模拟、常态化模拟,通过对不同的基础故障类型进行精巧的编排,使用串行、并行、挂起

120、等编排手段,可构造出多种多样丰富的故障场景。目前该实践案例已经对建信金科内部银行交易异常时序问题、慢交易问题、两地三中心、数据库异常问题等,在预生产环境进行了创新型的实验,在三个月内将建信金科内部分布式平台的交易处理成功率提升到 100%,业务处理成功率提升到 99.99866%。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)64 三、三、用户简介用户简介 建信金融科技有限责任公司是中国建设银行的金融科技子公司,传承三十年的科研力量积淀,以“新一代”系统为基础,运用人工智能、区块链、云计算、大数据、量子计算等前沿技术,在基础技术、行业应用、咨询顾问、

121、数字化运营等领域构建成熟、系统的金融科技核心能力,同时,公司积极拓展新场景,构建新生态,将金融科技能力成功运用于智慧金融、智慧政务、智慧出行、监管科技、乡村振兴等领域。公司将持续致力于成为“新金融”体系的科技推动者和生态连接者,助力中国建设银行集团数字化转型,赋能“数字中国”建设,让金融科技尽其所能,让社会更美好。面向不可靠的系统软件,建信金科构建混沌工程故障演练平台,来保障系统稳定运行。在业务方面,混沌工程故障演练平台可应用于银行核心、代理银证、代收代付、个贷、理财、客户信息等业务;在组件方面,混沌工程故障演练平台应用于分布式平台相关组件,如应用路由、配置中心、分布式缓存、分布式消息、索引维

122、护服务、分布式数据库等;在场景方面,建信金科在两地三中心多 AZ 故障、银行核心冲正交易异常时序、代收代付慢交易、应用路由服务治理、应用路由堵塞问题模拟等场景中,应用混沌工程故障演练平台进行相关模拟及故障演练。四、四、需求分析需求分析 近年来,随着数字经济的发展,分布式系统被广泛应用于各类场景,建信金科也对建设银行的金融业务做了分布式的改造,建信金科 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)65 分布式微服务平台(DMP)正是此次分布式改造中所打造的一个“利器”,DMP 由应用路由、配置中心、控制台、索引服务、日切服务等组成,涵盖 Gatewa

123、y、Zookeeper、Redis、Cassandra、Kafka、MySQL等多个中间件,为建设银行的银行核心、代收代付、个人贷款、理财服务等多个服务提供分布式的支持,每天交易量可达到 10 亿+。DMP平台的质量,间接保证了建设银行金融交易的质量。但是在 DMP 平台质量保障及建设的过程中,我们发现了如下问题:1.仅通过单次或少量的高可用测试,难以发现一些隐藏问题;2.测试过程中异常场景的构造与实施难度较大,对开发依赖性高,如银行交易中的异常时序问题;3.存在难以构造的测试场景,如代收代付业务经常产生慢交易问题或者是物理上的一些多 AZ 场景等;4.多组件级联复杂场景无法有效测试;5.测试

124、仅仅针对已知功能,无法自动发现系统脆弱点;6.容灾演练耗时费力,成本巨大,且无法控制影响范围。通过对以上问题的分析,我们发现,利用混沌工程具备的故障模拟、爆炸半径控制、持续自动化实验、故障编排等功能和特性,进行多次的、常态化的故障模拟和演练,可以解决上述 DMP 保障中的问题,提升整个系统的健壮性和稳定性。五、五、技术方案介绍技术方案介绍 针对以上 DMP 平台在金融场景下的质量保证和测试过程中所遇到的问题,可以利用混沌工程来一一解决,逐个突破。对于问题 1),“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)66 可以通过进行多次混沌模拟、常态化模拟解

125、决;对于问题 2)3),可以使用混沌工具集针对性地构造异常场景和测试难度大的场景来解决;对于问题 4)5),可以通过对已经具备的故障模拟能力加以人为编排或智能自主编排来测试复杂场景、自动发现系统的错误和弱点;对于问题 6),则可以通过混沌工具自动演练,来降低人力成本,智能控制混沌测试范围。通过以上的问题解决思路可以分析得到,我们需要能够模拟各类异常的混沌工具集(混沌引擎,又名混沌工具集),需要智能化的故障编排工具(编排引擎),需要能够常态化、多次运行、自动运行的混沌实验场景(故障演练平台),由此我们设计出了底层集成了可制造各类故障的混沌引擎、可智能编排容器和虚拟机/物理机环境的编排引擎于一体的

126、用户友好、并匹配了发压和监控工具的故障演练平台。建信金科混沌工程实践的案例基于国内开源混沌引擎 chaos-mesh 实现,chaos-mesh 主打容器混沌故障制造,其子项目 chaosd 负责物理机及虚拟机的故障制造。建信金科以 chaos-mesh 和 chaosd 作为混沌引擎,覆盖常用底层应用部署环境,结合特制混沌编排工具,上层再辅以 Prometheus 和 Grafana 进行混沌实验期间数据监控,以及 JMeter 进行背景压力发压,最终呈现出来的是一个可视的、方便操作的、支持自动化的混沌工程故障演练平台。以下将从功能架构、技术架构、用户实施流程和原子能力这四个方面来介绍建信金

127、科在混沌工程实践中所打造的混沌工程故障演练平台所采用的技术方案。(一)(一)功能架构功能架构 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)67 混沌工程故障演练平台目前的功能架构包括下图中所示八大部分,各个模块之间通过一定的调用关系来完成每次故障的演练模拟。其中,权限管理模块是一个比较独立的模块,用于管理整个平台的用户权限;场景管理模块是整个故障演练平台的入口,串联起发压监控、混沌实验一系列故障演练的步骤,其中发压监控由发压监控模块提供,混沌实验由混沌实验模块提供;对于有价值的故障场景则可以通过专家库模块推送沉淀到专家库,并开放给所有用户共享使用;

128、实验报告模块为已结束的实验提供了可视化的聚合报告;环境管理模块则是发压监控的前置工作,用户可以在此上传压测脚本、被测环境以及发压插件,保证后续发压步骤的顺利执行。基础设施支持容器 K8s、物理机、虚拟机;基本涵盖流行的基础环境类型;同时还支持多种被测应用,如分布式服务、分布式数据库等。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)68 图 20 混沌工程故障演练平台功能架构图(二)(二)技术架构技术架构 基于对建信金科混沌工程故障演练平台通用性、易用性、自动化、可扩展和安全性等主要特性的目标,选择了以云原生为基础的混沌工程插件化技术路线,突破故障编排

129、引擎、最小爆炸半径控制、故障注入、自动化操作、底层故障恢复等关键技术,开展基础平台、故障模拟工具集、可观测性模块的研发,构建能够面向银行业的分布式微服务平台,为不同场景提供混沌场景编排、发压监控、混沌实验、实验报告、专家库、权限管理等功能,实现混沌工程测试完整闭环的企业级通用混沌工程故障演练平台。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)69 图 21 故障演练平台技术架构图 建信金科故障演练平台基于 Kubernetes 和物理机进行部署,部署架构如上图 2 所示。主要包含管理系统、监控报表系统、JMeter 发压系统、混沌实验系统和部署在待测

130、系统中的故障注入执行介质和监控代理。其中,管理系统部署在物理机环境,监控报表系统、JMeter发压系统、混沌实验系统部署在 k8s 集群,故障注入执行介质和监控代理的部署方式则根据待测系统而定。(三)(三)实施流程实施流程 如下图所示,用户在创建场景后,将场景关联到被测系统的环境,如果有需要,还可以为故障演练场景创建背景压力和对应的监控。此时前置工作准备完毕,用户在场景中创建混沌实验,即可对被测系统实施混沌工程故障演练,实验类型可以选择普通实验、定时实 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)70 验和编排实验(workflow),故障类型可以

131、选择基础的原子故障操作如网络、JVM 等。实验结束后,生成的报告将通过报告模块进行查看和下载;场景模块还支持将场景导入专家库或从专家库导出场景。图 22 故障演练平台实施流程图(四)(四)原子能力原子能力 建信金科混沌工具集的原子能力全面,支持常见的故障注入类型在物理机/虚拟机、K8s 容器基础设施的故障模拟,涵盖磁盘、网络、进程、文件、JVM、压力、IO、DNS、内核、HTTP、生命周期、时钟偏移等多种故障类型。除支持 IaaS 层的混沌实验外,建信金科对 PaaS层和 SaaS 层也做了相关应用的能力建设,包括常见的数据库、缓存Redis、消息队列 Kafka、ZooKeeper、Spri

132、ngCloud、SpringBoot、SpringWeb 微服务框架等典型故障模拟。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)71 图 23 混沌工具集原子能力图 六、六、实验创新点实验创新点 (一)(一)云原生、物理机云原生、物理机/虚机双支持虚机双支持 建信金科混沌实践案例中,混沌引擎采用了云原生架构,可同时支持容器环境下(云原生)和物理机/虚拟机环境下的故障制造,编排引擎更是创新性地将容器环境下的故障和物理机/虚拟机环境下的故障进行混合编排,达到覆盖银行业环境下主流底层部署环境的目的,同时可以忽略底层部署环境的差异,为混沌工程故障演练场景的

133、构造拓宽了空间。(二)(二)一站式故障演练平台一站式故障演练平台 平台集发压、监控、混沌实验于一体,可满足用户对背景流量、系统稳态观测和混沌实验的需求;其中监控系统集成压力数据、系统基础指标和混沌实验数据,方便用户全方位观测实验影响。(三)(三)专家库体系,专家库体系,促进成熟促进成熟场景场景沉淀沉淀 平台可实现成熟混沌实验场景案例入库、场景案例方便可调用执行,目前专家库中包含网关、缓存、数据库、web 应用、API 接口、消息队列等专家库场景。(四)(四)丰富的故障演练场景丰富的故障演练场景 平台混沌工具集不仅覆盖了各类基础场景下的故障模拟,如磁盘、网络、进程、JVM 等类型的故障,而且还结

134、合了建信金科内部分布式平台高可用测试的案例,创新性地设计出诸如一键启停、服务自拉起、服务水平扩展等富有分布式特性和银行金融特性等故障模拟场景;通 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)72 过对这些场景的运行,可提升高可用测试的效率,丰富高可用测试的案例集,同时这些场景也可直接适用于其他银行内的分布式类型服务的高可用测试。(五)(五)多次故障模拟、常态化模拟多次故障模拟、常态化模拟 通过对不同的基础故障类型进行精巧的编排,使用串行、并行、挂起等编排手段,可构造出多种多样丰富的故障场景;同时通过可视化页面一键实验,或者自动化的定时实验,就能实现

135、故障的多次重复模拟以及故障的常态化模拟,达到提前预防一些复杂场景下单次测试无法发现问题的效果。(六)(六)自动发现系统脆弱点自动发现系统脆弱点 利用编排引擎的自主编排功能,随机生成包含故障数量不同、故障类型不同、底层环境不同的混沌实验场景;并根据优先级对生成的场景排序后再筛选,最后使用定时模块自动对被测系统运行这些混沌实验场景,通过大量的、价值高的实验场景的运行,可以在测试之外,自动发现系统的脆弱点。七、七、实验收益实验收益 (一)(一)促进促进多活灾备多活灾备体系体系 建信金科搭建了分布式微服务平台“同城多活+异地灾备”架构体系,通过使用混沌工程故障演练平台在线下测试时进行大量故障演练,模拟

136、分布式系统多活及灾备中很多非故障类场景,如流量激增、资源竞争条件、拜占庭问题、非计划中的或非正常组合的消息处理,“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)73 提前发现并解决生产环境中可能遇到的问题。通过对多活灾备典型场景 10+次故障演练,目前混沌工程故障演练平台已发现了 20+个问题。同时,对已发现问题进行修复闭环,有效降低了多活灾备生产环境发生问题的可能性。多活架构上线后的效果如下:1.分布式系统整体或某组件发生同城单中心/双中心故障时,可自动切换至可用数据中心,提供无损服务;2.在发生城市级别故障时,可通过决策快速切换至异地灾备数据中心,

137、继续提供服务;3.目前在同城多活 3AZ+异地灾备 1AZ 的部署模式下,同城多活AZ 级自动切换可达到 RTO 秒级、RPO 为 0、且峰值 TPS 达到 25000+的效果,极大地提升了系统的可用性及稳定性。(二)(二)提升提升分布式平台分布式平台可用性可用性 混沌工程在建信金科分布式平台(DMP)应用以来,通过针对Spring Boot Web 应用、网关服务、API 接口服务、缓存服务、消息队列、数据库等模块设计混沌测试场景、运行大量混沌实验,已经发现了 DMP 系统未知问题 17 个,提升了生产环境的稳定性。目前 DMP平台日交易量 10 亿,交易量峰值达到 149 万 TPM,峰值

138、 TPS 25000,DMP 平台交易平均处理时长 2ms,业务平均响应间 24ms,平台交易处理成功率 100%,业务处理成功率 99.99866%。对于 DMP 系统已发现的问题,例如冲正交易先至、索引库读写异常场景,这些异常组合的场景多达 2000+个且都需要通过 JVM 注入字节码来模拟。如果这些场景 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)74 都纯人工模拟,则需要不断地修改代码打包,测试效率极其低下。通过使用故障演练平台的 JVM 故障模拟功能和编排引擎来提前编排这些复杂场景,即可将测试的效率提升 80%以上,同时该场景还能够被复用

139、。还有比如网络分区等场景,如果纯人工模拟,则需要编写大量的脚本,耗时耗力且门槛高,通过故障演练平台则只需要简单的命令即可模拟,降低故障模拟的门槛。另外,还经常需要在背景发压过程中定时执行进程、网络、磁盘多个故障步骤,可以通过故障演练平台强大的编排功能来构造,依靠人工则难以实现。表 2 混沌工程分布式平台应用效果表(三)(三)解决其他故障解决其他故障 1.解决银行交易异常时序模拟问题解决银行交易异常时序模拟问题 银行核心业务(如转账、结算等)往往存在正交易和冲正交易两类交易的时序问题,两种交易都可能出现读、写索引故障,这四类故障发生的顺序组合多样,从而可能出现多种时序。如果纯人工模拟这些索引的异

140、常故障,则需要开发修改代码,每测试一种时序,可能都253221SPRING应用网关服务API接口缓存服务消息队列混沌场景数发现问题数使用工具数 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)75 需要修改多次代码,如此就会造成测试效率及其低下且回归成本过高。使用混沌引擎的 JVM 抛出自定义异常故障来模拟读索引或写索引的故障,并使用 JVM 返回延时来控制中间的时序,同时利用编排引擎将这些故障编排起来,即可一键模拟此类复杂的交易时序异常问题。2.解决银行慢交易类模拟问题解决银行慢交易类模拟问题 银行的代收代付业务中,存在很多的长

141、交易,比如代缴水电费(需要外联到水电外部系统),这类长交易往往耗时高达几十秒,且长交易的分布频率往往是伴随着不同业务特性存在的,单纯用挡板很难模拟。此时可以使用混沌的编排引擎来贴合业务生产环境长交易耗时和频率曲线,利用底层混沌引擎中的网络延时故障模拟功能,即可制造此类慢交易的模拟。3.多用途模拟多多用途模拟多 AZAZ 等分区场景等分区场景 分布式的世界里,多 AZ 是必须的,分布式的高可用性必须需要由多副本、多地区、多中心来保证;而在注重稳定性的银行业分布式服务里,稳定性是一个更不可或缺的存在。不同的 AZ 部署在不同的地区,不同 AZ 之间的网络传输往往存在一定的网络时延,相同 AZ 则没

142、有网络延时问题,而测试环境一般都是部署在相同机房的,很难模拟真实生产环境中多 AZ 的场景。此时可利用混沌引擎中的网络延时故障制造工具,加上编排引擎来对 AZ 中所有机器都做一个延时的设定,即可解决多 AZ 分区场景的模拟,而且该种方式只依赖于 Linux底层工具,可迁移能力强,对其他一些需要制造网络延时的场景也非常适用。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)76 4.对应用路由堵塞问题提出创新性混沌测试方案对应用路由堵塞问题提出创新性混沌测试方案 DMP 分布式系统中的应用路由服务,作为一个流量分发、承上启下的服务,经常可能发生各种堵塞问题

143、,比如,worker 进程的堵塞、连接池的堵塞、线程池的堵塞、队列的堵塞、上下游应用的堵塞等等,一旦出现堵塞问题,将会导致 TPS 大幅下降,延时急剧升高的后果。因此在测试环境中针对此类堵塞问题进行测试是必须的。普通的测试工具很难对堵塞问题进行场景模拟和测试,但是使用混沌引擎工具集,可以模拟出慢调用、连接池满、线程池满、上下游应用响应超时等异常,通过对这些异常的编排,即可生成测试应用路由堵塞的场景,产生该类场景的混沌测试方案,从而对这类问题做一个完整高效的测试,将问题解决在测试阶段。5.对服务治理提出一种创对服务治理提出一种创新性的混沌测试方案新性的混沌测试方案 分布式系统中,服务治理是很重要

144、的一个模块,DMP 系统的服务治理模块包括负载均衡、熔断和限流 3 部分,熔断可以支持从大到小3 个层级的熔断,限流则支持从大到小 5 个层级的限流,这三种服务治理策略再加上大大小小多个不同层级,导致整个服务治理模块成为一个非常复杂的系统,通过平时的测试很难覆盖如此复杂的场景,从而导致一些 bug 成为漏网之鱼。此时使用混沌引擎的 JVM 返回异常工具和网络延时工具,再加上使用随机策略的编排引擎,可以编排出一个随时可能产生响应异常和慢调用的场景,这个测试方案没有入侵性,实现简单,通过多次运行,就能解决服务治理难以测试的问题。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(202

145、22022 年)年)77 八、八、未来展望未来展望 建信金科依托于国内开源混沌引擎 chaos-mesh,打造建信金科混沌工程故障演练平台,提供一站式混沌演练服务,赋能金融科技,助力银行数字化转型;通过各类故障类型演练,稳步提升公司各系统处理异常事故以及极端场景的能力,为各系统稳健发展提供有效保障。未来,建信金科还将把混沌工程实践案例拓展到整个金融业场景,通过在实践中沉淀的高可用场景案例集、故障编排方案,提供一体化服务的能力;同时还将进一步探索将机器学习的能力应用到混沌工程领域,对已知故障进行关联性分析,形成故障画像,并基于历史故障对可能发生的级联故障进行预测,从而不断加强公司内部对系统风险治

146、理的能力,最终提升系统的可用性。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)78 8.北京银行:顺天技术平台混沌工程实践北京银行:顺天技术平台混沌工程实践 一、一、申报单位申报单位 北京银行。二、二、案例简介案例简介 北京银行顺天技术平台混沌工程实践,针对分布式架构交互关系复杂、强弱依赖点多、故障风险不易发现的特点,本案例通过对信息系统故障进行分层,实施针对性的测试演练,面向基础设施层、技术平台层、业务系统层,以及应急处置灾难恢复预案等维度定义了故障注入场景,并设计出相对的应急处置预案。本案例对云原生技术平台进行了可靠性验证,进一步催生自动化、场景

147、化、工程化的测试需求,对构建具有银行业特点的分布式稳定性体系建设奠定了实践基础,同时,此次实践大力应用了云原生体系下的可观测性、弹性化容器平台能力、以及字节码注入式的原子故障能力,发现了北京银行在云原生及稳定性建设方面亟待优化的痛点难点问题,有针对性的制定出调优方案,进一步提升了业务系统强健性和高可用水平。混沌工程实践共计模拟了 175 个带有银行业务属性的故障场景,现有发现 30 余项潜在风险,引导帮助相关系统完成整改和复测。在执行过程中大量依赖故障模拟和自动化测试工具,积累了 70 余个设计场景、120 余个技术脚本、18 个原子故障注入方法等。三、三、用户简介用户简介 北京银行成立于 1

148、996 年,秉承“真诚 所以信赖”的服务理念,服务地方经济、服务中小企业、服务市民百姓,着力打造一流惠民金 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)79 融服务品牌。北京银行,是国内最大的城市商业银行,在北京、上海、深圳、杭州等十余个中心城市以及香港特别行政区、荷兰拥有 680 多家分支机构。截至 2021 年 9 月末,该行资产总额达到 3.06 万亿元,成本收入比 22.05%,拨备覆盖率为 224.62%,资本充足率 11.53%,各项经营指标均达到国际银行业先进水平,品牌价值 654 亿元,一级资本排名全球千家大银行第 62 位,连续八

149、年跻身全球银行业百强。四、四、需求分析需求分析 如今,银行业快速发展,金融产品和银行运营模式不断迭代更新,交易量提升带来的数字化、线上化、移动化的需求。为更好地贴合市场需要,分布式架构逐渐替代单体架构成为业内系统主流架构。由于银行分布式系统交易调用链路长、对交易可靠性幂等性要求高、系统间调用关系复杂等特点,加上银行业涉及大量资金交易、重要信息的固有属性,对银行系统的稳定性、安全性、可用性要求极高。实施混沌工程实践的必要性方面,北京银行顺天技术平台具备的 SaaS 应用研发框架、PaaS 层服务组件、IaaS 层基础设施等服务能力,未来要支撑大量业务系统建设部署,实施混沌工程测试可以达到检验平台

150、可靠性和健壮性的目的。另一方面,分布式核心系统、柜员系统等大批分布式系统为北京银行核心业务系统,通过主动制造故障可以检验其抵御生产环境湍流条件的能力。为了提前发现并修复平台和系统的潜在问题,北京银行引入混沌工程,通过落实平台级别的混沌工程测试和常态化系统混沌工程测试,保证平台本身和行内系统的稳定性和可用性。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)80 五、五、技术方案介绍技术方案介绍 (一)(一)技术框架技术框架“顺天”平台在设计规划上参考业界各项先进技术,通过对容器编排技术、微服务架构、无服务器架构、服务网格等近年来产生的新技术理念深入剖析,

151、设计出满足未来五到十年金融业务发展需要的新技术平台,实现了对技术标准、应用架构和研发过程的统一。“顺天”平台将具体业务领域和基础开发平台分层解耦,形成稳定安全、扩展性高、伸缩性强、应用面广的技术共享平台。将容器技术与云计算技术相融合推出容器云平台,实现标准化的技术运用和按需资源供给,为业务项目团队提供了便捷、高效、合理的研发技术能力。结合DevOps理念构建云上 CI/CD 流水线,形成一整套工具化、自动化的交付流程,提升业务创新的敏捷性。“顺天”平台通过技术自研,完成对 300 余项开源组件的改进和扩展,应用交付效率提高 5 倍以上,系统扩展成本降低 60%,具有低成本、高安全、强可控的技术

152、特点。混沌工程实践的技术能力方面,从基础设施层上到应用服务层顺天技术平台提供了完整的解决方案,应用的架构设计、容器化上云部署均在平台侧提供支撑,因此在开展混沌工程实践方面具有充足的技术储备。故障场景设计方面,北京银行结合自身在非功能测试、冗余切换和灾备切换演练中积累的实际经验,深入剖析云原生体系下银行业和金融科技领域的设计思路,设计规划了 70 余个故障模拟场景,模拟测试了基础服务器、网络、存储、kubernetes 集群、微服务中间件等 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)81 平台级故障,为包括分布式核心系统、柜员系统、网上银行系统在内

153、的多套重要信息系统开展了带业务流量的故障模拟测试,为核心服务总控、客户信息管理联机业务、核心批量对账交易、柜员渠道服务、线上登录认证和支付等 20 余个典型交易开展了各类场景的故障注入测试。在故障因子和自动化测试脚本编写方面,合计积累了 120 余个技术脚本,形成 18 项原子级故障注入能力;混沌工程实践可观测性方面,依托顺天技术平台提供的各类监控工具和可视化组件,在链路监控、业务监控、应用监控、基础设施监控等多个维度,为工程实践提供了易用直观的可观测能力和追踪保障。图 24 顺天技术平台生态体系整体框架图 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)

154、年)82 图 25 混沌工程整体技术框架图 北京银行围绕顺天技术平台生态体系开展混沌工程实践,由粗放式到精细化逐步深入,总体两个实施阶段:一个是在顺天技术平台发布初期,整体以容器云和微服务组件等平台自身的健壮性测试为主,以平台研发团队为主,测试执行和验证为半自动方式;另一个是在应用项目推广使用阶段,由平台研发团队、测试团队和应用项目组共同组成专项测试小组,实验流程管理涵盖从方案制定、数据环境准备、自动化程序编写、问题整改复测、应急预案文档整理等全流程,使用专业的混沌工程实践工具开展自动化测试,在测试环境全量模拟生产真实运行态,严格把控执行细节,核对中间环节产出物质量。测试过程沉淀技术资产,建立

155、了故障场景库机制。从 IaaS 层到SaaS 层逐级叠加测试场景,以原子化方式提取故障因子,按需组合注入故障,以应用系统的业务连续性为目标开展复合故障模拟演练的场景建设,力求真实验证应用系统健壮性和抗击打能力。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)83 图 26 两阶段测试实验流程管理情况 专注于银行业本身特点,对分布式架构交互关系复杂、强弱依赖点多、故障风险不易发现的特点,北京银行通过对信息系统故障进行分层,实施针对性的测试演练,面向基础设施层、技术平台层、业务系统层,以及应急处置灾难恢复预案等维度定义了故障注入场景,并设计出相对的应急处置

156、预案。本案例全面应用了云原生体系下的可观 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)84 测性、弹性化容器平台能力、以及字节码注入式的原子故障能力,发挥云原生技术平台自动化编排和弹性伸缩特点,利用自动化、场景化、工程化的测试手段,发现了在云原生及稳定性建设方面亟待优化的痛点难点问题,有针对性地制定调优方案,进一步提升了业务系统强健性和高可用水平,对构建具有银行业特点的分布式稳定性体系建设奠定了实践基础。混沌工程实践共计模拟了 175 个带有银行业务属性的故障场景,累计输出 30 余项应急处置方案,引导和辅助相关系统完成整改和复测。(二)(二)实施

157、过程分析实施过程分析 混沌工程故障实施的第一阶段,以传统非功能测试、冗余切换演练的方法论开展混沌场景模拟时,受限于微服务架构下业务运行 POD副本多、部署结构编排化、资源调度灵活多变等因素,很多组件服务、平台服务在微观层面下的故障模拟难以手工执行和验证。总结以上问题后,北京银行开启了方法论的革新,积极参与中国信通院组织的混沌工程实验室各项标准的制定和讨论,融合金融科技领域各方专业意见,重新对行内混沌工程实践的场景设计、故障注入方式、测试流程进行了优化调整。面向顺天技术平台全局结构,从 IaaS 层的可信基础设施、到PaaS-的容器平台、PaaS+的应用业务组件、重要业务系统,充分利用自动化测试

158、、专业混沌场景编排工具、可观测工具,形成了完整精细的混沌工程演练模型。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)85 图 27 混沌工程案例应用范围示意图 图 28 平台演练解决思路(重点实施)将可信安全基础设施纳入容器云的业务集群节点中,通过模拟节点级别的故障,验证 X86、ARM64 可信安全服务器可用性,Kylin 操作系统与 Kubernetes 兼容性和稳定性,对业务服务的影响。图 29 平台演练解决思路(安全可信测试)针对 Mysql,Redis,Nacos,Sentinel,Gateway 微服务组件,通过结合 Demo 程序,模拟

159、调用延迟、服务不可用、机器资源满载、“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)86 注入流量等,验证微服务组件熔断降级,流量控制,微服务强弱依赖能力的可靠性。图 30 应用中间件演练解决思路 通过混沌工程验证监控能力,协助实现系统监控全面、快速、准确的目标。图 31 平台可观测性能力 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)87 图 32 平台可观测性能力 六、六、实验创新点实验创新点 (一)(一)安全可信云计算基础设施安全可信云计算基础设施 顺天技术平台作为云原生技术平台,在容器云中混合部署了各

160、类处理器芯片的计算节点,通过云化资源池的方式为应用提供计算资源、内存资源和存储资源。本次混沌工程实践中,创新性的针对国产安全可信服务器开展了不可知异常的健壮性测试。通过计算节点、网络、存储、操作系统不同维度的故障注入,观测服务器应对异常的反应和可靠性。实施故障场景 14 个,实施混沌测试 40+次,发现潜在风险 3项,为安全可信设备厂商提出了 3 项重要的优化点,提高了北京银行在安全可信硬件选型工作中的技术判断力,为后续 IaaS、PaaS 层的高可用性奠定基础;实验方法给行业准入测试工作提供了技术补充,有助于安全可信技术在银行专项业务场景中的推广和使用。(二)(二)分布式核心系统单系统健壮性

161、混沌工程实践分布式核心系统单系统健壮性混沌工程实践 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)88 核心业务系统作为银行最重要的业务系统,在开展分布式改造的过程中保证健壮性、可靠性尤为重要。北京银行的分布式核心系统采用顺天技术平台开发建设,从核心业务的应用场景出发,本次也开展了针对分布式核心系统的单系统混沌工程实践,针对分布式核心系统依赖的中间件、网络延迟、丢包、中间件故障等场景,从架构设计和技术方案角度上为分布式核心系统的服务可靠性、稳定性和故障抵御能力进行了评估,平台节点异常各种故障场景下,核心业务微服务是否能够做到故障隔离、异常服务能否实现

162、告警和自愈,验证业务应用工程的容错抗击打能力,在极端场景下的弹性伸缩能力等。(三)(三)柜员系统交易全链路下的混沌工程实践柜员系统交易全链路下的混沌工程实践 针对柜员系统交易全链路的混沌工程实践实施过程中,创新性的将微服务、分布式体系下的全链路调用和追踪能力,从柜员渠道的交易视角分析重要交易流量,梳理系统间调用和接口关系,以交易维度开展面向业务服务的混沌工程实践。实施故障场景 67 个,实施混沌测试 200+次,发现柜员系统和关联系统 6 项潜在风险点,并指导相关系统完成整改和复测。技术上证实了针对银行业务系统全链路混沌工程实践的可行性。七、七、实验收益实验收益 (一)(一)云原生技术平台可靠

163、性验证云原生技术平台可靠性验证 提升北京银行技术平台高可用能力的评测水平,为应用系统的容器化改造和上云部署提供了技术支撑。2021 年北京银行在生产环境 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)89 上云部署 28 套业务系统,其中分布式核心系统、柜员系统、网银系统等 7 套重要业务系统开展了混沌工程实践,混沌工程覆盖率达 25%。(二)(二)推动自动化、场景化测试工具建设推动自动化、场景化测试工具建设 工程实践模拟了 175 个带有银行业务属性的故障场景,在执行过程中所有场景的测试过程、验证过程、监控观测过程全部使用自动化工具完成,通过工具开

164、发、自动化脚本开发、编排程序开发完成自动化能力建设,合计积累了 70 余个自动化测试场景、120 余个程序脚本、18 项自动化原子故障注入模型,为银行业务系统规模化故障模拟演练提供了自动化工具支撑。(三)(三)完善稳定性体系化建设完善稳定性体系化建设 总结了一套基于混沌工程的实施方法论,横向覆盖基础资源、技术平台、业务系统、应用中间件和监控告警、链路追踪等多个维度,纵向以客户交易视角分析业务系统间、应用服务与 PaaS 组件间、应用服务与基础设施之间的强弱依赖关系,强调关键依赖项的故障模拟和自动化应急处置能力。故障注入方式细化到工程代码级,渗透性的识别所有人工分析忽略的关联项,关注交易链路上的

165、所有资源环境服务,观测关键资源供给异常带来的影响,引入故障降级止损理念,通过混沌测试量化重要交易链路的故障影响深度,建立应急恢复和降级止损机制。预研性地对跨区域的多中心多活架构安全设计、自动化应急处置工具建设等进行了规划梳理,全面推广混沌工程的实践经验,为建立全行级的信息系统稳定性体系化建设奠定基础。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)90 八、八、反思及改进反思及改进 DevOpDevOps s 研发运维一体化需要混沌工程测试实践的支撑与保障。研发运维一体化需要混沌工程测试实践的支撑与保障。北京银行现有 DevOps 平台可以作为生产环节

166、的唯一可信源,通过设置安全准入门槛,将操作系统、容器、公共依赖源、第三方组件等系统开发过程中引用的开源技术组件统一管控,交付物集中存储有序管理,提升研发效率的同时,把研发安全的管理由被动变主动,实现安全左移。未来北京银行已将混沌工程测试环节加入 DevOps 平台建设计划。软件研发工艺方面,混沌工程具有带动软件研发工艺重视代码工程的严谨性、健壮性,提升代码质量的积极作用;联合发布方面,以面向业务服务的连续性为目标,混沌工程可以作为联合发布机制的安全保障;质量门禁方面,混沌工程积极践行自动化测试理念,作为生产运行风险“左移”的重要环节,可以在质量管理流程中发挥作用;监控与应急方面,生产环境运行监

167、控可用性指标,可参考混沌工程测试结果设计,混沌测试的故障库、场景库分析可为应急处置提供有效的快速恢复和止损方案。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)91 9.平安平安银行:银行:平安银行平安银行 ASTA 非功能测试平台非功能测试平台 一、一、申报单位申报单位 平安银行股份有限公司。二、二、案例简介案例简介 ASTA 是平安银行自主研发、安全合规、灵活开放可扩展的混沌工程平台。其通过平台模块,流程引擎,底层能力,基础设施四大模块。提供一站式的实验操作用户界面、丰富实验场景推荐、便捷案例集生成,报告管理等功能,附加功能案例和性能自动化支持,充

168、分支撑上层业务,支持日常实验、突袭、攻防、上云及回归实验。ASTA 平台以服务化的形式融入平安银行 IT 数字化管理平台,打通研测流程,将健壮性卡点落到系统中,为平安银行分布式、微服务化架构稳定性提供可靠保障。成功服务了核心应用:信用卡核心系统,柜面,客户,企业总线,等企业核心应用系统,基础的中间件:框架,文件传输,消息,数据连接,DevOps 工具等。三、三、用户简介用户简介 平安银行是平安集团控股的跨区域经营的股份制商业银行。自2016 年以来,平安银行坚持“科技引领”的战略方针,以领先科技驱动银行战略转型,通过科技赋能业务发展。在基础平台能力建设方面,平安银行通过建设分布式金融 PaaS

169、 平台,持续推进分布式架构转型,为业务提供更灵活、更快速、更稳定的系统保障。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)92 四、四、需求分析需求分析 为了应对平安银行系统架构升级以及应用微服务化所带来系统复杂度不断提升,性能持续增加的挑战。在系统与应用不断变化的同时,我们加强对硬件设施的动态维护、生产应急预案管理以及内部风险检视,同时加强研发流程检视,以提高开发、测试、运维和 QA 共同应对风险的能力。综上所述,为了在测试环境与准生产环境提前预防和发现漏洞,提高系统韧性和可运维性,同时满足监管的高可用,稳定性,健壮性的要求,我们需要建立混沌工程平

170、台,形成可共享、形成可共享、复用的复用的混沌工程服务能力。混沌工程服务能力。该混沌平台须满足四大原则:?简单友好易用,遵循混沌工程方法,丰富的实验场景,实验容易构造使用,需要有如下主要功能模块:混沌实验故障模板、流量模拟、自动化等?灵活扩展,支持多种测试环境,支持虚拟机和容器,易用易扩展?开放融合,与DevOps平台Starlink融合,融合其他测试系统,接口驱动?安全合规,物理安全,资源安全,数据安全 须重点建设如下能力:1.实验故障模拟:流程维度上,混沌实验可以在产品研发的不同时期,从不同的维度验证验证架构;用户维度上,需满足开发,测试,“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者

171、”优秀案例(20222022 年)年)93 运维三方的需要;具体内容上应包括 IaaS、PaaS、SaaS、DB 层实验、网络、容器等等。2.流量录制回放:通过流量复制、脱敏技术,安全地把流量导入到测试环境回放。不仅可以对单一系统回放,还可以端到端回放。可以实现参数化流量,流量编排,流量对比等。3.自动生成故障案例:根据系统类型自动推荐测试案例,根据系统类型自动配置,支持手动删减等功能。4.与 Starlink 融合。五、五、技术方案技术方案 (一)(一)技术方案技术方案 应对前面提到的用户需求,我们梳理四个底层块,平台模块,流程引擎,底层能力,基础设施块,以支撑上层业务,支持日常实验、突袭、

172、攻防、上云及回归实验。以下为整体技术架构:在众多层设计中,PaaS 层是平台设计投入的重点,我们针对性地进行了相应测试的设计,如消息堆积、数据库可靠性测试、注册中心脑裂、微服务间网络异常,等等。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)94 图 33 ASTA 平台 PaaS 层技术方案 (二)(二)能力全景能力全景 图 34 ASTA 平台能力全景(三)(三)实验流程管理模型实验流程管理模型 场景:业务场景提供流量注入,可以由用户定制。丰富的故障注入场景涵盖大多数实验。实验:将业务场景叠加故障场景,多种算法组合,形成实验便于用户选择,丰富的基础

173、实验,扩展方便。案例:确定实验的范围和目标,确定实验执行的规则。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)95 执行:收集独立的日志便于分析,链接监控系统便于观察系统状态变迁。图 35 实验流程管理模型(四)(四)典型案例典型案例 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)96 图 36 典型案例图 六、六、实验平台创新点实验平台创新点 1.Asta 接入 Starlink 平台,以服务的形式输出能力,闭环整个研发质量环节。让混沌保障能力嵌入全行的质量保障环节。2.Starlink 作为平安全行统一

174、的开发运维一体化平台,对整个开发、测试、部署和运维的流程与活动进行统一的管理。3.一站式平台,降低了全行使用混沌测试能力的门槛,降低了管理、学习成本。4.相关数据的可视化展示能力。提供诸如当前有多少应用使用、案例执行情况、场景类型等用户关心的数据,辅助洞察能力,提升用户使用体验。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)97 图 37 Starlink 平台可视化展示能力 5.非功能指标观测指标评分体系。从架构三层,高可用,高性能,高可靠,可运维。12 方面评分。多维度评估系统健壮性能力得分。可按照高 90+,中 80-90,低 80-60,不及

175、格 60-的分数区间,直观、及时提供反馈。图 38 非功能指标观测指标评分体系 七、七、实验收益实验收益 在平安银行信用卡 A+新核心的投产和运行过程中,ASTA 发挥了重要作用。通过投产前执行三轮的混沌测试,案例合计 2000+,提前发现了涉及 PaaS、IaaS、SaaS 层的不同类型问题总计 30+个。(一)(一)技术角度技术角度 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)98 从技术上,通过 Asta 混沌工具快速搭建了混沌实验室,践行了分布式系统稳定保障理念。超 A 系统 7*24 稳定性的承诺。能从故障事前、事中、事后技术无死角保障运

176、行。1.流量:利用网络旁路无侵入式的录制生产流量,安全脱敏,准生产或测试环境“随心所欲”定制回放,可慢放,可快放,可 mock,可不 mock DB,可单系统,可端到端等等。2.事前:可以运用应用画像分析技术,便捷滴一键式自动生成自动化案例集。3.事中:利用智能探针技术自动检测出业务的依赖环境,分析潜在的运行依赖风险点,注入故障,达到精准测试,增强实验效果。同时 X?断技术,能实时整合运行和监控结果,识别通过还是不通过。让用户面对纷扰多方数据再也不犯难了。4.事后:利用 360 度评分报告汇总稳定性的薄弱点,让 12 象限数据说话。提前保证业务应对各种未来未知故障能自如的解耦依赖,降级,快速止

177、损,稳如泰山的运行。(二)(二)管理角度管理角度 管理上,ASTA 以一站式、自动化的平台服务助力降本增效,减少风险。1.降本增效:时间成本:以专项测试算,一个组件专项需要 2 月,通过 ASTA,一周可完成,节省时间 87.5%“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)99 人力成本:原本组件需要 12 个测试执行人员,使用平台只需要一个测试人员,节省人力 92%2.增效:Asta 的自动化调度能多个系统同时测试,已经建好的测试集可以重复每个版本自动提测部署后,重复回归使用。为每一个版本迭代,保驾护航。3.防风险:高度自动化,避免因人的问题导致

178、的失误;工程化的分析推荐,能减少漏测的风险。图 39 ASTA 平台助力降本增效减少风险 八、八、反思及改进反思及改进 早期案例是用公共测试场景库,用户可自主选择。后续在系统使用过程中发现,因为人为因素无法做到精准测试。针对这个问题,提出了精准测试的概念。从环境检查、应用依赖自动检测入手,自动检测应用对外部系统的依赖,并根据这些依赖关系,推荐合适的实验,从而实现精准实验。具体改进措施包括:1.应用依赖自动检测:IaaS、PaaS、SaaS 层依赖检测。2.混沌实验智能推荐与执行:根据检测到的应用的依赖关系,对应用或中间件从而进行智能实验推荐和执行。“混沌工程先锋实践者”优秀案例(“混沌工程先锋

179、实践者”优秀案例(20222022 年)年)100 10.中电金信:恒丰银行红蓝对抗演练中电金信:恒丰银行红蓝对抗演练 一、一、申报单位申报单位 中电金信软件有限公司。二、二、案例简介案例简介 近年来,随着分布式技术的快速发展,金融科技领域面临着分布式架构复杂性带来的运维挑战及全场景覆盖测试难度大的问题。中电金信凭借在混沌工程领域的研发积累和丰富的工程实践,与恒丰银行携手引入混沌工程理念,启动高可用性运维探索,在系统数字化转型中落地该理念研究成果。通过分阶段、多样性的混沌工程实验方式,开展提升系统高可用性的实践活动。提高诸如业务架构复杂、交易高可靠性、交易链路长等可能引发生产事件的应急处置效率

180、,验证分布式系统架构部署及各设施间的匹配和交互有效准确性。此外,测试团队还针对复杂的分布式系统架构及高可用测试场景进行有效覆盖,并监测分布式系统的薄弱环节。红蓝对抗演练旨在提升恒丰银行运维团队的自主运维能力,通过验证应急预案、验证监控指标等方式快速定位问题,大幅缩短故障处置时间,保障业务连续性,切实提升运维团队的自主运维能力。此演练案例主要在准生产环境进行,应用范围覆盖 251 个系统,共计 1533 个部署单元,2605 台服务器,涵盖核心系统、手机银行、支付结算、电子银行等重要系统,目前已有 80 余人参与,进行了 6000余次红蓝对抗演练。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实

181、践者”优秀案例(20222022 年)年)101 三、三、用户简介用户简介 需求方:恒丰银行股份有限公司 恒丰银行是 12 家全国性股份制商业银行之一,总部设在山东济南,在全国设有 310 家分支机构。截至 2021 年末,全行总资产为 1.2万亿元,各项业务发展势头良好,经营效益稳步提升。2021 年恒心工程投产上线,恒心工程是恒丰银行历时两年、投入 2500 余人打造的新一代企业级全功能系统,是全国首个实现业务和系统一次性整体升级的股份制商业银行核心系统。图 40 恒丰银行团队 供给方:中电金信软件有限公司 中电金信是基于全栈信息技术的金融数字化咨询及软件提供商,重点行业数字化转型服务专家

182、。连续 4 年获得 IDC 中国银行业 IT 解决方案市场份额 No.1。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)102 中电金信作为中国电子旗下成员企业,通过持续研发创新,参与国家重大工程,依托行业场景,打造全栈全域解决方案,提供领先的咨询、软件产品及开发、质量安全保障及运营服务,为金融及重点行业数字化转型及安全发展提供强大动能,并以中国数字化转型最佳实践服务全球。图 41 中电金信团队 四、四、需求分析需求分析 (一)(一)提高应对生产故障的效率提高应对生产故障的效率 随着数据时代的到来,行内系统趋于集群规模化、系统分布式化,而稳定性保障措

183、施重点在于防范已知故障,运维人员对分布式系统内部复杂的关联关系熟悉度不高,仅能从生产故障中逐步总结经验。因此,提高生产故障的应对效率需要尽快落地。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)103 (二)(二)验证和优化系统运维的应急预案验证和优化系统运维的应急预案 应急预案场景是否能覆盖生产事件场景,对相应的应急处理是否有效,需要在生产故障发生前得到检验和完善。(三)(三)验证和优化监控告警体系的有效性验证和优化监控告警体系的有效性 系统的监控体系能否有效发挥监控作用,监控阈值的设置是否合理,如何提高监控系统的有效性,需要积极地正视和解决。(四)

184、(四)提高预设场景的效率提高预设场景的效率 通过混沌工程平台能够一站式生成更多的技术场景,生成网络延迟,丢包,网卡故障,虚机 OS 故障,宿主机故障,存储故障,进程异常,进程假死,JVM 故障等难以复现的场景。解决了因时间限定、地点固定、以及各专业之间的沟通协作困难的问题。(五)(五)运维能力提升需要有效工具的支撑运维能力提升需要有效工具的支撑 运维团队的新人无法尽快熟悉应用系统的上下游关系,对应急预案、操作手册的熟悉程度不够。在缺乏有效的演练工具的情况下,多数故障场景仅能在生产故障发生时才能应对,从而影响生产故障应急处置的效率。目前,运维人员考核指标尚无量化标准,运维团队的组建规模也需要相关

185、的参考标准。五、五、技术方案介绍技术方案介绍 (一)(一)整体平台架构整体平台架构 混沌工程实验平台由基础设施和扰动注入模块、任务调度模块、平台管理模块、平台核心功能等多个模块组成,为红蓝对抗演练提供 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)104 环境搭建、故障复现、演练事件管理、发起演练等相关保障,产品具体框架如下图所示。图 42 混沌工程平台(二)(二)平台核心功能平台核心功能 1.银行业混沌案例库。具备银行业混沌实验属性,针对银行系统的特点固化相关实验案例用于进行可用性等场景的测试,同时可以根据系统情况,一键式智能生成案例。2.全链路演

186、练。团队自研全链路演练功能,以解决银行业务交易链路长、重流程、事务一致性难以保障的问题。通过平台配置和相关操作后,可以一键发起全链路演练,如在购买理财产品的 APP 中发起全链路实验,过程如下图所示:“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)105 图 43 全链路演练 3.红蓝对抗演练。为迅速提高运维团队的应急能力,针对既定的故障场景进行快速处置,红蓝对抗演练实践应运而生。红蓝对抗演练实践,实际是在混沌工程实验的基础上,融入了人员管理和团队能力提升的成分。主要组成部分包括:混沌工程实验、人员分组、演练结果考核、统计排名。通过大量的对抗演练实践,

187、最终实现系统稳定性的提升。详细介绍请见后文“实验创新点”部分。4.生产故障重现。根据真实生产环境发生的故障场景,通过混沌工程平台配置出相似的演练场景,进而注入扰动模拟生产故障,以供团队进行练习实践。如模拟获取 weblogic 管理端口数据失败、模拟手机银行后台应用tcp_listen_check failed、模拟代理国债进程异常/进程停止等。(三)(三)实施过程中的问题及解决思路实施过程中的问题及解决思路 1.部分功能研发和部署存在不兼容问题 平台研发阶段借鉴了部分开源的 Chaos Tools,开源工具未提供 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(2022202

188、2 年)年)106 Weblogic 中间件支持,导致 JVM 相关故障注入无法生效。经过对混沌工具中 JVM SandBox 相关功能的二次开发,使得系统对 Weblogic中间件的交易类故障注入可以实现。此外,开源工具仅支持小规模(300 台以内)的集群部署,当其部署大规模集群(2000 台以上)时,系统可用性将会显著下降。在经过研发团队的多探针改造和应用性能优化后,工具与系统规模才得以适配。2.开源软件的安全漏洞风险 银行业对软件系统有严格的安全级别要求和准入要求,开源软件的应用是否有不可预测的风险,是双方需要共同面对的问题。为了避免在生产环境中出现潜在的软件安全漏洞,最终决定将混沌工程

189、平台部署于恒丰银行的准生产环境,主要由运维团队和非功能测试团队参与实践操作。3.存在部分真实应用故障的场景难以复现 通过混沌工程平台配置出与真实生产事故相似的演练场景,进而注入扰动模拟生产故障,以供团队进行练习实践。但仍会有部分场景难以复现,如跑批报错、跑批异常中断等故障场景,通过平台的配置或自定义故障仍较难实现。针对此类问题,双方在经过深入探讨后得出一系列可探索性的解决方案(如通过第三方调用等方式实现)。六、六、实验创新点实验创新点 (一)(一)创新点创新点 1.有丰富的多维度混沌案例库 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)107 包含高

190、可用相关停应用、停服务、宕网卡、宕机、假死等案例,以及从生产事件、应急预案中抽象的交易一致性相关等案例。2.演练方式采用红蓝对抗模式 红蓝对抗演练执行常规混沌实验以及混沌案例库中的案例,并由3 个角色共同完成:蓝方(混沌工程师)、红方(运维人员)、考核官。其中,蓝方和考核官可以是同一人/组,红方可以是一人,或者负责同一系统的多人/小组。具体演练过程和目标如下图。图 44 红蓝对抗演练 首先,混沌工程师(蓝方)在准生产环境中,创建演练场景和考核题库。进入演练界面后,混沌工程师(蓝方)发起故障注入,演练开始。随后运维人员(红方)开始根据行方的集成监控、运行日志等,开始应对故障;在故障解决完成后,提

191、交应急处置步骤及相关截图。最终,由考核人员介入查看故障恢复状态和红方提交的应急处置步骤及相关截图,结合故障解决时长最终进行考核结果综合评分。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)108 3.演练案例故障的随机注入 演练人员通过平台设置随机发起演练,平台可以从混沌案例库中随机选取演练事件并注入相应的故障。随后演练人员通过监控平台、服务日志等反馈信息,对未知故障进行应急处置,以提高演练人员应对未知故障的应急能力。(二)(二)创新点意义创新点意义 1.阶段性应用评估,发现薄弱环节 在对抗演练的过程中,运维执行组是按照具体应用分组,每组人员参与所负责

192、的应用的相关演练。混沌工程平台可以设置自定义组别,对应不同的应用,演练时对应具体的运维执行组/人员,演练频率约为 20 次/人月。因此根据一段时间的演练结果,可按照各应用的演练结果统计,发现平均演练成绩待提升的应用,进而将薄弱环节定位到具体应用。行方管理人员,可以针对该部分应用采取巩固处理的措施,如完善告警配置/应急预案,加强相关人员培训,最终提高系统运行的稳定性。2.快速提高运维人员应急能力 对抗演练落地实践的过程,按照熟练程度循序渐进,从最初部分运维人员参与,到后期全体运维人员参与。整个运维团队快速熟悉监控告警的查看、应急手册/启停脚本的使用,有效地缩短了故障处理时间,大幅地提高团队应急能

193、力。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)109 根据演练结果,从人员、小组多维度进行排名,作为人员的考核和评奖依据。3.快速验证监控系统和应急预案有效性 现阶段运维工具往往束之高阁,仅在生产环境中得以验证,效率低且覆盖面窄。而在对抗演练的过程中,可在模拟故障注入后,观察和验证监控系统的联动情况并结合故障场景,短时间内快速验证应急手册、启停脚本的有效性。七、七、实验收益实验收益 1.参与演练人员总数 80 余人,演练以单人/小组为单位进行,共10 个执行组,累计演练约 6000 余次。2.累计验证应急手册案例 2000 余项,修改和新增 70

194、 余项。3.系统监控验证 900 余项,新增 50 余项监控。4.在 40 余个行内系统中,发现 100 余处缺陷,并予以修补或制定相关的应急预案。八、八、反思及改进反思及改进 1.实验案例下发目前依赖于演练人员手动注入,计划通过加入AI算法推荐机制等方式,将场景下发自动化。2.演练结果仍需人工评判,计划按照一定评分机制,自动获取演练过程信息,实现演练结果的智能评判。3.实验报告无法自动生成,完全依赖人工填写,平台计划进一步升级以实现实验报告自动化,调整后的简版技术架构如下图所示。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)110 Web Cons

195、olePTS(JMeter)Chaos Tools/自研能力自研能力Test ReportPrometheusExportersGatewayInfluxDBAgent 图 45 自动生成实验报告 按照报告内容项的初步设计,测试报告中将详细记录实验关键信息,如参与演练人员、实验开始时间、扰动注入类型等,且包含测试或者监控的关键图表,如 TPS、CPU 使用率、压力测试聚合报告等。同时,也会设置自定义项,供实验人员填写相关记录,如记录故障现象、解决方案、应急预案完善建议/方案、监控体系验证情况等。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)111 第

196、三部分第三部分 证券领域证券领域 11.中信建投:故障演练平台项目中信建投:故障演练平台项目 一、一、申报单位申报单位 中信建投证券股份有限公司。二、二、案例简介案例简介 中信建投证券基于混沌工程平台丰富的故障场景能力,构建了大量的实验场景对公司中台场景进行了实验。实验过程中有效梳理了各个证券业务服务之间的强弱依赖关系,发现了 5 个风险点,并节省了大量时间、人力成本。首先,发现了两个系统架构韧性风险:一个是与客户服务有关,客户中心服务的 SLA 降低,而弱账户服务向客户中心服务请求大量失败后触发熔断,在客户中心服务恢复后,弱账户却未能停止熔断,恢复调用;另一个是某服务方法限流异常,在证券行情

197、市场火爆的场景下,客户对题材概念的股票关注度集中,引发了热点资讯推荐的服务接口请求过大,造成整体资讯服务中断。其次,在监控预警能力与应急预案上发现了 3 类风险,如部分服务在网络通讯发生异常网络波动的时候,监控告警无法有效感知。最后,截止 2 月 1 日,中信建投致胜综合共享技术平台共有资讯服务中心、理财服务中心、行情服务中心、工具服务中心、投顾服务中心、理财服务中心和客户服务中心等 17 个服务中心,251 个业务员单元,3551 个微服务的投产。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)112 靠传统的人工+脚本的方式开展规模化的演练往往耗时

198、成本很高,以及演练的历史数据可追溯体验不佳,因此,通过故障演练平台我们大大缩短了在致胜综合共享技术平台开展混沌实验的效率。通过实践的不断积累,我们形成了一套业务专家演练场景库,可以根据版本迭代需要灵活构建业务演练任务,并对服务历次版本迭代的表现进行跟踪度量,促进“致胜平台”的稳定性改进。三、三、用户简介用户简介 中信建投证券成立于 2005 年 11 月 2 日,是经中国证监会批准设立的全国性大型综合证券公司。公司注册于北京,注册资本 77.57 亿元,在全国 30 个省、自治区和直辖市设有 313 家分支机构,并设有中信建投期货有限公司、中信建投资本管理有限公司、中信建投(国际)金融控股有限

199、公司、中信建投基金管理有限公司和中信建投投资有限公司等 5 家子公司。公司在为政府、企业、机构和个人投资者提供优质专业的金融服务过程中建立了良好的声誉,自 2010 年起连续12 年被中国证监会评为目前行业最高级别的 A 类 AA 级证券公司。2016 年 12 月 9 日,中信建投证券在香港联交所上市,股票代码6066.HK,公司 A 股于 2018 年 6 月 20 日在上交所主板上市,股票代码 601066.SH。公司拥有实力强大的股东背景,主要股东有北京金融控股集团有限公司、中央汇金投资有限责任公司与中国中信集团有限公司,均为拥有雄厚资本实力、成熟资本运作经验与较高社会知名度的大型企业

200、。公司具有行业领先、均衡全能的投资银行业务,连续 8 年保持行业前 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)113 3 名;具有产品丰富且富有竞争力的财富管理业务,公司拥有 900 万证券经纪业务客户,托管证券市值 4.31 万亿元,位居行业第 2 名。凭借高度的敬业精神与突出的专业能力,中信建投证券主要经营指标目前均位居行业前 10 名。四、四、需求分析需求分析 随着证券业务的发展及用户数的增长,对于 IT 技术方面的投入标准也逐步提升,其中保障系统的稳定性和高可用性就成为了系统建设和维护的重点。2020 年,我司在传统性能测试的基础上引入了

201、破坏性测试,通过手动注入故障的方式,验证系统的稳定性,在工作中取得了一定效果,但也暴露出了一系列问题。首先由于故障执行依赖人工手动注入,因此故障类型丰富度有所欠缺,导致破坏性测试对于系统问题的发现率不高,且执行成功率偏低,误差较大。另外,过往的破坏性测试用例会与性能测试用例进行合并归档,未进行区分管理,缺乏规范性。为解决上述问题,我司于 2021 年引入了故障演练平台。希望通过故障平台的构建,使得破坏性测试能够实现以下需求:1.测试流程规范化:对各系统的破坏性测试流程进行集中管理,制定统一的测试标准,避免各系统之间各自为政。2.故障场景丰富化:涵盖单点故障、功能故障、性能瓶颈、数据丢失、操作失

202、误、风控失效等故障场景。3.故障执行自动化:利用平台操控代替手工操作,提升故障执行效率,规避人工操作时的执行误差。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)114 4.用例管理统一化:构建统一的破坏性测试用例库,对所有执行过的破坏性测试用例进行统一管理,避免归档时与其他无关用例出现混淆。5.版本质量可溯化:对被测系统的每个迭代版本生成独立的质量报告,使每个迭代版本的系统健壮性和稳定性均可做到有据可循,有源可溯。五、五、技术方案介绍技术方案介绍 整个平台主要分为演练活动管理、演练配置管理、演练活动三大模块;演练活动管理模块包括:用例库、任务计划、活

203、动报告、活动报表、数据看板等功能。主要负责对企业信息系统的稳定性工程建设进行统一管理,按测试流程体系进行构建,使各系统迭代版本具备可追溯的能力,可以对系统历次上线后的系统稳定性及健康度提供指导。整体流程从初始化的系统场景及用例库建设、任务下发,到执行过程中的缺陷跟踪,到执行成功后生成任务报表,形成了完整的闭环。演练配置管理模块包括:资源管理、流程管理、探针管理、应用管理、权限管理等功能。主要负责构建混沌工程实施的基础底座,其中涉及故障资源及原子流程的编排、探针及应用的管理等。演练活动模块包括:经验库、场景推荐、场景编排、节点编排、流程调度、活动防护等功能。主要负责创建具体实验的流程,将实验方案

204、实例化,根据实际场景需要,对被演练系统进行相应的实验编排、活动执行和活动监测以及对应的保护工作。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)115 图 46 中信建投故障演练平台能力 在开展混沌工程实验的过程中,有时候会遇到大面积集群化故障注入、或是对单一节点进行多重故障注入的实验场景。此时需要一个兼具高时效性及高可用性的实验控制器来进行有效合理的调度,避免出现故障失控现象。本平台的资源调度器会在实验过程中,会先对演练计划中的实验对象和实验故障进行快速识别配对,配对完成后再通过高速发射器向被实验的目标发送相应故障。当演练活动开始后,平台在活动执行期

205、间,会结合演练计划的目标和每个节点的故障生命状态进行实时监控与快速判断,确保对故障初始化、故障执行、故障恢复等操作做出及时响应。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)116 图 47 平台故障演练活动 六、六、实验创新点实验创新点 本项目引入混沌工程主要目的在于代替传统的冒烟测试。既往高可用性测试,由于需要采取用例编写模式进行测试,即根据被测系统特性,调用过往用例,进行修改后再启动测试流程,导致此法既耗费人力、效率低下,且项目覆盖率无法得到保证。而在本项目的条件下,可以实现故障注入的自动化、批量化,进而有效节省人力,提高效率。同时通过基础资源

206、层的原子故障场景和特定业务的原子故障场景之间的自由组合,提升了实验场景的丰富性,加强了对实验场景的管控能力。此外,利用基础资源类的场景进行冒烟测试,可以有效规避待测系统的业务特性,减少用例的重复编写。该平台同时也可将系统历代版本的质量报告纳入统一管理,形成可追述、可验证的质量保障体系。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)117 在测试环境引入混沌工程,可以有效验证项目自身的可靠性,避免将未知风险遗留到生产环境。同时,通过逐步开放仿真环境,进行整体系统的高可用性测试,也为故障演练在生产环境落地进行了铺垫。另外,传统故障注入能力较为零散、缺乏规

207、范性,而该平台实现了对于系统故障的规范化统筹,此举大大降低了混沌工程这一概念的认知门槛,有效提升了混沌工程的在企业层面推广和落地的效率。七、七、实验收益实验收益 在测试环境引入混沌工程,一轮冒烟测试的人力投入从原来 12人/天,降低到 7 人/天;模拟故障场景从原来的 42 个,提升到了 147个,整体效率较传统流程提升近 5 倍。新的故障场景发现了 5 个待优化点,目前 2 个已完成优化,2 个已完成优化方案制定,1 个仍在优化方案制定中。八、八、反思及改进反思及改进 在测试环境优先构建故障平台,取代传统的高可用性测试流程,只是将混沌工程理念引入行业,并逐渐推广的抛砖引玉之举。鉴于混沌工程核

208、心价值在于指导生产,故最能体现其价值的定位方向仍为生产环境。再完善的仿真环境,也终究无法取代真实的生产环境。本项目的最终发展方向,仍是需要通过仿真环境的优先践行,逐步向生产环境进行推广过渡。平台内要有充足的历史故障经验可供调用,以此为契机,加强行业运维人员对该平台的了解和熟悉程度,接受并合理运用混沌工程理念,最终实现提高系统韧性,减少生产事故发生率的共同目标。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)118 将来,平台加速融入到运维品质保障体系,形成一体化的系统稳定性工程保障体系,除了通过混沌实验暴露软件服务品质风险,还将从运维应急程度上促进系统

209、稳定性的建设。同时,根据实践积累的经验,将混沌工程实践逐步从测试环境一步步走向生产环境,进一步发挥混沌工程在系统稳定性保障工作中的价值。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)119 12.中泰证券:混沌工程在互联网金融业务的应用与中泰证券:混沌工程在互联网金融业务的应用与实践实践 一、一、申报单位申报单位 中泰证券股份有限公司。二、二、案例简介案例简介 混沌工程,是在分布式系统上进行实验的学科,旨在提升系统容错性,建立系统抵御生产环境中发生不可预知问题的信心;将故障扼杀在襁褓之中,也就是在故障造成中断之前将它们识别出来。通过主动制造故障,测试

210、系统在各种压力下的行为,识别并修复故障问题,避免造成严重后果;是一种提高技术架构弹性能力的复杂技术手段,经过实验可以确保系统的可用性。目前中泰的互联网金融理财业务系统在技术演进过程中,面临架构变得复杂(如单体架构向微服务架构转变等)的问题,以及需要快速频繁交付有价值的产品与服务与保持生产环境稳定性的之间的矛盾。同时,面临生产环境不断有不可预料的故障问题发生,给产品服务能力与客户体验造成很大挑战。因此我们率先在理财、条件单等业务线进行了混沌工程的落地实践。通过对混沌工程相关理论和技术的研究,混沌工程在系统稳定性的建设过程中整体思路实现流程包括三大步骤,分别是仿真环境准备与系统监控建设、混沌工程工

211、具建设,以及混沌工程实验演练及演练结果分析。因此混沌工程的实践主要基于以上三点进行展开。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)120 三、三、用户简介用户简介 中泰证券股份有限公司(原名齐鲁证券有限公司)成立于 2001年 5 月,是全国大型综合类上市券商(股票代码:600918),在全国28 个省市自治区设有 45 家分公司、285 家证券营业部,员工 8000 多人,控股鲁证期货、中泰资本、中泰金融国际、中泰资管、中泰创投、齐鲁股权交易中心,参股万家基金,形成了集证券、期货、基金等为一体的综合性证券控股集团。中泰证券主要经营证券经纪、承销

212、与保荐、投资咨询、证券自营、财务顾问、融资融券、基金与金融产品代销、基金托管、期货介绍等业务。截至目前,公司服务客户 750 多万,管理客户资产过万亿元;累计为 800 多家企业提供股债融资服务,为企业融资近 1.5 万亿元。公司秉持“以客户为中心”的核心服务理念,打造以投资顾问为核心、集“专业交易、资产配置、综合金融服务”为一体的国内一流财富品牌,打造零售业务能力体系、金融产品体系、综合金融服务体系三大体系,满足客户日益增长的投融资需求。零售业务能力体系。提供中泰齐富通 APP、融易汇 PC 端、微信公众号、门户网站等多终端多渠道“一体化”互联网综合服务平台,打造线上线下一体化综合财富管理服

213、务;通过“财富泰山”投顾服务提供各类财富管理、投资咨询服务,用专业能力助力客户财富保值增值。95538 客服中心为投资者提供 7*24 小时的网上开户、业务咨询、服务查询等“一站式”客户服务。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)121 金融产品体系。公司构建起数量众多、类型丰富、结构合理、质量优良、客户满意的“金字塔型”产品库,可满足不同类型产品客户的资产配置需求。综合金融服务体系。公司依托综合金融专业团队,为客户量身定制综合金融解决方案,提供大类资产配置、投顾业务、家办家信、金融同业与资金对接、市值管理与股权激励、退税减持、股权融资、债权

214、融资、财务顾问等业务,为高净值个人客户及机构客户提供“一站式”综合金融服务。四、四、需求分析需求分析 互联网金融时代下,金融科技赋能业务发展日渐受到行业的高度重视。然而在金融科技相关能力的建设过程中,技术迭代的演进带来金融科技水平提升的同时也使得技术基础设施复杂性提高,生产环境不断有不可预料的故障问题发生。如何实现生产环境潜在故障的提前发现并进行修复,提高产品服务能力成为需要重点关注的问题。目前我司引入混沌工程的迫切性与必要性主要体现在如下几个方面:1.架构复杂性的需要:在技术架构大量基于微服务架构与生产环境保证高可用多节点部署的情况下,生产运行微服务数量庞大,再加上分布式集群与混合云的应用,

215、导致现有部署架构具有一定的复杂性,服务之间的调用比较复杂。2.运维稳定性提升的需要:在项目管理上,主要应用敏捷进行项目管理,需要对产品进行快速迭代与生产环境的频繁部署,对运维体 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)122 系稳定性具有更高要求。3.故障总结与发现的需要:此外,根据近几年生产故障统计,生产环境在一定情况下会发生不可预测的突发事件,如数据同步问题、中间件连接超时问题等。而且,对于同一类型故障,可能在多个业务条线系统出现,带来无法预料的风险,4.混沌工程经验积累的需要:通过该项目的实施,能够为其他业务演练积累演练经验库以及故障解决

216、方案。五、五、技术方案介绍技术方案介绍 通过对混沌工程相关理论和技术的研究,混沌工程在系统稳定性的建设过程整体思路实现流程包括三大步骤:分别是基础设施建设、混沌工程工具建设,以及混沌工程实验演练及演练结果分析。(一)(一)基础设施建设基础设施建设 为了避免混沌工程实施过程中对生产环境产生故障影响,造成合规风险事件,因此混沌工程演练首先在仿真环境中运行,待条件成熟后再在生产进行演练。在仿真环境的建设过程中,参照生产环境部署架构进行仿真环境 1:1 建设。在完成仿真环境建设后,对相应业务系统建设主机、应用以及业务相关指标的监控,仿真环境的架构图如下:“混沌工程先锋实践者”优秀案例(“混沌工程先锋实

217、践者”优秀案例(20222022 年)年)123 图 48 仿真环境架构图(二)(二)混沌工程工具建设混沌工程工具建设 为了实施对应演练场景,需要一个可以进行混沌工程实验的工具平台。公司构建的混沌工程技术架构包括实验管理层及故障模块两部分,实验管理层对故障类型、范围以及先后次序进行编排。代表故障操作的故障任务模型提交至实验管理层后,由其解析目标机器并下发至分布式系统的目标机器中,机器中的预置故障模块接收模型后进一步解析为相关指令,并对所在机器注入、释放对应故障。混沌工程的技术架构如图所示:“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)124 图 49

218、 混沌工程平台技术架构图 建立在原子能力上的为平演练能力,即平台可以基于原子能力进行对应的原子指标创建、分发、执行、恢复和分析的能力;感知能力为平台能够基于平台探针,感知目标系统组件类型及状态,并进行原子指标能力的演练实施;在计划能力层,为根据实际应用业务场景,进行业务场景构建、编排,并最终基于平台的能力,实施演练场景与结果分析。通过平台的原子能力、演练能力、感知能力与计划能力,最终形成混沌工程平台日常巡检、故障演练、可靠性测试与红蓝攻防的能力。混沌工程平台的原子能力主要为包括宿主主机系统层、应用层等对应演练的原子指标,原子能力图如下图所示,分别对应业务系统的SaaS、PaaS、IaaS。“混

219、沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)125 图 50 混沌工程平台原子能力 1.Java 应用:包括进程挂掉,JVM 异常,Servlet 异常,也可以指定任意类方法注入各种复杂的实验场景。2.基础服务:包括中间件,Docker 容器,云原生平台。Docker 容器:包括杀容器、容器内 CPU、内存、网络、磁盘、进程等实验场景。云原生平台:包括 Kubernetes 平台节点上 CPU、内存、网络、磁盘、进程实验场景以及 Pod 网络和 Pod 本身实验场景如杀 Pod,容器的实验场景如上述的 Docker 容器实验场景。3.部署环境:包括 C

220、PU、内存、网络、磁盘等实验场景。(三)(三)混沌工程实验演练及演练结果分析混沌工程实验演练及演练结果分析 基于混沌工程与演练质保开始实施故障演练,主要分八个步骤:分别是选定假设、设定实验范围、识别出要监控的指标、在组织内沟通到位、执行实验、分析实验结果、扩大实验范围、自动化实验这八个步骤。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)126 图 51 基于混沌工程与演练质保的故障演练 各步骤关注内容如下表:选定假设 在系统层面、应用层面以及业务层面选定可能对业务产生故障的指标。设定实验(爆炸)范围 评估出故障演练受影响范围,严格控制“爆炸”的影响范

221、围。识别出要监控的指标 找出能够描述服务稳定状态的通用指标,如metrics、告警等。实验前指标应处于稳定状态;执行实验时,如果服务的可用性或稳定性受到影响时,稳定性指标会发生变化,如 metrics 曲线的剧烈波动、触发告警等;当实验结束后,稳定性指标又会恢复到之前的稳定状态。组织内沟通与协作 研发、测试和运维协作进行实验演练。执行实验 编排具体故障演练任务,故障实验发生流程,包括一场实验中需执行的任务、任务先后次序等,并对目标系统实时地监控并进行数据采集。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)127 分析实验结果 实验结束后,将实验中收集

222、到的监控数据将与混沌实验前预设的基线数据进行比较,判断系统环境扰动过程中系统服务是否发生了故障。对于分析出来的故障进行故障等级登记,形成整改报告。扩大实验(爆炸)范围 进一步扩大假设场景及业务系统实施范围。如演练节点数范围扩大。自动化实验 在形成了具体的演练场景后,通过混沌工程平台定时对系统进行演练,形成平台自动化实验的能力,及时发现生产可能存在的风险。表 3 混沌工程实验演练步骤(四)(四)案例实施过程中遇到的问题及解决思路:案例实施过程中遇到的问题及解决思路:1.故障恢复:在生产环境的演练过程中面临的最大挑战是如何进行故障恢复,我们制定了止损指标,指标表示此次演练能承受的最大限度,来自兜底

223、的服务或业务指标。当监测到止损指标的波动到达了底线阈值,表明故障对系统有潜在危险,必须立即一键清除所有故障。例如:对某接口注入延迟 100ms 的故障,止损指标可以是接口失败率,当失败率大于 5%时,需要立即终止实验。通过自动卸载探针的机制,可随机终止混沌实验,避免对系统造成过度伤害。2.演练场景的复用:开始实施混沌工程期间,在使用过程中,不同的人去演练的时候都需要自己先创建好演练计划,并且配置好对应的参数再去进行演练,但是经过多次演练后发现很多情况下演练场景 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)128 是可以复用的,所以我们后面积累了一套

224、专家经验库,其中包括基本信息、配置参数、配置流程、观测指标。可以从经验库中选择合适的场景一键执行演练。3.故障复盘:有时候我们需要通过对线上故障的重现,验证故障复盘的后续解决方案落地效果如何。因此我们针对需要重现的生产故障配置了对应的演练计划,定期进行演练,同时对在日程演练中发现的新的故障也进行了故障分级登记,并制定整改计划。由此形成了双向闭环。六、六、实验创新点实验创新点 混沌工程在互联网金融理财业务系统中的落地的同时也实现了一些技术上的创新,具体有以下几个方面:1.建立了互联网金融业务混沌工程实践体系,赋能互联网金融业务稳定展业:互联网金融业务在券商营收中有着非常重要的作用,通过混沌工程在

225、互联网金融业务关键条线业务系统的实施,积累了互联网金融业务条线业务系统演练的场景用例与实施演练的工具体系。2.完成了混合云多场景下混沌工程工具演练体系建设:目前生产业务系统通常涉及多云环境,通过此次混沌工程体系的实施,建设了一套能够对混合云环境下进行演练的混沌工程体系。3.积累了混沌工程在系统层面、应用层面以及业务层面的演练场景用例:通过演练指标与演练业务场景的编排管理,使混沌工程平台积累了丰富的演练案例,为将来新业务混沌工程的实施提高了效率,节省了成本。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)129 4.完善了互联网金融业务关键系统稳定的评估

226、体系:在演练实践过程中,需要评估对应演练指标产生的影响,因此对关键业务系统的稳定性进行了评估,通过混沌工程演练发现了可能对业务系统产生故障影响的指标。5.提升企业系统稳定评估的全面性:丰富的混沌工程实验场景,支持 IaaS、PaaS、SaaS 层的故障模拟能力,为多维度评估应用系统的稳定性提供便利。七、七、实验收益实验收益 通过项目完成建设混沌工程实践体系与构建业务系统仿真环境,预期能够达到以下效果:1.建立业务系统仿真环境:通过仿真环境搭建,为业务系统新功能/特性上线提供仿真测试环境。2.研发效率提升:通过演练平台与仿真环境,实现快速故障注入,时间由 20 分钟缩短到 1 分钟。3.系统稳定

227、性提升:基于近几年的生产故障与演练案例对生产环境的应用架构开展混沌工程实验,提前将生产环境的故障风险进行排除,降低生产故障率 20%30%/年。4.混沌工程实验标准化:通过平台与仿真环境建立,有利于积累标准规范化的演练场景及故障处理流程。5.提升企业系统稳定评估的全面性:丰富的混沌工程实验场景,支持 IaaS、PaaS、SaaS 层的故障模拟能力,为多维度评估应用系统的稳定性提供便利。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)130 6.故障处理体系实现由事后总结向事前预防前移。八、八、反思及改进反思及改进 (一)(一)反思反思 混沌工程的实践过

228、程中,我们总结了值得反思的几点,如下:1.不能盲目引入混沌 混沌工程非常适合揭露生产系统中的未知缺陷,但如果确定混沌工程实验会导致系统出现严重的问题,那么运行这样的实验是没有任何意义的。你需要先解决这个缺陷,然后再引入混沌工程,然后你不仅能继续发现更多不知道的缺陷,还能提高对系统真实弹性水平的信心。2.完备的监控系统 你需要用它来判断系统当前的各项状态。如果你没有对系统行为的可见能力,那么也就无法从实验中得出有效的结论。(二)(二)改进计划改进计划 混沌工程的实践过程中,我们也逐渐发现了一些后续需要改进的地方。1.支持丰富的演练场景 演练场景还需丰富,例如微服务之间的接口调用经常用 Sprin

229、g Cloud Feign 接口的场景,原生的 Chaos Blade 不支持,需要扩展。2.持续集成 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)131 实验框架和持续发布工具集成,集成到 DevOps 流水线中,当发布灰度环境并且回归测试通过后,进行关键业务的故障演练场景的回归,提高发布质量。3.可观测 通过实验结果预测收入损失、容量规划,区分出不同服务实际的关键程度。4.定期实验与复盘 对核心系统定期进行混沌工程实验;偶尔以 Game Day 的形式,对实验中发现的故障进行复盘验证。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案

230、例(20222022 年)年)132 第四部分第四部分 通信领域通信领域 13.中移信息:磐基中移信息:磐基 PaaS 平台混沌能力山东应急演练平台混沌能力山东应急演练 一、一、申报单位申报单位 中国移动通信集团有限公司信息技术中心。二、二、案例简介案例简介 “磐基 PaaS”在中国移动创世界一流“力量大厦”战略部署下,围绕着“做好体系、做强能力、做大规模、做优服务、做出品牌”五大目标,支撑中国移动集、省、专各 IT 系统全面云化,实现数智化转型,高质量发展,致力打造技术先进、服务敏捷的企业信息化技术底座。中移信息技术有限公司依托磐基 PaaS 为智慧中台底座,整合 IT服务,经过多年锤炼,磐

231、基 PaaS 平台混沌能力借助故障注入对基础层、平台层和应用层进行演练,依托磐基 PaaS 平台的安全能力和自身的权限控制完成原子隔离,保障在进行混沌实验的同时保障业务的安全可靠。围绕故障中心、视图中心、演练中心这三个重点中心形成发力点,并结合科学有效系统化管理,整个混沌能力体系在持续迭代,日臻成熟。在山东移动重保工作开展前进行多场景自动化注入混沌演练,进行系统化业务混沌实验,通过多项新型管理方法及新兴技术的投入,实现混沌工程在山东公司在故障注入、应急演练的创新。实现了技术、人力、效率、稳定性等多个维度的大幅提升。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022

232、 年)年)133 三、三、用户简介用户简介 中移信息技术有限公司是中国移动通信集团有限公司下属公司,成立于 2000 年。公司长期发展愿景是努力成为国内一流、国际知名的数字化技术和解决方案提供商。针对中国移动集团内部,重点推进 IT 统一规划、企业级大数据平台、集中化 IT 系统的整合与建设等项工作,为集团各成员单位提供资源共享、能力集中、合理管控的 IT 运营支撑服务,协助各单位打造极致体验、高效运营、良性增长的数字化服务能力;针对中国移动集团外部,依托集中化 IT 系统和自主研发经验积累,积极探索 IT 资源和能力优势的对外输出,面向其他行业企业和海外电信运营商提供大数据等 IT 解决方案

233、和服务,努力拓展对外服务份额,力争成为业界有影响力的专业化 IT 服务机构。中国移动通信集团有限公司信息技术中心统筹中国移动 B、M、O域 IT 系统建设,其中包括中国移动 APP、统一支付产品、一级 4A 管理平台、中国移动电子渠道门户系统、中国移动能力开放商店、行程卡、携号转网、研发运营一体化平台、中国移动统一邮件系统、中国移动统一办公管理系统、中国移动统一邮件系统、中国移动集中化ERP管理系统等上百个 IT 系统。其中磐基 PaaS 平台是整个中国移动智慧中台的底座。四、四、需求分析需求分析 中国移动磐基 PaaS 平台基于云原生技术,以统一 K8S 技术栈为基础,完善以应用为核心的云原

234、生技术标准,遵循“开放、标准、自 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)134 主掌控”的原则,采用云原生架构及微服务/容器化技术,以满足业务发展为核心,打造架构先进、定制能力强的企业级 PaaS 平台。目前磐基 PaaS 平台承载了山东几大核心系统,为山东业务系统平稳运行保驾护航,山东移动因用户基数大、系统种类多、涉及范围广导致内部系统复杂性直线上升,间接的也导致故障发生率提升,每次故障排查时长也延长。急需引入一套完整的科学体系对纷杂的业务系统进行更深层次的剖析了解,需要掌握系统的通常行为,模拟逼真的故障场景,使用真实的环境进行测试,用以最

235、大限度的减少故障破坏半径。五、五、技术方案介绍技术方案介绍 经过多年锤炼,磐基混沌工程借助故障注入对基础层、平台层和应用层进行混沌演练,依托磐基 PaaS 平台的安全能力和自身的权限控制完成原子能力,保障在进行混沌实验的同时保障集群的安全可靠。移动混沌工程构建在磐基 PaaS 平台基础之上,围绕故障中心、视图中心、演练中心这三个重点中心形成发力点,并结合科学有效系统化管理手段,整个混沌能力体系在持续迭代,日臻成熟。其中,故障中心包含多年沉淀下来的多种场景库,应急事件库,总结的经验库。视图中心则由场景排名,记录视图,状态视图组成。演练中心又由新建演练,演练管理,演练监控,演练防护四个部分共同组成

236、。这是混沌工程演练的核心,经过多年的开发迭代,使得开展混沌演练的操作简便,在混沌演练的过程中,提高了安全可靠性,同 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)135 时演练的监控模块可视度得到大幅提升,便于得到更加直观地观察结果。系统管理由对主机和集群的资源管理,对资源权限和场景权限明确划分的用户管理,场景配置和监控配置组成的场景管理,以及包含平台操作日志,任务演练日志,任务调度日志的审计日志共同组成,切实保障了系统管理的科学性和有效性。演练开始前,成立磐基应急攻防演练领导小组,并明确此次演练的目的:旨在提升系统稳定性,暴露系统安全隐患;明确各组

237、织机构职责分工,针对系统规划、业务架构的薄弱点制定信息安全事件应急预案;梳理重要业务信息系统框架、流程,搭建混沌能力演练环境,制定攻防演练方案,邀请各省集成厂商和专家提供统一技术指导和知识培训,保证演练安全有序开展。应急对抗演练划分为负责通过混沌平台进行突袭并观察对业务影响的蓝军,以及负责异常监测,异常恢复的红军。演练总共划分 8个对抗场景,包括集群全部宕机;进程 hang;网关入口流量超负荷;消息中间件服务器 cpu 超 90%;kube-dns 服务节点超负荷;nginx 主机目录满;镜像仓库服务器宕机及 kubelet 异常故障。演练以混沌平台为主体,通过从场景库中,抽取随机场景,自动注

238、入。第一个场景演练的是集群全部宕机,通过预设编排脚本下线平台流量入口,蓝军观察对业务的直接影响,对周边中间件、组件等服务的影响,而当集群全部宕机的同时,通过大屏监控组和自动告警短信 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)136 的通知,负责异常恢复的红军,按照应急预案,对集群流量进行了紧急迁移。演练进程 hang 是通过对服务进行内存耗尽突袭,使得本身统一存储会话的节点出现异常,红军通过全链路追踪及日志分析及时发现了故障点,在 5 分钟内完成了定位到故障解决。其他项目也大致相同,蓝军通过执行预设的编排脚本,实现各种异常情景,在对业务随机破坏的

239、同时,观察会对业务产生什么样的影响,各故障点的影响范围,监控平台感知及时度,红军异常发现响应的时间,恢复异常的及时性,服务恢复后的健康度。六、六、实验创新点实验创新点 1.结合磐基共同使用,通过磐基安全能力和自身的权限控制完成原子隔离,把故障风险降到最低,在用户侧做到零感知、零影响、零投?。2.多省市,多部门联动协调,覆盖范围广。3.演练场景全面,从网络,集群宕机,进程,中间件,数据库,CPU,节点,存储到服务组件全面覆盖。4.故障场景实现随机注入,通过从场景库里随机选择场景注入,使得演练场景更为丰富,打破以往单一场景单一准备,为演练而演练的局面,同时拔高了演练的难度。5.场景现象与审计日志,

240、监控指标相匹配,在演练时,通过场景,监控指标和系统日志相结合,生成一个新的场景日志指标数据,再与审计的运维操作日志结合。通过大量的混沌实验,验证这些数据,在 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)137 发生各种故障场景时,会有初步的系统解决方案进行提示,逐渐降低运维对经验的依赖。6.监控模块的可视化提升,便于观察异常场景对业务造成的直观影响,可以更有针对性的按照对业务影响程度调整各项高可用方案及应急机制。七、七、实验收益实验收益 本次应急演练收获颇丰:一是完成了运维团队的锻炼,无论是心理上安全责任的认知还是运维技能提升;二是检验了突发异常事

241、故发生后应急预案的有效性;三是提升了混沌演练执行效率,总演练时长缩短 71%,8 个大规模场景由预期的 6 个小时演练时间缩短到 1 小时 45 分钟完成。四是节省 56%的人力成本,降低了故障演练的技术门槛,场景设置的通过混沌工程预设场景再次实现。五是演练过程中暴露出一些系统的安全隐患,后续进行的安全加固,提升了系统稳定性。六是验证了系统的告警准确、及时、完善,从实验开始到结束各个阶段的告警都一一展现。七是比较直观的感受到系统高可用性和容灾性。八、八、反思及改进反思及改进 整体演练比较顺利,也有一些需要改进的地方:1.演练缺乏全量的可观测性支撑,整体演练只仅限于监控系统。“混沌工程先锋实践者

242、”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)138 2.整体演练的过程中有些故障自愈能力没有发挥作用。3.演练的系统范围、涉及的组件较少。后续的改进计划如下:1.积极组建系统的可观测性平台,实现各项数据的可视化,了解系统在演练过程中的 SQL、链路等实时状态。2.一些智能运维的故障自愈手段没达到触发阈值,没有生效,后续完善之后,再次进行演练。3.山东公司第一次大规模的用混沌工程做核心系统的应急演练,这次的演练是一次宝贵的实际生产实验,可以为后期支撑大规模使用混沌过程做好铺垫。4.后期会持续对系统里全部的组件进行应急演练,不断找出系统薄弱点,提升系统稳定性。“混沌工程先

243、锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)139 第五部分第五部分 零售领域零售领域 14.永辉永辉科技:科技:永辉生活永辉生活电商全链路故障演练实践电商全链路故障演练实践 一、一、申报单位申报单位 北京永辉科技有限公司。二、二、案例简介案例简介 随着互联网数字化浪潮到来,传统零售行业企业也在面临互联网巨头不断冲击挑战,近年来零售行业也迎来了很多新兴运营模式比如:“生鲜电商”、“社区团购”、“云超市”等。永辉超市作为传统零售龙头企业也在不断进行数字化改革,业务模式涵盖云超市、生鲜配送等。随着公司门店业务快速发展,支付门店核心交易系统日均交易流量过亿;业务系统

244、经过不断演变逐渐形成了分布式技术中台架构,系统之间调用复杂程度不断上升,对公司 IT系统稳定性和性能保障带来极大挑战。三、三、用户简介用户简介 永辉超市成立于 2001 年,2010 年在 A 股上市,股票代码601933.SH,是中国企业 500 强之一,是国家级“流通”及“农业产业化”双龙头企业。永辉超市是中国大陆首批将生鲜农产品引进现代超市的流通企业之一,被国家七部委誉为中国“农改超”推广的典范,通过农超对接,以生鲜特色经营及物美价廉的商品受到百姓认可,被誉为“民生超市、百姓永辉”。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)140 未来,永

245、辉超市将继续坚守主业、坚守定位、坚守文化,以满足用户多场景消费需求为导向,发力品牌年轻化,营造好逛、好玩的新型门店,并坚持以科技赋能供应链,以数字驱动增长,建立起质量更高、效率更高的全渠道运营体系,成为“以生鲜为基础,以客户为中心的”科技零售企业。四、四、需求分析需求分析 永辉超市生鲜电商业务快速发展,线上业务访问量也在不断升高,科技系统中台化架构改造逐渐形成了四百多个微服务系统,分布式架构逐渐面临以下几个痛点问题:1.各个微服务系统之间依赖关系错综复杂,系统之间强弱调用关系难以有效验证;2.核心业务系统依赖数十款中间件,中间件自身的可用性和故障发生对业务系统有多大的影响面难以验证;3.电商业

246、务系统自身有很多高可用技术方案手段和大促保障预案,比如:服务故障切换、服务降级、业务降级开关等难以精准快速验证;五、五、技术方案介绍技术方案介绍 (一)(一)混沌平台混沌平台核心组件架构图核心组件架构图 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)141 图 52 混沌平台核心组件架构图 混沌工程平台支持多种基础设施部署方案,已经覆盖了生产服务各种场景,详情如下:1.支持原生虚拟机平台部署;2.支持 Kubernetes 容器化平台、多集群方式部署;3.支持 Docker 容器化部署;混沌工程平台支持故障演练能力模型比较丰富,可以模拟业务上面可能遇

247、到的各种故障类型,现在已支持的故障类型如下:1.系统级故障:CPU 升高、内存满载、网络延迟、丢包、阻塞等;2.容器级别:杀掉容器、容器重启;3.K8s 级别:杀掉 POD、重启 POD;4.应用级别:HTTP 服务调用接口延迟或异常、Dubbo 服务调用延迟或接口异常;5.数据库服务连接池满载异常、慢 SQL 故障延迟;6.常见中间故障类型如:MQ、ES、Redis 等;“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)142 混沌功能演练能力只需要在平台上面做出简单配置即可发起演练,业务线无需修改代码即可实现注入故障;永辉科技内部落地混沌工程先以核心

248、业务线链路做前期故障演练价值体现,内部开展多轮混沌工程全员培训教学,宣扬和推广故障演练文化和价值;六、六、实验创新点实验创新点 混沌工程的发展为业务线质量部门提供一种强大的稳定性测试工具,下面结合具体案例展开说明混沌工程的落地现状:(一)(一)永辉门店支付系统链路实践永辉门店支付系统链路实践 永辉门店支付系统支撑着线下上千家门店支付服务,每天会有大量订单数据和支付流水上传到支付数据中台,支付系统的稳定性直接影响到客户现场支付体验,所以门店业务的 SRE 稳定性指标要求当故障来临,业务运维人员要在 15 分钟内快速恢复系统业务正常使用;为了达成业务系统的稳定性指标,稳定性团队针对以下多种故障场景

249、列举出混沌测试 Case,针对每条 Case 去验证业务运维人员能否在 15 分钟内快速响应并及时解决问题的能力和时效,涉及部分场景如下:1.中间件宕机、超时故障模拟 2.数据库并发访问高、连接数量打满故障模拟 3.服务系统硬件指标上升对于服务稳定性影响 4.上下游接口异常或者访问超时对于门店支付系统的影响面 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)143 经过质量团队、运维团队和研发团队多轮测试演练验证后,发现数十个影响指标完成率的重要大问题,研发团队针对具体的问题不断持续完善监控能力、系统容错能力和故障应急处理能力并最终达成目标考核的要求。

250、从上面案例可以看出混沌工程直面生产可能出现的故障,提前模拟故障发生锻炼业务线运维能力,也为业务线带来了正确的并且是可靠的故障应对处理经验方案,从而更好地提高业务稳定性。七、七、实验收益实验收益 在混沌工程平台落地之后,永辉超市电商全渠道都开展相应的混沌测试拿到的价值点如下:1.验证电商系统全渠道大促保障预案的正确性和服务可用性 2.锻炼业务线团队核心成员故障处理时效能力和提高响应速度 3.发现上百个业务线系统核心监控指标缺失 4.验证数千个系统服务高可用保障手段正确性 八、八、反思及改进反思及改进 1.目前内部混沌工程平台过于依赖人工编排发起演练,无法做到自动持续故障回放并验证服务的可用性能力

251、,后面会加强自动化演练功能;2.未来要加强内部混沌工程实践经验库沉淀,为后续开展工作提供优秀案例档案库;“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)144 第六部分第六部分 能源领域能源领域 15.南网数研院:云原生应用架构驱动的全栈高可靠探测南网数研院:云原生应用架构驱动的全栈高可靠探测 一、一、申报单位申报单位 南方电网数字电网研究院有限公司。二、二、案例简介案例简介 数字电网应用主要面向新型电力系统,解决新能源和绿色能源的消纳,因而对于系统的分布式与处理能力提出了诸多新要求。南网云以先进互联网公司国产云平台为基础,结合南网实际需求定制而成,具

252、备完备的云技术全栈解决方案,全面支撑应用云化、微服务化上云,实现服务的沉淀与共享复用。虽然云计算等新技术,提供了多维度的容错与高可用保障技术,但如何保障在庞大的分布式系统中各个高可用机制均得到正确使用仍是难题。南网数字化部、南网数研院结合电力行业信息系统特点及云原生高可用的设计原则,梳理出云原生系统高可用故障探测框架。案例充分利用私有云全栈可控的特点,将应用架构应用到混沌工程,即从硬件,到平台,到应用均属于一个企业,可以全面了解各个层次的细节。方案特点是首先归纳总结云应用出现过的高可用缺陷,结合应用架构形成高可用缺陷库。在混沌测试时,利用模型驱动的方式基于高可用缺陷库生成最小化的测试用例,以便

253、快速发现高可用隐患。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)145 三、三、用户简介用户简介 南方电网数字电网研究院有限公司(以下简称“南网数研院”)2019 年 7 月成立于广州,注册资金 20 亿元,是中国南方电网有限责任公司全资子公司。南网数研院作为国务院科改示范行动企业、国家高新技术企业,是南方电网公司数字化转型和数字电网建设的核心力量,是构建新型电力系统、服务“双碳”目标的主力军,致力于构建世界一流的电网数字化、智能化创新平台。截止到 2021 年 12 月底,累计获取 530 项专利授权,其中发明专利 270 项,新增国家、省部级项

254、目 6 项,获得省部级、行业级奖励 16 项,主参编国际标准 2 项,国行标 9 项,拥有国家级高新技术企业、CMMI5 等资质 60 余项,建设省部级重点实验室 1 个。四、四、需求分析需求分析 数字电网系统面临的问题。数字电网应用主要面向新型电力系统,解决新能源和绿色能源的消纳,因而对于系统的分布式与处理能力提出了诸多新要求。一是地域分布广范:采用主中心+边缘中心的分布式布局,支撑以分布式新能源为主体的新型电力系统,提供帖源计算能力与云边协同能力,但同时增加了协同的复杂性,故障点可能发生在远端。二是新技术深入应用:深入使用云、大、物、移、智等先进技术,保障大规模、实时性处理的及时性,但同时

255、系统架构变得更为复杂,故障定位困难。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)146 三是服务依赖复杂:电力底层服务以中台方式共享,导致应用依赖关系复杂,面对应对场景多样,但增加了调用链路分析的复杂性,故障传递现象突出。四是信创环境:信创软硬件不稳定性加剧应用不稳定性,因导致局部的单节点失效。虽然云计算等新技术,提供了多维度的容错与高可用保障技术,但如何保障在庞大的分布式系统中各个高可用机制均得到正确使用仍是难题。因而,亟需一种云原生应用架构驱动的全栈高可靠探测,发现系统存在的高可用缺陷,以保证系统最终的端到端高可用。五、五、技术方案介绍技术方案

256、介绍 云团队结合电力行业信息系统特点及云原生高可用的设计原则,梳理出云原生系统高可用故障探测框架。方案充分利用私有云全栈可控的特点,将应用架构应用到混沌工程,即从硬件,到平台,到应用均属于一个企业,可以全面了解各个层次的细节。本方案特点是首先归纳总结云应用出现过的高可用缺陷,结合应用架构形成高可用缺陷库。然后在混沌测试时,利用待测试应用的应用架构,利用模型驱动的方式基于高可用缺陷库生成最小化的测试用例,以便快速发现高可用隐患。具体和框架图如下。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)147 图 53 云原生系统高可用故障探测框架 数据同步(9)

257、:依据电力应用生产安全要求,对于核心业务系统构建了全功能的仿真测试验证环境,以保证测试验证的客观与可复制性。仿真环境与生产环境保持一致,通过企业内网访问,保证测试环境的安全性。选择节假日非应用系统高峰时间段,定期将应用系统生产环境数据同步到仿真环境。高可测试(3-4-5-6-7):南网云提供了统一的技术路线,应用依托平台提供的微服务能力和组件进行研发,高可用测试针对常见的平台缺陷展开,通过分析核心路径进行采样测试。将历史经验及专家分析缺陷统一纳入高可用缺陷库。依据应用系统部署架构注入高可用缺陷库,输出应用系统高可用检测点。检查点注入到应用系统进行高可用检测,测试系统高可用能力。性能测试(1-2

258、-6-7):通过镜像引流的方式,在仿真环境可以模拟实际数据进行负载测试,从而进一步提高系统在高并发情况下的健壮性。系统重构或重要变更上线前,可以拷贝线上真实流量,实时模 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)148 拟线上流量,甚至可以放大真实流量,进行压力测试,以评估系统承载能力。灰度发布(7-8):经过严格测试的系统,最终可以通过 CICD 的模式,灰度发布在生产环境,完成一次完整的闭环。仿真环境中应用系统的高可用测试、性能测试均通过后,在生产环境开展灰度发布。通过平滑过渡的一种发布方式保证整体应用系统的稳定。高可用缺陷库主要是依据应用系

259、统高可用总体架构推演而出。图 54 应用系统高可用总体架构 应用系统高可用提升是一个系统工程,需要基础设施、平台、应用、整体架构等互为协同、层层补位。当基础设施故障而无法提供高可用时,由云平台提供虚机漂移、疏散等高可用能力;当云平台故障时,由应用的集群、多实例实现高可用;确认应用无法恢复时,马上通过灾备提供跨域切换高可用。六、六、实验创新点实验创新点 混沌工程探索实践主要有两个创新点。一是应用架构驱动的全栈高可靠探测。在演练方案设计中,云团队可以提前了解应用系统的应用架构、高峰周期等信息,演练方案可只需对针对“薄弱”环节进行 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20

260、222022 年)年)149 开展,使演练更有针对性。二是助力电力信创产业发展。在基础硬件的自主可控的大背景下,云团队也同步开展信创环境下的应用系统的高可用演练。七、七、实验收益实验收益 通过混沌工程的探索,实现收益如下:一是提升企业形象:通过云原生系统高可用故障探测,发现了多个高可用风险点。公司通过提前安排计划消除隐患,保障应用系统服务不中断。有效的提升客户服务水平,提高客户满意度,切实有效的实现满足客户“用上电、用好电、服好务”的根本性需求,提升了电网企业在作为社会公共事业单位角色上的品牌效益。二是保障电力生产安全:通过云原生系统高可用故障探测,发现某国产服务器偶发网卡丢包隐患,保障了公司

261、应用系统顺利上线与稳定运行。三是降低企业运营成本:通过云原生系统高可用故障探测,提升了发现应用系统高可用问题的效率,降低了业务系统运维成本及管理成本,创造了较大的经济效益。八、八、反思及改进反思及改进 未来有两项需改进的地方。一是缺少本地化混沌工程演练平台。混沌工程演练主要通过脚本及人工方式进行,缺少自动化的工具。二是应用架构优化建议能力不足。目前本方案以发现问题为主,对于提升应用缺陷的优化建议能力尚不足。下一步,将开展自动化测试工具的研发,同时丰富高可用提升模型,提高应用架构优化的智能化程度。“混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)150 编

262、后语编后语 混沌工程先锋实践者优秀案例(2022 年)是混沌工程实验室举办的首届混沌工程领域优秀案例征集与评选活动,旨在促进国内混沌工程创新发展,交流行业内先进经验,引导国内企业更好的利用混沌工程,提升国内云系统稳定性建设水平。随着云计算及分布式技术的不断成熟和系统稳定性要求的不断提高,实验室将持续调研跟踪国内系统稳定性保障关键技术的发展与应用情况。若系统稳定性领域广大用户、专家学者和从业人员发现文内存在疏漏或不妥之处,欢迎与案例编写组联系(发邮件至王海清 或杨金鹏 ),提出您感兴趣的问题,反馈您的宝贵意见和建议,帮助我们持续提升案例的参考价值和实用价值。感谢您对云系统稳定性领域的积极贡献!混

263、沌工程实验室 2022 年 5 月 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)151 附录附录 1 1 稳定性守护者列表稳定性守护者列表 稳定性能力域稳定性能力域 守护者名称守护者名称 混沌工程能力 阿里云计算有限公司 华为云计算技术有限公司 中国移动通信集团有限公司信息技术中心 平凯星辰(北京)科技有限公司 南京争锋信息科技有限公司 建信金融科技有限责任公司 北京同创永益科技发展有限公司 蚂蚁科技集团股份有限公司 杭州笨马网络技术有限公司 深圳市腾讯计算机系统有限公司 应用多活能力 阿里云计算有限公司 建信金融科技有限责任公司 杭州朗和科技有限

264、公司 华为云计算技术有限公司 全链路压测能力 阿里云计算有限公司 蚂蚁科技集团股份有限公司 杭州笨马网络技术有限公司 中移(苏州)软件技术有限公司 可观测性能力 阿里云计算有限公司 蚂蚁科技集团股份有限公司 上海驻云信息科技有限公司 北京优特捷信息技术有限公司 中电云数智科技有限公司 建信金融科技有限责任公司 北京基调网络股份有限公司 注:截止 2022 年 7 月 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)152 附录附录 2 2 “稳保计划”云系统稳定性评估情况“稳保计划”云系统稳定性评估情况 服务类型服务类型 企业名称企业名称 产品名称产品

265、名称 级别级别 云服务安全生产评估 阿里云计算有限公司 云服务安全生产能力/中国移动通信集团浙江有限公司 云服务安全生产能力/中国建设银行股份有限公司 云服务安全生产能力/混沌工程平台能力评估 阿里云计算有限公司 阿里云故障演练平台 先进级 中国工商银行股份有限公司 混沌工程故障演练平台 先进级 华泰证券股份有限公司 华泰稳定性工程平台 先进级 中移动信息技术有限公司 磐基 PaaS 平台 先进级 北京同创永益科技发展有限公司 同创永益故障演练平台 先进级 北银金融科技有限责任公司 京小科混沌测试平台 增强级 南京争锋信息科技有限公司 争锋故障演练平台软件V3.0 先进级 蚂蚁科技集团股份有限

266、公司 蓝军平台 先进级 杭州笨马网络技术有限公司 笨马混沌工程平台 先进级 中兴通讯股份有限公司 中兴通讯混沌工程平台ZXRDCloud zChaos 先进级 平凯星辰(北京)科技有限公司 平凯星辰混沌工程平台 先进级 分布式系统稳定性度量 北京银行股份有限公司 顺天技术平台 先进级 北京百度网讯科技有限公司 云原生数据库 GaiaDB 先进级 华泰证券股份有限公司 全账户系统 先进级 蚂蚁科技集团股份有限公司 蚂蚁集团 TRaaS 技术风险防控平台 先进级 建信金融科技有限责任公司 分布式微服务平台系统 先进级 中信建投证券股份有限公司 致胜综合共享技术平台 增强级 阳光保险集团股份有限公司

267、 阳光保险企业微信平台 增强级 中国光大银行股份有限公司 全栈云计算平台 增强级 中泰证券股份有限公司 互联网金融理财业务 增强级 浪潮云信息技术股份公司 浪潮云 ICP 平台 先进级 可观测性平台评估结果 上海驻云信息科技有限公司 观测云 先进级 阿里云计算有限公司 阿里云应用实时监控服先进级 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)153 务 ARMS 蚂蚁科技集团股份有限公司 AntMonitor 先进级 北京优特捷信息技术有限公司 日志易可观测性监控平台(观察易)先进级 中电云数智科技有限公司 应用监控 CAM 先进级 建信金融科技有限

268、责任公司 应用可观测平台MizarAOP 先进级 北京基调网络股份有限公司 基调听云可观测性平台 先进级 全链路压测平台评估结果 蚂蚁科技集团股份有限公司 蚂蚁性能压测平台 先进级 中信银行股份有限公司 天启全链路压测平台 先进级 阿里云计算有限公司 PTS 全链路压测 先进级 杭州笨马网络技术有限公司 XSea 性能压测软件 先进级 中移(苏州)软件技术有限公司 统一自动化测试平台(UTP)先进级 应用多活平台评估结果发布 阿里云计算有限公司 阿里云应用多活平台 AHAS-MSHA 先进级 建信金融科技有限公司 分布式微服务平台 先进级 杭州朗和科技有限公司 网易数帆轻舟云原生平台软件 先进

269、级 华为云计算技术有限公司 华为云多活高可用服务MAS 先进级 混沌工程成熟度混沌工程成熟度 企业名称企业名称 实验熟练度实验熟练度 应用成效度应用成效度 组织建组织建设度设度 华泰证券股份有限公司 优秀级 卓越级 卓越级 蚂蚁科技集团股份有限公司 优秀级 卓越级 卓越级 建信金融科技有限责任公司 全面级 优秀级 优秀级 注:截止 2022 年 7 月 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)154 附录附录 3 3 混沌工程实验室成员列表混沌工程实验室成员列表 序号序号 企业名称企业名称 类型类型 1 中国信息通信研究院 理事长单位 2 华泰

270、证券股份有限公司 副理事长单位 3 阿里云计算有限公司 副理事长单位 4 中国工商银行软件开发中心 副理事长单位 5 天翼云科技有限公司 副理事长单位 6 中国移动通信集团有限公司信息技术中心 副理事长单位 7 北京百度网讯科技有限公司 副理事长单位 8 深圳市腾讯计算机系统有限公司 副理事长单位 9 南京争锋信息科技有限公司 副理事长单位 10 华为云计算技术有限公司 副理事长单位 11 平凯星辰(北京)科技有限公司 副理事长单位 12 中国农业银行 副理事长单位 13 北京银行股份有限公司 副理事长单位 14 杭州笨马网络技术有限公司 副理事长单位 15 北京同创永益科技发展有限公司 副理

271、事长单位 16 蚂蚁科技集团股份有限公司 副理事长单位 17 上海浦东发展银行股份有限公司 副理事长单位 18 建信金融科技有限责任公司 副理事长单位 19 京东科技信息技术有限公司 副理事长单位 20 中信银行股份有限公司软件开发中心 副理事长单位 21 浩鲸云计算科技股份有限公司 理事单位 22 北京火山引擎科技有限公司 理事单位 23 中移(苏州)软件技术有限公司 理事单位 24 南方电网数字电网研究院有限公司 理事单位 25 阳光保险集团股份有限公司 理事单位 26 四川省农村信用社联合社 理事单位 27 中电金信软件有限公司 理事单位 28 中移(杭州)信息技术有限公司 理事单位 2

272、9 北京永辉科技有限公司 理事单位 30 思特沃克软件技术(北京)有限公司 理事单位 31 中兴通讯股份有限公司 理事单位 32 北银金融科技有限责任公司 理事单位 33 中国光大银行股份有限公司 理事单位 34 北京必示科技有限公司 理事单位 35 中信建投证券股份有限公司 理事单位 36 中电云数智科技有限公司 理事单位 37 中国科学院计算技术研究所 理事单位 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)155 38 招商银行总行信息技术部 理事单位 39 中关村智联联盟 理事单位 40 中原银行股份有限公司 理事单位 41 上汽通用汽车有限

273、公司 理事单位 42 安信证券股份有限公司 理事单位 43 中泰证券股份有限公司 理事单位 44 上海钧正网络科技有限公司(哈啰出行)理事单位 45 中国银行股份有限公司 理事单位 46 恒丰银行股份有限公司 理事单位 47 中科南京信息高铁研究院 理事单位 48 申万宏源证券有限公司 成员单位 49 北京水木羽林科技有限公司 成员单位 50 中国联合网络通信有限公司软件研究院 成员单位 51 浙江菜鸟供应链管理有限公司 成员单位 52 东方证券股份有限公司 成员单位 53 太平洋财产保险股份有限公司 成员单位 54 亚信科技(中国)有限公司 成员单位 55 极狐创新(北京)信息技术有限公司

274、成员单位 56 天翼电子商务有限公司 成员单位 57 浪潮软件集团有限公司 成员单位 58 中国移动通信集团湖南有限公司 成员单位 59 上海富麦信息科技有限公司 成员单位 60 东软集团股份有限公司 成员单位 61 恒生电子股份有限公司 成员单位 62 兴业数字金融服务有限公司 成员单位 63 上交所技术有限公司 成员单位 64 上海银行股份有限公司 成员单位 65 钉钉(中国)信息技术有限公司 成员单位 66 中债金科信息技术有限公司 成员单位 67 杭州微智测信息技术服务有限公司 成员单位 68 济南浪潮数据技术有限公司 成员单位 69 科来网络技术股份有限公司 成员单位 70 上海有孚

275、网络股份有限公司 成员单位 71 江苏苏宁银行股份有限公司 成员单位 72 优维科技(深圳)有限公司 成员单位 73 顶点软件股份有限公司 成员单位 74 上海宽睿信息科技有限责任公司 成员单位 75 兴业证券股份有限公司 成员单位 76 华宝证券股份有限公司 成员单位 77 上海证券股份有限公司 成员单位 78 民生证券股份有限公司 成员单位 79 东兴证券股份有限公司 成员单位 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)156 80 华安证券股份有限公司 成员单位 81 方正证券股份有限公司 成员单位 82 北京云杉世纪网络科技有限公司 成员

276、单位 83 中原证券股份有限公司 成员单位 84 东亚前海证券有限责任公司 成员单位 85 国盛金融控股集团股份有限公司 成员单位 86 恒泰证券股份有限公司 成员单位 87 魏贺峰 个人成员 88 中航证券有限公司 成员单位 89 深信服科技股份有限公司 成员单位 90 中国民生银行股份有限公司 成员单位 91 夏咸辉 个人成员 92 郑州易盛信息技术有限公司 成员单位 93 刘运鑫 个人成员 94 招商基金管理有限公司 成员单位 95 南方电网深圳数字电网研究院有限公司 成员单位 96 红塔证券股份有限公司 成员单位 97 国盛证券有限责任公司 成员单位 73 顶点软件股份有限公司 成员单

277、位 74 上海宽睿信息科技有限责任公司 成员单位 75 兴业证券股份有限公司 成员单位 76 华宝证券股份有限公司 成员单位 77 上海证券股份有限公司 成员单位 78 民生证券股份有限公司 成员单位 79 东兴证券股份有限公司 成员单位 80 华安证券股份有限公司 成员单位 81 方正证券股份有限公司 成员单位 82 北京云杉世纪网络科技有限公司 成员单位 83 中原证券股份有限公司 成员单位 84 东亚前海证券有限责任公司 成员单位 85 国盛金融控股集团股份有限公司 成员单位 86 恒泰证券股份有限公司 成员单位 87 魏贺峰 个人成员 88 中航证券有限公司 成员单位 89 深信服科技

278、股份有限公司 成员单位 90 中国民生银行股份有限公司 成员单位 91 夏咸辉 个人成员 92 郑州易盛信息技术有限公司 成员单位 93 刘运鑫 个人成员 94 招商基金管理有限公司 成员单位 95 南方电网深圳数字电网研究院有限公司 成员单位 96 红塔证券股份有限公司 成员单位 “混沌工程先锋实践者”优秀案例(“混沌工程先锋实践者”优秀案例(20222022 年)年)157 97 国盛证券有限责任公司 成员单位 注:截止 2022 年 7 月 混沌工程实验室混沌工程实验室 地址:北京市海淀区花园北路地址:北京市海淀区花园北路 5252 号号 邮编:邮编:1 邮箱:邮箱:

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(“混沌工程先锋实践者”优秀案例集(2022年)(165页).pdf)为本站 (皮匠报告) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部