Авторизация
Забыли пароль?
Сброс пароля
Вернуться к авторизации
RUWARD AWARD #1

STOCKMANN: как вернуть управляемость в крупный eCommerce

Разработка сайтов Кейс года
Страница кейса/результат: https://stockmann.ru/

1. Вводная задача от заказчика, проблематика, цели

Компания STOCKMANN была основана в 1862 году в Финляндии. Сегодня сеть представлена в Европе и крупных городах России — Москве, Санкт-Петербурге, Сочи и Екатеринбурге. С 2018 года компания развивает собственный онлайн-магазин как один из ключевых каналов продаж.

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

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

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

Наша работа со STOCKMANN началась во время подготовки к очередной акции «Сумасшедшие дни». На старте мы выделили несколько приоритетных задач:

  • Вернуть управляемость в интернет-магазин;
  • Обеспечить бесперебойную работу в дни распродаж;
  • Создать условия для устойчивого развития сайта в будущем.

Для реализации нужно было менять текущую платформу и подходы к разработке, причем срочно.

Сергей Фадеев

Head of eCommerce, STOCKMANN

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

2. Описание реализации кейса и творческого пути по поиску оптимального решения

Мы видели два варианта стратегии, и от обоих отказались в пользу третьего.

Вариант 1. Стабилизировать текущую платформу и сделать ее управляемой. Затем заняться развитием.

Почему отказались?

  • Платформа представляла из себя единый монолит: связанность процессов зашкаливала;
  • Документация отсутствовала или была неактуальна;
  • Быстро разобраться, как работают система и ее отдельные узлы, было невозможно;
  • Попытки решить проблему вычислительными мощностями и реализация quick-wins не позволяли справиться так быстро, как это требовалось.

Вариант 2. Выделить две команды — одна поддерживает текущий проект, вторая работает над новым.

Почему отказались?

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

Вариант 3. Меняем колеса «на ходу», или как мы усидели на двух стульях

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

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

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

Беспокойство вызывали масштаб задачи и то, что решить ее нужно было максимально быстро. Но у нас уже был похожий опыт, поэтому мы пошли на риск. Техническая команда STOCKMANN нас в этом поддержала. Итак, в нашей команде было 12 человек со стороны Ctrlweb, 6 — со стороны заказчика. В неё входили frontend- и backend-разработчики, UX-дизайнер, DevOps, аналитики, архитектор e-com систем, тестировщики и менеджер проекта.

Рабочий процесс построили так:

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

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

3. Результаты сотрудничества

1. За месяц мы сумели перевести STOCKMANN на новую инфраструктуру. В этом нам помогали коллеги из «Крок Интеграции», которые изначально занимались обслуживанием инфраструктуры сайта. В процессе работы нам удалось выяснить важные архитектурные моменты, которые позволили отслеживать, где начинаются неисправности, и каким образом можно их решать, благодаря внедрению трассирующих логов и метрик в едином пространстве с инструментами исследования (сетап ELK и Prometheus).

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

Промежуточные результаты:

  • Мы успешно пережили первую распродажу: если до работы с нами во время «Сумасшедших дней» сайт попросту падал, и на работы по его восстановлению уходило порядка трех дней, то нам удалось провести акцию без серьезных технических проблем. И даже «Черная Пятница», которая традиционно обрушивает шквал заказов на интернет-магазины и становится тихим ужасом для технической команды, прошла без единого падения;
  • Ускорили появление новых обновлений на сайте в несколько раз: если раньше STOCKMANN получал релизы 1-2 раза в неделю, то мы сумели перестроить систему так, что в день выходили десятки обновлений;
  • Параллельно подготовили систему к переходу на SOA-архитектуру.

2. Вернули управляемость в интернет-магазин

