← 中文资源

简体中文版本

三方依赖故障工作流

证明故障在外部,优雅降级依赖功能,并给"等还是切"装上决策时钟。

阅读英文原文

目标

三方故障会诱发两个错误:回滚自己健康的栈,以及无限盯着对方状态页。先用多网络加状态页加自检出口证明故障在外部,再按预先维护的依赖映射优雅降级受影响功能,最后给“等还是切”装上带责任人的决策时钟——他们的停机不该变成你们的停机。

步骤要点

  1. 证明是他们不是我们:从多个网络测依赖、查对方状态页、确认自身出口与集成健康,防止无谓回滚。
  2. 映射受影响功能:从预先维护的依赖映射列出哪些用户功能会降级、哪些有兜底。
  3. 刻意降级:关掉依赖特性的开关或切兜底模式,用户看到诚实的暂不可用提示而不是报错。
  4. 启动决策时钟:按业务容忍度设定等待时限与备份路径触发点,指名决策人。
  5. 恢复后分级放量并验证排队交互,提交依赖姿态复盘: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