Production-установка
Production-Ready установка
Для полноценной промышленной эксплуатации необходимо настроить дополнительные компоненты и обеспечить высокий уровень безопасности, производительности и отказоустойчивости.
Обязательные компоненты для продакшена
Минимальная установка из Быстрого старта не подходит для работы с реальными пользователями. Обязательно настройте все компоненты из этого документа.
Чек-лист production-ready установки
Обязательные компоненты
Дополнительные компоненты
Особенности установки в k8s
В некоторых ситуациях, например при явном требовании 1 процесса в контейнере (PID 1), может потребоваться разделить контейнеры по их ролям. Передайте ENV переменную CONTAINER_ROLE (возможные значения FRONT, BACK, FULLSTACK).
- FRONT: запустится nginx со статикой.
- BACK: запустится java как API-сервер.
- FULLSTACK: запустится supervisord, который запустит nginx и java
Настройка балансировщика и SSL
Рекомендуемое решение: Nginx
StormBPMN ноды являются stateless, что позволяет легко масштабировать систему через балансировщик нагрузки.
При использовании нескольких экземпляров
Если развернуто несколько нод StormBPMN, для совместного редактирования диаграмм необходим Redis — он обеспечивает синхронизацию сессий и pub/sub между нодами. См. раздел Redis.
Основные задачи балансировщика:
- SSL терминация - расшифровка HTTPS трафика
- WebSocket proxy - проксирование WebSocket-соединений для совместного редактирования
- Отказоустойчивость - переключение между нодами
- Масштабирование - распределение нагрузки
- Кэширование - статических ресурсов
Конфигурация Nginx
Конфигурация для высокой доступности:
upstream stormbpmn {
server 10.0.0.3:8081 weight=5 max_conns=500;
server 10.0.0.4:8081 weight=5 max_conns=500;
}
server {
listen 443 ssl http2;
server_name stormbpmn.company.com;
ssl_certificate /etc/ssl/certs/stormbpmn.crt;
ssl_certificate_key /etc/ssl/private/stormbpmn.key;
# Максимальный размер тела запроса — 50 MB
client_max_body_size 50M;
# Максимальный размер заголовков (и буфера для заголовков)
large_client_header_buffers 8 32k;
location / {
proxy_pass http://stormbpmn;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# WebSocket proxy для совместного редактирования (STOMP over WebSocket)
location /ws {
proxy_pass http://stormbpmn;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}
Обратите внимание на размер тела, размер заголовков и WebSocket proxy для /ws.
Конфигурация выше является примерной и может потребовать уточнения в конкретной инфраструктуре тем, кто понимает как конкретная инфраструктура устроена.
Дополнительная информация
Подробное руководство по настройке SSL в Nginx: Securing HTTP Traffic to Upstream Servers.
Разделы
Развёртывание внешних сервисов и пост-настройка вынесены в отдельные страницы:
- Внешние сервисы — S3-хранилище, Redis, PlantUML, конвертация документов, почтовые уведомления.
- Мониторинг, хардендинг, бэкап — метрики, безопасность, резервное копирование, бизнес-параметры.
Поддержка и помощь
Нужна помощь?
Если что-то не получается, напишите на help@stormbpmn.com или обратитесь к вашему менеджеру. Мы с радостью поможем с настройкой!
Когда обращаться за поддержкой:
- Проблемы с интеграцией корпоративных систем
- Вопросы по настройке безопасности
- Проблемы с производительностью
- Планирование масштабирования
- Настройка сложных почтовых сценариев
Что подготовить перед обращением:
- Логи приложения и инфраструктуры
- Описание конфигурации системы
- Скриншоты ошибок
- Версии используемых компонентов