Несмотря на проведенную работу система все еще тяжело справлялась со сверхнагрузками: терялись данные, были проблемы с расчетом доставок и выводом ошибок. Для решения мы вывели все функции, связанные с заказами, за периметр платформы в отдельный сервис «Заказ» и сделали его независимым:

  • Отказались от промежуточных запросов в 1C;
  • Настроили бесшовную систему авторизации;
  • Разработали систему очередей, которая исключила возможность потери заказа, если сторонние сервисы (например, 1С) по каким-то причинам не доступны;
  • Провели редизайн интерфейса: улучшили эргономику и сделали его более удобным для пользователя;
  • Внедрили системы мониторинга и уведомления об ошибках.
  • Это ознаменовало переход к новой контролируемой SOA-архитектуре и сделало наш сервис с заказами одним из самых быстрых на рынке.

3. Начали делать первые шаги к API-каталогу

Каталог — важнейшая часть любого ecom-проекта. Он должен быть быстрым, актуальным и иметь гибкий для настроек функционал. У STOCKMANN уже был каталог с десятками тысяч товаров и довольно сложной логикой, и мы не могли просто взять и перестроить его для highload без ущерба для бизнес-задач.

Мы начали перестройку процессов постепенно: за два первых месяца frontend-разработчики создали фронт на React.js, а поверх старого монолита добавили слой API без изменения логики сервиса. Это позволило увеличить скорость как для пользователей, так и для внедрения нового функционала. При этом снизилось число ошибок, а у нас появились важные предпосылки для будущего обновления дизайна и перевода каталога на принципиально новый сервис.

4. Сайт должен располагать максимально актуальными данными здесь и сейчас. Для того, чтобы добиться этого, вместе с разработчиками ERP реализовали следующее:

  • Распараллелили обмен разных типов данных. Теперь цены, остатки, сегменты и акции обрабатываются в разных очередях;
  • Разбили массив данных на части, благодаря чему распределили нагрузку и ускорили обработку;
  • Встроили уведомления ERP на всех этапах обработки данных: валидация, начала и завершение;
  • Настроили обработку данных на основе повторных попыток средствами очередей, а при невозможности обработки начали уведомлять ERP;
  • Вывели уведомления об ошибках и статистике обработки данных в Тelegram.

Промежуточные результаты:

Если раньше данные попадали на сайт за часы, то сейчас это стало происходить за несколько минут или секунд. Нам удалось ускорить апдейт информации минимум в 10 раз, а на больших объемах скорость выросла в 40 раз.

5. Разработали «сайт мечты» — STOCKMANN 2.0.

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

Для этого мы:

  • создали полноценную SOA-архитектуру;
  • запустили сервисы управления контентом;
  • обновили каталог в новом UI;
  • создали новое API для mobile-разработчиков и системы управления контентом.

Сергей Фадеев

Head of eCommerce, STOCKMANN

Проект был сложный и с богатым «наследством». Ctrlweb успешно решили эту непростую задачу. За полтора года сайт стал намного лучше. Мы не падаем при релизах, не тормозим на подросших нагрузках, не возвращаемся каждый квартал к доработке закрытых задач, потому что они глючат. Ctrlweb едины с нашей командой в плане ценностей и приоритетов. Наша совместная работа — это история, когда 1+1 дало +10 к результату.

4. Заключение

За полтора года команда STOCKMANN x Ctrlweb прошли путь от монструозного монолита, который регулярно падал и боялся малейшего роста заказов, до гибкого инструмента продаж — STOCKMANN 2.0. Мы продолжаем улучшать сервис и развиваем веб-экосистему: полторы недели назад, совместно со студией Webit запустили новое мобильное приложение для STOCKMANN, которое уже доступно для скачивания в сторах.

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

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

Роадмап расписан до конца 2023 года — впереди много сложной, но интересной работы.

Результаты голосования

Средний балл: 7.8

Богданов Александр Игоревич - оценка 6

Горбаров Илья - оценка 9

Пеньков Валерий Павлович - оценка 6

Заруцкий Константин - оценка 9

Красавцев Павел - оценка 9