Идет бычок, качается: чек-лист для e-commerce в сезон распродаж +3


Каждый год миллионы человек совершают покупки через интернет: это удобно, просто и быстро. Средний пользователь, выбирая у кого купить желаемый товар, держит открытыми до 5-7 вкладок с разными интернет-магазинами: у кого-то лучше ценник, у кого-то больше опций оплаты. И если вдруг вследствие неполадок сайт перестанет работать или будет слишком сильно «тупить», пользователь без сомнений уйдет к «соседям» по браузеру.

В преддверии Черной пятницы, самой популярной и крупной (но далеко не единственной) мировой распродажи, стоит позаботиться о доступности ваших сайтов. Как? Специалисты ИТ-ГРАД дадут советы под катом.


/ Оригинал изображения – Shutterstock

Основная причина «падения» сайтов в период распродаж – резкое повышение количества трафика и не подготовленная должным образом инфраструктура. Следует помнить и о том, что параллельно с естественным наплывом посетителей возможна DDoS-атака.

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

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

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

Huawei


Дата инцидента: 4 апреля 2018 года.
Что случилось: Казалось бы, Китай — это одна из самых густонаселенных стран мира. И китайский вендор, запустивший акцию невиданной щедрости (смартфоны и планшеты всего за 1000 рублей), вполне мог предугадать серьезную нагрузку. Тем не менее, в офисе компании недооценили энтузиазм наших любителей hi-tech, в результате чего сайт российского подразделения Huawei перестал открываться.



Сбой был зафиксирован буквально сразу же после запуска распродажи, около 11:00 по московскому времени. При этом основная «акционная» страница открывалась без проблем, но при попытке добавить товар в корзину возникала ошибка HTTP Status 404 — /CAS/remoteLogin. Представители компании от комментариев воздержались, сославшись, опять же, на незапланированный рост трафика в ходе проведения акции.

Комментарий эксперта: у Huawei начиналось все достаточно мирно. На самом деле, в акции говорилось всего о 10 устройствах за 1000 рублей, но люди что-то не так поняли, и понеслось. Вполне вероятно, что истинной причиной падения был недостаточно качественный маркетинг — при разработке рекламных материалов стоило четче указать лимиты.

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

Победа


Дата инцидента: 12 августа 2019
Что случилось: Сайт авиакомпании-лоукостера «Победа» (вернее, сервис бронирования) перестал корректно работать во время распродажи билетов по 499 рублей.



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

Для «Победы» это не первый случай падения во время распродажи — то же самое случалось и ранее.

В результате: «Победа» планировала распродать 200 000 билетов по минимальным тарифам — от 499 до 1999 рублей. По заявлению компании, на сайт было добавлено 160 тысяч, а из запланированного количества все-таки получилось реализовать около 52 203 билетов. Соответственно, осталось 107 797 билетов, средняя цена которых составила ~1249 рублей. Исходя из этого, можно сделать грубую прикидку и посчитать, что «Победа» могла бы максимально выручить еще около 134 миллионов рублей.

Однако сам факт того, что распродажа билетов вызвала такой ажиотаж, а «Победа» получила огромное количество упоминаний в СМИ и социальных сетях говорит о том, что билеты по 499 рублей могут заставить пользователей забыть о падении и других сомнительных моментах.

День холостяков на AliExpress


Дата инцидента: 11 ноября 2015
Что случилось: Тотальная распродажа, приуроченная у популярному в Китае «Дню Холостяка», в 2015 году проходила в России впервые. Однако пользователи и партнеры популярной торговой площадки столкнулись с проблемами при оплате товаров. На протяжении нескольких часов оформленные и оплаченные заказы оставались в корзинах пользователей со статусом «Ожидаем оплату», а деньги с карт списывались по два раза.

В результате: Тем не менее, представители AliExpress заявляли, что на их стороне сбоев не было и виновниками сложившейся ситуации являются некоторые крупные российские и европейские банки, которые не смогли справиться с резко возросшим числом запросов на оплату.
Поговорим о репутации. Сбой затронул множество пользователей из России и стран Европы. Более того, он повлек за собой материальные издержки для некоторых из этих пользователей. Тем не менее, есть и позитивный момент для ритейла: несмотря на падение, это доказывает, что люди были настолько увлечены акцией, что даже банки не смогли “переварить” все платежи.

BlackFriday2013.ru


Дата инцидента: 6 декабря 2013
Что случилось: сайт распродажи Black Friday отказал буквально сразу же после начала распродажи. В праздничном падении также приняли участие сайты Ozon, Enter, Белый ветер, Л’Этуаль и другие партнеры акции, чьи баннеры были размещены на странице организатора.



