Уроки "Черной пятницы": как подготовить инфраструктуру к новогодним распродажам

В сегменте e-commerce всплеск покупок приходится на всемирные акции и дни онлайн-скидок. Однако у пика продаж есть и обратная сторона медали — за счет большого наплыва покупателей и роста трафика в разы увеличивается нагрузка на сайты и приложения ритейлеров. О том, как ритейлерам не допустить ошибок и подготовить свою инфраструктуру к новогодним распродажам, рассказал Андрей Андронов, менеджер PaaS-продуктов компании Selectel.

Популярные проблемы

Основная проблема, с которой ритейлеры сталкиваются в дни распродаж, — сбои в работе сайтов или приложений из-за большого количества покупателей. Такие всплески приходящего трафика, генерируемые за короткий период времени, выявляют «трещины» в IT-системах. Так, небольшие проблемы с базовыми серверами или архитектурой могут привести к недоступности сервисов в течение долгого времени. Также нередко бывает, что приложения ритейлеров начинают медленно работать, а веб-сайты дольше обрабатывать товары в корзине. Такие задержки приводят к оттоку покупателей и упущенной прибыли. Например, в 2018 году в «Черную пятницу»‎ сайты Walmart, Lululemon и Ulta не справились с трафиком. Бренд J.Crew за пять часов простоя потерял 775 тыс. долларов. 

Чтобы избежать проблем, связанных с пиковыми нагрузками, к периодам распродаж рекомендуется готовить инфраструктуру заранее, основные этапы подготовки рассмотрим ниже.

Подготовительный этап: тестирование

Подготовку к распродаже стоит начать со стресс-тестирования. В ходе этой операции инфраструктуру намеренно подвергнут чрезмерно высокой нагрузке, что позволит определить максимально возможное количество одновременных запросов (сессий). Это поможет оценить готовность инфраструктуры к критическим нагрузкам, определить точку отказа и выявить уязвимости в системах, спланировать маркетинговые активности.

Стресс-тестирование обычно реализуют команды специалистов, используя специальное ПО, которое эмулирует легитимные запросы пользователей (например, JMeter).

После завершения стресс-тестирования сравните его результаты с прогнозируемой нагрузкой (ее можно выделить на основе плана продаж или прошлогодней статистики) — если результаты теста отстают от прогноза больше, чем 80%, то рекомендуется выделить дополнительные ресурсы, чтобы избежать внезапных простоев.

Основной этап: масштабирование

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

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

Если же уверенности в будущей нагрузке нет, лучше выбрать горизонтальное масштабирование. Сложность этого решения в том, что система должна уметь работать не на одной машине, а на кластере. Самостоятельно в короткие сроки это реализовать будет непросто, особенно если такие операции ранее не проводились. Потребуется доработка системы, так как необходима общая синхронизация компонентов кластера и комплекс специальных методов для выравнивания нагрузки (балансировщик) на всех или отдельных узлах сети. 

Заключительный этап: мониторинг 

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

Также не стоит забывать про защиту от DDoS-атак в сезон распродаж. Для того чтобы избежать падения инфраструктуры, внедрите дополнительную защиту, которая отфильтрует все входящие и исходящие сообщения и передаст конечным пользователям очищенный входящий трафик.

Еще один вариант - миграция в облачные сервисы. Основные преимущества — автоматическое масштабирование под увеличивающуюся нагрузку, а также оплата pay-as-you-go, при которой клиент платит только за используемые мощности. Для дополнительной автоматизации процессов можно использовать такие сервисы, как облачные базы данных и Managed Kubernetes, позволяющие снять часть задач с ритейлеров в сезоны распродаж.

Чек-лист «Как проверить готовность инфраструктуры к высоким нагрузкам?»

  • Оцените текущую и планируемую нагрузку.
  • Оцените ваши ресурсы: хватит ли мощностей для нагрузки.
  • Проведите нагрузочное тестирование.
  • Проанализируйте скорость работы сайта, загрузки страниц.
  • Подумайте, есть ли у вас сотрудники с компетенциями, необходимыми для масштабирования. Если нет, обратитесь за помощью к провайдеру.
  • Настройте систему восстановления из бэкапов с минимальным даунтаймом.
  • Проверьте защиту от кибератак.
  • Обеспечьте мониторинг инфраструктуры.
  • Убедитесь, что у всех влияющих на ситуацию сотрудников есть доступ к инфраструктуре.
  • Докупите необходимые мощности или оптимизируйте работу инфраструктуры.
  • Выведите из эксплуатации избыточные мощности после сезона распродаж, чтобы избежать дополнительных затрат на инфраструктуру.
3482
Предметная область
Отрасль
Управление