根据GitHub博客,GitHub在2024年7月经历了一个具有挑战性的月份,四次重大事件导致多个服务性能下降。
事件分解
7月5日(持续97分钟)
7月5日,16:31到18:08 UTC期间,GitHub的Webhooks服务由于配置更改导致性能下降,该更改移除了后台作业请求的身份验证,导致这些请求被拒绝。此事件导致Webhooks传递延迟,平均延迟24分钟,最大延迟71分钟。18:21到21:14 UTC期间的次级问题进一步影响了拉取请求上的GitHub Actions运行,增加了作业传递的延迟。
为了防止未来类似事件的发生,GitHub更新了仪表盘,改进了健康检查,并为类似问题引入了新的警报。公司也在努力实现更好的工作负载隔离,以尽量减小此类事件的影响。
7月13日(持续19小时26分钟)
7月13日,00:01到19:27 UTC期间,GitHub Copilot服务发生严重性能下降。Copilot代码完成的错误率达到了1.16%,而GitHub Copilot Chat达到了63%。问题被追溯到一个合作伙伴服务执行的资源清理作业,错误地针对了必要资源。GitHub在资源恢复期间努力减轻影响。
GitHub现正与合作伙伴服务合作,实施保障措施以防止未来事件,并增强流量重路由过程以更快速地缓解问题。
7月16日(持续149分钟)
7月16日,00:30到03:07 UTC期间,Copilot Chat服务性能下降并拒绝了所有请求,错误率接近100%。问题是在常规维护期间触发的,当时GitHub服务断开连连接并在重新连接时使依赖服务不堪重负。
为了解决这个问题,GitHub正在改进其重新连接和断路逻辑,以防止未来类似事件发生。
7月18日(持续231分钟)
7月18日,从22:38 UTC开始,上游提供商的网络问题导致Actions、Copilot和GitHub Pages服务的体验下降。多达50%的Actions工作流作业卡在排队状态,用户在启用Actions或注册自托管运行器时遇到问题。问题是由于美国中部地区的后端资源无法访问所致。
GitHub通过更新复制配置来缓解问题,这使得一个地区不可用时仍能成功请求。公司现正加强复制和故障转移流程,以更好地处理类似情况并减少恢复时间。
未来缓解措施
为应对这些事件,GitHub正在采取多项措施以提高服务的弹性。这些措施包括更新仪表盘,增强健康检查,实施新警报,与合作伙伴服务合作,以及改进重新连接和断路逻辑。公司还专注于改进工作负载隔离和增强复制及故障转移流程。
用户可以关注GitHub的状态页面和GitHub工程博客,以获取实时状态更新和事件后总结。
Image source: Shutterstock