Em fevereiro, o GitHub enfrentou dois incidentes que afetaram o desempenho de seus serviços. Este artigo detalha o que aconteceu, os horários críticos e as medidas que a empresa tomou para resolver os problemas e evitar que se repitam. Acompanhe para entender melhor como a disponibilidade do GitHub é mantida e quais são os desafios enfrentados.
Incidentes de fevereiro no GitHub
No dia 25 de fevereiro de 2025, entre 14:25 UTC e 16:44 UTC, houve atrasos na entrega de notificações via e-mail e web. No pico do incidente, aproximadamente 10% das notificações demoraram mais de 10 minutos para serem entregues, enquanto os 90% restantes foram entregues entre 5 e 10 minutos. A causa foi a sobrecarga dos worker pools em horários de pico, o que atrasou o processamento das filas.
Para resolver o problema, o serviço foi ampliado para atender à demanda. Desde então, foi estabelecida uma capacidade de linha de base mais alta para evitar novos atrasos. Além disso, a empresa está aprimorando o planejamento de capacidade para gerenciar proativamente o pool no futuro.
No dia 3 de fevereiro de 2025, às 18:01 UTC, outro incidente foi declarado devido a falhas nas Migration Tools. A causa raiz foi um deployment de um componente do sistema que levou à falta de imagens Docker, causando uma interrupção de 100% para todos os usuários que tentavam migrações naquele período.
A situação foi contornada com um rollback para a versão estável anterior, o que restaurou o serviço em aproximadamente 30 minutos. Para evitar que isso ocorra novamente, a cobertura de testes e os fluxos de trabalho foram aprimorados para garantir a validação das dependências críticas.
Medidas Adotadas para Melhorar a Disponibilidade do GitHub
Após os incidentes, o GitHub implementou diversas medidas para fortalecer sua infraestrutura e garantir maior disponibilidade do GitHub. O aumento da capacidade de linha de base nos worker pools foi crucial para lidar com picos de demanda e evitar atrasos nas notificações.
A empresa também está focada em melhorar o planejamento de capacidade, adotando uma abordagem mais proativa para evitar futuras sobrecargas. Além disso, aprimorar a cobertura de testes e os fluxos de trabalho garante que as dependências críticas sejam validadas antes de qualquer deployment.
Ações como a implementação de rollbacks rápidos para versões estáveis anteriores minimizam o impacto de eventuais falhas. Essas medidas refletem o compromisso do GitHub em manter seus serviços operacionais e eficientes para todos os usuários, garantindo que a plataforma continue sendo confiável.
Para acompanhar as atualizações em tempo real sobre as mudanças de status e resumos pós-incidentes, você pode seguir a página de status do GitHub. E para saber mais sobre os projetos em que a equipe está trabalhando, confira o GitHub Engineering Blog.