故障演练日是什么
故障演练日(Game Day)是有组织的故障注入实践:在约定的时间窗内,向系统注入依赖中断、实例淘汰、慢查询等故障,验证检测、响应、处置与回滚链路是否真实可用。它不是制造事故,而是用可控演练把薄弱点曝露在安全时段;每条演练都要有明确范围、中止开关与观察指标。
基本信息
| 形式 | 计划性演练:明确范围、时间窗与回退开关 |
|---|---|
| 注入 | 流量消减、依赖故障、实例终止等,按风险选择 |
| 观测 | 检测时间、响应动作、恢复时长、协作链路 |
| 产出 | 改进项进入可靠性待办并指定负责人 |
| 参与 | 值班、开发与业务方共同参与,观察人在线 |
| 前提 | 中止条件与责任人先明确再开始注入 |
演练计划要点
演练计划要点
范围:支付链路(预发环境) # 先小范围
注入:中断第三方支付回调 5 分钟 # 故障类型与时长
预期:熔断生效小于 30s,告警触达值班 # 可验证的预期
观测:检测、响应、恢复三个时间点 # 记录数据
中止开关:立即恢复注入的开关 # 随时可用的刹车典型使用场景
- 依赖故障演练:第三方接口超时或中断时的降级路径
- 容量演练:流量突增时限流与扩容是否生效
- 实例淘汰:随机终止实例验证自动恢复与调度
- 数据故障:只读切换、备份恢复耗时验证
- 协作演练:验证升级链路与沟通是否顺畅
- 上线前演练:在预发环境把关键链路先练一遍
演练要素与要求
| 要素 | 要求 |
|---|---|
| 范围 | 明确系统、环境与预期影响 |
| 中止 | 何时中止、谁有权中止写清楚 |
| 预期 | 每个注入都有可验证的预期结果 |
| 观测 | 指定观察人与观测面板 |
| 复盘 | 演练后限时产出改进项 |
未设中止条件的演练风险高:先明确回退开关与责任人,再开始注入。
从单点小范围开始:影响面超出预期的注入会把演练变成真实事故。
只练技术不练协作:沟通与升级链路的缺陷依旧,业务方要参与。
演练结果要留档:改进项进待办并跟踪,否则下次演练同一个坑还在。