Многие годы специалисты 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.
Любые изменения в какой-либо из компонентов стека технологий системы Yarus WMS проходят два вида тестирования:
-
Инструментальные на предмет выявления логических ошибок и возможных ошибок отладки (ежедневный 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 ботов включительно.
Следует отметить, что такая нагрузка со стороны ботов (циклы чтения и записи каждые пять секунд) соответствует складскому комплексу с одновременной работой порядка 250–300 ТСД в обычном (штатном) режиме (для торговых складов, ритейла, производственных складов).
* Также надо понимать, что любой тест является синтетическим и зависит от многих факторов.
Результаты тестирования:
- Стационарные рабочие места, тонкий клиент на «1С». Заметные задержки (от 5 до 10 секунд на открытие формы) стали появляться при активной работе 100 ботов.
- Мобильное рабочее место, тонкий клиент Yarus Android. Задержки стали появляться при работе с экранными формами в пределах от 3 до 5 секунд при работе 100 ботов.
Выводы:
На относительно дешевом «железе» и бесплатном ПО (вся серверная часть, кроме продуктов от «1С» и «Ярус») мы получили стабильную (без единого сбоя) систему, которая выдерживает несколько циклов подряд под высокой нагрузкой.
Open source решения по общему времени прохождения бот-теста показали себя не хуже, чем корпоративные решения от Microsoft.
Данный стек можно масштабировать как вертикально за счет добавления «железных» ресурсов, так и горизонтально за счет применения программного кэша в виде Redis in memory cached data base (отдельный тест для open source стека будет проведен позже).
Наглядно увидеть, как проходит сценарий выполнения при работе с ботами, можно по ссылке.