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