08 ChaosBlade 在工商银行混沌工程体系中的应用实践

ChaosBlade 在工商银行混沌工程体系中的应用实践

互联网金融时代下,金融产品和服务模式不断创新,交易量大幅攀升。面对互联网金融的全新发展态势,传统的单体 IT 架构暴露出很多不适应的地方,为此业界广泛应用云计算、分布式等新技术,构建分布式架构和运维体系,以支撑金融业务的快速发展。这些新技术的应用使得基础设施复杂性日益增加,不可预见的用户行为和事件交织在一起,对系统、应用架构的可靠性提出了更高要求。为解决分布式系统的不确定性,确保生产稳定运行,混沌工程应运而生。根据《Chaos Engineering》书中的定义:混沌工程是在分布式系统上进行实验的学科,目的是建立系统抵御生产环境中湍流条件的能力。通常来说,混沌工程指对分布式系统中的服务器随机注入不同类型的故障,发现并修复系统中的潜在问题,从而提升整个分布式系统的高可用能力。

为提升工行分布式体系的稳定性,降低测试人员学习和使用相关工具的门槛,我们着重分析了 Chaosblade、Litmus、Choas Monkey 等优秀开源工具在各类故障注入场景中的能力。这些故障注入工具既有专用于云平台环境,也有适用于操作系统层面,还有针对如服务异常等应用层面的故障注入。但这些工具大多仅提供了基本的故障注入能力,还需进一步扩展完善,实现企业级的平台能力。

image

 ChaosBlade 支持目前主流的故障注入场景,相对其他几个故障注入工具,ChaosBlade 故障注入覆盖的场景最全,支持四大类、几十种常用的故障注入能力,且提供了统一的 CLI 交互界面,学习成本相对较低,其技术栈与我行分布式体系和云计算体系兼容性也较好。

image

 因此,ChaosBlade 各方面基本满足我行技术体系的需求。为保障故障注入工具能力的可扩展性,实现与上层调度平台的解耦,降低调用方的使用难度,我们基于 ChaosBlade 进行了二次开发,扩展了 ChaosBlade 的故障注入能力。

  • 一是将故障注入的调用能力封装成 Rest 接口(当时 ChaosBlade 还不支持通过 http 与之交互)。

 

  • 二是增加服务器系统指标收集模块,可实时收集服务器的 CPU、内存、网络等系统硬件使用情况。

 

    • 三是增加了故障注入任务解析模块,该模块可将混沌工程故障演练管理平台下发的故障演练任务解析成多个故障注入事件,然后根据各个故障注入事件的开始和结束时间分别调用 ChaosBlade 故障注入工具实施故障注入和撤销操作。

 

基于 ChaosBlade 的系统高可用测试解决方案

 

基于 ChaosBlade 故障注入工具,我们建设了一套功能完备的企业级混沌工程故障演练平台。

 

1. 平台架构

 

平台主要由门户、任务调度框架、故障注入介质、高可用专家库四部分组成。
门户提供各类混沌实验任务的编排和配置服务,借助演练流程编排面板,用户可以便捷地管理各类混沌实验任务;混沌实验开始实施后,用户可通过任务进度条、服务器指标展示图等实时查看混沌实验任务的进度和服务器各项系统指标情况;混沌实验执行结束后,门户会收集混沌实验过程中的所有数据,并对数据进行分析和加工,生成混沌工程实验报告供后续分析和归档。
任务调度框架负责门户和故障注入介质之间的交互,核心功能是实现混沌实验任务的批量下发和调度,该模块可以快速批量下发各种类型的混沌实验,支持失败重发、超时重发、高并发等机制。
故障注入介质负责接收门户下发的任务,并实施相应的故障注入事件。
高可用专家库是混沌工程测试人员根据平时混沌测试总结得到的高可用测试模型,基于高可用专家库用户可以根据演练场景自动关联对应的故障注入事件,并为用户提供一键生成演练流程的能力。

 

image

 

posted on 2026-08-06 11:07  luzhouxiaoshuai  阅读(8)  评论(0)    收藏  举报

导航