Как пережить «черную пятницу»
Игорь Бахарев
Black Friday или «черная пятница» — период распродаж, в который значительно увеличивается посещаемость сайтов и использование мобильных приложений. Руководитель направления администрирования Selectel Антон Балакирев и его коллеги рассказали читателям e-pepper.ru, как ещё до наступления "горячих деньков" проверить, выдержит ли ваш сайт нагрузку, а во время распродажи успешно справиться с валом заказов.
Советы специалистов Selectel для тех, на чьи плечи упадет обслуживание инфраструктуры в непростые дни распродаж. Статья также полезна всем, кто хочет быть уверен, что сайт интернет-магазина готов к пиковым нагрузкам.
- В 2017 году в онлайн-магазине «М.Видео» за пятницу и выходные трафик возрос почти в 2 раза по сравнению с выходными октября
- В KupiVip в 2017 году трафик вырос на 126% по сравнению с обычным днем в ноябре и на 75% в сравнении с прошлогодним мероприятием
Пока предприниматели решают, какие товарные позиции получат скидку, немногие задаются вопросом «выдержит ли сайт».
Посещаемость сайтов-агрегаторов «черной пятницы» в 2017 г., SimilarWeb
У IT-инфраструктуры есть своя «точка кипения». Из-за покупательской активности сервисы перестают работать или долго отвечают на запросы пользователей, корзины тормозят, отгрузки встают. Что же делать?
Выявить точку отказа и дать прогноз нагрузки
Начните подготовку со стресс-тестирования. Вы узнаете максимальное количество запросов (сессий), которое может одновременно обслуживать ваш интернет-магазин.
Оценить нагрузку самостоятельно
Чтобы понять максимально допустимую нагрузку, можно организовать тестирование самим, например, используя Яндекс.Танк. Это генератор десятков тысяч HTTP-запросов в секунду. Чтобы запустить нагрузочное тестирование, следуйте официальной документации.
Спрогнозировать нагрузку на магазин в «черную пятницу» можно на основе плана продаж в период акции и исторических данных по конверсии. Пример расчета можно найти в статье «Методология расчета нагрузки».
Теперь сравните прогноз с результатом стресс-теста — если прогноз больше, чем 80% от результата теста, то, по нашему опыту, необходимо выделить дополнительные ресурсы. В «черную пятницу» особенно важно учесть все активности по привлечению клиентов и спрогнозировать пики посещений сайта.
Обычно интернет-проект состоит из нескольких модулей, например: база данных, web-сервер, система кэширования. Каждый из них нуждается в различных типах и объемах ресурсов. Поэтому при анализе нагрузки нужно снимать не просто показатели отклика проекта, но и показатели потребления ресурсов с разных модулей: скорость ввода-вывода дисков, процессорное время, память. Уделите внимание и тому, хватает ли вашей выделенной полосы для планируемой нагрузки: возможно, стоит увеличить ширину канала. Постарайтесь определить модули/узлы системы, которые являются «бутылочными горлышками» — это и будут потенциальные точки масштабирования.Например, одна рассылка на 10,000 клиентов при конверсии 10% в первый час приводит к открытию 1,000 сессий в час, а 10 рассылок по 1,000 человек с интервалом в 1 час приводят к открытию 100 сессий в час.
Привлечь эксперта для тестирования
Вы можете делегировать подрядчику задачу нагрузочного тестирования, а сами заняться внутренней подготовкой к «черной пятнице».
«Мы оперативно проведем аудит, нагрузочные тесты и дадим оценку инфраструктуре в целом. После аудита вы получите отчет с рекомендациями по подготовке к «черной пятнице». При необходимости мы проведем работы на сервере: перенесем проект на инфраструктуру Selectel, устраним узкие места, подключим и настроим мониторинг и, конечно, будем круглосуточно поддерживать серверы».
Виталий Прокофьев, руководитель группы системных администраторов Selectel
Адаптировать ресурсы под нагрузку
Выявив потребность в дополнительных ресурсах, можно приступить к масштабированию инфраструктуры.
Увеличить мощности самим
1. Вертикально масштабировать — если уверены в прогнозе нагрузки и нужно простое решение
Если «движок» сайта позволяет увеличить количество обслуживаемых сессий за счет увеличения мощности сервера, масштабирование называют вертикальным. Мощность сервера повышают заменой процессора, установкой дополнительной памяти, заменой дисков. Это требует перерыва в работе, поэтому планировать такие операции нужно заранее, а проводить быстро и в часы минимальной активности пользователей. После обновления сервера все его ресурсы будут постоянно доступны всем.
Разберем на примере. Представьте, у вас есть белка. Она, крутясь в колесе, генерирует энергию для лампочки вашего пользователя. Вы ждете еще гостей, поэтому для большего количества света вы заранее покупаете большое колесо, помещаете в него двух белок — и все. Чем больше колесо и больше в нем белок, тем больше отдача беличьего электрогенератора. При увеличении мощности генератора (масштабировании) придется отключить свет на время замены колеса и посадки дополнительных белок. Однако сам способ масштабирования удобен, так как требует минимальных усилий.
Суть вертикального масштабирования
- Добавить ресурсы в облаке в несколько кликов
Когда инфраструктура уже находится в облаке, для вертикального масштабирования достаточно нажать пару кнопок в панели управления, выбрав нужное количество процессорных ядер, памяти, дискового пространства. В Selectel, например, по такому принципу работает «Виртуальное приватное облако» и «Облако на базе VMware».
Изменение конфигурации виртуальной машины в VPC
«Создайте и настройте облако на базе OpenStack из виртуальных серверов и сетей под свои задачи». Вы сможете создать отказоустойчивую систему, объединив виртуальные машины в разных зонах доступности в единую локальную сеть».
Даниил Пивоваров, старший менеджер продуктов Selectel
- Увеличить производительность физического сервера
«Усиление сервера» означает переезд на более мощное оборудование.
«Серверы готовых конфигураций предоставляются за 1-2 часа, сборка на заказ — в течение пяти рабочих дней. Серверы подключат к локальной сети и интернету, обеспечат бесперебойное электропитание, микроклимат и сервисное обслуживание».
Константин Ансимов, менеджер продуктов Selectel
2. Горизонтально масштабировать — если не уверены в прогнозе нагрузки и готовы к сложной реализации
При горизонтальном масштабировании количество обслуживаемых сессий увеличивают путем добавления новых серверов к уже имеющимся.
Вернемся к примеру белки в колесе, которая, крутясь, генерирует энергию для лампочки одного пользователя. Вы ждете гостей, и для большей энергии покупаете еще одну белку в колесе. «Новенькую» ставите рядом с первой белкой, объединив их проводами. Теперь света хватило всем. Больше колес и белок — больший профит в энергии.
Суть горизонтального масштабирования
Обновление системы: не надо отключать свет, чтобы добавить еще белку. Однако главное — подключать новых белок правильным образом и вовремя.
Для горизонтального масштабирования система должна уметь работать не на одной машине, а на кластере. Если ранее таких требований к вашей системе не было, то самостоятельно в короткие сроки реализовать горизонтальное масштабирование будет сложно — потребуется доработка системы, так как необходима общая синхронизация компонент кластера и балансировщик на всех или отдельных узлах сети. Балансировщик — это комплекс специальных методов для выравнивания нагрузки. Например, в «Облаке на базе VMware» мы реализовали полный функционал VMware NSX, в том числе и Load Balancing — балансировщик нагрузки уровня приложений (L4/L7) с динамической настройкой виртуального IP и групп серверов.
«Реализовать балансировку можно, используя аппаратные и программные инструменты, — администраторы Selectel также помогут в этом вопросе. Балансировщик будет распределять запросы по кластеру серверов таким образом, чтобы время ответа было минимальным, а ресурсы использовались максимально эффективно».
Виталий Прокофьев, руководитель группы системных администраторов Selectel
- В облаке. Когда инфраструктура в облаке (например, в «Виртуальном приватном облаке» или «Облаке на базе VMware»), то создать новые виртуальные машины — вопрос нескольких секунд
- На железе. «Усиление инфраструктуры» означает дополнительную покупку выделенных серверов
- Гибридное решение. Перенеся часть инфраструктуры в облако, вы создаете решение, состоящее из физических и виртуальных серверов. На физических серверах может работать постоянная нагрузка, а в облаке с оплатой по потреблению то, что нужно на время акции. Так вы разгрузите основной сервер, на котором размещены ваши сервисы, и создадите резерв мощности для увеличения нагрузки
Важное преимущество горизонтального масштабирования состоит в том, что если проводить мониторинг нагрузки, то добавлять новые серверы — очень просто.
Мониторинг нагрузки удобно реализовать с помощью инструмента Zabbix, а визуализацию полученных данных — с дашбордом Grafana.
Можно избавиться от ручного мониторинга нагрузки, если добавлять новые серверы и проводить балансировку автоматически. Для этого может потребоваться заранее написать скрипты балансировщика: настроенное ПО для балансировки нагрузки вместе с API облака дает возможность создать автомасштабируемое решение.
В примере беличьего генератора при автомасштабировании инфраструктуры картина идеальна: белки сами приходят и подключаются с колесами к системе, вы на берегу океана лишь изучаете отчеты о том, сколько в итоге белок потребовалось для светового шоу.
Суть автомасштабирования
С помощью API облака VPC Selectel можно создавать, удалять и менять конфигурации машин (в режиме beta-тестирования также доступен Kubernetes).
Стоимость необходимых ресурсов отражается при создании виртуального сервера, то есть вы легко можете оценить затраты на «черную пятницу» с учетом потенциально нужных ресурсов. Когда нагрузка возрастает, вы легко можете докупить необходимые ресурсы и оплатить их по факту.
Привлечь архитекторов IT-инфраструктуры со стороны провайдера
Вы можете мигрировать на более мощное железо или реализовать масштабируемую архитектуру в облаке — достаточно поставить задачу архитекторам по облачной инфраструктуре. Мультиоблачная стратегия представляет особый интерес — это потребление услуг двух и более облачных провайдеров, которые могут быть при этом интегрированы между собой. Такое построение инфраструктуры дает возможность выбрать наиболее оптимальный набор функций, которые подойдут конкретной задаче и конкретному типу нагрузки. Инфраструктура может быть реализована в частном, публичном облаке, либо представлять их комбинацию (гибридное облако).
«Преимущества мультиоблачных решений — в построении архитектуры, оптимальной по возможностям, цене, катастрофоустойчивости, времени отклика (возможность выбрать ближайшие дата-центры к вашим пользователям), а также в отсутствии риска vendor lock-in, то есть зависимости от конкретного провайдера услуг. Сейчас мы, пожалуй, единственные в России реализуем готовые multi-cloud проекты на базе собственных дата-центров, а также решений Amazon Web Services, Microsoft Azure, Google Cloud Platform и Alibaba Cloud».
Дмитрий Рыжов, директор по интеграции Selectel
Подготовить защиту от DDoS-атак
Сайты во время «черной пятницы» перестают работать не только потому, что не справляются с потоком реальных пользователей, но и потому, что могут обрушиться DDoS-атаки. Их могут организовать злоумышленники, которые хотят перенаправлять трафик на свои ресурсы.
- В 2017 году организатор распродажи «черная пятница» на площадке b-friday.com подвергся DDoS-атаке на свои серверы. Сайт справился с нагрузкой и не упал
Чтобы вас не коснулись неприятности, связанные с киберугрозами, обеспечьте подключение средств идентификации и защиты от DDoS-атак. Специальный комплекс защиты от DDoS и взломов в режиме реального времени сканирует и анализирует входящий трафик, определяет потенциальные атаки и блокирует их.
Для подключения средств защиты может потребоваться перенести сайт в инфраструктуру оператора, поэтому уточните вопрос за 2-3 недели до старта распродаж.
«Услуги Selectel по защите от DDoS все время развиваются. И дело не только в улучшенных алгоритмах фильтрации. Сейчас тарифы начинаются от 2,500 рублей в месяц — эта сумма меньше, чем ущерб даже от самой простой атаки. Скорость реакции техподдержки при этом от 5 минут. Кроме того: отдельный личный кабинет со статистикой изменения нагрузки. Подключить услугу можно к любому нашему сервису».
Ольга Московцева, менеджер продуктов Selectel
Ускорить загрузку контента
В период распродаж, когда нагрузка на серверы значительно повышается, на сайтах интернет-магазинов долго загружаются описания товаров и их фотографии. Также загрузку страниц утяжеляют JavaScript-библиотеки, CSS. Не дождавшись быстрой реакции сайта на свой запрос, пользователь просто уйдет, даже если предложение выгоднее, чем у конкурентов. Для проверки скорости загрузки страниц воспользуйтесь сервисом PageSpeed Insights.
Помочь ускорить загрузку страниц способна сеть доставки контента (Content Delivery Network, CDN). Эта географически распределенная сеть состоит из кэширующих узлов — точек присутствия, которые могут быть расположены по всему миру. Заходя на сайт во время распродажи, клиенты получат информацию не от вашего сервера, а от того, который входит в CDN-сеть и находится ближе к ним. Благодаря сокращению маршрута между сервером и пользователем данные на сайте грузятся быстрее.
«Благодаря оптимальному маршруту доставки контента CDN не только увеличивает скорость загрузки страниц, но и значительно облегчает нагрузку на основные серверы. Таким образом, вы «убиваете двух зайцев» — повышаете конверсию за счет более высокой скорости загрузки web-страниц и сокращаете затраты на масштабирование основной инфраструктуры».
Константин Ансимов, менеджер продуктов Selectel
Проверьте работу ваших ресурсов силами администраторов Selectel до 23 ноября со скидкой — напишите на blackfriday@selectel.ru, и команда Selectel обязательно поможет подготовить ваш сайт к распродаже.
Текст опубликован на условиях рекламного партнёрства.
Подписаться на новости
Прочитаете,
когда вам будет удобно
Свежий дайджест из мира
eCommerce у вас в почте