Перейти к основному содержанию

Production-установка

Около 2 мин

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 Serversopen in new window.



Разделы

Развёртывание внешних сервисов и пост-настройка вынесены в отдельные страницы:


Поддержка и помощь

Нужна помощь?

Если что-то не получается, напишите на help@stormbpmn.com или обратитесь к вашему менеджеру. Мы с радостью поможем с настройкой!

Когда обращаться за поддержкой:

  • Проблемы с интеграцией корпоративных систем
  • Вопросы по настройке безопасности
  • Проблемы с производительностью
  • Планирование масштабирования
  • Настройка сложных почтовых сценариев

Что подготовить перед обращением:

  • Логи приложения и инфраструктуры
  • Описание конфигурации системы
  • Скриншоты ошибок
  • Версии используемых компонентов