name: gameday-planning description: 用于计划游戏日练习、设计故障场景或进行混沌演练时使用。涵盖游戏日准备、执行和跟进。 allowed-tools: Read, Glob, Grep
游戏日规划
游戏日练习的全面指南 - 组织混沌演练,测试系统弹性和事件响应。
何时使用此技能
- 计划游戏日练习
- 设计故障场景
- 准备团队进行混沌实验
- 运行灾难恢复演练
- 提高事件响应准备度
什么是游戏日?
游戏日 = 为系统计划的混沌练习
像消防演习,但针对基础设施:
- 提前安排
- 受控环境
- 真实事件练习
- 学习并改进
不是混沌工程:
- 游戏日:计划团队练习
- 混沌工程:持续实验
游戏日包括:
- 故障注入
- 事件响应练习
- 团队协调
- 运行手册验证
游戏日类型
按范围
1. 组件游戏日
└── 单个服务或组件
└── 聚焦场景
└── 2-4小时
2. 服务游戏日
└── 多个相关服务
└── 集成场景
└── 半天
3. 全系统游戏日
└── 完整系统
└── 灾难场景
└── 全天
4. 跨团队游戏日
└── 多个团队参与
└── 复杂场景
└── 1-2天
按目标
1. 弹性验证
└── 系统能否处理故障?
2. 恢复练习
└── 能否从备份恢复?
3. 事件响应训练
└── 协调效果如何?
4. 运行手册验证
└── 运行手册有效吗?
5. 容量测试
└── 负载下会发生什么?
规划阶段
时间线概述
第-4周:初步规划
├── 定义目标
├── 识别利益相关者
└── 草拟场景想法
第-3周:场景设计
├── 详细故障场景
├── 定义成功标准
└── 识别风险
第-2周:准备
├── 与利益相关者审查
├── 准备监控
├── 更新运行手册
└── 向参与者简报
第-1周:最终准备
├── 确认参与者
├── 测试监控
├── 场景演练
└── 准备回滚计划
当天:执行
├── 游戏日前简报
├── 运行场景
├── 记录观察
└── 热切简报
目标设定
好的目标:
- "验证次要区域故障转移在5分钟内完成"
- "确认团队能使用运行手册诊断数据库问题"
- "测试50%节点故障时负载均衡器行为"
坏的目标:
- "看看什么会坏"(太模糊)
- "测试一切"(太广泛)
- "找出所有错误"(不切实际)
SMART目标:
具体:清晰场景
可衡量:定义的成功标准
可实现:在团队能力内
相关:测试真实风险
有时限:适合游戏日
场景设计
场景模板:
名称:[描述性名称]
类型:[基础设施/应用/数据/流程]
持续时间:[预期时间]
目标:
我们在测试什么?
假设:
"当[故障]时,系统将[预期行为]"
设置:
1. [前置条件1]
2. [前置条件2]
执行:
1. [注入步骤1]
2. [注入步骤2]
预期结果:
- [指标] 应 [行为]
- [警报] 应 [触发/不触发]
- [恢复] 应 [发生]
成功标准:
□ [标准1]
□ [标准2]
中止条件:
- [条件] → 立即停止
- [条件] → 暂停并评估
回滚步骤:
1. [回滚步骤1]
2. [回滚步骤2]
常见场景
基础设施:
□ 终止主数据库实例
□ 区域间网络分区
□ 关键服务磁盘满
□ 内存耗尽
□ 证书过期
应用:
□ 部署错误配置
□ 用流量压倒
□ 损坏缓存条目
□ 耗尽连接池
□ API依赖故障
数据:
□ 从备份恢复
□ 数据损坏检测
□ 复制延迟
□ 模式迁移失败
流程:
□ 关键团队成员不可用
□ 凭据轮换
□ 访问撤销
□ 仅运行手册解决
准备阶段
利益相关者沟通
沟通计划:
领导:
- 内容:游戏日概述、风险、益处
- 时间:第-3周(批准)
- 方式:会议 + 文档
参与团队:
- 内容:详细计划、角色、期望
- 时间:第-2周(启动)
- 方式:会议 + 文档
相邻团队:
- 内容:通知、潜在影响
- 时间:第-1周
- 方式:电子邮件 + 日历阻止
值班:
- 内容:额外警觉、升级路径
- 时间:前一天
- 方式:简报 + 运行手册
参与者简报
简报内容:
1. 目标
我们在测试什么及为什么?
2. 角色
游戏日期间谁做什么?
3. 时间表
时间线和场景顺序
4. 基本规则
允许什么,不允许什么
5. 安全
紧急停止、中止条件
6. 沟通
渠道、更新、升级
7. 问题
澄清任何困惑
监控准备
游戏日前:
1. 验证仪表板工作
- 所有相关指标可见
- 理解基线
2. 配置额外警报
- 游戏日特定警报
- 需要时降低阈值
3. 准备查询
- 日志查询就绪
- 跟踪搜索准备
4. 测试记录
- 需要时屏幕录制
- 指标导出配置
5. 清除噪音
- 抑制已知警报
- 减少背景聊天
安全措施
必需安全措施:
紧急停止:
- 每个场景的立即停止
- 多人可触发
- 游戏日前测试
爆炸半径限制:
- 最大受影响用户/流量
- 自动执行
- 超出时明确升级
回滚计划:
- 每个场景文档化
- 测试回滚程序
- 时间限制场景
沟通:
- 专用渠道
- 清晰"停止"命令
- 状态页面就绪更新
客户保护:
- 可能时使用合成流量
- 金丝雀方法
- 快速客户沟通准备
执行阶段
当天结构
典型游戏日时间表:
08:00 - 游戏日前简报
└── 审查目标、角色、安全
08:30 - 监控基线
└── 捕获正常状态
09:00 - 场景1
└── 执行、观察、文档
10:30 - 休息 + 快速简报
11:00 - 场景2
└── 执行、观察、文档
12:30 - 午餐休息
13:30 - 场景3
└── 执行、观察、文档
15:00 - 场景4(如有时间)
16:00 - 热切简报
└── 初始观察
16:30 - 清理
└── 确保所有回滚
执行期间角色
游戏日负责人:
- 运行整体练习
- 做出继续/停止决定
- 控制节奏
- 管理安全
场景执行者:
- 注入故障
- 监控注入
- 有紧急停止
- 报告状态
观察者:
- 观察系统行为
- 记录发现
- 注意意外事件
- 跟踪指标
事件响应者:
- 像真实事件行动
- 遵循运行手册
- 练习协调
- 不知道场景(可选)
记录员:
- 记录时间线
- 文档化决定
- 捕获引用
- 记录行动项
执行期间文档
时间线模板:
[时间] [参与者] [行动/观察]
09:00 游戏日负责人:开始场景1 - 数据库故障转移
09:01 执行者:触发主数据库关闭
09:02 观察者:警报触发:数据库连接错误
09:03 观察者:故障转移自动启动
09:05 观察者:次要晋升为主
09:07 响应者:服务重新连接
09:10 观察者:错误率恢复正常
09:12 游戏日负责人:场景1完成 - 成功
捕获:
- 确切时间
- 谁做了什么
- 系统响应
- 与预期的偏差
- 有趣观察
处理真实事件
如果真实事件在游戏日期间发生:
1. 立即停止游戏日
"游戏日暂停 - 真实事件"
2. 评估真实事件
是否与游戏日相关?
3. 回滚任何游戏日更改
如果可能贡献
4. 处理真实事件
正常事件流程
5. 决定是否继续
恢复或重新安排游戏日?
始终优先处理真实事件而非游戏日。
跟进阶段
热切简报
游戏日后立即:
持续时间:30-60分钟
参与者:所有游戏日参与者
议程:
1. 发生了什么?(每个场景5分钟)
- 时间线回顾
- 关键观察
2. 什么做得好?
- 庆祝成功
- 注意有效实践
3. 什么没做好?
- 发现的问题
- 工具/流程中的缺口
4. 初始行动项
- 快速修复
- 需要进一步调查
5. 下一步
- 事后期程
- 所有者分配
正式事后回顾
游戏日后一周内:
游戏日事后回顾
执行摘要
简要概述目标、执行、结果
执行场景
| 场景 | 结果 | 关键发现 |
|----------|---------|--------------|
| 数据库故障转移 | 成功 | 3分钟恢复 |
| 网络分区 | 部分 | 需要手动干预 |
详细发现
场景1:数据库故障转移
- 假设:自动故障转移<5分钟
- 结果:确认(实际3分钟)
- 观察:[细节]
场景2:网络分区
- 假设:服务以降级模式继续
- 结果:部分确认
- 缺口:服务X未优雅处理
- 观察:[细节]
行动项
| 行动 | 所有者 | 优先级 | 截止日期 |
|--------|-------|----------|----------|
| 修复服务X分区处理 | @工程师 | P1 | 2024-02-01 |
| 更新数据库故障转移运行手册 | @值班 | P2 | 2024-02-15 |
下一个游戏日建议
- [建议1]
- [建议2]
行动项跟踪
每个行动项需要:
- 清晰描述
- 单一所有者
- 优先级级别
- 截止日期
- 完成定义
跟踪在:
- 问题跟踪器
- 专用仪表板
- 定期审查会议
别让行动项搁置。
关键是改进。
最佳实践
规划
1. 从小开始
第一个游戏日应简单
2. 清晰目标
知道你在测试什么
3. 利益相关者支持
获得批准和支持
4. 彻底准备
不要匆忙准备
5. 文档化场景
书面计划,不在头脑中
执行
1. 安全第一
紧急停止就绪
2. 持续沟通
每个人都知道发生了什么
3. 文档化一切
否则会忘记
4. 保持时间表
不要让场景超时
5. 灵活
适应意外情况
跟进
1. 立即简报
当天热切简报
2. 正式事后回顾
一周内
3. 跟踪行动项
别让它们死
4. 分享学习
广泛传播知识
5. 计划下一个
使其成为常规实践
常见陷阱
陷阱:范围蔓延
修复:严格场景限制、时间盒
陷阱:准备不足
修复:清单、试运行
陷阱:无安全措施
修复:必需紧急停止、中止标准
陷阱:跳过文档
修复:专用记录员、模板
陷阱:孤立行动项
修复:跟踪、拥有、审查
陷阱:不频繁游戏日
修复:季度安排、更小范围
成熟度进展
级别1:临时
- 第一个游戏日
- 简单场景
- 手动执行
级别2:定期
- 季度游戏日
- 多个场景
- 基本自动化
级别3:集成
- 月度游戏日
- 复杂场景
- 良好文档
- 行动项跟踪
级别4:连续
- 每周较小演练
- 季度大型游戏日
- 自动化场景
- 指标驱动改进
相关技能
chaos-engineering-fundamentals- 持续混沌实验incident-response- 处理真实事件resilience-patterns- 构建弹性系统