前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >混沌工程工具:混沌工程定位及原则梳理(8)

混沌工程工具:混沌工程定位及原则梳理(8)

原创
作者头像
AIOPS
修改2023-10-10 21:31:14
4900
修改2023-10-10 21:31:14
举报
文章被收录于专栏:高可用高可用

混沌工程定位

很多人都会把混沌工程和测试区分不清楚,我从执行时机、执行后是否对系统产生新认知,做了一张图如下。

基本可以看出,混沌工程不是测试,也不是在生产环境搞破坏,而是通过受控的实验,提升韧性,具有主动、能探索未知的效果。

混沌工程工具系列传送门:

1、 混沌工程工具:Chaos-mesh与Chaosblade技术实现与原理分析(1)-腾讯云开发者社区-腾讯云

2、 混沌工程工具:chaos-mesh注入项原理分析(2)-腾讯云开发者社区-腾讯云

3、 混沌工程工具:chaosblade在服务器上注入项原理分析(3)-腾讯云开发者社区-腾讯云

4、 混沌工程工具:业务代码注入原理(4)-腾讯云开发者社区-腾讯云

5、 混沌工程工具:Chaosblade Java业务代码注入原理(5)-腾讯云开发者社区-腾讯云

6、 混沌工程工具:混沌工程实施过程及持久价值(7)-腾讯云开发者社区-腾讯云

7、 混沌工程工具:混沌工程定位及原则梳理(8)-腾讯云开发者社区-腾讯云

8、 混沌工程工具:一个混沌工程设计的例子(9)-腾讯云开发者社区-腾讯云

混沌工程原则解读及选择原则

混沌工程高级原则,是国外混沌工程专家一起整理的实践指南,每条原则单独拎出来,都可以演进成一个完成的系统工具。深入理解这些原则,对混沌工程的实施具有事半功倍的效果。

原文参考:https://principlesofchaos.org/zh/

原则一:构建基于稳态的假说

1、 需要具有可证伪性。

2、 定义稳态,可量化

3、 必选业务KPI及资源负载情况

好的假说:当发生故障A时,系统服务响应耗时增加,由于有超时控制,超时请求量上涨10%,B服务相应设备的CPU负载会达到50%。

不好的假说:当发生故障A时,系统会运行不正常,客户访问比较慢。

原则二:多样化真实世界的事件

这个原则主要说的是实验选择的问题,如何选择,可一参考如下思路

1、 最能在日常遇到的故障 -- 该故障模式的风险程度为高

2、 发生实验的故障时,系统是否必出问题。如果是,则需要考虑重新设计高可用方案

3、 假说是否满足业务需要,不满足则要考虑重新设计高可用方案

4、 假说的反驳只能在演练阶段实现

5、 最能提升对系统的认识及团队能力提升

如果都不满足,最好不要选这个实验,而是采用其它手段应对。

比如:ES是主链路资源,如果ES集群异常而无法读写,则不需要演练了,因为结果已知。

原则三:持续进行自动化实验

系统一直在变化,只有持续实验,才能及时识别因系统变化对稳定性的破坏,获取最大的能力提升。

而单次实验的人力投入比较多,并且每次实验中,有可复用的地方,可以通过工具来自动化。这就是我们前面分析的混沌源码要解决的问题

1、 自动化创建实验,可以借助IDIF

2、 自动化执行实验,可以借助开源工具。

原则四:在生产环境中执行实验

在哪个环境进行实验,就可以获得哪个环境的信心。所以在开始混沌时,为了减少对系统的冲击,可以在测试环境执行。但最终还是要演进到生产环境。在生产环境中执行实验至关重要,因为它可以帮助我们测试新的功能、修复潜在的问题以及优化性能,而这些是在真实使用情况下难以模拟的。通过生产环境实验,我们可以获取实际用户反馈,了解系统行为,并确保应用程序在变化的条件下仍然可靠。这有助于提高产品质量、减少风险,同时使团队更具敏捷性,能够快速适应不断变化的需求,从而为用户提供更好的体验。

原则五:最小化爆炸半径

执行实验时,一定要考虑不能对系统造成大的影响,这包括下面两点:

1、 实验时的影响尽可能小。

2、 实验后对恢复的影响尽可能小。

根据历史经验,可以考虑通过下面方式最小化爆炸半径

分类

原则

演练时机

1、 低峰期先于高峰期 2、 工作日先于节假日 3、 变更前先于变更时、变更后

演练规模

用户粒度:1、单用户先于多用户2、测试用户先于真实用户请求粒度: 1、 单请求先于多请求 2、 单模块复合请求先于多模块复合请求组件粒度:1、小比例先于全组件系统粒度: 1、 边缘系统先于核心系统 2、 边缘可用区优于核心可用区网络粒度: 1、 子网小比例先于全子网 2、 子网先于全网

演练环境

非生产环境优于生产环境

演练模式

1、 有剧本的演练先于无剧本随机演练 2、 通过程序固化故障注入方式

稳态指标

突破稳态指标立即中止演练

终止通道

可随时终止演练

总结

本文梳理了混沌工程的定位及混沌原则解读。后面会针对一个具体的场景,设计一个混沌实验。

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 混沌工程定位
  • 混沌工程工具系列传送门:
  • 混沌工程原则解读及选择原则
    • 原则一:构建基于稳态的假说
      • 原则二:多样化真实世界的事件
        • 原则三:持续进行自动化实验
          • 原则四:在生产环境中执行实验
            • 原则五:最小化爆炸半径
            • 总结
            相关产品与服务
            混沌演练平台
            混沌演练平台(Chaotic Fault Generator)提供高效便捷、安全可靠的故障演习服务,除可视化故障注入服务外,还提供行业经验模板,监控护栏等核心功能,致力于帮助用户及时发现业务容灾隐患、验证高可用预案的有效性,从而提高系统的可用性和韧性。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档