值班交接模式Skill on-call-handoff-patterns

本技能专注于值班交接模式,提供有效的方法来确保值班班次过渡时的连续性、上下文转移和可靠的突发事件响应。适用于 DevOps 团队,用于过渡值班职责、编写交接总结、改进交接流程等。关键词:值班交接、突发事件管理、运维流程、DevOps、交接文档、升级程序、值班轮转。

DevOps 0 次安装 0 次浏览 更新于 3/22/2026

name: 值班交接模式 description: 掌握值班交接模式,包括上下文转移、升级程序和文档。用于过渡值班职责、记录班次总结或改进值班流程。

值班交接模式

有效的值班交接模式,确保班次过渡的连续性、上下文转移和可靠的突发事件响应。

何时使用此技能

  • 过渡值班职责
  • 编写班次交接总结
  • 记录正在进行中的调查
  • 建立值班轮转程序
  • 改进交接质量
  • 入职新的值班工程师

核心概念

1. 交接组件

组件 目的
活跃突发事件 当前有什么问题正在发生
正在进行中的调查 正在调试的问题
近期变更 部署、配置
已知问题 现有的解决方法
即将发生的事件 维护、发布

2. 交接时间安排

推荐: 班次间重叠 30 分钟

交班工程师:
├── 15 分钟: 编写交接文档
└── 15 分钟: 与接班工程师同步通话

接班工程师:
├── 15 分钟: 审查交接文档
├── 15 分钟: 与交班工程师同步通话
└── 5 分钟: 验证警报设置

模板

模板 1: 班次交接文档

# 值班交接: 平台团队

**交班**: @alice (2024-01-15 至 2024-01-22)
**接班**: @bob (2024-01-22 至 2024-01-29)
**交接时间**: 2024-01-22 09:00 UTC

---

## 🔴 活跃突发事件

### 当前无活跃突发事件

交接时无活跃突发事件。

---

## 🟡 正在进行中的调查

### 1. 间歇性 API 超时 (ENG-1234)

**状态**: 调查中
**开始时间**: 2024-01-20
**影响**: 约 0.1% 请求超时

**上下文**:

- 超时与数据库备份窗口 (02:00-03:00 UTC) 相关
- 怀疑备份过程导致锁竞争
- 在 PR #567 中添加了额外日志记录 (已部署 01/21)

**下一步**:

- [ ] 审查今晚备份后的新日志
- [ ] 如果确认,考虑移动备份窗口

**资源**:

