背景
通过前面对混沌工程工具的详细分析,我们已经对如何进行故障注入有了更明晰的了解。然而,本文将详细介绍混沌工程的具体实施过程,以便提供全面的指导。
混沌工程工具系列传送门:
1、 混沌工程工具:Chaos-mesh与Chaosblade技术实现与原理分析(1)
2、 混沌工程工具:chaos-mesh注入项原理分析(2)
3、 混沌工程工具:chaosblade在服务器上注入项原理分析(3)
4、 混沌工程工具:业务代码注入原理(4)
5、 混沌工程工具:Chaosblade Java业务代码注入原理(5)
6、 混沌工程工具:混沌工程实施过程及持久价值(7)
7、 混沌工程工具:混沌工程定位及原则梳理(8)
8、 混沌工程工具:一个混沌工程设计的例子(9)
混沌工程实施过程
实施过程
一次完整的实验包括实施前准备、实施中管控和实施后复盘提炼,下面是我认为的要点及阶段的目标
阶段 | 要点 | 目标 |
---|---|---|
实施前 | 1、 完成实验点高可用建设 2、 完成实验方案中实验准备工作:稳态可观测性、演练方法、爆炸半径、快速结束实验能力及假说不成立的处理 3、 依据爆炸半径原则,选择合适时间点进行实验 4、 人员协调,落实演练主持人员、执行人员、记录人员 | 完成实施实验的所有前置条件 |
实施中 | 1、 记录好开始时间、稳态指标、结束时间等 2、 应急处理突破稳态的实验,如处理不合格则终止实验 3、 记录好假说失败时的现场日志 4、 记录好对有限条件的冲击,比如实验是否对金融监管造成冲击 | 可详细还原实验过程 |
实施后 | 1、 提炼过程中发现的系统问题,实验结果,输出商业价值 2、 共享混沌工程方案设计、实施记录、结果信息 3、 根据混沌工程原则,进行混沌工程改进 | 形成可持续的混沌工程文化 |
实施后详细动作
商业价值评估
我们做系统建设,最终的目标就是取得商业上的成功。那推广混沌的最好方式就是,把混沌的收益和商业价值挂钩。如何评估可以考虑下面信息。
分类 | 子类 | 评估内容 |
---|---|---|
稳定性分析 | 定性分析 | 比较注入故障时的系统指标和稳态指标的差异 |
定量分析 | ➢ 系统性能指标:P=E/E0,E 为实验组性能指标,E0为稳态时性能指标 ➢ 系统恢复率:R = ER/E,ER为移除扰动后系统性能指标,E为 系统稳态性能指标 | |
系统缺陷 | 各维度原因 | ➢ 对系统弱点进行分析 ➢ 对故障应对过程中的不足进行分析 ➢ 对系统的故障承受能力分析 ➢ 对监控告警的有效性进行分析 ➢ 对模块间的依赖关系进行分析 |
商业价值 | 参与人反应 | 参与前后调研问卷对比 |
执行实验结果 | 从稳定性分析/系统缺陷体现,最好结合已有故障的影响,针对实验遇到问题作出预估的业务侧影响。 | |
缺陷改善 | ➢ 已发现问题都修复 ➢ 新开发程序都没有发现已知问题 | |
业务结果 | 长期观察系统运行情况,建立混沌工程与故障时长、频次、恢复速度的关联关系主要依据是故障真的发生时,系统因为做过实验而逃过一劫 |
开放信息
参与混沌实验活动的仅是部分部门、部分人员,如何让混沌的实施过程,完整的在组织内展示,就需要把实验过程中的信息,做开放公示。具体就是以Wiki的形式呈现系统的实验设计方案、方案执行细节、监控图示、执行过程以及执行结果等相关资料,旨在鼓励更多人积极参与,共享知识。
输出报告
我们详细记录实验的全过程,包括商业价值的收获、开放实验的进展情况以及未来改进方向,并以报告的形式向大家提供详尽的信息、也便于在公司内做价值呈现,获得更广泛的支持。最终提升混沌工程的覆盖度、影响力
混沌工程的持久价值
确保灾备计划的有效性性。通过持续的实验设计、执行以及后续总结等方面的建设,以及根据演练结果不断改进演练方案、做好系统建设,我们能够确保客户可以自主并持续地进行实验。这有助于确保容灾计划的长期有效性。
我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表