The WSO2 Elastic Load Balancer can be used to manage the load of WSO2 product clusters in the worker-manager clustering method. WSO2 Carbon version 4.0.0 onwards supports an improved deployment model in which clustered components are separated as 'worker' nodes and 'management' nodes. The management node(s) is used to deploy and configure artifacts (web applications, services, proxy services etc.) whereas the worker nodes are used to serve requests received by clients.
This worker/manager deployment setup provides proper separation of concerns between a Carbon-based product's UI components, management console and related functionality with its internal framework serving requests to deployment artifacts. Typically, the management nodes are in read-write mode and authorized to add new artifacts or make configuration changes, whereas the worker nodes are in read-only mode, authorized only to deploy artifacts and read configuration. This deployment model is improved security-vise since its management nodes can be set up behind an internal firewall and only exposed to internal clients, while only worker nodes can be exposed externally. Also, since the UI-related OSGi bundles are not loaded to 'worker' nodes, the deployment model is more efficient in memory utilization.
A worker/manager separated cluster can typically be implemented in the following ways:
Manager and worker node separated setup
This model consists of two sub cluster domains as worker domain and management domain. Load will be distributed to these sub-domains according to the defined load balancing algorithm. Also, the load on the nodes in these sub-domains will be taken into consideration when auto-scaling.
Dual-mode setup where one node acts as both worker and manager
This model consists of a single cluster, where a selected node works as both a worker and a manager. This worker node requires two load balancers and configured in read-write mode, while the other worker nodes are set up in read-only mode. The management node also should be a well-known member in the non-management worker nodes so that state replication and cluster messaging works.