代码托管平台GitHub近日公布事故调查结果。本次故障持续7小时47分钟,多个核心服务受到影响,原因并非单一组件失效,而是数据中心网络饱和、自动扩容配置错误,以及客户端重试缺陷相互叠加,最终放大了系统压力。
故障持续近八小时
这次事故于8月17日13时28分(协调世界时)开始,至21时15分完全恢复。受影响的服务包括项目问题追踪、拉取请求、应用程序接口、自动化工作流以及人工智能编程助手等。开发者在项目协作、接口访问和持续集成流程中,均可能遇到访问失败、响应异常或相关功能不可用等问题。
GitHub披露的信息显示,故障最初出现在美国中部数据中心的负载均衡器网络。随着流量不断增加,该网络逐渐达到饱和状态,基础设施承受的压力迅速上升。负载均衡器承担着请求分发和服务接入等职责,其性能下降后,影响会扩展到多个依赖同一接入链路的功能。
多个环节共同放大影响
在网络出现压力后,自动扩容策略中的配置错误未能及时发挥缓解作用,反而使系统更难恢复到稳定状态。正常情况下,扩容机制应根据负载变化增加资源或调整服务能力,但错误配置可能导致资源调度无法按照预期执行,从而延长故障处理时间。
GitHub还指出,客户端重试行为进一步加重了事故。Visual Studio Code中的一个重试缺陷,使相关流量被放大约10倍。当服务端已经处于拥塞状态时,大量请求重复发送,会占用更多网络和计算资源,并让原本的请求积压更加严重。由此,最初的网络饱和、扩容失效和异常重试形成连锁反应,故障范围与持续时间均被扩大。
多项开发服务同时受到影响
- 项目问题追踪功能受到影响;
- 拉取请求及项目协作流程出现异常;
- 应用程序接口访问受到影响;
- 自动化构建与工作流服务出现问题;
- 人工智能编程助手相关功能受到影响。
这些服务覆盖了代码托管、团队协作、自动化交付和开发辅助等环节,因此一次基础设施层面的故障可能同时影响开发者的多个工作流程。对于依赖平台完成代码审查、任务管理和自动化部署的项目而言,服务中断也可能造成协作延迟。
平台稳定性再次受到关注
今年以来,GitHub已多次出现服务中断事件,平台稳定性因此再次成为开发者社区讨论的重点。此前已有多个知名开源项目宣布迁出GitHub。相关变化反映出,项目在享受集中式托管、协作工具和自动化能力便利的同时,也需要面对单一平台出现故障时带来的集中风险。
从此次调查结果看,事故并不是由某个孤立环节单独引发,而是基础设施容量、配置管理和客户端请求处理机制之间的相互作用所致。对于云服务和开发平台来说,故障恢复不仅取决于发现单点问题,还取决于能否及时阻断异常流量、校正扩容策略,并避免重试机制在高压环境下进一步放大请求。