Skip to content

架构设计

周鹏飞 edited this page Jul 26, 2019 · 1 revision

架构设计图

解释说明:

  • C++ 混沌实验执行器包括 8 个模块:模型匹配器模块、应用状态获取模块、流程控制模块、在应用运行中注入故障模块、应用未启动状态启动应用并注入故障模块、故障恢复模块、卸载实验器模块 和 日志记录模块;
  • 模型匹配器模块:会把用户传入的参数匹配《混沌实验模型》,发现不符合规范的参数,将停止执行,并返回用户相应提示;
  • 应用状态获取模块:获取待注入故障的 C++ 应用目前的状态;
  • 流程控制模块:可以控制整个实验器的运行流程;
  • 在应用运行中注入故障模块:在 C++ 应用运行状态时,在不改变应用原有代码,和编译文件的情况下,直接注入故障到进程;
  • 应用未启动状态启动应用并注入故障模块:在 C++ 应用未启动状态,在不改变应用原有代码,和编译文件的情况下,启动应用,并同时注入故障;
  • 故障恢复模块:当某一个实验或演练场景完成,基于该模块移除该场景的故障;
  • 卸载实验器模块:当所有实验或演练场景都完成,基于该模块移除应用所有故障,并退出 C++ 混沌实验执行器的进程;
  • 日志记录模块:可以把 C++ 混沌实验执行器运行过程中的情况记录到日志中;
  • C++ 应用:待注入故障的应用,在故障注入过程中,C++ 混沌实验执行器通过 attach 方式把 C++ 应用做为自己的子进程进行状态跟踪;
  • Chaosblade:混沌实验注入工具;
Clone this wiki locally