Нагрузочное тестирование системы WMS крупнейшего интернет-гипермаркета

Заказчик:
ВсеИнструменты.ру
Руководитель проекта со стороны заказчика
Поставщик
Перфоманс Лаб
Год завершения проекта
2023
Сроки выполнения проекта
Апрель, 2023 - Июль, 2023
Масштаб проекта
1140 человеко-часов
Цели
  1. Определение максимальной производительности cистемы WMS.
  2. Проведение тестирования на выделенном продуктовом стенде и анализ результатов.
  3. Выявление «узких мест» — факторов, ограничивающих производительность системы.
  4. Передача компетенций заказчику и обогащение опыта штатной команды. Построение зрелых процессов QA и работа с отказоустойчивостью корпоративных систем.

Результаты
Тесты показали, что система выдерживает нагрузку выше, чем 200%. Потолок производительности системы управления складом был ограничен рядом дефектов, которые могли быть обнаружены только под воздействием аномально высоких нагрузок, выше текущих промышленных объемов.

Были обнаружены следующие дефекты:

— некорректные настройки сценария поиска максимальной производительности (решено командой «Перфоманс Лаб»);

— увеличение времени отклика у ручки shipmentOrderProducts под нагрузкой выше 100%;

— редиректы при отправке запросов из скриптов нагрузочного тестирования;

— важный дефект интерфейса: некорректная работа кнопок в разных регионах из-за отличий в организации работы складов.

По итогу работы команда «Перфоманс Лаб» разработала рекомендации для клиента:

— провести дополнительные исследования ручки shipmentOrderProducts, чтобы найти причины аномального поведения во время тестирования;

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

— провести новую итерацию поиска максимальной производительности системы WMS, используя обновленный сценарий от «Перфоманс Лаб». В нем учтены некорректные настройки, но не исправлена обнаруженная проблема с редиректами.

Верхняя граница при поиске максимальной производительности системы также осталась равна 200%;

— после получения результатов об уровне максимальной производительности WMS провести тестирование стабильности (надежности) длительностью не менее 6 часов, чтобы получить полноценную информацию о возможностях системы.

Специалисты передали заказчику результаты работ, скрипты и провели обучение сотрудников: команда приобрела компетенции в создании скриптов и профиля нагрузки.

Онлайн-гипермаркет «ВсеИнструменты.ру» убедился, что его система и инфраструктура справится с кратным увеличением нагрузки без необходимости закупки дополнительного оборудования. Имея статистику по приросту новых клиентов, заказчик смог спрогнозировать продолжительность комфортной работы на текущих мощностях, а также получил список «узких мест» и инструменты для проверки и усовершенствования инфраструктуры. Так команда «Перфоманс Лаб» помогла ему решить критичную проблему для бизнеса: подготовиться к масштабированию.

Уникальность проекта

Нагрузочное тестирование складской системы WMS для крупнейшего российского интернет-гипермаркета (более миллиона позиций). Тестирование проводилось в уникальных условиях:

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

  • Высокий спрос на продукцию компании ограничивал количество попыток для успешного завершения проекта. Заказчик смог предоставить только две попытки в определенные дни года.

Использованное ПО

Apache JMeter — инструмент для проведения нагрузочного тестирования. В проекте применялся для моделирования сценариев пользовательского поведения и подачи нагрузки.

Grafana — инструмент для визуализации, мониторинга и анализа данных.

InfluxDB — система управления базами данных.

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

  • Еще одна сложность –– создание профиля нагрузки. Важно было учесть все бизнес-процессы для воссоздания реалистичных сценариев. Чтобы система работала корректно, инженерам потребовалось изучить активность в смежных подразделениях, учесть логистику и порядок действий сотрудников склада.

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

Описание проекта

Строительный онлайн-гипермаркет «ВсеИнструменты.ру» имеет высокие показатели прироста клиентов и выручки. Была поставлена задача спрогнозировать расширение бизнеса и подготовить ключевые системы и инфраструктуру к новым нагрузкам. Чтобы оценить текущую производительность системы и найти узкие места, заказчик обратился к команде тестирования «Перфоманс Лаб». Работать предстояло с системой управления складом WMS, которая автоматизирует прием, хранение и отправку заказов клиентам. В случае сбоев хотя в пределах одного рабочего дня заказчик рисковал потерять огромные суммы и понести репутационный ущерб.

Из-за отсутствия тестового стенда на стороне клиента команда «Перфоманс Лаб» проводила работы на базе продуктивного контура. Для этих целей онлайн-гипермаркет выделил часть инфраструктуры и предложил тестировать систему в ночные часы определенных дней — таким образом риски сбоев были минимальными. Однако действия в рамках WMS, пусть система и служебная, сложно обратить в силу ее функционала.

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

После согласования с «ВсеИнструменты.ру» в определенные часы была произведена подача нагрузки на продуктивную среду. Продуктивный стенд состоял из трех дублирующих контуров, для работы команды в ночь с субботы на воскресенье, когда нагрузка на все системы была минимальна, онлайн  отключал один из этих контуров на 8–10 часов, а остальные контуры забирали трафик на себя.

География проекта
ЦФО и Сибирский ФО
Коментарии: 6

Комментировать могут только авторизованные пользователи.
Предлагаем Вам в систему или зарегистрироваться.

  • Максим Часовиков
    Рейтинг: 4767
    РАНХиГС
    Директор Проектов проектного офиса ректора
    06.01.2024 00:13

    Добрый день, а для чего данное тестирование выполнялось? Кто был его заказчиком? И три месяца - кажется слишком долго. КАкие решения были приняты по результатам проекта? что есть запас "железных" мощностей?

    • Ирина Малюгина Максим
      Рейтинг: 45
      ООО Перфоманс Лаб
      PR&Marcom manager
      31.01.2024 09:43

      Максим, добрый день!
      Основной целью была проверка запаса прочности текущей инфраструктуры. У заказчика были прогнозные значения, которые требовали проверки. Научным способом был установлен предельный запас прочности и найдены узкие места, которые этот запас позволяют увеличить. Срок реализации проекта учитывает степень сложности объекта тестирования, условия, возможные риски и цену ошибки.

  • Вячеслав Чупраков
    Рейтинг: 1279
    Прагматика Эксперт
    Заместитель ИТ директора по инфраструктуре и сервисам
    06.01.2024 11:54

    Добрый день, кто по договору отвечал за риск отказа в обслуживании?

    • Ирина Малюгина Вячеслав
      Рейтинг: 45
      ООО Перфоманс Лаб
      PR&Marcom manager
      31.01.2024 09:41

      Добрый день!
      Заказчик прорабатывал вариант, чтобы этого не случилось, так как он разрабатывает свои системы сам, то лучше понимает архитектуру и возможные последствия нагрузочного тестирования.

  • Вячеслав Чупраков
    Рейтинг: 1279
    Прагматика Эксперт
    Заместитель ИТ директора по инфраструктуре и сервисам
    06.01.2024 11:57

    Правильно я понимаю, что после тестирования у команды остались инструменты и обученные специалисты для проведения тестов в дальнейшем своими силами?

    • Ирина Малюгина Вячеслав
      Рейтинг: 45
      ООО Перфоманс Лаб
      PR&Marcom manager
      19.01.2024 19:59

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

Год
Предметная область
Отрасль
Управление
Мы используем файлы cookie в аналитических целях и для того, чтобы обеспечить вам наилучшие впечатления от работы с нашим сайтом. Заходя на сайт, вы соглашаетесь с Политикой использования файлов cookie.