Clustering vs. Load Balancing

Before you can talk about differences betweenconsuming memory and CPU resources. Of course, it
clustering and load balancing, and there are more thanalso adds another possible failure point to the data
a few, you’ve got to get the definitions straight.path. Since ADCs need no server-side components,
Clustering is often understood to mean the capabilitythey remain completely transparent.
of some software to provide load balancing services,Making the choice
and load balancing is often used as a synonym for aSome would ask, Why do the extra work of building
hardware- or third-party-software-based solution.a distributed software system and cluster server
In practice, clustering is usually used with applicationsetup when you can have multiple servers fulfilling
servers like IBM WebSphere, BEA WebLogic andspecific roles such as separate database servers,
Oracle AS (10g). Also being used in that environmentweb servers, mail servers, etc. whenever necessary?
are load balancing features found in ApplicationSo, how do you choose? That depends on the
Delivery Controllers (ADC) like BIG-IP. (For simplicity,reasons you are considering this kind of solution in
we will talk about clustering versus ADC approaches.)the first place, and (perhaps) whether or not you
Scalability, horizontally speakinghave to make an additional purchase to achieve
There are hardware load balancers, of course, butclustering capabilities for the particular application
there we talk about pools or farms, the serverserver you have. There is also the broader question
groupings where application requests get distributed.of whether or not you need (or want) to provide
It is in the software world that the term cluster issupport for multiple application server brands.
applied to that same group.Clustering, of course, is proprietary to the application
Clustering will typically convert one instance of anserver, but ADCs can provide services for any and all
application server to a master controller, thenapplications or web servers.
process/distribute requests to multiple instances usingClustering checklist
such industry standard algorithms as round robin,Pros:
weighted round robin or least connections. Clustering*Typically available with application server’s
is similar to load balancing in that it has horizontalenterprise package
scalability, a nearly transparent way to add additional*Doesn't require the highest level of networking
instances of application servers for increased capacityknow-how
or response time performance. To ensure that an*Usually less costly than redundant ADC deployments
instance is actually available, clustering approachesCons:
typically use an ICMP ping check or, sometimes,*High availability not assured with clustering solutions
HTTP or TCP connection checks.*Best practices deploy the cluster controller on
Health and transparencyseparate hardware
For load balancing, ADCs support the same industry*Node agents required on managed app server
algorithms, but have additional, complexinstances
number-crunching processes, and check such*Clustering is "proprietary" (you can cluster only
parameters as per-server CPU and memory utilization,homogeneous servers)
fastest response times, etc. ADCs also support moreADC checklist
robust health monitoring than the simple app serverPros:
clustering solutions. This means they can verify*Provides high availability and load balancing in
content and do passive monitoring, dispensing withheterogeneous environments
even the low impact of health checks on app server*Added value of application optimization, security and
instances.acceleration
For applications that require the user to interact with*No changes required to applications or servers
the same server during a session, clustering useswhere they’re deployed
server affinity to get the user there. This is mostCons:
common during the execution of a process like order*An additional piece of infrastructure in the
entry, where the session is used between pagesarchitecture
(requests) to store data needed to close a*Generally more costly than clustering solutions
transaction, like a shopping cart.*Could require new skill set to deploy/manage
For the same situation, ADCs use persistence.Recommendations
Clustering solutions are usually somewhat limited as toGet more insight into performance, configurations and
the variables they can use, while ADCs can not onlycase studies by reading some testing-based articles
use traditional application variables but also get otheron ADCs, and testing-based reviews of server
information from the application or network-basedclustering. Look for case studies that mirror your own
data.situation, as closely as possible, and talk to people
More than a few clustering solutions needwho are doing what you are planning (or thinking
node-agents deployed on each instance of anabout). Unlike government going into the car business
application server that is clustered by a controller. Itor taking over health care, do not do something
may not be a burden as far as deploying andquickly just to be seen doing something. Take care
managing it, since it is often in place, but it is stillwith this decision.
means more processes running on the servers and