![]() | |
|
Clusters and the application server cluster
A cluster is a collection of servers that is managed together. With clusters, enterprise applications can scale beyond the amount of throughput that an be achieved with a single application server. Also, enterprise applications can be highly available because requests are automatically routed to the running servers in the event of a failure. The servers that are members of a cluster can be on different host machines. A cell can include no clusters, one cluster, or multiple clusters.
An application server cluster is a logical collection of application server processes that provides workload balancing and high availability. It is a grouping of application servers that run an identical set of applications managed so that they behave as a single application server (parallel processing). WebSphere Application Server Network Deployment or WebSphere Application Server for z/OS is required for clustering.
Application servers that are a part of a cluster are called cluster members. When you install, update, or delete an application, the updates (changes) are distributed automatically to all cluster members. By using the rollout update option, you can update and restart the application servers on each node, one node at a time, providing continuous availability of the application to the user.
Vertical cluster
All cluster members can reside on the same system. This topology is known as vertical scaling or vertical clustering. Figure below illustrates a simple example of a vertical cluster.
Vertical clusters offer failover support inside one operating system image, provide processor level failover, and increase resource utilization.
A vertical scaling topology (illustrated in figure below) refers to a configuration with multiple application servers on a single machine or LPAR and a cluster of associated application servers that all host the same applications. All members of the cluster appear as one logical unit that serves the applications that are deployed to the cluster.
Keep in mind that a WebSphere Application Server cluster can only be implemented with the Network Deployment or the z/OS packages.
This vertical scaling example includes a cluster and three cluster members. The web server plug-in routes the requests according to the availability of the application server. Basic load balancing is performed at the web server plug-in level based, by default, on a weighted round-robin algorithm.
Implementing vertical scaling in your topology provides the following advantages:
Improved throughput
Because multiple application servers service client requests simultaneously, you can expect improved throughput from your installation.
Optimized resource use
With vertical scaling, each application server running its own JVM uses a portion of the processor and memory of the machine. The number of application servers on a system can be increased or decreased to optimize the resource use of the machine.
Growth beyond the limits of a single JVM
With a vertical scaling implementation, you can grow your environment with your implementation beyond the limits of a single JVM because you can run multiple JVMs in parallel.
Benefits from the workload management capabilities of WebSphere Application Server
Because vertical scaling is implemented through clusters, you benefit from WebSphere Application Server workload management.
Failover support
Because vertical scaling is implemented by using clusters, vertical scaling topologies can also take advantage of the failover support provided by WebSphere Application Server. If one of the application server processes is stopped, the remaining cluster members will continue to process and realign the workload.
Vertical scaling has the following disadvantages and possible drawbacks to consider:
SPOF
Unless you combine the vertical scaling architecture with horizontal scaling, you still have SPOF (such as hardware and operating system processes) in your architecture.
Additional investment and processes
To implement vertical scaling, you need WebSphere Application Server Network Deployment. You need additional application server processes, such as the deployment manager and the node agent process, to manage such an environment.
Additional planning and implementation work required
To benefit from the load balancing and failover capabilities, you need to plan for these scenarios. For example, to benefit from a failover mechanism, you need to consider what is required for a successful failover (such as session data) and size carefully for all possible situations.
Horizontal clustering (scaling)
Horizontal scaling or horizontal clustering refers to cluster members that are spread across different server systems and operating system types. In this topology, each machine has a node in the cell that is holding a cluster member. The combination of vertical and horizontal scaling is also possible.
Horizontal clusters increase availability by removing the bottleneck of using only one physical system and increasing the scalability of the environment. Horizontal clusters also support machine failover.
In a horizontal scaling topology, you create one logical unit of servers across multiple systems or LPARs where each member of the unit serves each request. Horizontal scaling at the application server tier does not require an IP sprayer. If you also want to scale at the web server tier, you can use an IP sprayer.
In the topology illustrated in figure below, a single application spans multiple machines, while presenting itself as a single logical image. In this example, the WebSphere Application Server cluster spans Systems B and C, each with one application server. The deployment manager is installed on a separate server, System D.
The web server plug-in distributes requests to the cluster members on each server performing load balancing and offers an initial failover in a similar manner as it does in the vertical clustering topology. If any component (hardware or software) on System B fails, the application server on System C can continue to serve requests and vice versa.
Using horizontal scaling with clusters has the following advantages:
Improved throughput
Because multiple systems service client requests simultaneously without competing for resources, you can expect improved throughput from your installation.
Improved response times
By hosting cluster members on multiple machines, each cluster member can use the processing resources of the machine, avoiding bottlenecks and resource contention. Therefore, response times will improve in most scenarios.
Benefits from the workload management capabilities of WebSphere Application Server
Because horizontal scaling is implemented through clusters, it benefits from the workload management capabilities of WebSphere Application Server.
Provides enhanced failover support
Because the cluster members are spread over multiple systems, this topology provides hardware failover capabilities. Client requests can be redirected to cluster members on other machines if a machine goes offline. The outage of a system or an operating system failure does not stop a service from working.
Using horizontal scaling with clusters has the following disadvantages:
Increased resource usage
Because multiple systems are required to implement this topology, hardware costs increase. To implement horizontal scaling, you need WebSphere Application Server Network Deployment. Therefore, you need additional application server processes, such as the deployment manager and the node agent process to manage this type of environment. This method increases processing and the memory footprint of the installation.
More complex administration
The maintenance and administration of the environment are more complex because the number of systems increases.
![]() ![]() ![]() |