


21 октября 2026 года GitHub опубликовал инженерный разбор перестройки Git-инфраструктуры. Компания сообщила, что копия 99,99999% её репозиториев уже размещена в Azure. Это не заявление о полном завершении миграции всех реплик. На Mentoring.digital разбираем основную архитектурную идею: независимые операции не должны ждать общей блокировки без необходимости.
В описанной прежней схеме обновление ссылки удерживает блокировку всего репозитория, пока идёт согласование записи между репликами. При размещении части реплик в другом регионе дополнительная сетевая задержка влияет на очередь. Проблема особенно заметна для наиболее активно изменяемых репозиториев.
GitHub меняет область сериализации: вместо всего репозитория она должна охватывать отдельную Git-ссылку. Тогда обновления разных веток в обычном случае могут выполняться независимо. При этом последовательность обновлений одной ссылки должна сохраняться. Важен именно выбор области согласования, а не отказ от согласованности данных.
Следующий описанный элемент: виртуальная реплика записи, которая обеспечивает долговечное сохранение данных в Azure Blob Storage. Реплики чтения могут прогревать кэш из объектного хранилища и масштабироваться отдельно от кворума записи. Команда также отмечает ограничения промежуточной схемы: фоновая синхронизация подходит ещё не для каждого вида чтений.
Это последовательная перестройка работающего сервиса. Из публикации нельзя вывести обещание определённого ускорения clone или push для любого пользователя. Время отдельной операции зависит и от сети, размера данных, текущего состояния кэша и других условий.
Редакционный вывод для проектирования систем: прежде чем добавлять вычислительные узлы, найдите общий ресурс, который последовательно обслуживает независимые операции. Уменьшение области блокировки иногда меняет предел масштабирования сильнее, чем увеличение числа обработчиков.
При этом перенос готового решения на свой сервис без анализа опасен: сначала сформулируйте, какие обновления обязаны наблюдаться в одном порядке и что считается подтверждённой записью. Если Git используется только как инструмент, понимание ссылок и веток можно углубить с наставником по Git. Обновлять Git-клиент ради описанной серверной перестройки публикация не требует.