В экстренном порядке проводились технические работы на сайте, в процессе которых xml-фиды были залиты неверно, и покупатели получали такие скидочные предложения:


/ Так выглядел результат неверно залитых xml-фидов

В результате: По заявлениям организаторов, из-за того, что в 2013 году Черная пятница проводилась в нашей стране впервые, они не смогли верно оценить предполагаемую нагрузку. Для восстановления работоспособности потребовалось около 11 часов, акция была продлена до вечера субботы. Несмотря на наличие позитивных отзывов от представителей Ozon, «Буквоед» и других компаний-участников, некоторые из партнеров 2013 года отказались от участия в будущих акциях. Вполне вероятно, существенный сбой в работе выделенного сайта-агрегатора и, как следствие, простой в продажах — одна из причин. В этом случае стоит отметить, что перекладывание части нагрузки на агрегатора распродажи — способ снизить риски для ритейлеров, однако агрегатор в этом случае берет на себя солидную ответственность по обеспечению акции.

Белавиа


Дата инцидента: 5 марта 2016
Что случилось: накануне происшествия белорусская авиакомпания «Белавиа» в честь двадцатилетнего юбилея объявила продажу билетов всего за 20 евро. Предполагалось, что в течение всего дня 5 марта будет реализовано до 114000 билетов по специальному тарифу.
Тем не менее, оказалось, что сервера компании к рекордному наплыву посетителей оказались не готовы. Всего через час после начала акции пользователи завалили социальные сети сообщениями о неисправностях на сайте.


/ Скриншот публикации из социальных сетей

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

В результате: «Белавиа» планировала максимально реализовать 114 000 билетов, продано, согласно отчету, 47 681 билет. Однако этому способствовало продление акции еще на один день — за 5 марта компания продала лишь 10000 билетов.


/ Скриншот публикации из социальных сетей


/ Фото с презентации «Белавиа» с подведением итогов 2016 года, blog.vp.by

Репутация: пожалуй, «Белавиа» нашли самый элегантный и честный способ восстановить подмоченную репутацию. Акция была продлена еще на сутки, и 6 марта продажа билетов по промотарифу возобновилась, на сей раз уже без сбоев.

Делаем выводы


В заключение приведем чек-лист, соблюдение которого перед предполагаемыми пиками нагрузки поможет вашему сайту выстоять. Список рекомендаций разделен на 2 части: первая посвящена подготовкам со стороны менеджмента и маркетинга, вторая — инженерам и специалистам по эксплуатации.

Управление и маркетинг


  • Очень часто акции и распродажи планируются как минимум за полгода, а на основании прошлых лет можно составить приблизительный прогноз по росту нагрузки.
  • Формируйте максимально честные и понятные предложения для клиентов, чтобы избежать лишнего ажиотажа. Нечетко сформулированная акция, помноженная на тормозящий сайт, может вызвать серьезные репутационные и финансовые потери.
  • Подумайте о возможности задействовать партнерские площадки, чтобы более равномерно распределить трафик во время акции.
  • Если у вас сохранились логи прошлых лет, не поленитесь поднять их и изучить поведение пользователей сайта.
  • Согласуйте план акций и прочих мероприятий, которые могут вызвать рост трафика, с IT-отделом.

IT


  • IT-инфраструктура и архитектура приложения должны быть масштабируемы.
  • Убедитесь, что инфраструктура примет потенциальную нагрузку без проблем. В идеале стоит заранее провести нагрузочное тестирование и при выявлении проблем доработать.
  • Сообщите провайдеру о предстоящем пике, если используете облачные ресурсы. Проверьте возможность «горячего» добавления вычислительных ресурсов: добавление пулов ресурсов, добавление ресурсов виртуальных машин.
  • Отдельно учтите возможность масштабируемости на уровне приложения.
  • Выделите типичные пути пользователей по вашему сайту и на их основании создайте несколько сценариев эмуляции реальной нагрузки.
  • При возможности разверните тестовый стенд и проведите нагрузочное тестирование по ранее подготовленным сценариям.
  • Внедрите поддержку active-active и увеличьте объем активной распределенной инфраструктуры.
  • Проработайте сетевую связность по всей цепочке активных сетевых устройств и каналов от сервера приложений до границы инфраструктуры.

Если у вас остались какие-то вопросы — будем рады пообщаться в комментариях.




К сожалению, не доступен сервер mySQL