YARUS WMS: Высокая производительность на open source платформе

25.03.24, Пн, 18:44, Мск,

Многие годы специалисты YARUS для реализации проектов по автоматизации склада использовали стек технологий от компании Майкрософт, как минимум Windows Server и MS SQL Server. Данный стек успешно решал большинство задач и не требовал сложных настроек, работал «из коробки».

Содержание

Основная проблема была только в высокой стоимости такого решения, она складывалась из: «Microsoft» стек.

  1. Microsoft Windows Server – стоимость сильно варьируется от количества процессоров, ядер и прочего «железного» оборудования.
  2. Microsoft SQL Server – аналогично Windows Server стоимость для Enterprise высокая и сильно зависит от используемого «железа».
  3. Microsoft Terminal Server – используется в устаревших WMS-системах для подключения мобильных терминалов.

В целях оптимизации стоимости «железной» части и в тренде снижения зависимости от не надежных поставщиков ПО инженеры ЯРУС полностью перевели весь стек на open source решения, а именно: «Open source» стек.

  1. ОС Debian 12.
  2. Postgres Pro 16.
  3. Веб-сервер. Контейнер Docker с ОС Ubuntu server и веб-сервером Apache.
  4. Клиентская часть – веб-клиент от и YARUS WMS клиент для ОС Android.

Виды тестирования

Решение YARUS WMS на open source платформе

Любые изменения в какой-либо из компонентов стека технологий системы WMS YARUS проходят два вида тестирования:

  1. Инструментальные на предмет выявления логических ошибок и возможных ошибок отладки (ежедневный deploy ci/cd).
  2. Нагрузочное тестирование с применением бот-тестов с целью выявления пороговых значений нагрузки для нормального функционирования системы управления складом YARUS WMS.

Нагрузочные тесты

Нагрузочные тесты проводились для Базового модуля YARUS WMS при выделенных ресурсах:

  • Сервер. Виртуальный сервер на базе ОС Debian 12, 8 ядер тактовой частотой 4.6 ГГц, 20 Гб оперативной памяти, жесткий диск nvme.
  • Postgres Pro 16 БД сервер. Виртуальный сервер на базе ОС Debian 12, 8 ядер тактовой частотой 4.6 ГГц, 8 Гб оперативной памяти, жесткий диск nvme.
  • Веб-сервер. Контейнер Docker с ОС Ubuntu server и веб сервером Apache.
  • Redis Insight версия 2.4. Контейнер Docker с ОС Ubuntu. В базовом варианте теста не использовался, т.к. предназначен для высоконагруженных WMS-систем, когда речь идет о сотнях ТСД, работающих одновременно в режиме чтение-запись.

Бот – виртуальная сессия в среде ОС Android, экземпляр тонкого клиента YARUS WMS. Запускается автоматически и работает по заданному сценарию: приемка товара, сборка товаров как самые критичные для склада операции.Витрина данных НОТА ВИЗОР для налогового мониторинга

Тестовое окружение в части ботов – дискретная нагрузка, начиная с 50 ботов с шагом в 10 до 100 ботов включительно.

Следует отметить, что такая нагрузка со стороны ботов (циклы чтения и записи каждые 5 секунд) соответствует складскому комплексу с одновременной работой порядка 250-300 ТСД в обычном (штатном) режиме (для торговых складов, RETAIL, производственные склады).

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

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

  • Стационарные рабочие места, тонкий клиент на . Заметные задержки (от 5 до 10 секунд на открытие формы) стали появляться при активной работе 100 ботах.
  • Мобильное рабочее место, тонкий клиент YARUS Android. Задержки стали появляться при работе с экранными формами в пределах от 3 до 5 секунд при работе 100 ботов.

Выводы

На относительно дешевом «железе» и бесплатном ПО (вся серверная часть, кроме продуктов от и ЯРУС) мы получили стабильную (без единого сбоя) систему, которая выдерживает несколько циклов подряд под высокой нагрузкой. Open source решения по общему времени прохождения бот-теста показали себя не хуже, чем корпоративные решения от Microsoft.

Данный стек можно масштабировать как вертикально за счет добавления «железных» ресурсов, так и горизонтально за счет применения программного кэша в виде REDIS in memory cached data base (отдельный тест для open source стека будет проведен позже).

Наглядно увидеть, как проходит сценарий выполнения при работе с ботами можно по ссылке.