В здоровой ситуации e-commerce проект постоянно развивается и, как следствие, его ИТ-архитектура эволюционирует до состояния с тысячей номенклатур, десятками тысяч ежедневных пользователей и разной географией продаж.

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

Дальновидный способ

Миграция на микросервисную архитектуру и Kubernetes — не быстрый, сложный, но предусмотрительный способ сделать интернет-магазин, выдерживающий высокие нагрузки. Разумеется, такой переход не совершить за один месяц до Черной пятницы или какого-либо другого высокого сезона продаж. Но не рассмотреть его с точки зрения долгосрочной перспективы нельзя. 

Перестраивать архитектуру нужно, если изначально интернет-магазин был построен на монолитной архитектуре, вырос до огромных размеров, и теперь система сбоит и медленно работает. А способы ее оптимизации — рост «ввысь» и «вширь» — помогают, но ненадолго. Именно когда проект становится больше и сложнее, микросервисная архитектура возвращает интернет-магазин в нормальную ситуацию и позволяет дальше независимо друг от друга масштабировать и развивать сервисы параллельно. 

Что делать, чтобы подготовить текущую ИТ-инфраструктуру

Если сезон продаж уже не за горами, времени на переход к микросервисам уже не будет. Но есть достаточно быстрые способы узнать, готова ли ваша система к нагрузкам, и улучшить показатели до того, как на сайт зайдут тысячи пользователей.

1. Мониторинг показателей системы

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

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

Среди инструментов мониторинга Zabbix лучше всех зарекомендовал себя за счет понятной документации и оперативного запуска. 

2. Тестирование 

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

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

Тестирование требует много времени и усилий от QA, так как уязвимости могут быть где угодно: и слабое железо, и неоптимизированное приложение, и базы данных, и неправильная конфигурация. Поэтому тестировать желательно всё. Но с ручными QA это будет долго и, конечно, здесь есть склонность к человеческой ошибке.

Автоматизация этого процесса станет для бизнеса разумным и быстрым методом проверки нагрузки с разных сторон. Например, для нашего клиента мы внедрили автотесты и сократили время на поиск ошибок с 8 часов до 25 минут.

Станислав Пятецкий
Директор производства AWG

Вот как это выглядит:

Команда проводит доработки и релизит их сначала на стейдж — копию боевого сервера. А потом, по нажатию одной кнопки, начинается автоматизированное тестирование. С помощью Яндекс.Танка и Apache JMeter заряжаются «патроны» и «танк» стреляет — атакует ваш сайт синтетически сгенерированным трафиком.    

В результате у вас на руках отчет, что деградация по производительности отсутствует. Или наоборот: деградация по производительности системы после релиза 20% от того, что было до. 

Один из кейсов в нашей практике — сокращение времени загрузки главной страницы с 30 до 5-7 секунд. Мы провели мониторинг скорости работы сайта у заказчика и протестировали производительность. Это позволило понять, почему сайт медленно прогружался. 

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

3. Прогнозирование нагрузки

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

4. Увеличение мощностей

Вы можете масштабироваться в зависимости от результатов тестирования горизонтально или вертикально. 

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

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

Поскольку у крупного бизнеса цена ошибки и времени простоя слишком высока, то для надежности компании могут использовать масштабирование с Kubernetes (K8s). 

Этот инструмент позволяет автоматически увеличивать и уменьшать нагрузки в зависимости от использования ресурсов. То есть, с помощью K8s и пары кнопок новые серверы можно как докупить перед акцией, так и избавиться после завершения мероприятия. За счет этого производительность значительно быстро вырастает. И риск провести акцию неудачно минимизируется. 

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

Привлечение экспертов для техподдержки проекта

Подрядчики, которые специализируются на масштабировании, скорее всего, уже сталкивались с подобными сценариями в прошлом и могут предложить ценные идеи и лучшие практики для вашего бизнеса. А вы можете более детально погрузиться в другие процессы по подготовке к Черной пятнице.

Наша команда подключит круглосуточный мониторинг серверов, будет наблюдать за скоростью работы сайта и проанализирует логи, чтобы привести сайт в полную боевую готовность.

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

Станислав Пятецкий
Директор производства AWG

Лайфхаки для бизнеса

1. Выстраивание доверительных отношений между бизнесом и ИТ

Конфликт между бизнесом и ИТ-подразделением является распространенной ситуацией. Сотрудники ИТ-сферы во многом стремятся к совершенству и хотят достичь наилучших результатов, но это часто сопряжено с высокими затратами для компании. С другой стороны, бизнес стремится экономить, иногда не всегда обоснованно.

2. Создание кэширующей странички

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

3. Рассеивание трафика

Распределение или рассеивание трафика между различными каналами продаж или точками контакта может привести к снижению концентрации посетителей или покупателей в конкретном канале. 

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

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

Проблема «выживания» бизнеса в Черную пятницу решается не только ресурсами и оптимизацией инфраструктуры. Если команда маркетинга размажет коммуникации, то ожидаемая пиковая нагрузка на системы будет ниже. Также можно уменьшить и объем коммуникаций.

Заблаговременная подготовка контента тоже важна — так длительное обновление цен может не позволить начать акцию в назначенное время.

Алексей Ровдо
Главный аналитик AWG

Ваш сайт готов к Черной пятнице? 

В целом, Черная пятница может быть напряженным временем для многих компаний. Подготовка и планирование заранее — вот ключи к успешному сезону онлайн-продаж. E-commerce следует относиться к акциям так же, как офлайн-бизнес готовиться к мероприятиям: заранее уточнить время начала акции, «подключить» ИТ-специалистов, пусть даже ночью, и следить за графиками, чтобы оперативно реагировать на рост нагрузки и принимать соответствующие меры в момент, когда пользователи «залетают» к вам на сайт.

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

Комментарии (0)