1、金融级混沌测试平台建设能力研究报告北京金融科技产业联盟2023 年 10 月版权声明本报告版权属于北京金融科技产业联盟,并受法律保护。转载、编摘或利用其他方式使用本白皮书文字或观点的,应注明来源。违反上述声明者,将被追究相关法律责任。I编制委员会主任聂丽琴编委会成员王璐张海燕编写组成员崔杰杜昆鹏李博文李振栾琪肖晶王耀强毋文涛张翔叶强林编审黄本涛张蕾参编单位:北京金融科技产业联盟中国建设银行股份有限公司平凯星辰(北京)科技有限公司北京国家金融科技认证中心有限公司北京同创永益科技发展有限公司II摘要摘要混沌工程是通过主动向系统中引入软件或者硬件的异常状态(扰动),制造故障场景并根据系统在各种压力下
2、的行为表现确定优化策略的一种系统稳定性保障手段。应用混沌工程可以对系统抵抗扰动并保持正常运作的能力(稳定性)进行校验和评估,提前识别未知隐患并进行修复,进而保障系统更好地抵御生产环境中的失控条件,提升整体稳定性。本报告以混沌测试工具集为基础,采用开源云原生模式构建自动化混沌工程平台,针对分布式系统的复杂性特点,设计不同层次的故障进行模拟。平台除提供应用层以及实际物理环境故障模拟外,还提供较为完善的故障编排功能,以便监控分布式系统状态,找出项目潜在的风险。本报告所述的混沌工程平台相对完整,可为国内金融行业构建混沌测试验证平台,提供实践经验和可行的参考方案。III目录一、混沌测试平台建设背景与目标
3、.1.1(一)建设背景.1(二)建设目标.2二、混沌测试平台建设要求.3(一)功能要求.3(二)适配性要求.7(三)集成要求.7三、混沌测试平台建设情况.8(一)系统构成.8(二)技术架构.9(三)功能模块.10(四)故障种类.12四、混沌平台测试方案与测试实践.13(一)测试目标.13(二)测试内容.14(三)测试过程.15五、混沌测试平台建设实践.271一、混沌测试平台背景与目标(一)建设背景随着数字化转型,金融行业加快了新一代架构转型的步伐,由传统的 SOA 架构向分布式架构、去中心化发展,当前还进阶到注重云化支持和异构化微服务支持的服务网格模式。系统规模日益庞大,交易链路长、数据流转复
4、杂,微服务架构由于技术异构性、具备弹性伸缩、可扩展性等优势,得到广泛推广;同时微服务架构在使用过程中又面临诸多挑战,由于系统级依赖增多而带来的不确定性风险指数级增长;通过传统手段进行高可用验证、代码健壮性审查、加大测试范围、提高监控敏感度等手段,都无法有效发现系统潜在风险。在微服务架构下,系统的风险管理越来越重要,提高系统韧性成为必然发展趋势。微服务架构转型的驱动下,“混沌工程”实践可以通过规范化,流程化的方案对系统进行一定程度的“随机破坏”,让故障在可控范围内频繁发生,在此过程中可以深入地认知故障和系统,并达到持续改进的效果。混沌工程是通过向系统中引入软件或硬件的异常状态(扰动),制造故障场
5、景并根据系统在各种压力下的行为表现确定优化策略的一种系统稳定性保障手段。其原则是可量化的稳定状态、可反映真实场景,但风险未知的假设、影响最小化。混沌工程利用实验提前探知系统风险,通过架构优化和运维模式的改进来解决系统风险,真正提升系统架构韧性,增强故障免疫力。2混沌工程是在分布式系统上进行实验的学科,首次提出是在2008 年 8 月,由网飞公司(Netflix)提出。2012 年 Chaos Monkey在 Simain Army 项目中开源,Simian Army 成为首个开源的混沌工程工具集。2019 年开始,国内企业纷纷引入并实践混沌工程。混沌工程通过主动向系统中引入软件或者硬件的异常状
6、态(扰动),制造故障场景并根据系统在各种压力下的行为表现确定优化策略。应用混沌工程可以对系统抵抗扰动并保持正常运作的能力进行校验和评估,还可以提前识别未知隐患并进行修复,进而保障系统更好地抵御生产环境中的失控条件。目前国内混沌工程领域主要集中在一些大型互联网企业,应用领域和范围较小,商业化程度不高。金融行业建行、兴业、中原、浦发、招行等国有和商业银行均成立了内部的混沌工程团队,并开展混沌实验。例如,建信金科混沌工程故障演练平台应用于分布式平台相关组件,如应用路由、配置中心、分布式缓存、分布式消息、索引维护服务、分布式数据库等;在场景方面,建信金科在两地三中心多 AZ 故障、银行核心冲正交易异常