Как подготовить интернет-магазин к Чёрной пятнице?

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

В закладки

Наша сегодняшняя история про команду iTargency и их клиента, одного из крупнейших российских магазинов обуви Respect, который нужно было подготовить к чернопятничной распродаже, а также про популярный Битрикс, на базе которого сделан сайт магазина. Давайте приоткроем дверь на it-кухню интернет-магазинов и узнаем о технических моментах, которые не видны не только пользователям, но зачастую и владельцам интернет-бизнеса.

Как это было

Подготовка к Чёрной пятнице, прошедшей в этом году 23 ноября, стартовала уже в начале месяца. Black Friday — настоящий праздник для продавцов и покупателей, но только не для службы технической поддержки, поскольку большая распродажа способна «положить» любой ресурс. В это время нагрузка на сайт возрастает в 2-10 раз и именно в этот день вскрываются все ошибки разработчиков сайта и создателей CMS (жертвами этого года, к слову, стали такие крупные игроки рынка, как labirint.ru и kassir.ru, чьи сайты не выдержали нагрузки и оказались временно недоступными).

Поэтому команда iTargency заранее готовилась к дополнительной нагрузке на сайт. Одним из этапов подготовки было подключение к сайту дополнительного сервера для создания кластера (объединение серверов в единый ресурс); предварительные работы по введению в строй нового сервера проводились 16-18 числа. Также было проведено тестирование функционала и проверено все, что может снизить нагрузку на сайт. Прогнозировалось увеличение посещаемости по сравнению с прошлым годом, поскольку благодаря работе seo-специалистов iTargency трафик из поисковиков Яндекса и Google заметно вырос.

Чтобы минимизировать потери посетителей при возможных падениях сайта, работы по развёртке и настройке второго сервера проводились в ночное время: с 23 часов и до 6 часов утра. Задача была непростой, поскольку Битрикс при кластеризации (распределение одного сайта на несколько серверов) имеет свои технические ограничения, и без временного отключения сайта стандартные решения разработчиков CMS, увы, не работают. Осложнялась ситуация тем, что необходимо было параллельно работать с текущими задачами по сайту. Но, как оказалось, это были ещё цветочки.

Форс-мажор

Старт акции был запланирован на четверг накануне Чёрной пятницы, то есть на 22 ноября, но в понедельник 19-го стало ясно, что ситуация в online изменилась: многие ресурсы начали рекламу Black Friday раньше обычного. Поэтому во вторник магазин запустил рассылку, уведомив своих покупателей о начале Black Friday. По факту Чёрная пятница началась на сайте в ночь с 20 на 21 ноября, то есть за двое суток до изначально запланированной даты. Естественно, пришлось в срочном порядке перестраивать план работ и начинать тестирование. Именно здесь разработчики столкнулись с дополнительной сложностью работы с Битрикс.

Дело в том, что технология «веб-кластер», которую рекламируют разработчики Bitrix, должным образом не функционирует на работающем сайте. При большом объёме данных стандартные средства Битрикса не позволяют подключить второй сервер с уже существующей базой данных, поскольку при этом система удаляет всю информацию на нём. Но база данных на втором сервере была нужна, плюс у интернет-магазина настроена интеграция с 1С, да ещё и много региональных магазинов. Важно понимать, что второй сервер - это не подстраховка, он нужен был, чтобы создать единую систему с большей мощностью. Если проводить аналогию, то это равносильно попытке впрячь вторую лошадь в повозку, предназначенную для одной лошади. Тем не менее, удалось сформировать кластер на Битриксе без потери данных на подключаемом сервере и без отключения сайта.

Для этого пришлось с нуля настраивать связь между двумя серверами, поскольку изменился принцип обработки поступающих запросов, а перестроить систему за такой короткий срок, да ещё и без отключения сайта, было сложно. В итоге, благодаря кластеризации сайт получил существенное увеличение производительности и отказоустойчивости. Кроме того, всё время проведения акции (с 20 по 25 ноября — Black Friday в этом году захватила и уикенд) нужно было оперативно обновлять информацию о наличии и резерве товара, для чего потребовалось обеспечить выгрузку из 1С десяти тысяч позиций. Эту работу пришлось выполнять ночью, в период с 02:00 до 06:00 утра, так что можно честно сказать, что программисты работали круглосуточно.

О проблемах Битрикса и грамотном выборе CMS

Итак, Bitrix в руках команды программистов iTargency с задачей справился, но для этого пришлось изменить поведение движка при создании кластера. И подобная негибкость Битрикса — причина того, что толковые программисты работать с ним умеют, но совершенно не хотят. Ещё один веский довод, почему серьёзные специалисты не хотят связываться с Битриксом — эта CMS существенно понижает порог входа для разработчиков, что в свою очередь порождает большое количество логических и архитектурных просчётов на этапе реализации проекта. А исправлять это потом — занятие не из приятных.

Владельцы бизнеса выбирают Bitrix чаще всего для того, чтобы не зависеть от исполнителя.

Однако у этого «движка» есть свои серьёзные ограничения, и, если бы не слаженная работа команды iTargency и компании Respect, интернет-магазин со стартом распродажи совершенно точно не справился бы с нагрузкой.

Что в результате

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

Подобные ситуации дают бесценный опыт.

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

В заключение добавим, что, когда руководители интернет-магазинов выбирают студию для разработки сайта, они чаще всего оценивает работы именно с точки зрения дизайна. Но для больших проектов гораздо важнее, насколько качественно работает сайт изнутри, ведь дизайн — это 20% от всего сайта (вершина айсберга), остальные 80% — это программная часть, от которой зависит работа сайта «в боевых условиях».

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Юлия Шипикина", "author_type": "self", "tags": [], "comments": 0, "likes": 0, "favorites": 2, "is_advertisement": false, "subsite_label": "life", "id": 56637, "is_wide": false, "is_ugc": true, "date": "Fri, 25 Jan 2019 18:36:51 +0300" }
{ "id": 56637, "author_id": 246867, "diff_limit": 1000, "urls": {"diff":"\/comments\/56637\/get","add":"\/comments\/56637\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/56637"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199123 }

Комментариев нет 0 комм.

Популярные

По порядку

0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Команда калифорнийского проекта
оказалась нейронной сетью
Подписаться на push-уведомления
{ "page_type": "default" }