4. 故障应急与事故复盘

在 SRE 高阶面试中,故障应急能力是考察候选人对“快速止损”和“系统韧性”理解的核心。面试官通常围绕1‑5‑10 响应、故障等级定义、事后复盘与改进闭环三个维度展开追问。本章帮你拆解每个考点的回答框架、加分细节和避坑要点。

收到告警 T=0 响应确认 1分钟 ⏱ 定位分析 5分钟 ⏱ 止损恢复 10分钟 ⏱ 持续改进 复盘闭环 核心原则:先止损 → 再定位 → 最后复盘 超时自动升级 / 遵循 SLO 阈值触发 1‑5‑10
💡 面试加分点: 能清晰讲出“1分钟未确认 → 自动电话轮转”、“5分钟未定位 → 拉群升级”、“10分钟未止损 → 宣布故障”等自动化机制,体现工程化思维。

📌 面试问题 1:请介绍 1‑5‑10 应急响应机制,你在实践中如何保证按时响应?

🎯 面试官考察点:

  • 是否理解 SRE 对告警延迟的容忍上限
  • 自动化工具有无(如轮转、屏蔽、通知渠道)
  • 对降级/熔断等快速止损手段的实际运用

🧩 回答框架:

  1. 给出 1‑5‑10 定义:1 分钟响应、5 分钟定位、10 分钟止损
  2. 说明自动保障机制(如排班、PagerDuty 配置、告警分级)
  3. 举一个具体例子:某次 CPU 毛刺导致 P1,1 分钟内接入,5 分钟通过慢查询定位,10 分钟限流恢复

✍️ 示例回答:

“我们在核心服务上实施了 1‑5‑10 响应机制。告警触发后,1 分钟内未确认则自动电话轮转当班。5 分钟内通过监控看板定位到慢 SQL,10 分钟内执行限流预案恢复。超时自动升级到主管,确保故障不扩散。”

🔍 可能追问:

  • 如果 10 分钟无法止损,下一步怎么做?
  • 如何区分“响应”与“定位”的时间边界?
  • 夜间或节假日如何保证值班人员及时响应?
⚠️ 避坑提醒:不要死背“1分钟响应、5分钟定位、10分钟恢复”,要结合自家监控工具和自动化流程说明;避免说“10分钟肯定能恢复”这种表述。
故障等级定义 (P0–P3) P0 核心服务宕 P1 影响部分用户 P2 非关键降级 P3 低优告警 事后复盘路径 回顾事件时间线 5Why 根因分析 制定改进项 跟踪闭环 高频追问:等级变更流程?复盘归因是否考虑系统设计缺陷?改进项如何验收?

📌 面试问题 2:如何定义故障等级?请举例 P0 / P1 / P2。

🎯 面试官考察点:

  • 对业务影响面的敏感度
  • 等级是否与 SLO / 收入挂钩
  • 升级流程及动态调整能力

🧩 回答框架:

  1. 按“影响范围 + 紧急度”矩阵划分(如用户量、是否涉及支付)
  2. 举典型例子:P0 全站不可用 / P1 主要功能失败 / P2 非核心降级
  3. 说明自动升级规则:P0 立即拉群+电话,P1 15 分钟未处理升级

✍️ 示例回答:

“P0 为全站瘫痪或支付链路断,需立刻召集所有在班;P1 影响 5% 以上用户的核心写请求;P2 为可降级的功能如推荐模块超时;P3 为单实例内存告警。等级随业务复杂度动态调整,每季度重新评估。”

🔍 可能追问:

  • 低等级故障如何避免恶化为 P0?
  • 如果故障跨团队,等级如何对齐?
  • 线上变更导致的故障是否要额外提升等级?
⚠️ 避坑提醒:不要只背理论等级而忽视业务上下文(例如“日志丢失”在某些场景可能是 P1);强调等级定义与业务指标(DAU、交易量)的强绑定。

📌 面试问题 3:请分享一次事故复盘,你如何组织事后总结与改进措施?

🎯 面试官考察点:

  • 复盘方法论(5Why / 时间线 / 责任人)
  • 改进措施的闭环跟踪机制
  • 是否能避免“甩锅”式复盘

🧩 回答框架:

  1. STAR 简述故障(时间、影响、止损动作)
  2. 根因分析过程(5Why 层层下钻)
  3. 输出改进项(短中长)并设置跟踪 deadline
  4. 效果验证:下次演练或混沌工程验证

✍️ 示例回答:

“某次数据库慢查引发 P1 故障,止损后组织复盘。通过时间线还原发现是索引缺失 + 变更未评审。5Why 深层原因为发布流程缺少 DBA 预检。改进项:增加变更 SQL 自动审查,并设置 48h 验证窗口。三个月后同类故障未再触发。”

🔍 可能追问:

  • 如何确保改进措施不流于形式?
  • 复盘文档需要包含哪些固定章节?
  • 如果根因是“人为操作失误”,你怎么处理?
⚠️ 避坑提醒:避免只说技术 root cause 而不提流程改进;不要指责个人,强调“系统防呆”;复盘文档必须包含“验收条件”与“owner”。

🚀 项目案例:电商核心链路 SRE 保障

业务背景某日活千万的电商平台,核心交易链路(商品->下单->支付)可靠性要求 99.99%
规模指标日订单 200 万+,峰值 QPS 1.5 万,依赖 200+ 微服务
技术栈Kubernetes / Istio / Kafka / MySQL / Redis / Prometheus + AlertManager
核心难点跨团队协作难、变更频繁导致故障、人工定位效率低

🎯 面试高频追问:

  • 如何设计 1‑5‑10 响应在该项目中的自动升级策略?
  • 故障等级定义是否根据业务收入做了权重?
  • 复盘改进项如何跨团队推动落地?
💬 可迁移回答话术:
“在该项目中,我们建立了一套基于 SLO 的 1‑5‑10 机制:错误预算消耗超阈值自动提升告警等级,同时结合混沌工程定期演练响应流程。事后复盘的改进项会录入 Jira,并设置自动化 check 确认是否已上线。这套方案不仅适用于电商,也适合任何对响应时效有严格要求的在线系统。”
📘 本章小结: 面试中关于故障应急的核心在于“速度”与“机制”。1‑5‑10 体现的是工程化响应,等级定义体现业务理解,复盘体现学习型组织。准备好一个真实案例,用 STAR 方式讲述,面试官会更有信心。