GitHub объяснил, почему прилёг на целых восемь часов
Платформа раскрыла дополнительные подробности масштабного сбоя 17 августа, который продолжался 7 часов 47 минут. Компания признала, что не успела масштабировать критическую инфраструктуру вслед за резким ростом нагрузки.
Платформа раскрыла дополнительные подробности масштабного сбоя 17 августа, который продолжался 7 часов 47 минут. Компания признала, что не успела масштабировать критическую инфраструктуру вслед за резким ростом нагрузки.
Сбой затронул GitHub.com, авторизацию, API, pull request, Issues, GitHub Actions и Copilot. По словам технического директора GitHub Влада Федорова, проблемы начались в момент, когда трафик достиг нового пика, а один из критически важных компонентов в дата-центре в центральной части США не смог справиться с нагрузкой.
«Мы не масштабировали критические компоненты до того, как спрос превысил их возможности», — признали в GitHub. Компания подчеркнула, что ни сбой 17 августа, ни другой крупный инцидент 6 августа не были вызваны обновлением кода или конфигурации. В основе обоих лежала нехватка вычислительной мощности.
После первоначального сбоя ситуацию усугубили повторные запросы. Ошибки некоторых сервисов Copilot запускали циклы повторных попыток на стороне клиентов, которые создавали дополнительный трафик и замедляли восстановление. В подробном техническом отчете GitHub также связывал всплеск запросов с поведением Visual Studio Code.
Рост нагрузки на платформу в последние месяцы резко ускорился. Если в апреле пользователи создавали около 1,4 миллиарда коммитов в месяц, то сейчас показатель достиг 2,9 миллиарда. Одновременно число объединяемых pull request приблизилось к 130 миллионам в месяц, а новых репозиториев — примерно к 24 миллионам.
GitHub утверждает, что уже значительно расширил инфраструктуру: с начала программы повышения надежности компания добавила более 3 миллионов процессорных ядер, 120 петабайт высокоскоростного хранилища и дополнительные сетевые мощности.
Параллельно GitHub ускоряет перенос нагрузки в Microsoft Azure. Сейчас облако обслуживает около 58% нагрузки платформы и половину всех Git-операций. Еще в мае доля Azure составляла лишь 12%.
После августовских сбоев компания решила ввести единые ограничения на повторные запросы, бюджеты повторных попыток и динамические тайм-ауты между сервисами, чтобы предотвращать так называемые retry storms — ситуации, когда огромное число повторных обращений само усиливает перегрузку.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.