摘要
2026年8月17日 13:28–21:15 UTC(约 7 小时 47 分),GitHub 发生全球性严重中断,网站、Pull Request、Issues、Actions、Webhooks、API、Git Operations、Pages、Copilot 及企业身份层(SAML/OIDC/SCIM/Team Sync)同时受损,峰值约 20% API 错误率、归档/raw 下载约 50% 失败,约 2.25 亿开发者受影响。官方 RCA(github.blog,CTO Vlad Fedorov 署名,incident zkxwbgr0cnmx)确认:核心为容量故障,非代码或配置变更。
时间线
2026-08-17 13:28 UTC流量创历史新高,Central US 数据中心 Istio sidecar pod 触及并发上限,故障开始(官方记 13:28–21:15,共 7h47m)
2026-08-17 13:45 UTC峰值约 20% API 错误率
2026-08-17 14:04 UTC归档/raw 下载约 50% 失败;企业身份层 SAML/OIDC/SCIM/Team Sync 受影响
2026-08-17 14:31 UTCCopilot 降级
2026-08-17 16:36 UTC定位到 problematic component 并实施 corrective action
2026-08-17 16:59 UTC大部分缓解,但 Git Ops/Issues/API 反复回落
2026-08-17 21:15 UTC完全恢复
根因
流量创历史新高,Central US 数据中心的 Istio sidecar pod 达到并发上限;而自动扩容(autoscaling)策略仅监控主服务、未监控 sidecar,导致扩容未被触发。4 个 HAProxy 节点随之耗尽流控上限,网关认证路径出现延迟与失败。恢复期间,VS Code 潜在的重试 bug 触发 Copilot Token Service 重试风暴,请求量从 7k–9k rps 飙升至 70k–100k rps,进一步拖慢恢复。官方明确:本次非代码/配置变更导致,核心是容量故障。
放大因素
- 自动扩容策略只监控主服务、漏盯 sidecar,容量保护机制形同虚设
- 4 个 HAProxy 节点流控上限被耗尽,认证网关成为瓶颈
- 恢复期的客户端(VS Code)重试 bug 形成重试风暴,将 7k–9k 放大到 70k–100k rps
- 企业身份层(SAML/OIDC/SCIM/Team Sync)与核心网关耦合,单点故障连带认证全链路
缓解措施
- 定位 problematic component 后实施 corrective action,逐步恢复
- 事后 GitHub 承诺改进 sidecar 容量监控与扩容策略、加固 HAProxy 流控、修复客户端重试行为
经验教训
- sidecar/代理层必须纳入自动扩容与容量监控,不能只盯主服务
- 网关与认证路径需独立限流与冗余,避免单点拖垮全站
- 客户端 SDK 重试应带退避/熔断,防止恢复期重试风暴
- 参考来源:GitHub 官方 RCA https://github.blog/news-insights/company-news/the-august-17-outage-and-the-work-ahead ;状态页 https://www.githubstatus.com/incidents/zkxwbgr0cnmx
检查清单
- sidecar/代理层是否纳入扩容与容量监控?
- 网关认证路径是否独立限流、多可用区?
- 客户端重试是否带退避/熔断?
- 是否对"流量创新高 + sidecar 触顶"做过故障注入演练?