8月17日的停机故障及其后续工作
The August 17 outage

原始链接: https://github.blog/news-insights/company-news/the-august-17-outage-and-the-work-ahead/

8月17日,GitHub发生了一次持续近8小时的宕机,原因是美国中部数据中心的容量故障。流量激增使关键基础设施不堪重负,导致整个平台出现身份验证问题和服务中断。虽然此次宕机并非由代码变更引起,但GitHub的快速增长(月度提交量从14亿次增至29亿次)已超过了当前的系统极限。 首席技术官Vladimir Fedorov承认了此次故障,并强调GitHub必须加快扩展步伐。为解决这一问题,公司已增加了大量的CPU和存储容量,大幅提升了向Azure的迁移力度,并正在重构系统以实现线性读取扩展。 在运营层面,GitHub正在隔离关键系统以最大限度地减少依赖,并引入了新的保障措施(如标准化的重试限制),以防止恢复过程中出现级联故障。GitHub承认这些事件给开发者社区带来了困扰,目前正优先考虑可靠性和可观测性的提升,以重获用户信任。公司将继续致力于构建能够应对全球用户群日益增长需求的架构。

此次 Hacker News 讨论围绕 GitHub 近期发布的八月份宕机事后报告展开。报告指出,宕机源于流量激增——自四月以来,月度提交量从 14 亿次猛增至 29 亿次。 **讨论要点:** * **基础设施压力:** 许多用户和工程师认为,GitHub 在扩展基础设施以应对由人工智能生成的提交(即“AI 垃圾”)所带来的指数级负载方面显得力不从心。批评者指出,平台对重试机制和“惊群效应”的处理不当,表明其重试逻辑和负载均衡在压力下已然失效。 * **工程批评:** 参与者就激进重试的必要性展开了辩论。虽然一些人认为这对于网络弹性至关重要,但许多人指出失控的重试反而加剧了宕机,并主张采用断路器和带有抖动的指数退避算法。 * **企业与领导层担忧:** 讨论反映出人们对微软旗下的 GitHub 缺乏透明度,以及其似乎将 AI 应用优先于平台稳定性的做法感到不满。怀疑者还批评了首席技术官(CTO)缺乏公开的代码贡献活动,并质疑平台将 Azure 作为迁移目标的依赖性。 * **用户情绪:** 许多开发者对服务可靠性的下降表示失望,一些人威胁要迁移到 Forgejo 或 Codeberg 等自托管替代方案。
相关文章

原文

On August 17, GitHub experienced an outage that lasted 7 hours and 47 minutes. It disrupted github.com, authentication, GitHub Actions, APIs, pull requests, issues, and Copilot, affecting developers and organizations around the world. If you were trying to ship software that day, we let you down.

This was our second significant incident in August, following an actions failure on August 6. In March and April, I shared the work underway to improve GitHub’s reliability. We have made progress, but these incidents make clear that we must accelerate this work.

What happened

Our investigation found that the outage began when traffic reached a new peak, and a critical infrastructure component in our Central US data center failed to scale with it. The resulting capacity pressure spread through our systems, causing authentication failures and disrupting multiple GitHub services.

Recovery required several coordinated actions. Teams rerouted traffic, isolated affected infrastructure, and restored services in stages. Most GitHub services recovered earlier that day, but some Copilot services took longer. Errors in those services triggered a client-side retry loop that increased traffic during recovery. We had to mitigate that behavior before we could safely restore traffic. The full root cause analysis includes a detailed technical timeline.

Neither outage was caused by a code or configuration change. Both incidents were capacity failures at their core. We failed to scale critical components before demand exceeded their capacity. Since April, monthly commits have grown from 1.4 billion to 2.9 billion. That growth explains the pressure on our systems, but it does not excuse these outages.

Three side-by-side dark-themed line charts show strong growth from 2023 to 2026: merged pull requests per month rising to about 130M, commits per month rising to about 2.9B, and new repositories per month rising to about 24M, with acceleration in 2025–2026.

What we have done and what comes next

As part of the reliability commitments we made earlier this year, we have focused on three priorities: adding capacity, improving efficiency, and removing architectural bottlenecks. We have since added more than 3 million CPU cores, 120 petabytes of high-speed storage, and significant network capacity. We installed as much hardware as available power allowed in our existing data centers while accelerating our migration to Azure.

Today, Azure serves roughly 58% of GitHub’s platform load and half of all Git operations, up from 12% of platform load in May. This expanded footprint has also supported the growth in GitHub Actions job runs shown below.

Large dark-themed line chart titled ‘Growth in completed GitHub Actions runs’ shows a rising trend from early 2026 to August, with regular weekly dips and increasing peaks. Values grow from roughly 15–30M early in the year to over 100M, ending near 115.4M.

Azure’s infrastructure and capacity have also accelerated our work to scale the largest monorepos. Our next milestone is an architecture that scales read capacity linearly with the number of readers, enabling unlimited read operations. We will roll it out gradually, beginning with the largest monorepos.

Two dark-themed ‘Fetch Throughput History’ charts compare fetch operations per second over short time windows. Left chart fluctuates and plateaus around ~1,000 OPS/S before dropping near the end; right chart climbs steadily in steps to about ~1,800 OPS/S.

Scale is not our only challenge. As the pace and complexity of change increased, our existing operational practices did not keep up. We have redirected teams and resources toward availability and invested in stronger testing, safer rollouts, better observability, and more effective alerting. We have made progress, but this work is not complete.

In addition, we are also isolating critical systems and removing shared dependencies between them. This work is designed to reduce the likelihood of an outage and limit its impact when one occurs.

We learn from every outage and add new work to our availability workstream. The August 6 and August 17 incidents led to two immediate changes. First, we are applying consistent retry limits, retry budgets, and variable timeouts across service-to-service interactions to prevent retry storms and cascading load. Second, we are reviewing lower-priority CPU and memory alerts to identify components that could fail during sudden traffic spikes.

Our commitment to high availability isn’t just a technical promise. The developer community depends on GitHub to build, ship, and operate their work. That is only possible if you can rely on us, and on August 17, you couldn’t. It is our responsibility to fix that. We’ll earn your trust through the scaling and reliability of the platform.

Written by

Vladimir Fedorov is GitHub's Chief Technology Officer, bringing decades of experience in engineering leadership and innovation. A passionate advocate for developer productivity, Vlad is leading GitHub’s engineering team to shape the future of developer tools and innovation with a developer-first mindset.

Before joining GitHub, Vlad co-founded UserClouds, a startup specializing in data governance and privacy. He spent 12 years at Facebook, now Meta, as Senior Vice President, leading engineering teams of over 2,000 across Privacy, Ads, and Platform. Earlier in his career, Vlad worked at Microsoft and earned both his BS and MS in Computer Science from Caltech. He currently serves on the board of Codepath.org, an organization dedicated to reprogramming higher education to create the first AI-native generation of engineers, CTOs, and founders.

Vlad lives in the Bay Area and when not working enjoys spending time outside and on the water with his family.

联系我们 contact @ memedata.com