По данным SalesCycle, посещаемость магазинов в Черную пятницу и Киберпонедельник выросла на 38% . Компаниям следует подготовить свою инфраструктуру к пиковым дням, поскольку даже несколько минут простоя могут стоить им тысячи долларов. За последние несколько лет многие крупные бренды, в том числе Walmart, J. Crew, Lowe's и GAME , потеряли много денег и подорвали доверие своих клиентов, потому что их команды не были готовы к Черной пятнице. Возвращаясь к увеличению на 38%, такое изменение требует постоянного внимания к предоставляемым услугам и их масштабируемости, чтобы компании могли идти в ногу с потоком заказов, максимизировать качество обслуживания клиентов и минимизировать их негативные отзывы.
Flowwow, глобальный рынок местных брендов и цветочного бизнеса, имеет свои собственные 3-4 пиковых дня (День святого Валентина, День матери), когда трафик увеличивается в 30 раз. Наша ИТ-команда разработала гибкую систему, которая помогает масштабировать сервис, управлять им и завершать работу после окончания пикового дня.
В этой статье я поделюсь пятью советами, которые помогут подготовить ваш сервис к массовому масштабированию и избежать ошибок, типичных для платформ электронной коммерции.
Прежде чем предпринимать какие-либо действия, разработайте и внедрите подробный план масштабирования, разделенный на несколько этапов: 1 месяц до пикового дня, 2 недели до пикового дня, 3-4 дня до пикового дня и 1 день до пикового дня с точным указанием список действий для команд. На каждом этапе важно, чтобы назначенные специалисты понимали, как выполнить каждую задачу и решить любую потенциальную проблему. Эти команды обычно состоят из команды DevOps и разработчиков серверной части.
С каждым годом общее количество заказов увеличивается – это неудивительно, поэтому очень важно прогнозировать объемы перевозок и быть к ним готовыми. Исторические данные и межфункциональное сотрудничество с маркетинговой командой являются ключевыми элементами точного прогноза. Они помогают понять, какой из компонентов системы может расти, а затем принять решение о количестве серверов и их мощности.
После того, как вы оценили ожидаемые цифры, поместите в прогноз 2X. Если вы прогнозируете 30-кратный рост, то поставьте задачу быть готовым к 60-кратному росту. Такой подход позволяет вам дополнительно подготовиться к неожиданным трудностям. Если у вас есть масштабирование облака, у вас есть инструменты, позволяющие резко увеличить мощность за короткий период времени, а затем при необходимости снизить ее до обычных показателей.
Проведите анализ обнаружения инфраструктуры на основе основных параметров — наметьте серверы, их текущий размер, их компоненты, проекты и приложения. Понимание основных параметров помогает экстраполяции: вы прогнозируете рост и рассчитываете потенциальные сценарии на случай, если он действительно увеличится в 60 раз.
Примените правило 30X ко всем ошибкам. Если вы обнаружили ошибку, спросите себя: «Если эта ошибка начнет появляться в 30 раз чаще, будет ли это для нас проблемой?» Если ошибку в трафике 30X стоит исправить сейчас, начните над ней работать.
Если ваша команда разработчиков недостаточно велика, высока вероятность того, что список дел у каждого заполнен до краев. Следовательно, необходимо сформировать отдельную внутреннюю команду разработчиков, фокус которой будет сосредоточен исключительно на пиковом периоде: эта команда должна быть свободна от других бизнес-запросов и заниматься только задачами по оптимизации. Здесь хорошо работает принцип Парето: оптимизация 20% узких мест означает закрытие 80% проблем с производительностью в коде и базе данных.
Не забудьте объявить о заморозке функций (период, когда ваша команда не будет добавлять новые функции) и напомнить команде об этом, желательно за месяц. Мы не разрешаем вносить изменения в код или базу данных в этот период, потому что при внесении изменений может упасть вся система, а цена этой ошибки единовременно возрастает в 30 раз.
Узкие места показывают механизмы, которые необходимо оптимизировать в вашей текущей инфраструктуре. Мы разделяем текущие компоненты системы на разные области и контролируем их отдельно. Это позволяет нам оценить производительность каждого сервера и понять, каким компонентам требуется больше ресурсов с нашей стороны — такой подход помогает гибко планировать наши ресурсы. Используйте расширенную систему мониторинга, способную оценивать производительность каждого компонента в режиме реального времени и агрегировать журналы, чтобы выявить все ошибки (чтобы вы могли исправить их позже).
Здесь хорошо работает принцип Парето: оптимизация 20% узких мест означает закрытие 80% проблем с производительностью в коде и базе данных.
Заранее проведите стресс-тестирование, пытаясь имитировать поведение потенциального клиента. Начните с моделирования нагрузки на инфраструктуру, например, в 10 раз превышающую обычную. На основе полученных данных мы понимаем, какие направления требуют оптимизации. Есть специальные инструменты, которые позволяют взять часовую нагрузку и сыграть ее в 10 раз быстрее, чтобы оценить и подтвердить, выдержит ли система определенный уровень давления.
В период пиковых нагрузок мы тщательно планируем нагрузку каждого члена команды, распределяя ключевые роли и обязанности. Мы заботимся о наших сотрудниках, поэтому заботимся о том, чтобы каждый выспался, но при этом стремимся охватить максимальное количество часовых поясов. На каждом этапе мы назначаем процессного менеджера, который следит за тем, что происходит в пиковый момент. Именно этот человек сообщает команде, если один из компонентов системы приближается к пределу производительности (80%).
Поскольку мы работаем удаленно, когда наступит День Х, крайне важно, чтобы вся команда оставалась на связи не только через рабочие мессенджеры, такие как Slack, но и через каналы экстренной связи, такие как Telegram и личный телефон.
Пиковые дни, такие как Черная пятница, Киберпонедельник и Рождество, — это активные фазы, к которым вы должны быть готовы. Больше трафика означает большую ценность для вашего бизнеса. Это, в свою очередь, обычно проявляется в увеличении доходов. Поэтому не стесняйтесь инвестировать в масштабирование, придерживаться международных принципов и внедрять современные сервисы. Следите за новыми решениями, которые отвечают потребностям вашего бизнеса сегодня, и масштабируйтесь с пользой для своих услуг!