Системные требования и сайзинг — UniBPM
  • Ru

Системные требования и сайзинг

Назначение

Страница предназначена для архитекторов, DevOps-инженеров и заказчиков, которые планируют инфраструктуру UniBPM.

Приведённые конфигурации являются стартовыми ориентирами, а не гарантированными пределами производительности. Итоговый sizing определяется по пиковой процессной, пользовательской, API- и интеграционной нагрузке, объёму данных и срокам хранения.

Архитектура и границы расчёта

Логические слои публичной архитектуры UniBPM

Пользовательские запросы проходят через публичный слой доступа к Frontend и Application API. Внешние системы могут взаимодействовать с публичным API или Integration Runtime, а обмен событиями между компонентами выполняется через Kafka.

Прикладной слой (application layer) состоит из отдельных компонентов: Frontend, Application API, Process Engine и, когда он используется, Integration Runtime. Application API и Process Engine имеют разные профили нагрузки и отдельные логические хранилища PostgreSQL для Business Data и Process Data.

PostgreSQL, Kafka и Identity Provider могут размещаться внутри контура UniBPM либо предоставляться внешней платформой. Если они не включены в выбранный профиль развёртывания, их ресурсы оцениваются отдельно. Ресурсы внешнего AI provider и локальных AI-моделей также не входят в базовые профили.

Минимальные системные требования

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

ПараметрМинимальное значениеКомментарий
CPU4 vCPUСтартовый ресурс application layer для небольшого тестового контура
RAM8 GiBПри совместном размещении зависимостей требуется учитывать их ресурсы отдельно
Diskот 40 GiB SSDБез длительного хранения вложений, истории и backup
PostgreSQLPostgreSQL 16Данные приложения и процессов; может предоставляться внешним сервисом
KafkaПоддерживаемая версией UniBPMСервис обмена событиями; может предоставляться внешним сервисом
Identity ProviderСовместимый сервис идентификацииМожет входить в контур или предоставляться внешней платформой
JavaJava 17Для Application API и Process Engine

Рекомендуемые стартовые профили

ПрофильЗарегистрированные пользователиОдновременная активностьApplication CPUApplication RAMRuntime diskНазначение
Demoдо 20–30обычно до 10–154 vCPU8 GiBот 40 GiB SSDДемонстрация и функциональная проверка
Pilotдо 50–100ориентировочно до 20–404–8 vCPU12–16 GiBот 80 GiB SSDПилот с ограниченным числом процессов и интеграций
Production Smallдо 200–300ориентировочно до 50–1008 vCPU16–32 GiBот 100 GiB SSDСтартовый production-профиль при умеренной нагрузке
Production Mediumдо 1000ориентировочно до 150–400суммарно 16–32 vCPUсуммарно 32–64 GiBот 200 GiB SSD с расширениемНесколько процессов и интеграций с выраженными пиками
Enterpriseболее 1000 либо высокая процессная, API-, интеграционная или AI-нагрузкапо нагрузочному профилюпо нагрузочному теступо нагрузочному теступо capacity planИндивидуальный capacity plan и representative load test

CPU и RAM относятся только к application layer. Выбор строки по числу пользователей недостаточен: профиль необходимо проверить по process steps/second, API_peak, размеру payload, вложениям и retention.

Для Enterprise инфраструктура, HA/DR, RPO/RTO и ресурсы платформенных сервисов определяются архитектурой заказчика и подтверждаются отдельным capacity plan.

Как оценить нагрузочный профиль

Сначала заполните sizing worksheet для реального пикового периода. Среднее значение за сутки не заменяет профиль пикового окна.

ПараметрЧто измерять
UЗарегистрированные пользователи
CОдновременно активные пользователи в пиковый период
P_dayProcess instances в пиковые сутки
AСреднее число исполняемых шагов на process instance
T_dayПользовательские задачи в пиковые сутки
API_peakAPI requests в секунду в пиковое окно
S_varСредний и характерный максимальный объём process variables
F_dayКоличество вложений в сутки
S_fileСредний и характерный максимальный размер вложения
R_processСрок хранения истории процессов
R_fileСрок хранения вложений
AI_peakОдновременные AI-запросы
KКоэффициент пиковости относительно нагрузки внутри пикового окна

Процессная нагрузка

process steps/day = P_day × A

process steps/second = (P_day × A × K) / peak_window_seconds

peak_window_seconds — длительность реального пикового окна. Нагрузку нельзя равномерно распределять по 24 часам, если основные операции выполняются в течение 8–12 часов. Коэффициент K выбирается по ожидаемым всплескам и затем уточняется по метрикам.

Пользовательские задачи

human tasks/second = (T_day × K) / peak_window_seconds

Параметр C дополнительно влияет на число параллельных HTTP/WebSocket-соединений, конкурентные запросы к API и connection pools.

API-нагрузка

Если известен фактический или прогнозируемый API_peak, используйте его напрямую. Если известен только суточный объём:

