Неудачное развертывание ПО привело к сбою в работе сервиса Cloudflare

Website developmentSaaS / S+S
Original author: John Graham-Cumming.

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


Сегодня на протяжении примерно 30 минут посетители сайтов Cloudflare могли видеть ошибку 502, вызванную резким скачком загрузки CPU нашей сети. Это произошло по причине неудачного развертывания программного обеспечения. Мы провели откат изменений, и сейчас сервис функционирует в обычном режиме, как и прежде, а все домены, использующие Cloudflare, вернулись к нормальному уровню трафика.


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


Добавлено в 20:09 по UTC:


Сегодня в 13:42 по UTC был обнаружен сбой в нашей сети, в результате которого посетители доменов Cloudflare видели ошибку 502 ("Bad Gateway"). Причиной этого сбоя послужило развёртывание неверно сконфигурированного правила в Cloudflare Web Application Firewall (WAF) во время стандартного процесса развёртывания новых управляемых правил Cloudflare WAF.


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


К сожалению, одно из этих правил содержало регулярное выражение, приведшее к скачку загрузки CPU до 100% на наших компьютерах повсеместно. Именно из-за этого скачка пользователи нашего сервиса были свидетелями ошибки 502, а трафик упал до 82%.


На графике ниже показан скачок загрузки CPU на одном из наших PoPs:



Мы впервые столкнулись с проблемой полного исчерпания ресурсов CPU, что было для нас крайне неожиданно.


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


В 14:02 по UTC мы осознали, что произошло и приняли решение полностью отключить наборы правил WAF, что сразу же нормализовало загрузку CPU и восстановило трафик. Мы сделали это в 14:09 по UTC.


После этого мы проанализировали проблемный pull request, откатили изменения в соответствующих правилах, протестировали свои действия, чтобы быть уверенными на 100%, что ошибка найдена верно, а затем восстановили наборы правил WAF в 14:52.


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

Tags:cloudflarecdnавария
Hubs: Website development SaaS / S+S
+13
8.5k 13
Comments 42

Popular right now

Python для веб-разработки
January 22, 202149,500 ₽SkillFactory
Python-разработчик с нуля
January 22, 202169,900 ₽Нетология
Графический дизайнер
January 22, 202121,600 ₽GeekBrains
Fullstack-разработчик на JavaScript
January 22, 202183,200 ₽SkillFactory
Факультет Java-разработки
January 23, 2021180,000 ₽GeekBrains

Top of the last 24 hours