Документация

Системные требования программного комплекса DoXML

Данный документ описывает системные требования для развёртывания программного комплекса DoXML в инфраструктуре заказчика в зависимости от количества одновременных пользователей. Актуальная архитектура: серверная часть на Java Spring Boot 4, клиентская часть на React/Vite, база данных PostgreSQL, сервер кэширования Redis, объектное хранилище Apache Ozone, сервис распознавания текста, обратный прокси-сервер Traefik.

Состав инфраструктуры

  • Сервер приложений — Java Spring Boot 4, порт 8080.
  • Сервис лицензирования — Java Spring Boot 4 (тот же образ, режим license), порт 8080 внутри, 8082 снаружи.
  • Клиентское приложение — React/Vite + Caddy/Nginx, порт 80.
  • Панель управления организации — React/Vite + Caddy/Nginx, порт 80.
  • PostgreSQL — основная реляционная база данных.
  • Redis — кэш, сессии, ограничение частоты запросов.
  • Apache Ozone — объектное хранилище, совместимое с протоколом S3.
  • Сервис распознавания текста — OCR на основе Tesseract.
  • Traefik — обратный прокси-сервер, терминация SSL, маршрутизация.

Минимальные требования (до 10 пользователей)

Аппаратные требования

КомпонентМинимумПримечание
CPU4 ядраx86_64, 2.0+ GHz
RAM8 ГБМинимум для стабильной работы
Диск120 ГБ SSDДля ОС, Docker, БД, объектного хранилища
Сеть100 Мбит/сДля локальной сети

Распределение памяти (8 ГБ)

СервисПамятьОписание
Сервер приложений1.5 ГБJVM Spring Boot
Сервис лицензирования512 МБJVM Spring Boot
Клиентское приложение128 МБCaddy/Nginx + статика
Панель управления организации128 МБCaddy/Nginx + статика
PostgreSQL1.5 ГБshared_buffers ≈ 25% RAM
Redis256 МБКэш и сессии
Ozone (OM/DN/S3G)1 ГБОбъектное хранилище
OCR Service512 МБTesseract/распознавание
Traefik128 МБОбратный прокси-сервер
Docker + ОС1.5 ГБНакладные расходы системы
Резерв864 МБПиковые нагрузки

Рекомендуемые требования (10–50 пользователей)

Аппаратные требования

КомпонентРекомендуетсяПримечание
CPU8 ядер2.4+ GHz
RAM16 ГБДля комфортной работы
Диск250 ГБ SSD/NVMeС запасом для роста данных
Сеть1 Гбит/сДля быстрой передачи файлов

Распределение памяти (16 ГБ)

СервисПамятьОписание
Сервер приложений3 ГБJVM с буфером
Сервис лицензирования512 МБJVM
Клиентское приложение256 МБCaddy
Панель управления организации256 МБCaddy
PostgreSQL4 ГБshared_buffers ≈ 25% RAM
Redis512 МБКэш, сессии, rate limiting
Ozone2 ГБОбъектное хранилище
OCR Service1 ГБРаспознавание
Traefik256 МБОбратный прокси-сервер
Docker + ОС2 ГБНакладные расходы системы
Резерв2 ГБПиковые нагрузки

Требования для 100 пользователей

Аппаратные требования

КомпонентЗначениеПримечание
CPU16 ядер2.6+ GHz
RAM32 ГБДля стабильной работы
Диск500 ГБ NVMeПредпочтительно NVMe
Сеть1 Гбит/сДля высокой нагрузки

Таблица масштабирования

ПользователейCPU (ядра)RAM (ГБ)Диск (ГБ)Примерная пропускная способность (req/s)
1048120~50
50816250~150
1001632500~300
20024641000~600
50032–481282000~1500

Программное обеспечение

КомпонентМинимальная версияРекомендуемая версия
ОСUbuntu 20.04 LTS / Debian 11Ubuntu 22.04 LTS / Debian 12
Docker24.0+26.0+
Docker Composev2последняя
Kernel5.4+5.15+

Сетевая инфраструктура

  • Внешние порты: 80, 443 (Traefik); панель управления Traefik — 9080 (опционально).
  • Внутренние порты: сервер приложений 8080, сервис лицензирования 8082, PostgreSQL 5432, Redis 6379, Ozone 9878/9862.
  • Firewall: внешний доступ только к 80/443; база данных и Redis недоступны снаружи.
  • DNS: A-записи для {ONPREM_DOMAIN} и api.{ONPREM_DOMAIN} (опционально).
  • SSL/TLS: Let's Encrypt через Traefik или собственные сертификаты.

Мониторинг и логирование

  • Мониторинг: Spring Boot Actuator + Prometheus метрики; Grafana (опционально).
  • Логирование: Docker logs; централизованный сбор (ELK/Loki, опционально).
  • Алерты: настроить уведомления при превышении CPU/RAM/диска.

Резервное копирование

  • PostgreSQL: ежедневные дампы через pg_dump.
  • Ozone: резервная копия объектного хранилища.
  • Каталог license/: обязательно сохраняйте license.key, install-secret.txt, public.key — они не дублируются в БД.
  • Хранение: минимум 7 дней, рекомендуется 30 дней.

Примечания

  1. Пиковые нагрузки: при пиках рекомендуется запас ресурсов 30–50%.
  2. Рост данных: диск должен иметь запас 50–100% от текущего объёма.
  3. Производительность диска: SSD/NVMe критичны для PostgreSQL; HDD не рекомендуется.
  4. Объектное хранилище: для промышленной эксплуатации рекомендуется вынести Ozone на отдельный диск или сервер.

Версия документа: 2.0
Дата обновления: 2026