...
Load Balancing and Clustering
Primary Architect:
Description: A variety of technologies are available for increasing application availability and scalability.
Load balancing is a technology that distributes application or system traffic across a number of servers. Load Balancing provides for redundancy and for horizontal scalability. Redundancy helps ensure that an application is resilient to failures. Horizontal scalability allows for capacity to be expanded by the addition of application instances. Load Balancing can be accomplished with dedicated hardware appliances or with software.
An in-memory data grid is a technology that allows an application to share state across multiple running instances of the application such that an instance can fail or be removed, or new instances dynamically added as required by changes in demand. For some applications, sharing state between running instances is a prerequisite for clustering an application in order to improve its overall availability.
Experimental |
Strategic (3-5 Years) |
|
Tactical (1-2 Years) |
|
Containment |
|
Retirement |
Background
Traditionally, ITS has used load balances in an “active/passive” configuration. In this model, if the active environment becomes unavailable, processing is handed off to the passive (secondary) environment.
ITS has also used “round robin” load balancing for some applications. This is a simple model where load is balanced in the order that requests come in. This technique has some value, but can still result in unbalanced situations.
In the future ITS will rely more and more on advanced balancing features. Advanced balancing is more intelligent about where connections are routed to better ensure that load is equally balanced across environments. For example, if one server has high CPU utilization, load balancing may focus connections on the other environment.
Hazelcast deployments for CAS are common in Higher Ed. CAS has Hazelcast integration baked in.
...