ChaosBlade 发布对 C++ 应用混沌实验的支持

阿里妈妈安全生产团队开源了C++混沌实验执行器,支持通过ChaosBlade工具对C++应用进行混沌实验,如延迟、变量替换等。文章介绍了执行器的架构、实验场景、使用方法,包括命令行和API调用方式,并提供了一个C++ Socket应用的实验DEMO。
摘要由CSDN通过智能技术生成

前言


为满足 C++ 应用系统故障演练,阿里妈妈安全生产团队开源了 C++ 混沌实验执行器,填补了 C++ 应用混沌工程实验的空白,其遵循《混沌实验模型》,可通过 ChaosBlade 工具直接执行。项目地址:https://github.com/chaosblade-io/chaosblade-exec-cplus 。

本文重点介绍该执行器的架构图、支持的实验场景,并以 Demo 为例介绍具体的使用方式,附录介绍了阿里妈妈内部混沌实验流程。

新版本 chaosblade 下载地址:

https://github.com/chaosblade-io/chaosblade/releases

实验场景


目前支持的 C++ 混沌实验场景如下,具体使用方式可详见下文:

  • 针对某个方法,或者某行代码注入延迟故障;

  • 针对某个方法,或者某行代码注入替换变量,或者对象值,可以制造调用第三方接口返回结果中包含错误码等等故障;

  • 针对某个方法,或者某行代码注入立刻退出方法并返回指定值(可以是错误值)的故障;

架构图


640?wx_fmt=png

解释说明:

  • C++ 混沌实验执行器包括 8 个模块:模型匹配器模块、应用状态获取模块、流程控制模块、在应用运行中注入故障模块、应用未启动状态启动应用并注入故障模块、故障恢复模块、卸载实验器模块 和 日志记录模块;

  • 模型匹配器模块:会把用户传入的参数匹配《混沌实验模型》,发现不符合规范的参数,将停止执行,并返回用户相应提示;

  • 应用状态获取模块:获取待注入故障的 C++ 应用目前的状态;

  • 流程控制模块:可以控制整个实验器的运行流程;

  • 在应用运行中注入故障模块:在 C++ 应用运行状态时,在不改变应用原有代码,和编译文件的情况下,直接注入故障到进程;

  • 应用未启动状态启动应用并注入故障模块:在 C++ 应用未启动状态,在不改变应用原有代码,和编译文件的情况下,启动应用,并同时注入故障;

  • 故障恢复模块:当某一个实验或演练场景完成,基于该模块移除该场景的故障;

  • 卸载实验器模块:当所有实验或演练场景都完成,基于该模块移除应用所有故障,并退出 C++ 混沌实验执行器的进程;

  • 日志记录模块:可以把 C++ 混沌实验执行器运行过程中的情况记录到日志中;

  • C++ 应用:待注入故障的应用,在故障注入过程中,C++ 混沌实验执行器通过 attach 方式把 C++ 应用做为自己的子进程进行状态跟踪;

  • ChaosBlade:混沌实验注入工具;

使用方法


可以通过如下三种方式对 C+&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值