目标
三方故障会诱发两个错误:回滚自己健康的栈,以及无限盯着对方状态页。先用多网络加状态页加自检出口证明故障在外部,再按预先维护的依赖映射优雅降级受影响功能,最后给“等还是切”装上带责任人的决策时钟——他们的停机不该变成你们的停机。
步骤要点
- 证明是他们不是我们:从多个网络测依赖、查对方状态页、确认自身出口与集成健康,防止无谓回滚。
- 映射受影响功能:从预先维护的依赖映射列出哪些用户功能会降级、哪些有兜底。
- 刻意降级:关掉依赖特性的开关或切兜底模式,用户看到诚实的暂不可用提示而不是报错。
- 启动决策时钟:按业务容忍度设定等待时限与备份路径触发点,指名决策人。
- 恢复后分级放量并验证排队交互,提交依赖姿态复盘:SLA、兜底就绪度与退出策略。
排错提示
时间巧合就回滚了自己是三方事件里最常见的自伤,先花五分钟做多网络加状态页加出口自检;降级页面满屏异常是因为没做兜底设计,依赖映射要在平时维护而不是事发时翻代码;盯状态页数小时说明没有决策时钟,把容忍时限写进事件模板并指名决策人。
适用边界
备份路径本身有成本与风险,未演练过的备用供应商不应在事故中首秀;决策时钟依赖业务方提供容忍度,未定义的容忍度只能默认较短。
代码示例
INC-3010 maps provider down 14:31Z
externality proof:
provider status page: incident (14:20Z)
our egress: OK (other https fine)
sandbox direct curl: timeout from 3 networks
impacted features:
map widget -> fallback: static map image
address autofill -> flag OFF, plain input
distance pricing -> fallback: flat rate (bounded)
decision clock:
tolerance: 90 min business
16:01Z if still down -> manual pricing table
provider recovers 15:44Z -> ramp back
posture review filed: single-provider, no SLA credit