Горизонтальное масштабирование с использованием HAProxy
В bpm’online существует возможность повысить производительность крупных проектов (до нескольких тысяч пользователей) за счет горизонтального масштабирования — увеличения количества серверов, на которых развернуто приложение и распределения нагрузки между ними.
Балансировщик может быть аппаратным или программным. Для работы в отказоустойчивом режиме используется балансировщик HTTP/HTTPS-трафика с поддержкой т.н. “липких сессий” (sticky session) и протокола WebSocket. Работа приложения тестировалась на программных балансировщиках нагрузки HAproxy и MS ARR (Microsoft Advanced Request Routing). Известны случаи успешного использования других балансировщиков Citrix, Cisco, NginX, FortiGate.
Данный документ рассматривает вариант горизонтального масштабирования bpm’online с иcпользованием бесплатного open-source балансировщика нагрузки HAProxy для балансировки нагрузки на серверы сессий.
Общий порядок развертывания
Общий порядок развертывания приложения bpm’online с горизонтальным масштабированием следующий:
1.Развернуть необходимое количество экземпляров приложения bpm’online в web-ферме.
Параметры и необходимое количество серверов сессий для различных кейсов масштабирования указаны в системных требованиях к серверам bpm’online. Подробнее >>>
Порядок развертывания приложения on-site доступен в документации bpm’online. Подробнее >>>
2.В конфигурационном файле (Web.config) каждого приложения, в блоке <appSettings> добавить ключ:
<add key="TenantId" value="1" />
Номер “value” должен быть одинаковый у всех экземпляров приложения в web-ферме.
3.Настроить балансировщик для распределения нагрузки между развернутыми серверами приложения.
4.При необходимости настроить балансировку нагрузки для серверов баз данных и сессий.
На заметку
Информация о настройке кластеризации MSSQL и Oracle доступна в документации к этим продуктам. Настройка отказоустойчивости системы при помощи Redis Sentinel рассмотрена в статье “Работа bpm’online с Redis Sentinel”.