混沌工程
- 定义:混沌工程是传统测试的补充。测试类型包含:有功能性测试,有性能测试,还有很大一部分是各种混沌测试,模仿各种事实中可能呈现的状况。故障演练、容灾演练在混沌工程领域。
- 业务背景:分布式系统天生有着各种相互依赖,能够 出错的中央不可胜数
-
需要:
- 为了更不便地验证零碎对于各种 故障的容忍能力 ,打造更具 弹性 (弹性:零碎 应答故障 、从 故障中复原 的能力)零碎
- 在一直的同时,建立运行高可用分布式系统的 信念。
- 对本身稳定性有个 更全面的理解。
- 混沌工程让你有机会 把问题提前/ 通过一直失败防止失败。
-
操作:
- 用于向基础设施以及业务零碎中注入各类故障类型
-
实际混沌工程示例:
- 能够 简略 如在生产环境中运行 kill -9 来模仿一个服务节点的忽然宕机
- 也能够 简单 到在线上筛选一小部分(但足够代表性)的流量,按肯定规定或频率主动运行一系列 试验。
- 更 精准 的管制(爆炸半径、影响范畴)、反对更多场景的 模型
- 通常遵循四个操作 步骤
-
- 首先定义指标(自动化指标 剖析)(采纳业务指标比技术指标更易用)
- 创立假如。
- 模仿事实世界中可能产生的事件(故障注入)。
- 证实或反驳你的假如。
-
业内实际
-
混沌工程(Chaos Engineering) 总结
- https://zhuanlan.zhihu.com/p/…
- https://github.com/dastergon/…
-
先驱,Netflix 的 Chaos Monkey
- https://pingcap.com/blog-cn/c…
- 最早系统化地提出了混沌工程的 概念 ,并出版了混沌工程畛域内的首部 书籍 。在本书中提出了混沌工程成熟度模型与利用度 模型 ,并总结了五条高级 准则,对于混沌工程的倒退具备指导性意义。
-
准则之一易用性
- 易于编排 试验的谬误注入行为,易于查看 ** 试验的状态和后果
-
准则之一扩展性
- 基于现有实现,易于扩大新的 故障注入品种
- 阿里 ChaosBlade
- PingCap:Chaos Mesh
- Gremlin:chaos gameday 红蓝反抗概念
-