O GitHub anunciou, em post técnico, a migração de seus repositórios Git para a Azure, a nuvem da Microsoft. Segundo a empresa, enquanto o tráfego de Git cresceu de forma exponencial no último ano, quase todos os repositórios passaram a ficar em dois lugares ao mesmo tempo: nos data centers próprios do GitHub e na Azure. Os restantes, que estão entre os mais movimentados da plataforma, ainda sofrem com um atraso de ida e volta de 25 ms entre as regiões.
O motivo da mudança é o avanço dos agentes de IA, que aumentaram muito o volume de operações. Os data centers do GitHub têm um limite de energia, e a expansão também depende de equipamentos físicos que demoram para chegar. Por isso, a empresa decidiu mover os dados primeiro e só depois mexer na arquitetura, já que fazer as duas coisas ao mesmo tempo seria arriscado. Hoje, a maioria dos repositórios tem duas de suas cinco réplicas na Azure, e a nuvem já atende cerca de metade do tráfego Git.
Para os repositórios mais difíceis, a solução foi mudar a forma como as gravações são organizadas. Antes, um bloqueio cobria o repositório inteiro durante cada atualização, então todas as escritas esperavam uma na fila da outra. Agora, o bloqueio passa a valer apenas para cada referência, como um branch, e escritas em referências diferentes podem acontecer ao mesmo tempo. Segundo o GitHub, em testes internos com tráfego realista, as gravações em referências diferentes tiveram de 3 a 4 vezes mais capacidade, com menor latência.
Outra mudança separa a leitura da gravação. Como a maioria dos repositórios recebe de 100 a 1.000 leituras para cada gravação, a empresa criou uma réplica virtual que apenas grava os dados no armazenamento de objetos da Azure, sem atender leituras. Réplicas de leitura podem ser criadas sob demanda e carregam seu cache a partir desse armazenamento. Nos testes, a própria ferramenta de carga do GitHub chegou aos seus limites antes do sistema.
O GitHub afirma que o próximo gargalo é a capacidade de gravação, e que ainda há etapas a vir. A empresa promete um post final da série na semana que vem, durante o evento GitHub Universe, com a arquitetura completa.

Comentários