- 仪表盘: [API 延迟](https://grafana/d/api-latency)
- 线程: #platform-eng (01/20, 14:32)

---

### 2. 认证服务内存增长 (ENG-1235)

**状态**: 监控中
**开始时间**: 2024-01-18
**影响**: 暂无 (主动监控)

**上下文**:

- 内存使用每天增长约 5%
- 分析中未发现内存泄漏
- 怀疑连接池未正确释放

**下一步**:

- [ ] 审查 01/21 的堆转储
- [ ] 如果使用率 > 80%,考虑重启

**资源**:

- 仪表盘: [认证服务内存](https://grafana/d/auth-memory)
- 分析文档: [内存调查](https://docs/eng-1235)

---

## 🟢 本班次已解决

### 支付服务中断 (2024-01-19)

- **持续时间**: 23 分钟
- **根本原因**: 数据库连接耗尽
- **解决方案**: 回滚 v2.3.4,增加池大小
- **事后分析**: [POSTMORTEM-89](https://docs/postmortem-89)
- **跟进工单**: ENG-1230, ENG-1231

---

## 📋 近期变更

### 部署

| 服务      | 版本 | 时间        | 备注                      |
| ------------ | ------- | ----------- | -------------------------- |
| api-gateway  | v3.2.1  | 01/21 14:00 | 修复头部解析的错误 |
| user-service | v2.8.0  | 01/20 10:00 | 新配置文件功能       |
| auth-service | v4.1.2  | 01/19 16:00 | 安全补丁             |

### 配置变更

- 01/21: 将 API 速率限制从 1000 增加到 1500 RPS
- 01/20: 更新数据库连接池最大值从 50 到 75

### 基础设施

- 01/20: 向 Kubernetes 集群添加 2 个节点
- 01/19: 将 Redis 从 6.2 升级到 7.0

---

## ⚠️ 已知问题及解决方法

### 1. 仪表盘加载慢

**问题**: 周一上午 Grafana 仪表盘加载慢
**解决方法**: 在 08:00 UTC 后等待 5 分钟让缓存预热
**工单**: OPS-456 (P3)

### 2. 不稳定的集成测试

**问题**: CI 中 `test_payment_flow` 间歇性失败
**解决方法**: 重新运行失败作业 (通常重试后通过)
**工单**: ENG-1200 (P2)

---

## 📅 即将发生的事件

| 日期        | 事件                | 影响              | 联系人       |
| ----------- | -------------------- | ------------------- | ------------- |
| 01/23 02:00 | 数据库维护 | 5 分钟只读模式     | @dba-team     |
| 01/24 14:00 | 主要发布 v5.0   | 密切监控     | @release-team |
| 01/25       | 营销活动   | 预期流量翻倍 | @platform     |

---

## 📞 升级提醒

| 问题类型      | 首次升级     | 第二次升级 |
| --------------- | -------------------- | ----------------- |
| 支付问题  | @payments-oncall     | @payments-manager |
| 认证问题     | @auth-oncall         | @security-team    |
| 数据库问题 | @dba-team            | @infra-manager    |
| 未知/严重问题  | @engineering-manager | @vp-engineering   |

---

## 🔧 快速参考

### 常用命令

```bash
# 检查服务健康状态
kubectl get pods -A | grep -v Running

# 近期部署
kubectl get events --sort-by='.lastTimestamp' | tail -20

# 数据库连接
psql -c "SELECT count(*) FROM pg_stat_activity;"

# 清除缓存 (仅紧急情况)
redis-cli FLUSHDB
```

重要链接


交接清单

交班工程师

  • [x] 记录活跃突发事件
  • [x] 记录正在进行中的调查
  • [x] 列出近期变更
  • [x] 备注已知问题
  • [x] 添加即将发生的事件
  • [x] 与接班工程师同步

接班工程师

  • [ ] 阅读此文档
  • [ ] 加入同步通话
  • [ ] 验证 PagerDuty 是否路由到您
  • [ ] 验证 Slack 通知是否工作
  • [ ] 检查 VPN/访问是否工作
  • [ ] 审查关键仪表盘

### 模板 2: 快速交接 (异步)

```markdown
# 快速交接: @alice → @bob

## TL;DR
- 无活跃突发事件
- 1 项调查正在进行中 (API 超时,见 ENG-1234)
- 明天主要发布 (01/24) - 准备应对问题

## 监控列表
1. 02:00-03:00 UTC 左右的 API 延迟 (备份窗口)
2. 认证服务内存 (如果 > 80% 则重启)

## 近期情况
- 昨天部署了 api-gateway v3.2.1 (稳定)
- 增加速率限制到 1500 RPS

## 即将发生
- 01/23 02:00 - 数据库维护 (5 分钟只读模式)
- 01/24 14:00 - v5.0 发布

## 有问题吗?
我将在今天 17:00 之前在 Slack 上可用。

模板 3: 突发事件交接 (突发事件中)

# 突发事件交接: 支付服务降级

**突发事件开始**: 2024-01-22 08:15 UTC
**当前状态**: 缓解中
**严重性**: SEV2

---

## 当前状态

- 错误率: 15% (从 40% 下降)
- 缓解措施进行中: 扩展 Pod
- 预计解决时间: 约 30 分钟

## 我们所知

1. 根本原因: 支付服务 Pod 内存压力
2. 触发因素: 异常流量激增 (3 倍正常值)
3. 贡献因素: 结账流程中的低效查询

## 我们已做

- 将支付服务从 5 个 Pod 扩展到 15 个
- 启用结账端点的速率限制
- 禁用非关键功能

## 需要做什么

1. 监控错误率 - 应在约 15 分钟内达到 <1%
2. 如果无改善,升级给 @payments-manager
3. 稳定后,开始根本原因调查

## 关键人员

- 突发事件指挥官: @alice (交班)
- 沟通负责人: @charlie
- 技术负责人: @bob (接班)

## 沟通

- 状态页面: 在 08:45 更新
- 客户支持: 已通知
- 执行团队: 已知晓

## 资源

- 突发事件频道: #inc-20240122-payment
- 仪表盘: [支付服务](https://grafana/d/payments)
- 运行手册: [支付降级](https://wiki/runbooks/payments)

---

**接班值班员 (@bob) - 请确认您已具备:**

- [ ] 加入 #inc-20240122-payment
- [ ] 访问仪表盘
- [ ] 理解当前状态
- [ ] 知道升级路径

交接同步会议

议程 (15 分钟)

## 交接同步: @alice → @bob

1. **活跃问题** (5 分钟)
   - 浏览任何持续突发事件
   - 讨论调查状态
   - 转移上下文和理论

2. **近期变更** (3 分钟)
   - 需关注的部署
   - 配置变更
   - 已知回归问题

3. **即将发生的事件** (3 分钟)
   - 维护窗口
   - 预期流量变化
   - 计划发布

4. **问题** (4 分钟)
   - 澄清任何不清楚之处
   - 确认访问和警报
   - 交换联系信息

值班最佳实践

在值班前

## 值班前清单

### 访问验证

- [ ] VPN 工作
- [ ] kubectl 访问所有集群
- [ ] 数据库读取访问
- [ ] 日志聚合器访问 (Splunk/Datadog)
- [ ] PagerDuty 应用安装并登录

### 警报设置

- [ ] PagerDuty 排班显示您为主要值班员
- [ ] 手机通知启用
- [ ] 突发事件频道 Slack 通知
- [ ] 测试警报接收并确认

### 知识复习

- [ ] 审查近期突发事件 (过去 2 周)
- [ ] 检查服务变更日志
- [ ] 快速浏览关键运行手册
- [ ] 知道升级联系人

### 环境准备

- [ ] 笔记本电脑充电并可用
- [ ] 手机充电
- [ ] 安静空间用于通话
- [ ] 确定备用联系人 (如果出行)

值班期间

## 日常值班例行程序

### 早上 (一天开始)

- [ ] 检查夜间警报
- [ ] 审查仪表盘异常
- [ ] 检查是否有 P0/P1 工单创建
- [ ] 快速浏览突发事件频道了解上下文

### 全天

- [ ] 在 SLA 内响应警报
- [ ] 记录调查进度
- [ ] 向团队更新重要问题
- [ ] 分诊呼入页面

### 一天结束

- [ ] 交接任何活跃问题
- [ ] 更新调查文档
- [ ] 备注给下一班次

值班后

## 值班后清单

- [ ] 完成交接文档
- [ ] 与接班值班员同步
- [ ] 验证 PagerDuty 路由已更改
- [ ] 关闭/更新调查工单
- [ ] 为任何突发事件提交事后分析
- [ ] 如果值班压力大,请休息

升级指南

何时升级

## 升级触发因素

### 立即升级

- 宣布 SEV1 突发事件
- 怀疑数据泄露
- 30 分钟内无法诊断
- 收到客户或法律升级

### 考虑升级

- 问题涉及多个团队
- 需要您不具备的专业知识
- 业务影响超过阈值
- 您不确定下一步

### 如何升级

1. 呼叫适当的升级路径
2. 在 Slack 中提供简要上下文
3. 保持参与直到升级方确认
4. 干净地交接,不要消失

最佳实践

要做

  • 记录一切 - 未来的您会感谢您
  • 早升级 - 安全比遗憾好
  • 休息 - 警报疲劳真实存在
  • 保持交接同步 - 异步会丢失上下文
  • 测试您的设置 - 在突发事件前,而不是期间

不要做

  • 不要跳过交接 - 上下文丢失会导致突发事件
  • 不要英雄主义 - 需要时升级
  • 不要忽略警报 - 即使看起来微小
  • 不要带病工作 - 换班
  • 不要消失 - 值班期间保持可联系

资源