Почему ваш сайт может упасть и что сделать, чтобы этого не случилось

«Доброй ночи, это служба поддержки?»

Почему ваш сайт может упасть и что сделать, чтобы этого не случилось

Материал подготовлен при поддержке NetAngels

Хотя бесперебойная работа серверов на уровне минимум 99,99% — почти стандарт для индустрии, сбои продолжают случаться. И если сайт упал в обычное время — это просто плохо. Но если клиенты не могут открыть его во время распродажи (как, например, было в прошлом году с IKEA) — это потеря денег и репутационный ущерб.

Куда в таком случае бежать и можно ли заранее сделать так, чтобы ничего не «падало», — спросили эксперта.

Антон Халиков
Директор NetAngels и Host.Expert

Как сделать так, чтобы мой сайт никогда не падал?

Для этого нужно, чтобы сервер, на котором ваш сайт базируется, работал в 100% случаев. Загвоздка в том, что работоспособность сервера зависит от большого количества переменных — количества ошибок в коде, адекватного охлаждения, устойчивости к атакам.

Главное, что вы можете, — покупать столько мощностей, сколько требуется вашему решению — коробочному или самописному.

Поставщики «коробок» — например, «Битрикс 24» — всегда сами указывают минимальные требования по мощностям. Но если вы используете авторскую разработку и пока сами не знаете, сколько мощностей нужно, то придётся выяснять экспериментальным путём. Купите стартовый пакет и наблюдайте за нагрузкой: если падает — докупайте ресурсы. Если пользуетесь облачными серверами, то у многих провайдеров можно менять тариф хоть каждый час.

Не проще сразу выбрать сервер «на вырост»?

Если пользуетесь «железным» сервером, то можно брать его с запасом. Для облачной инфраструктуры это нецелесообразно. Её главное преимущество как раз в гибкости: она позволяет в любой момент мгновенно увеличить ресурсы или, наоборот, отказаться от ненужных мощностей.

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

У меня — облачный сервер. Если нагрузка вырастет неожиданно, то сайт упадёт или мощности сразу добавятся автоматически?

Зависит от того, подключили ли вы автоскейлинг. Это способность системы автоматически добавить ресурсы, если проект упирается в пределы по нагрузке.

Мы отключили автоскейлинг на серверах NetAngels, когда поняли, что для большинства клиентов эта функция не приносит пользы. Их проекты почти всегда падали по другим причинам, не связанным с уровнем нагрузки на сервер. Но из-за автоматического добавления ресурсов клиенты не замечали проблему — а значит, и не могли её исправить.

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

Клиенты также могут самостоятельно развернуть автоскейлинг при помощи API.

А если ресурсов хватает, то из-за чего ещё может упасть сайт?

Чаще всего сайты падают из-за DDoS-атак — когда злоумышленники выявляют потенциально слабые места и нападают на них: например, перегружают сервер имитацией множества пользовательских запросов. Если сайт не принадлежит крупной компании или организации, то атаки редко продолжаются больше пары минут, чаще — и вовсе нескольких секунд. Сайт полежит это время, а потом сам заработает.

Если сайт упал надолго, то проблема, скорее всего, внутренняя — например, накопилось критическое количество багов в коде.

Бывают, конечно, и непредсказуемые ситуации: пожары, наводнения, электростанции выходят из строя. Например, этим летом в Екатеринбурге была аномальная жара. В одном из дата-центров вышла из строя основная система охлаждения, а резервная не справилась с нагрузкой. Мы отключили часть оборудования в стойках, где температура в корпусе серверов была критической. Проблемы продлились не дольше пары часов: инженеры соорудили дополнительное водяное охлаждение для внешних блоков кондиционеров — и всё вернулось в норму.

Важно понимать: в любой современной облачной инфраструктуре провайдер может переместить виртуальную машину с одного хост-сервера на другой — без остановки работы. Средняя «виртуалка» с несколькими гигабайтами памяти и парой десятков гигабайтов на диске переезжает за несколько минут. Для клиента этот процесс незаметен, только в момент переключения с одного сервера на другой сеть подвиснет буквально на секунду.

Такая миграция возможна только на идентичный процессор. В дата-центрах стоят несколько сотен хост-серверов, «железо» на которых отличается. Поэтому мы на реальных машинах запускаем так называемые виртуальные процессоры. При переносе прописываем точно такие же параметры на новой машине — миграция получается бесшовной.

Провайдеры обычно рекламируют себя через показатель uptime — мол, чем он выше, тем серверы надёжнее. Насколько он действительно важен?

Uptime показывает сколько времени в году должен исправно функционировать сервер. Самый высокий показатель — 99,999%, так называемые «пять девяток», — означает, что сервер может не работать только одну тысячную всего времени.

Пересчитаем 99,999% uptime на часы простоя:

