1.3.  Apply appropriate design considerations when architecting topologies to achieve stability, redundancy, and fault tolerance.


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.

Figure 1.12. Vertical cluster

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.

Figure 1.13. Vertical scaling topology with WebSphere Application Server

Vertical scaling topology with WebSphere Application Server

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:

Vertical scaling has the following disadvantages and possible drawbacks to consider:

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.

Figure 1.14. Horizontal cluster

Horizontal cluster

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.

Figure 1.15. Horizontal scaling with cluster

Horizontal scaling with cluster

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:

Using horizontal scaling with clusters has the following disadvantages:

Professional hosting         Free 'Oracle Certified Expert Web Services Developer 6' Guide     Free SCDJWS 5.0 Guide