GitHub объяснил причины недавних массовых сбоев

GitHub сообщил о серии сбоев доступности и снижении производительности, которые затронули несколько сервисов компании в январе, а также 2, 7, 9 февраля и 5 марта. Команда признала, что платформа не соответствовала собственным требованиям по доступности и что стабильная работа критически важна для пользователей.

По данным GitHub, инциденты произошли на фоне очень быстрого роста нагрузки, что выявило ограничения текущей архитектуры. Основные причины связаны с ускоренным ростом трафика, сильной связностью ключевых сервисов и недостаточной способностью системы отсекать избыточные запросы от некорректно работающих клиентов.

Самым заметным стал инцидент 9 февраля. Тогда перегрузился кластер баз данных, отвечающий за аутентификацию и управление пользователями. Ошибки, приведшие к этому, были допущены за несколько дней и недель до события и проявились в пиковый момент.

В начале февраля были выпущены две популярные клиентские программы, которые стали делать значительно больше запросов к API GitHub. Это вызвало более чем десятикратный рост объёма операций чтения. Рост нагрузки был постепенным, так как пользователи обновляли приложения не одновременно.

7 февраля GitHub развернул новый модельный функционал и сократил срок жизни кэша настроек пользователей с 12 до 2 часов. Изменение было связано с ограниченной доступностью вычислительных ресурсов и частичным запуском этой модели для ограниченного круга клиентов. В выходные система работала штатно, а существующие механизмы мониторинга не позволили заметить надвигающуюся проблему.

9 февраля совпали три фактора: регулярный пиковый трафик в начале рабочей недели, массовые обновления клиентских приложений и ещё один релиз модели. Суммарный рост операций записи из‑за нового TTL и чтения из‑за клиентов перегрузил кластер. Изменение TTL быстро определили как причину части нагрузки, но долго не удавалось понять, почему продолжают расти операции чтения, что затянуло инцидент.

Расследование показало, что архитектурное решение по хранению настроек пользователей в этом кластере было принято ранее ради простоты, когда моделей и политик для них было мало. Со временем объём данных вырос с нескольких байт до килобайт на пользователя, а нагрузка проявлялась в основном при развёртывании новых моделей и политик и частично скрывалась настройками TTL. Поскольку кластер обслуживает данные аутентификации и управления пользователями, сбой затронул многие зависящие от них сервисы.

GitHub также сообщил о двух серьёзных случаях, когда система отказоустойчивости сработала недостаточно эффективно или не сработала как задумано. В ходе анализа выявили неожиданные единичные точки отказа и необходимость регулярных проверок процедур переключения на резерв в рабочей среде.

Отдельные факторы расширили масштаб и продолжительность сбоев, что привело к более широкому и длительному влиянию на пользователей. Подробности по каждому из инцидентов GitHub пообещал продолжать публиковать в отдельных разборах.

Инженерные команды компании сосредоточены на краткосрочных и долгосрочных мерах. Основные направления работ — управление растущей нагрузкой за счёт повышения устойчивости и изоляции критических компонентов, а также предотвращение распространения локальных сбоев на всю платформу.

В ближней перспективе GitHub приоритизирует стабилизацию, чтобы снизить вероятность и масштаб следующих инцидентов. Также компания ускоряет крупные изменения платформы, направленные на устойчивую работу при высоких темпах роста и сохранении высокой доступности.

GitHub подчёркивает важность прозрачности для пользователей. Все значимые инциденты, влияющие на работу сервисов, описываются на странице статуса и в ежемесячных отчётах по доступности. Отчёт за февраль, по словам компании, выходит сегодня, а мартовский будет опубликован в апреле.

Технический директор GitHub Владимир Фёдоров, который подписывает обращение, до прихода в компанию был сооснователем стартапа UserClouds и в течение 12 лет возглавлял крупные инженерные команды в Facebook (ныне Meta) в сферах приватности, рекламы и платформенных решений. Ранее он работал в Microsoft, окончил Caltech со степенями бакалавра и магистра по информатике и сейчас входит в совет директоров Codepath.org, занимающейся подготовкой поколения инженеров и технических лидеров для эпохи ИИ.

Источник: заявление GitHub и сопроводительный разбор инцидентов на сайте компании.

*Meta – запрещенная в РФ организация.

Читать новости ИИ и технологий в Telegram.


Оцените статью
Gimal-Ai