2. On-Call 轮转基础概念
在构建自动化排班系统之前,必须统一团队对 On-Call 机制的核心认知。本章定义轮转周期、值班角色、SLA 与响应时间等基础概念,为后续的排班算法与疲劳度检测奠定语义基础。
2.1 什么是 On-Call
On-Call(值班)是指工程师在非工作时间或非工作时段内,承担系统监控告警响应与故障处理职责的工作模式。当生产环境出现异常(如服务宕机、延迟飙升、数据不一致)时,On-Call 工程师需要在规定时间内介入并恢复服务。
核心特征: On-Call 不是“待命”,而是“可响应”+“可操作”的主动值守状态。值班人员必须保持通讯畅通、具备环境访问权限,并能在 SLA 规定时间内执行故障恢复操作。
2.2 轮转周期
轮转周期(Rotation Cycle)定义了值班人员切换的时间窗口。常见的周期模式包括:
| 周期类型 | 时长 | 适用场景 | 疲劳风险 |
|---|---|---|---|
| 日轮转 | 24 小时 | 高告警频率、核心链路服务 | 高(连续多日值班易累积疲劳) |
| 周轮转 | 7 天 | 中等告警量、团队规模 4-8 人 | 中(周末值班影响生活节律) |
| 双周轮转 | 14 天 | 低告警量、大型团队 | 低(但单次值班过长) |
| 自定义分片 | 按需(如 12h/48h) | 跨时区、混合值班模式 | 需算法动态评估 |
设计建议: 轮转周期不宜过短(< 12 小时)导致频繁切换,也不宜过长(> 14 天)导致单次值班疲劳累积。推荐以 7 天为基准,结合团队规模与告警密度做微调。
2.3 值班角色定义
一个完整的 On-Call 体系通常包含以下角色,角色之间通过升级策略形成响应链路:
- Primary(主值班): 第一响应人,负责处理所有告警。必须具备故障排查与恢复能力。
- Secondary(副值班): 主值班的备份,当主值班超时未响应或需要协助时介入。通常由同团队资深工程师担任。
- Escalation(升级联系人): 当 Primary 和 Secondary 均无法处理时,升级至团队主管或 SRE 经理。负责协调资源或决策。
- Shadow(影子值班): 新入职或轮转培训中的工程师,跟随 Primary 学习,不承担独立响应责任。
2.4 SLA 与响应时间要求
SLA(Service Level Agreement)定义了 On-Call 值班必须满足的时间约束。不同故障等级对应不同的响应与解决时限:
| 故障等级 | 定义 | 确认响应时间 | 恢复时间目标 |
|---|---|---|---|
| P0 | 核心服务完全不可用,影响全部用户 | ≤ 5 分钟 | ≤ 30 分钟 |
| P1 | 主要功能受损,影响大量用户 | ≤ 10 分钟 | ≤ 2 小时 |
| P2 | 部分功能异常,影响小范围用户 | ≤ 30 分钟 | ≤ 8 小时 |
| P3 | 非关键功能问题,无用户感知 | ≤ 2 小时 | ≤ 48 小时 |
注意: 确认响应时间(Acknowledge Time)不等于解决时间。值班人员在规定时间内确认告警后,可以继续排查,但必须持续更新故障状态。疲劳度检测算法会重点监控“连续高等级告警响应次数”与“夜间值班频率”两个指标。
2.5 值班时间窗口与疲劳风险
值班时间窗口(On-Call Shift)定义了值班人员处于“可响应”状态的具体时段。常见窗口模式包括:
- 全天候(24×7): 连续 7 天 24 小时处于值班状态,疲劳风险最高。
- 分时段(Day/Night Split): 白天(08:00-20:00)与夜间(20:00-08:00)由不同人员负责,降低单次疲劳。
- 工作日/周末分离: 工作日与周末分别排班,避免周末值班影响生活恢复。
2.6 值班交接与状态同步
轮转交接是 On-Call 体系中最容易出错的环节。自动化排班系统必须支持以下交接要素:
- 上下文传递: 当前未解决的告警、进行中的故障、已知问题列表。
- 权限同步: 值班人员对应的系统访问权限、VPN 通道、监控工具账号。
- 通讯渠道: 值班手机、即时通讯群组、电话会议链接的交接确认。
- 状态确认: 接班人员必须主动确认“已就绪”,系统记录交接时间戳。
最佳实践: 在轮转开始前 30 分钟,自动化系统向接班人员发送“值班就绪确认”通知,并附带当前告警摘要。未确认时自动升级至团队主管,避免出现“无人值班”的空窗期。