Уроки "Черной пятницы": как подготовить инфраструктуру к новогодним распродажам
В сегменте e-commerce всплеск покупок приходится на всемирные акции и дни онлайн-скидок. Однако у пика продаж есть и обратная сторона медали — за счет большого наплыва покупателей и роста трафика в разы увеличивается нагрузка на сайты и приложения ритейлеров. О том, как ритейлерам не допустить ошибок и подготовить свою инфраструктуру к новогодним распродажам, рассказал Андрей Андронов, менеджер PaaS-продуктов компании Selectel.
Популярные проблемы
Основная проблема, с которой ритейлеры сталкиваются в дни распродаж, — сбои в работе сайтов или приложений из-за большого количества покупателей. Такие всплески приходящего трафика, генерируемые за короткий период времени, выявляют «трещины» в IT-системах. Так, небольшие проблемы с базовыми серверами или архитектурой могут привести к недоступности сервисов в течение долгого времени. Также нередко бывает, что приложения ритейлеров начинают медленно работать, а веб-сайты дольше обрабатывать товары в корзине. Такие задержки приводят к оттоку покупателей и упущенной прибыли. Например, в 2018 году в «Черную пятницу» сайты Walmart, Lululemon и Ulta не справились с трафиком. Бренд J.Crew за пять часов простоя потерял 775 тыс. долларов.
Чтобы избежать проблем, связанных с пиковыми нагрузками, к периодам распродаж рекомендуется готовить инфраструктуру заранее, основные этапы подготовки рассмотрим ниже.
Подготовительный этап: тестирование
Подготовку к распродаже стоит начать со стресс-тестирования. В ходе этой операции инфраструктуру намеренно подвергнут чрезмерно высокой нагрузке, что позволит определить максимально возможное количество одновременных запросов (сессий). Это поможет оценить готовность инфраструктуры к критическим нагрузкам, определить точку отказа и выявить уязвимости в системах, спланировать маркетинговые активности.
Стресс-тестирование обычно реализуют команды специалистов, используя специальное ПО, которое эмулирует легитимные запросы пользователей (например, JMeter).
После завершения стресс-тестирования сравните его результаты с прогнозируемой нагрузкой (ее можно выделить на основе плана продаж или прошлогодней статистики) — если результаты теста отстают от прогноза больше, чем 80%, то рекомендуется выделить дополнительные ресурсы, чтобы избежать внезапных простоев.
Основной этап: масштабирование
Следующий шаг подготовки — масштабирование инфраструктуры. Оно бывает двух типов: вертикальное и горизонтальное. При вертикальном растет производительность существующей инфраструктуры — число машин не меняется, мощнее становятся их внутренние характеристики. При горизонтальном нагрузка распределяется между возросшим количеством машин, их характеристики могут оставаться такими же.
Если вы уверены в количестве прогнозируемого трафика, выбирайте вертикальное масштабирование. Единственный недостаток — увеличение мощностей требует перерыва в работе, поэтому проводить такие операции лучше быстро и в часы минимальной активности пользователей.
Если же уверенности в будущей нагрузке нет, лучше выбрать горизонтальное масштабирование. Сложность этого решения в том, что система должна уметь работать не на одной машине, а на кластере. Самостоятельно в короткие сроки это реализовать будет непросто, особенно если такие операции ранее не проводились. Потребуется доработка системы, так как необходима общая синхронизация компонентов кластера и комплекс специальных методов для выравнивания нагрузки (балансировщик) на всех или отдельных узлах сети.
Заключительный этап: мониторинг
Однако на масштабировании процесс подготовки к экстремальным нагрузкам не заканчивается. Для того чтобы предотвратить сбои в системе, необходимо организовывать постоянный мониторинг инфраструктуры и нагрузок. Обеспечение такого контроля — базовое решение для любой системы и пригодится не только в сезон распродаж, но и для ежедневной бесперебойной работы сервиса.
Также не стоит забывать про защиту от DDoS-атак в сезон распродаж. Для того чтобы избежать падения инфраструктуры, внедрите дополнительную защиту, которая отфильтрует все входящие и исходящие сообщения и передаст конечным пользователям очищенный входящий трафик.
Еще один вариант - миграция в облачные сервисы. Основные преимущества — автоматическое масштабирование под увеличивающуюся нагрузку, а также оплата pay-as-you-go, при которой клиент платит только за используемые мощности. Для дополнительной автоматизации процессов можно использовать такие сервисы, как облачные базы данных и Managed Kubernetes, позволяющие снять часть задач с ритейлеров в сезоны распродаж.
Чек-лист «Как проверить готовность инфраструктуры к высоким нагрузкам?»
- Оцените текущую и планируемую нагрузку.
- Оцените ваши ресурсы: хватит ли мощностей для нагрузки.
- Проведите нагрузочное тестирование.
- Проанализируйте скорость работы сайта, загрузки страниц.
- Подумайте, есть ли у вас сотрудники с компетенциями, необходимыми для масштабирования. Если нет, обратитесь за помощью к провайдеру.
- Настройте систему восстановления из бэкапов с минимальным даунтаймом.
- Проверьте защиту от кибератак.
- Обеспечьте мониторинг инфраструктуры.
- Убедитесь, что у всех влияющих на ситуацию сотрудников есть доступ к инфраструктуре.
- Докупите необходимые мощности или оптимизируйте работу инфраструктуры.
- Выведите из эксплуатации избыточные мощности после сезона распродаж, чтобы избежать дополнительных затрат на инфраструктуру.