混沌工程

大型分布式系统跑在云上,一旦出错,错误难以预测,并且损失巨大,这就是引入混沌工程的原因

故障演练是属于混沌工程的一环,目的还是借事修人

混沌工程是在模块局部内确切的可控制的混乱

stateDiagram-v2
  稳态假设 --> 真实事件注入
  真实事件注入 --> 影响检测
  影响检测 --> 恢复
  恢复 --> 稳态假设

先决条件

稳态定义与测量

可以从场景化、现象化、指标化来定义出系统的稳定状态

根据现有的稳态,定义相关基线,通过监控测量相关指标偏离基线的情况来判断稳态是否变化

系统稳态的维持:

事件

混沌工程的事件定义:

理解分布式系统的8个谬误

基础设施事件

中间件事件

应用事件

数据事件

最小化爆炸半径

事件的注入要不在线下的系统尽情搞

要不就在线上尽小的可控范围内进行注入

演练

目标:

执行

场景

模式

角色

范围

观察

恢复

过程结果分析

时间分析

表现分析

维度\能力 容灾能力 发现能力 快速恢复能力
时间维度 是否快速及时
定量维度 问题数量是否可控
变化维度 变化幅度是否满足预期

异常分析

演练过程中出现的异常和其特征分析

改进分析

稳定性提升

预案体系能力

定位止血能力

stateDiagram-v2
  问题定位: 问题定位:问题表象 链路排查 日志分析
  问题定位 --> 问题原因,止血方案
  问题原因,止血方案 --> 经验沉淀,排查工具
  经验沉淀,排查工具 --> 运维支撑
  运维支撑 --> 问题原因,止血方案
  运维支撑 --> 问题定位

风险管控

需要明确的风险:

对抗风险: