Выйти из системы

Сменить пользователя

Промо-акция глазами DevOps. Как не потерять миллионы из-за наплыва пользователей

Вечер пятницы. Андрей, DevOps в крупном интернет-магазине одежды, возвращается домой после трудной рабочей недели и и раздумывает, какой фильм посмотреть перед сном. Едва он переступил порог дома, раздаётся звонок: 

– Андрей, у нас сайт упал! 

– Что случилось?

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

Андрей смотрит статистику нагрузки и видит, что она выросла более чем в 10 раз всего за несколько часов. 

Сайт не был к этому готов. Время простоя составило более 24 часов, а компания потеряла более пятнадцати миллионов рублей.

Итак, ошибка на поверхности – отдел маркетинга не предупредил ИТ-отдел о запуске промо-акции. 

Давайте представим, что Андрея уведомили заранее. Что ему делать, чтобы подготовить сайт компании к резкому росту трафика?

Что важно понимать про пиковые нагрузки

Чаще всего во время распродаж или других активностей всё происходит по более-менее схожему сценарию.

  1. Площадка за неделю до старта начинает “прогрев” аудитории – выпускает рекламу в различных каналах. Анонсируется точная дата начала, например, с 4 ноября ежедневно выходит напоминание“14 ноября – чёрная пятница! Скидки 90% на всё!”. 14 числа количество посетителей после публикации рекламного материала о промо-акции резко вырастает. За время действия промо-кампании количество посетителей может вырасти в 10 и более раз. от 40 до 80% пользователей прийдут на сайт в течение первых нескольких часов.
  2. Достигнув пика, трафик будет снижаться плавно довольно продолжительное время – в течение нескольких суток. Это требует поддержания производительности серверов и внимания техподдержки для решения возникающих проблем у пользователей.
  3. За это время могут произойти повторные всплески – пользователи делятся предложениями с друзьями, выкладывают посты в соцсети.
  4. Если ваши маркетологи хорошо поработали, объявление может залететь в тренды соцсетей, тогда трафика будет ещё больше.
  5. Сайт может стать жертвой DDoS, парсеров и прочей зловредной активности.

Главное: все происходит в течение нескольких часов или суток, далее значения трафика устаканиваются и, при отсутствии маркетинговой активности, медленно снижаются.

Что учесть при подготовке к скачку трафика

Ключевой аспект управления пиковыми нагрузками – прогнозирование трафика и его потенциального влияния на инфраструктуру. Важно убедиться, что в рамках системы обеспечиваются:

Масштабируемость, чтобы “в моменте” справляться с увеличением нагрузки без снижения производительности.

Резервирование ресурсов, которые можно задействовать в случае необходимости.

Стресс-тестирование поможет определить потенциальные узкие места и позволит заранее подготовиться к возможным проблемам.

Наиболее эффективным и выгодным инструментом для одновременной реализации всего этого без риска потери работоспособности систем – это облака:

Оплата по факту использования 

Облачные платформы часто предлагают модель оплаты по факту использования, что позволяет компаниям экономить на IT-расходах, платя только за те ресурсы, которые они фактически используют.

– Высокая доступность и надежность

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

– Быстрое восстановление 

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

И главное здесь – вынести в облако избыточную нагрузку. Обязательно выносим:

  1. DNS. Это главная мишень для DDoS, и крайне критичный элемент для функционирования системы в целом. Желательно, чтобы DNS был геораспределенным, поскольку запросы DNS существенно влияют на общее время загрузки страницы.
  2. Статичный контент. Он генерирует значительный объем трафика, который загружает сетевые каналы. Желательно обеспечить быструю доставку статического контента, поэтому его следует размещать на CDN, сети доставки контента. Что это и как работает – рассказывали тут.
  3. Readonly — копия базы данных. У маркетологов есть понятия “воронка” и “конверсия”. Если “на пальцах”, воронка — путь, который проходит клиент от момента, когда товар привлёк его внимание, до момента покупки. Конверсия — доля тех, кто прошёл этот путь до конца. Конверсия в 5% считается хорошей. На один «клик» — который надо писать в базу данных — приходится 100 чтений, которые можно спокойно вынести в большое количество копий «только для чтения»
  4. API, которое взаимодействует с пользователями. Особенно ту часть, которая обращена к промо-кампании.

На что ещё важно обратить внимание

Помимо переноса нагрузок в облако, важно учитывать потенциальные угрозы DDoS-атак, а также обеспечить постоянный мониторинг и управление ресурсами в реальном времени.

  1. Защита от DDoS-атак

Применение таких решений, как брандмауэры (firewalls), системы предотвращения вторжений (IPS), и сервисы, специализирующиеся на отражении DDoS-атак, может помочь «спрятать» вашу инфраструктуру от автоматических атак. Это включает в себя реализацию географического и IP-фильтрации для блокировки трафика из подозрительных источников, а также использование сетевых «маскировочных» технологий для скрытия реальных IP-адресов критически важных компонентов системы. Как её выстраивать – рассказывали тут.

  1. Мониторинг системы

Настройка мониторинга основных показателей системы является ключевой для поддержания её надежности и эффективности. Важно следить за такими параметрами, как загрузка серверов, время отклика системы, объем трафика и производительность баз данных. Использование инструментов мониторинга, таких как Prometheus, Nagios или Zabbix, позволяет в реальном времени отслеживать состояние системы и быстро реагировать на возможные проблемы. Мало того, что его надо вкрутить — это 10%. Остальные 90% — правильная настройка.

  1. Инфраструктура как код, IaC

Применение подхода «Инфраструктура как код» позволяет управлять инфраструктурой с помощью кода, что обеспечивает большую автоматизацию, уменьшение человеческого фактора и повышение воспроизводимости настроек. Инструменты, такие как Terraform, Ansible или Puppet, позволяют описывать аппаратные и программные ресурсы в виде кода, который можно хранить в системах контроля версий (например, Git). Это обеспечивает легкость масштабирования, обновления и восстановления инфраструктуры, а также способствует более тесной интеграции операционной и разработческой команд, так как изменения в инфраструктуре могут быть внедрены и отслежены с помощью стандартных процессов разработки ПО.

Как выбрать подходящее облако

При выборе поставщика услуг важно, чтобы он обеспечивал возможность:

  1. Быстро и легко масштабироваться, причем как в сторону увеличения, так и в сторону уменьшения. 
  2. Обеспечить балансировку нагрузки.Она позволяет распределить входящий трафик между несколькими серверами или ресурсами в облаке, что предотвращает перегрузку отдельных узлов и способствует равномерному распределению рабочей нагрузки. Это улучшает общую производительность системы и снижает вероятность отказа. Кроме того, балансировка нагрузки позволяет проводить обслуживание или обновление системы без прерывания работы, так как трафик может быть перенаправлен на другие серверы во время проведения технических работ.
  3. Развернуть нагрузку в нескольких ЦОД. Это обеспечивает геораспределенность ресурсов, что способствует более высокому уровню доступности и минимизации рисков, связанных с физическими или локальными техническими сбоями. В случае возникновения проблем в одном ЦОД, другие могут продолжить обслуживание запросов, что обеспечивает бесперебойную работу сервисов. Также это позволяет оптимизировать время доступа для пользователей из разных регионов, сокращая задержки и улучшая общую пользовательскую оценку сервисов.
  4. Получить приемлемую для бизнеса стоимость услуг. О том, как посчитать ИТ-экономику – рассказывали тут.

Например, мы предоставляем облачную ИТ-инфраструктуру с опциями:

  1. Отказоустойчивый, георапределённый DNS
  2. Простой в настройке CDN 
  3. Object Storage — S3 совместимое хранилище
  4. DB — полностью управляемые базы данных с возможностью прикрутить ReadOnly-реплику к существующей БД
  5. K8S Managed Kubernetes с опциями автомасштабирования и прочими “плюшками”
  6. COMPUTE – виртуалки с возможностью автомасштабирования и балансировки нагрузки
  7. LB – управляемый балансировщик нагрузки
  8. Viz – мониторинг облачной инфраструктуры с массой приложений, устанавливаемых в «один клик» – prometheus и прочие полезные штуки
  9. DDoS Protection – защита от DDoS
  10. API/Terraform — / Crossplane — провайдеры для автоматизации деплоя
  11. Распределенные ЦОД

И вот – снова пятница, и снова промо. Андрей смотрит перед сном «Опенгеймера» и лишь поглядывает в приложении за нагрузкой: сайт работает стабильно. А если что-то пойдет не так, специалисты CORTEL сразу всё урегулируют. В понедельник Андрей просто получит отчёт – что было и что сделали.

Узнайте больше об облачных решениях CORTEL и рассчитайте условия под запросы вашего бизнеса.