Сегодня ночью изолировали базу данных API. На очереди еще изоляция Redis серверов и изоляция очередей RabbitMQ на разные сервера.
На данный момент API продолжает работать стабильно.
Нам потребуется еще месяц, чтобы добавить метрик и исследовать все подозрительные места, чтобы однозначно определить причины, а также гарантировать, что ситуация не повторится.
Сейчас инцидент закрываем, вернемся с подробным разбором и отчетом о проделанной работе через месяц.
Posted Sep 30, 2019 - 11:06 UTC
Update
API работает стабильно, мы успешно произвели несколько выкладок кода, и теперь можем приступить к улучшениям, направленным на стабильность.
Весь следующий месяц мы посвятим надежности API.
Мы также приблизились к ответу на вопрос о причинах инцидента, но пока нет 100% уверенности.
Рабочая гипотеза в том, что мы уперлись в сетевую нагрузку на веб-серверах, и попытались отмасштабироваться добавлением новых серверов. Однако, из-за совпадения нескольких факторов, конфигурация системы привела к тому, что новые сервера испытывали двойную сетевую нагрузку, а мы сделали ошибочные выводы, что они отказали из-за ошибок при их настройке или сетевым проблемам, и вывели их из эксплуатации.
Теперь, когда API изолирован, мы обнаружили и решили проблему с удвоившимся трафиком на новые сервера.
Нам потребуется еще время на подробный инцидент репорт, и мы хотим убедиться, что инцидент не повторится.
Вернемся через неделю.
Posted Sep 23, 2019 - 18:00 UTC
Update
Перенесли всю нагрузку на выделенный изолированный кластер.
Пока все еще не уверены в причинах проблем, продолжаем разбираться и мониторить ситуацию.
Последние сутки API работает стабильно, повторения ситуации не ожидаем. Тем не менее, так как пока точной причины мы не знаем (пока что выглядит как совокупность нескольких факторов) - продолжаем разбираться и не уменьшаем усилия по разрешению инцидента.
Вернемся в течение 1-3 рабочих дней, по мере появления новой информации.
Posted Sep 19, 2019 - 16:59 UTC
Update
Примерно 30% нагрузки на API перенесли на изолированную инфраструктуру. Продолжаем мониторить и постепенно переносить траффик.
Обновим статус завтра.
Posted Sep 18, 2019 - 13:03 UTC
Update
У нас есть хорошая гипотеза о причинах проблемы, на данный момент мы считаем, что из-за чрезмерной нагрузки мы упираемся в лимиты производительности клиента Redis. Проблема не решается простым добавлением серверов, и мы активно ищем решение.
Что мы делаем:
- Сегодня ночью запланирован первый блок работ по изоляции API на отдельную инфраструктуру. Планируем полностью изолировать до конца недели. - Улучшаем покрытие метриками, чтобы найти что именно и при каких условиях приводит к повышенной нагрузке. К сожалению, для этого необходимо перевыкладывать код на продакшен, что в данной ситуации может привести (и, увы, часто приводит) к кратковременной недоступности. Из-за этого мы вынуждены двигаться медленно, и экспериментировать ночью. - Меняем работу приложения таким образом, чтобы по другому использовать клиент Redis, что, в теории, должно системно решить проблему. Это может занять несколько дней.
Также обсуждаем набор шагов, чтобы избежать повторения ситуации, опубликуем все вместе с финальным отчетом по инциденту.
Завтра обновим статус.
Posted Sep 17, 2019 - 13:59 UTC
Update
Мы подготовили план работ по переносу сервисов API-гейта на изолированные машины. Это должно помочь лучше справляться с нагрузкой. Работы будут проведены на этой неделе.
Posted Sep 16, 2019 - 18:11 UTC
Update
Сегодня пристально смотрели на все мониторинги. Таких снижений производительности, как вчера, не наблюдалось.
На выходных подготовимся к переводу API-гейта на новую инфраструктуру, это должно помочь системно.
Также связались с поддержкой производителя сетевого оборудования, ждём ответа.
Вернёмся с обновлением статуса в понедельник.
Posted Sep 13, 2019 - 16:25 UTC
Update
Диагностировали возможную причину проблем: подозреваем сетевое оборудование, с которым работает часть веб-серверов. Мы перенаправили большую часть трафика на другие сервера и продолжаем разбираться.
Нам кажется, что несколько инцидентов с начала сентября связаны с этими проблемами. Мы анализируем все такие поломки в комплексе и опубликуем подробный post-mortem по результатам.
Posted Sep 13, 2019 - 07:17 UTC
Monitoring
В данный момент все сервисы работают. Ищем причины возникновения ошибки и продолжаем наблюдать.
Вернёмся с подробным разбором до конца дня.
Posted Sep 12, 2019 - 09:17 UTC
Investigating
У нас проблемы с API-гейтом: часть обращений к нашим сервисам V3 не работает. Работаем над починкой, вернёмся со статусом в 12:30.
Posted Sep 12, 2019 - 09:06 UTC
This incident affected: Процессинг, Javascript API, and Рекомендации на сайте.