РАССМОТРЕНИЕ ИНЦИДЕНТА: 19 МАЯ 2021 Г.
Брайант Кау и Леонардо Зиццамия
РЕЗЮМЕ
В среду, 19 мая, с 5:50 до 7:38 по тихоокеанскому времени возникли проблемы с подключением к coinbase.com. , Мобильные приложения Coinbase и Coinbase Pro. За это время многие пользователи столкнулись с медленной загрузкой и ошибками при попытке доступа к Coinbase, включая такие функции, как покупка, продажа и торговля. В этом сообщении подробно описывается сбой, объясняется его причина и описываются изменения, которые мы внесли для предотвращения подобных сбоев в будущем.
ОТКЛЮЧЕНИЕ
Произошла ошибка большой всплеск трафика из-за того, что многие пользователи отреагировали на внезапное падение цен на рынке криптографии, приведшее к этому инциденту (ETH упал на 20%, BTC упал на 25%). Группа инженеров по вызову собралась после того, как была вызвана высокая частота ошибок в нескольких службах.
Затронутые службы были:
Веб-серверы вышли из системы: это привело к тому, что пользователи не были t вошел в систему, чтобы попасть на страницу с ошибкой при посещении coinbase.com.
Служба GraphQL: из-за этого части мобильного приложения загружались очень медленно и возникали ошибки примерно в 10% случаев.
Coinbase Pro API: это привело к тому, что Coinbase Pro была частично недоступна.
Служба обработки платежей по картам за пределами США: из-за этого клиенты из других стран, пытающиеся купить криптовалюту с помощью карты, были отклонены.
После выявления этих проблем инженеры разделились на разные группы, чтобы исследовать каждую проблему параллельно и определить приоритетность последующих действий.
АНАЛИЗ ПЕРВОПРИЧИН
дней после сбоя, мы восстановили четкую картину того, что произошло с первой минуты.
Вышедшие из системы страницы coinbase.com были в основном недоступны, поскольку экземпляры начали выходить из строя и заняли более 40 минут es, чтобы вернуться в здоровое состояние. Быстрый всплеск запросов привел к достижению максимального порога соединений маршрутизатора Nginx, который был вручную увеличен во время инцидента. В конечном итоге это позволило устранить узкое место.
HTML-ответ NodeJS
2. Мы наблюдали тайм-ауты и увеличенную задержку в нашей службе GraphQL, которая собирает данные из базовых служб. Таймауты были вызваны слишком медленным автоматическим масштабированием GraphQL. В конечном итоге автоматическое масштабирование сработало, и ошибки исчезли, восстановив функциональность мобильного приложения и вошедших в систему пользователей.
Ошибки GraphQL
3. Мы видели, что база данных, на которой работает обмен Coinbase Pro, имела высокую задержку и загрузку процессора. Кроме того, серверы API, на которых запущен наш поток рыночных данных, были сильно загружены ЦП. Мы увеличили производительность операций, настроенную для базы данных, а также предоставили больше серверов API.
Время отклика API Coinbase Pro
4. В нашей службе обработки платежей по картам за пределами США количество неудавшихся платежей увеличилось, поскольку очередь на обработку платежей становилась невыполненной. Мы увеличили количество работников очереди, и платежи по картам стали успешными.
Размер очереди
УЛУЧШЕНИЯ
В Coinbase мы выделили значительные ресурсы на повышение надежности, включая регулярные нагрузочные тесты для подготовки нам в периоды высокой загруженности. Однако в ходе этого инцидента были выявлены некоторые слепые зоны, которые необходимо устранить, особенно в случае очень внезапных всплесков трафика.
Общей темой вокруг нескольких сбоев в этом инциденте были правила автомасштабирования, которые не были адаптированы к природе скачки трафика, которые могут вызвать криптовалютные рынки. Мы работаем над адаптацией наших нагрузочных тестов, чтобы лучше моделировать реальные ситуации, такие как внезапные скачки трафика. Это поможет выявить больше проблем, таких как ненастроенные правила автомасштабирования, во время контролируемого тестирования.
Еще одно улучшение, в которое мы инвестируем, – это реализация аварийных выключателей для частей клиентского приложения, чтобы при возникновении сбоев мы могли сохранить незатронутые части наших приложений работают, пока мы работаем над устранением сбоев.
Мы очень серьезно относимся к времени безотказной работы и производительности нашей инфраструктуры и прилагаем все усилия, чтобы поддержать миллионы клиентов, которые выбирают Coinbase для управления свою криптовалюту. Если вы заинтересованы в решении задач масштабирования, подобных тем, которые представлены здесь, приходите поработать с нами.
Постмортный инцидент: 19 мая 2021 г. был первоначально опубликован в блоге Coinbase на Medium, где люди продолжают обсуждение выделив эту историю и ответив на нее.