Обычный деплой в два часа ночи
Всё началось довольно банально. Около двух часов ночи я, как обычно, решил перед сном задеплоить очередное обновление сайта. В какой-то момент скрипт деплоя просто перестал работать. Ну, думал, опять что-то пошло по пизде. Начал разбираться, проверять соединение, конфигурацию, сервер. Но потом...
Зашёл в чат Beget и обнаружил, что я там далеко не один такой. Причём проблема оказалась куда интереснее обычного сбоя: массово отвалились VPS, виртуальный хостинг, почта, панель управления и даже NS-серверы, отвечающие за работу доменов. По сути, в один момент легла вся инфраструктура одного из крупнейших российских хостинг-провайдеров.
В чате началась паника. Кто-то пытался понять, что происходит с серверами, кто-то уже считал убытки, другие безуспешно пытались связаться с поддержкой. Многие, как и я, просто случайно оказались за компьютером в неподходящее время. Спать уже никто не собирался.

Мы работаем, спасибо за внимание
Потом следующий апдейт в 8 утра. Потом сообщения о комплексном характере проблемы, ручной настройке инфраструктуры непосредственно в дата-центрах и работе всех необходимых специалистов.
И вот тут меня удивила даже не сама авария, а коммуникация Beget.
Я прекрасно понимаю, что в подобных ситуациях инженерам не до пресс-релизов, а публиковать непроверенные сведения — идея так себе. Но когда у тебя одновременно отваливается практически вся инфраструктура, а клиенты часами получают сообщения в духе «мы работаем, ждите», это выглядит довольно странно.
Особенно когда речь идёт не о моих экспериментальных стартапах, а о бизнесе, для которого каждый час простоя — вполне конкретные деньги, потерянные заявки и репутационные издержки.
Позже Beget официально опубликовал пост о массированной кибератаке и юридическое уведомление об обстоятельствах, обладающих признаками непреодолимой силы, ссылаясь на статью 401 ГК РФ.

Тут, конечно, хочется пошутить, что все это время они были заняты консультацией с юристами. Но справедливости ради, такое уведомление не означает, что инженеры вместо восстановления инфраструктуры занимались хуйней.
Тем не менее информационный вакуум на фоне происходящего выглядел, мягко говоря, странно...
Самое смешное, что я к этому готовился
Последние месяцы я как раз занимался переработкой собственной серверной архитектуры. Разносил бэкенды по разным провайдерам и странам, изучал репликацию, резервирование и прочие способы не зависеть от одной железки или одного дата-центра.
И всё это благополучно проебалось из-за DNS.
Потому что, несмотря на распределённую инфраструктуру, NS-серверы у моих доменов оставались бегетовскими. А когда они перестали отвечать, выяснилось, что наличие нескольких независимых серверов ещё не означает независимость всей системы.
Сами приложения могут прекрасно работать в разных странах, но если пользователь не может разрешить доменное имя, ему совершенно безразлично, сколько у тебя серверов и насколько грамотно ты всё спроектировал.
Довольно иронично получить такой практический урок именно тогда, когда ты уже давно изучаешь эту проблему и думаешь что решил ее.
Почти сутки без инфраструктуры
На момент написания, около 23 часов по МСК, ситуация начала улучшаться. NS-серверы постепенно восстановили работу, домены снова стали открываться, но VPS всё ещё недоступны, как и админ-панель.
То есть фактически целый рабочий день, а для некоторых проектов и значительно больше, оказался потерян из-за одной атаки.
Причём мы до сих пор не знаем ни точного механизма произошедшего, ни реального масштаба повреждений. Известно только то, что сам Beget сообщил о массированной кибератаке и необходимости ручного восстановления отдельных компонентов инфраструктуры.
И я бы не спешил обвинять самих инженеров. Уверен, там работают вполне компетентные люди, которые любят своё дело и сейчас разгребают совершенно чудовищный объём дерьма. Да и в последнее время компании откровенно не везёт: сначала история с санкциями латвийской инфраструктуры, теперь вот это.
Но сочувствие специалистам никак не отменяет вопросов к отказоустойчивости системы и организации коммуникации с клиентами.
Это теперь наша новая реальность
В одной из предыдущих статей я уже писал, что подобные истории постепенно станут регулярными. Кибератаки, взломы, блокировки сетей, аварии в дата-центрах, политические ограничения и прочие летающие стихийные бедствия.
Мы привыкли воспринимать интернет как нечто постоянно работающее. Купил сервер, загрузил сайт, настроил домен — всё. Но на самом деле за любым сайтом стоит довольно длинная цепочка зависимостей, каждая из которых может однажды превратиться в единую точку отказа.
И для бизнеса вывод здесь довольно простой: сейчас совершенно точно не время экономить на инфраструктуре и компетентных системных администраторах.
Те, кто серьёзно относится к доступности своих продуктов, давно занимаются резервным копированием, репликацией, географическим распределением инфраструктуры, резервированием DNS и подготовкой сценариев аварийного восстановления. Причём недостаточно просто иметь бэкапы — нужно ещё понимать, как быстро и куда ты сможешь их развернуть.
Потому что два сервера у разных провайдеров, завязанные на одну общую точку отказа, — это не совсем та отказоустойчивость, за которую хотелось бы платить.
А лично для меня вся эта история оказалась довольно полезным практическим опытом. Я ничего не потерял, кроме доступности сайта и 10–15 посетителей, которые могли бы сегодня на него зайти, зато своими глазами увидел, как за несколько минут рушится инфраструктура, на которую завязаны тысячи чужих проектов.
Заодно получил возможность проверить собственные архитектурные решения не в теории, а в условиях вполне реальной аварии. Результаты, скажем так, есть куда улучшать.
В общем, выводы сделаны, слабые места обнаружены, задачи записаны ✍️
Загрузка комментариев...