Creatio administration
Это документация Creatio версии 7.14.0. Мы рекомендуем использовать новую версию документации.

Горизонтальное масштабирование с использованием HAProxy

В bpm’online существует возможность повысить производительность крупных проектов (до нескольких тысяч пользователей) за счет горизонтального масштабирования — увеличения количества серверов, на которых развернуто приложение и распределения нагрузки между ними.

Балансировщик может быть аппаратным или программным. Для работы в отказоустойчивом режиме используется балансировщик HTTP/HTTPS-трафика с поддержкой протокола WebSocket. Работа приложения тестировалась на программном балансировщике нагрузки HAProxy. Известны случаи успешного использования других балансировщиков Citrix, Cisco, NginX, FortiGate, MS ARR.

Данный документ рассматривает вариант горизонтального масштабирования bpm’online с иcпользованием бесплатного open-source балансировщика HAProxy для распределения нагрузки на серверы сессий.

Общий порядок развертывания

Общий порядок развертывания приложения bpm’online с горизонтальным масштабированием следующий:

1.Развернуть необходимое количество экземпляров приложения bpm’online в web-ферме.

Параметры и необходимое количество серверов сессий для различных кейсов масштабирования указаны в статье “Системные требованиях к серверам (on-site)”.

Порядок развертывания приложения on-site доступен в статье “Установка bpm’online”.

На заметку

Рекомендуется, чтобы у всех экземпляров приложения имена в IIS и настройки Application pool совпадали.

2.В файле ConnectionStrings.config для всех экземпляров указать одинаковые базы данных SQL и Redis.

<add name=”redis” connectionString=”host=DOMAIN.COM;db=0;port=6379;maxReadPoolSize=10;maxWritePoolSize=500”/>
<add name=”db” connectionString=”Data Source=DOMAIN.COM;Initial Catalog=DatabaseName;Integrated Security=SSPI; MultipleActiveResultSets=True;Pooling-true;Max Pool Size=100”/>

3.В конфигурационном файле (Web.config) каждого приложения, в блоке <appSettings> добавить ключ:

<add key="TenantId" value="1" />

Номер “value” должен быть одинаковым у всех экземпляров приложения в web-ферме.

Важно

Начиная с версии 7.14.1 ключ <add key="TenantId" value="..." /> нужно добавить только во внутренний конфигурационный файл Web.config (путь к файлу Terrasoft.WebApp\Web.config). Добавление ключа во внешний конфигурационный файл может привести к ошибкам в работе приложения.

4.В конфигурационном файле (Web.config) каждого приложения указать одинаковые значения machineKey для всех сайтов.

5.Раздать права на созданные директории приложений пользователю IUSR и пользователю, под которым запущен Application pool в IIS.

6.Настроить балансировщик (например, HAproxy) для распределения нагрузки между развернутыми серверами приложения.

7.При необходимости настроить балансировку нагрузки для серверов баз данных и сессий.

На заметку

Информация о настройке кластеризации доступна в документации MSSQL и Oracle. Настройка отказоустойчивости системы при помощи Redis Sentinel рассмотрена в статье “Работа bpm’online с Redis Sentinel”.

Был ли данный материал полезен?

Как можно улучшить эту статью?