Высокая производительность YARUS WMS на open source платформе
Многие годы специалисты YARUS для реализации проектов по автоматизации склада использовали стек технологий от компании Майкрософт, как минимум Windows Server и MS SQL Server. Данный стек успешно решал большинство задач и не требовал сложных настроек, работал «из коробки».
Основная проблема была только в высокой стоимости такого решения, она складывалась из:
«Microsoft» стек.
- Microsoft Windows Server – стоимость сильно варьируется от количества процессоров, ядер и прочего «железного» оборудования.
- Microsoft SQL Server – аналогично Windows Server стоимость для Enterprise высокая и сильно зависит от используемого «железа».
- Microsoft Terminal Server – используется в устаревших WMS системах для подключения мобильных терминалов.
В целях оптимизации стоимости «железной» части и в тренде снижения зависимости от не надежных поставщиков ПО инженеры ЯРУС полностью перевели весь стек на open source решения, а именно:
«Open source» стек.
- ОС Debian 12.
- Postgres Pro 16.
- Веб-сервер. Контейнер Docker с ОС Ubuntu server и веб-сервером Apache.
- Клиентская часть – веб-клиент от 1С и YARUS WMS клиент для ОС Android.
Любые изменения в какой-либо из компонентов стека технологий системы WMS YARUS проходят два вида тестирования:
- Инструментальные на предмет выявления логических ошибок и возможных ошибок отладки (ежедневный deploy ci/cd).
- Нагрузочное тестирование с применением бот-тестов с целью выявления пороговых значений нагрузки для нормального функционирования системы управления складом YARUS WMS.
Нагрузочные тесты проводились для Базового модуля YARUS WMS при выделенных ресурсах:
- 1С Сервер. Виртуальный сервер на базе ОС 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 систем, когда речь идет о сотнях ТСД, работающих одновременно в режиме чтение-запись.
Бот – виртуальная сессия в среде OS Android, экземпляр тонкого клиента YARUS WMS. Запускается автоматически и работает по заданному сценарию: приемка товара, сборка товаров как самые критичные для склада операции.
Тестовое окружение в части ботов – дискретная нагрузка, начиная с 50 ботов с шагом в 10 до 100 ботов включительно.
Следует отметить, что такая нагрузка со стороны ботов (циклы чтения и записи каждые 5 секунд) соответствует складскому комплексу с одновременной работой порядка 250-300 ТСД в обычном (штатном) режиме (для торговых складов, RETAIL, производственные склады).
*Также надо понимать, что любой тест является синтетическим и зависит от многих факторов.
Результаты тестирования:
- Стационарные рабочие места, тонкий клиент на 1С. Заметные задержки (от 5 до 10 секунд на открытие формы) стали появляться при активной работе 100 ботах.
- Мобильное рабочее место, тонкий клиент YARUS Android. Задержки стали появляться при работе с экранными формами в пределах от 3 до 5 секунд при работе 100 ботов.
Выводы:
На относительно дешевом «железе» и бесплатном ПО (вся серверная часть, кроме продуктов от 1С и ЯРУС) мы получили стабильную (без единого сбоя) систему, которая выдерживает несколько циклов подряд под высокой нагрузкой.
Open source решения по общему времени прохождения бот-теста показали себя не хуже, чем корпоративные решения от Microsoft.
Данный стек можно масштабировать как вертикально за счет добавления «железных» ресурсов, так и горизонтально за счет применения программного кэша в виде REDIS in memory cached data base (отдельный тест для open source стека будет проведен позже).
Наглядно увидеть, как проходит сценарий выполнения при работе с ботами можно по ссылке.