Сбои сайта = простой, потеря клиентов и доходов. Сегодня мы расскажем, как сделать сайт стабильным, объясним, что делать, если всё упало. И поделимся лайфхаками, которые помогут снизить нагрузку на сервер и провести маркетинговые активности идеально.
Основные причины сбоев сайта
Во время распродаж сайт должен работать быстро и без сбоев. Для этого желательно понимать, какие вообще проблемы могут нарушить работу вашего сайта.- Нет коммуникации между IT и бизнесом. Сообщайте заранее о днях акции, планируйте работы вместе. Недостаточно просто придумать скидки для товаров. Мало закупить рекламу — нужно еще заранее оповестить об ожидаемой нагрузке на сайт, чтобы в ИТ успели подготовиться и обеспечили стабильную работу сайта.
- Ошибка специалистов. В рамках ИТ-архитектуры упасть может что угодно: frontend-часть сайта, OMS (система, которая обрабатывает заказы), ERP-система. Учитывая, сколько денег бизнес вкладывает на рекламу, и сколько месяцев потенциальная прибыль может «кормить» владельца бизнеса, такая ошибка может привести к огромным финансовым потерям.
Так как же подготовить сайт к пиковым нагрузкам?
Шаг 1. Договориться бизнесу и ИТ-отделу
Первое, что нужно сделать — подготовить план маркетинговой активности, в котором будут указаны акции, сроки, сколько трафика планируется привести на сайт. И с этим планом отправиться в ИТ-отдел, чтобы специалисты могли дать ответ — выдержит сайт или нужно подготовить изменения инфраструктуры.
Важная пометка для ИТ: маркетинговый отдел будет всегда стремиться загрузить айтишников. Поэтому уметь договариваться со своими коллегами — важно. Иначе потери понесут обе стороны. Вас не погладят по голове из-за плохой работы сайта, а бизнес не заработает планируемую прибыль.
Как минимум, знать обо всех мероприятиях нужно за 2-3 месяца. Чтобы специалисты успели решить все задачи по подготовке сайта к наплыву трафика.
Шаг 2. Создать кэширующую страничку
Обычная промостраница с товарами на распродажу способна переварить тонну трафика. И ее создание — один из лайфхаков для e-commerce. Благодаря кэшированию лендинг посылает в 10 раз меньше запросов бекэнд-части, когда пользователь заходит на страницу. Лендинг не замедляет работу основного сайта и сам не падает при высоких нагрузках. Это экономичный способ ускорить веб-трафик и повысить производительность.Как это работает? Лендинг принимает на себя весь удар в момент проведения акции и позволяет «рассеивать» нагрузку. Тот, кто зашел на кэширующую страничку, но не купил — просто уйдет. Лендинг выдержит, боевой сайт останется нетронутым. Те, кто захотят оформить заказ, кликнут по товару и перейдут уже в каталог главного сайта.
Что здесь важно? Нужно договориться о скидках на товары и дате запуска лендинга. Кроме того, сам лендинг нужно хорошо настроить. Потому что может измениться цена, остаток по товару, условия акции и другое. Сделать это небрежно = нанести финансовый и репутационный ущерб своему интернет-магазину.
Шаг 3. Провести нагрузочное тестирование
Нагрузочное тестирование (Load Testing, НТ) — это процесс проверки и оценки производительности системы или приложения при заданной нагрузке.Чем оно хорошо? Нагрузочное тестирование помогает выявить максимальную нагрузку, при которой магазин сможет стабильно работать и обрабатывать запросы. С помощью него определяются узкие места — медленные запросы к базе данных, неэффективные алгоритмы обработки данных и т.д.
Еще НТ помогает узнать, когда архитектура достигает своих пределов и требует масштабирования. Благодаря этому можно без спешки спланировать масштабирование.
Как работает НТ? Специалисты генерируют патроны (HTTP-запросы) таким образом, чтобы приблизиться к поведению +/- настоящего человека и проверить нагрузку. Загружают их в сервис, например Яндекс.Танк, и там проводят тесты (обстрел).
Сколько пользователей выдержит сайт — позволяет узнать Apache JMeter. Его используют в связке с танком как генератор нагрузки. Он позволяет эмулировать пользовательские сессии и другие сценарии.
Сколько раз нужно проводить нагрузочное тестирование? Небольшим компаниям можно устраивать такие проверки не так часто, как крупным. Однако разумный минимум — раз в квартал. Проверить систему также нужно за пару недель до начала акции. Более того, тестировать нужно каждый раз, когда на сайт добавляете новые архитектурные изменения.
В 90% случаях НТ проводится ночью, когда на сайте нет реальных пользователей. Однако, если у компании есть средства и возможности, лучше всего создать копию боевой версии сайта и «обстреливать» из танка именно ее. Важно, чтобы она была независима и изолирована, а также соответствовала размерам прода.
Кто занимается нагрузочным тестированием? DevOps, тимлид разработки либо разработчик. Поставьте специалистам задачу для тестов заранее. Либо можете обратиться к нам за временными аутстаф-специалистами, если не хотите перегружать команду или под задачу нужна экспертиза.
Шаг 4. Не забыть о мониторинге в тестах
Даже небольшой интернет-магазин через отслеживание ключевых метрик получит исчерпывающую информацию о производительности и готовности системы.Желательно наблюдать за использованием всех ресурсов, но вот основной список:
- Загрузка процессора, оперативной памяти и дисков.
- Количество сетевых соединений, открытых сокетов, файлов, пользовательских процессов, запросов, ответов и соединений с БД и др.
- Сетевой трафик.
- Скорость ответа БД, кешей и др.
- Логи.
Популярные инструменты мониторинга — Nagios, Zabbix, New Relic, Pingdom и Datadog. Выбирайте те, которые соответствуют вашим требованиям и бюджету.
Пусть ИТ-специалисты укажут метрики, которые вы хотите отслеживать, настроят уведомления о проблемах и установят пороговые значения, при достижении которых ИТ-специалисты получат оповещение.
Как поддерживать систему во время Черной пятницы
В момент запуска ИТ-специалисты сидят у экранов мониторов, чтобы отслеживать производительность системы в режиме реального времени. Обычно для этого используются Nagios, Zabbix или Datadog.Вместе с этим в дни распродаж нужно управлять трафиком для распределения нагрузки и включать подробное логирование — чтобы был доступ к информации о событиях и проблемах в системе. Для управления трафиком можно использовать CDN (Content Delivery Network), а для анализа и мониторинга логов — ELK Stack (Elasticsearch, Logstash, Kibana) или Splunk.