365 дней × 24 часа × (100 − 99,999) = 0,0876. Это примерно 5 минут в год.

Если провайдер обещает вам «пять девяток», то в нештатных ситуациях вы можете рассчитывать на его скорейшую помощь. Например, при DDoS-атаке он должен принять меры в течение примерно 10 минут после того, как клиент обратился в поддержку.

Так, и что делать, если всё перестало работать?

Если это условный «Битрикс», систему важно запустить как можно скорее, чтобы штатные разработчики потом могли заняться проблемой. Лучше сразу писать в техподдержку.

Если упала ваша самописная система, нужно для начала посмотреть данные мониторинга. Если вам и раньше приходили сообщения о проблемах, возможно, их количество просто дошло до критической точки — поэтому сайт упал. А возможно, вы просто забыли заплатить за серверы это вы сразу поймёте из статуса в личном кабинете вашего провайдера.

Но в любом случае в техподдержку можно обратиться.

Можно перестраховаться и заранее обезопасить сайт от падений?

Есть несколько способов:

  • Избавляйтесь от ошибок в коде. Если их игнорировать, то сайт будет падать в любом случайном месте при любой проблеме.
  • Тестируйте ваш проект под нагрузкой. Чтобы понять её пределы, найти узкие места в инфраструктуре и заранее исправить их.
  • Пользуйтесь системами фильтрации трафика и защиты от взломов. Например, система фильтрации атак уровня L7 предотвращает http-флуд — примитивные атаки, которые «бомбардируют» сервер запросами, заставляя выделить на них как можно больше ресурсов, чтобы мощностей перестало хватать пользователям. Решение лежит в открытом доступе: установить систему себе на сервер может любой. От серьёзной атаки она не защитит, но со многими типовыми случаями справится.

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

NetAngels размещает на виртуальных серверах проекты любого масштаба: от страницы зоомагазина до ИТ-инфраструктуры крупной компании. Для малого бизнеса предусмотрены специальные условия.

В любой тариф включён бесплатный мониторинг: состояние всех серверов проверяют каждые 5 минут. Если обнаружится, что любой из параметров изменился, то клиент сразу получит уведомление об этом в личном кабинете и телеграм-боте.

Перестраховаться от DDoS-атак и взломов помогут функция фильтрации трафика и ежедневное резервное копирование данных (копии будут храниться в отдельном дата-центре). С затруднениями не придётся оставаться наедине: техподдержка принимает обращения 24/7. На критический инцидент отреагируют в течение 10 минут.

Предприниматели и разработчики могут начать работу с облачным сервером с базового тарифа, а если потребуется больше ресурсов — увеличить мощности буквально в пару кликов.

Реклама, ООО «Интернет-Про»

1212
7 комментариев

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

Для растущих интернет-магазинов или нагруженных crm вроде упомянутого Bitrix это может быть форма заказа или обратной связи, очередь оповещений клиентов, исправность интеграций с внешними системами. В мониторинге интеграций 1C в топе!

Еще топ ошибок мониторинга — это базовые параметры. Срок действия доменов, сертификатов, лицензий на софт и обновления и дата последней установки исправлений.

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

По моей оценке к падениям сервиса и уменьшению цифр 9 в uptime кратно чаще приводят такие мелочи, а не ddos атаки.

Потому регулярный мониторинг и быстрая реакция надёжных админов и разработчиков на проблему очень важны!

2
Ответить

О, как в тему реклама при атаке на TW милионами пакетов ). Может ли автор статьи дать развернутый ответ почему так получилось, и почему такого не будет в вашем облаке

1
Ответить

Если я правильно понял, вопрос про таймвеб. Если что, я не автор статьи и с NetAngels никак не связан. Мне комментарий попал по больному.

Мы перетащили сервис аналитики клиента из timeweb в другой ДЦ за несколько часов, потому что за неделю TW не решили проблему.

Похожая история была с другим провайдером 4 года назад.

DDOS идет на одного клиента, а страдают все клиенты за сетевым устройством хостера. В тот раз клиент не мог с 1с работать, а на 1С вообще все продажи завязаны. 10 магазинов по стране отдувались перед клиентами, что они принять оплату и чек выбить не могут.

Мы в итоге увезли железки через неделю разрывов и тормозов в другой ДЦ.

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

Мне тоже интересно, как этот вопрос решается в NetAngels. За мои 15 лет опыта решения задач с разными ДЦ есть такие, где подобная проблема не возникала ни разу.

2
Ответить

Давайте правильно пересчитаем 99,999% uptime на часы простоя:
365 дней × 24 часа × (100% − 99,999%) = 0,0876 часа в год. То есть 5 минут в год.

1
Ответить

Спасибо, что заметили! <3

1
Ответить

согласен, еще на 100 нужно поделить, чтобы процент получить

Ответить