API requests/second = (API_requests_day × K) / peak_window_seconds

Для интеграций также учитываются payload, timeout, retries, concurrency и ограничения внешних систем.

Вложения

attachment data in retention period =
    F_day × S_file × business_days_per_year × retention_years

required attachment storage =
    attachment data in retention period × reserve_factor

Резерв учитывает рост, индексы, служебные данные и операционный запас. Backup рассчитывается отдельно в соответствии с принятой политикой хранения.

В текущей конфигурации продукта вложения могут храниться в PostgreSQL, поэтому их объём существенно влияет на размер базы, IOPS, время backup и восстановления. reserve_factor уточняется по фактическому росту данных.

Данные процессов

Не используйте универсальный коэффициент «байт на процесс»: размер зависит от BPMN-моделей, числа задач, переменных и истории.

Безопасный способ оценки:

  1. измерить прирост базы на тестовом стенде за выбранный период;
  2. сопоставить прирост с числом созданных process instances и задач;
  3. скорректировать результат на R_process;
  4. применить резерв;
  5. подтвердить расчёт нагрузочным тестом.
estimated process storage =
    measured average storage per process instance
    × process instances in retention period
    × reserve_factor

measured average storage per process instance определяется на репрезентативных BPMN-моделях с характерными variables и payload.

AI-нагрузка

AI-функции оцениваются по AI_peak, размеру контекста, выбранной модели, latency и rate limits, а не только по числу пользователей.

При внешнем AI provider основные вычисления выполняются вне application layer, но UniBPM использует ресурсы для подготовки контекста, сетевых соединений и обработки ответов. Для локальной модели GPU, CPU, RAM и storage рассчитываются отдельно и не входят в базовые профили UniBPM.

Пример расчёта

Исходный профиль:

ПараметрЗначение
Зарегистрированные пользователи300
Одновременно активные пользователи80
P_day10 000 process instances
A12 шагов
T_day2 000 задач
Пиковое окно8 часов = 28 800 секунд
K3
F_day100 вложений
S_file2 MiB
R_file1 год

Расчёт:

process steps/day = 10 000 × 12 = 120 000

process steps/second = 120 000 × 3 / 28 800 = 12.5

human tasks/second = 2 000 × 3 / 28 800 ≈ 0.21

attachment data = 100 × 2 MiB × 250 рабочих дней
                = 50 000 MiB ≈ 48.8 GiB в год

Объём вложений указан без backup, индексов и резерва. Для системы с операциями во все календарные дни вместо 250 используется фактическое число рабочих дней в году.

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

Границы применимости

  • значения являются стартовыми ориентирами, а не гарантированной ёмкостью;
  • ресурсы внешних PostgreSQL, Kafka, Identity Provider, AI provider и monitoring оцениваются отдельно;
  • вложения, retention, payload и пиковая нагрузка могут значительно изменить sizing;
  • production sizing подтверждается representative load test.

Масштабирование

КомпонентГоризонтальное масштабированиеВертикальное масштабированиеКлючевое условие
FrontendДа, за балансировщикомОбычно не является основным способомРеплики используют одинаковую версию статических assets и конфигурации
Application APIТолько после проверки конфигурацииДаНеобходимо учитывать локальный WebSocket broker, scheduled jobs, session routing и суммарные connection pools
Process EngineПроверяется для конкретной версии и профиляДаОбщая БД, корректная координация job/external-task processing и representative load test
Integration RuntimeВозможно для stateless и идемпотентных интеграцийДаИдемпотентность, разделение работы и лимиты внешних систем
PostgreSQLЗависит от выбранной платформы и HA-архитектурыДаIOPS, connections, backup/restore и retention
KafkaОпределяется архитектурой broker cluster или managed serviceДа, в пределах выбранной платформыThroughput, размер сообщений, retention и политика надёжности
Identity ProviderОпределяется выбранным сервисомДаSession/cache topology и поддерживаемый режим кластера
Load Balancer / IngressДа или средствами внешней платформыДаWebSocket, health checks, upload limits и proxy timeout
AI providerПо возможностям внешнего provider; локальная модель считается отдельноЗависит от варианта размещенияAI_peak, latency, rate limits и размер контекста

Наличие нескольких реплик само по себе не подтверждает HA. Для Enterprise требования к отказоустойчивости и восстановлению определяются архитектурой заказчика.

Подтверждение конфигурации

Нагрузочный тест должен воспроизводить пиковое окно, а не равномерный среднесуточный поток. В сценарий включаются реальные BPMN-модели, пользовательские задачи, характерные process variables, API, интеграции и вложения.

Во время теста контролируются throughput и latency, CPU/RAM, JVM, connection pools, PostgreSQL IOPS и рост данных, Kafka lag, ошибки и ограничения внешних сервисов. Стартовый профиль принимается только после проверки целевой нагрузки с требуемым запасом и повторного теста после изменения архитектуры или ключевых моделей процессов.