Не забывайте, что конкретные инструменты и технологии могут зависеть от вашей текущей инфраструктуры и предпочтений. Рекомендуется провести более детальное исследование, чтобы определить подходящие вам инструменты и технологии.
Как оперативно поднять систему, если все упало
Важнейший тезис, на который следует ориентироваться, - система обязательно когда-нибудь упадет, несмотря на любые усилия по обеспечению ее непрерывной работы. Поэтому у вас всегда должен быть под рукой актуализированный план действий, который позволит не бегать бессмысленно из угла в угол, а быстро и эффективно решить возникшие проблемы.Действия ИТ-отдела в этом случае должны быть направлены на быстрое восстановление работоспособности системы и минимизацию простоя. Что нужно обязательно сделать:
- Проанализировать журналы ошибок, мониторить систему и проверять соединение с серверами, чтобы определить причину сбоя или медленной работы сайта.
- Перезапустить серверы, баз данных или других компонентов системы, а также исправление ошибок или восстановление резервных копий.
- Увеличить или дополнительно добавить мощности серверов либо использовать облачные услуги, если проблема в недостатке ресурсов.
- Проанализировать код и запросы к БД, чтобы оптимизировать производительность.
После восстановления системы установите инструменты для мониторинга и проанализируйте причины сбоя. Разработайте планы для повышения производительности, масштабируемости и надежности вашей инфраструктуры.
Что еще важно — коммуникация ИТ с маркетинговым отделом, чтобы обмениваться информацией о текущем состоянии системы, предпринятых действиях, а также предварительная отработка восстановительных мероприятий на тестовых стендах. Это обеспечит взаимопонимание и согласованность между коллегами во время Черной пятницы.

Лайфхаки, которые помогут пережить Черную пятницу
- Кэширование запросов, данных, статики (изображения, CSS-файлы и JavaScript-файлы). Это поможет ускорить загрузку страницы сайта и снизить нагрузку на базу данных.
- Оптимизация и кэширование фидов. Если ваши фиды содержат большое количество информации, их можно быстро оптимизировать: включать фильтрацию, сжать, закешировать либо оптимизировать структуру, используя компактные форматы данных, например JSON.
- Повторное нагрузочное тестирование. Если после первого тестирования все ошибки исправлены, проведите еще тесты для убедительности. Исправление ошибок может состоять из нескольких итераций. К тому же, есть риск ошибки при расчетах, которая всё снова поломает и испортит Черную пятницу для вас и ваших клиентов.
- Регулярное резервное копирование данных поможет защититься от потери информации. Используйте инструменты для автоматического резервного копирования, такие как Backblaze или AWS S3. Регулярно проверяйте и проводите “учения” по восстановлению из резервных копий.
Поведем итоги
Никто не знает, насколько в этом году вырастут онлайн-продажи в Черную пятницу. Но можно с уверенностью сказать, что больше всего выиграют онлайн-продавцы, чьи сайты могут работать эффективно. Что важно помнить:
Если у вас нет нужной команды либо не хватает компетенций, мы предоставим команду, которая будет управлять всем этим за вас, достигнет высоких показателей системы и будет поддерживать сайт во время распродажи. Вне зависимости от того, когда она у вас начнется.
- Если заранее не подготовить инфраструктуру, сайт упадет от бурного трафика.
- За несколько месяцев сообщайте ИТ-специалистам об акциях, распродажах и прочих активностях.
- Лайфхак для бизнеса — создать кэширующую страничку для снижения нагрузки во время распродаж.
- Нагрузочное тестирование проводите за пару недель до старта распродажи. Оно поможет найти уязвимости и улучшить показатели. Главное — собрать сильную команду специалистов и закладывать время на тесты заранее.
- Разработайте план действий на случай, если сайт все же упадет.
Если у вас нет нужной команды либо не хватает компетенций, мы предоставим команду, которая будет управлять всем этим за вас, достигнет высоких показателей системы и будет поддерживать сайт во время распродажи. Вне зависимости от того, когда она у вас начнется.