dimanche 27 septembre 2009

Clustering Vs Load Balancing

Before discussing differences between clusters and load balancing, and there are more than one, you should download the definitions right. Clustering is often understood to mean the ability of some software to provide load balancing and load balancing is often used as a synonym of equipment or third party software-based solution.

In practice, clustering is generally used with application servers such as IBM WebSphere, BEA WebLogic and Oracle AS (10g). Also being used in this environment are load balancing features found in Application Delivery Controllers (ADC), as BIG-IP. (For simplicity, we will speak of reunification versus ADC approaches.)

Scalability, speaking to the horizontal

Some hardware load balancers, of course, but we are talking about swimming pools or farms, clusters of application server in which applications get distributed. In the software world that the cluster term is applied to the same group.

Consolidation will typically convert an instance of an application server to a master controller, and then process / distribute requests to multiple instances of algorithms using industry standards such as round robin, weighted round robin or least connections. Clustering is similar to load balancing because it has horizontal scalability, almost seamlessly to add additional instances of application servers to increase capacity or performance response time. To ensure that the forum is actually available, clustering approaches typically use an ICMP ping check or, sometimes, HTTP or TCP connection checks.

Health and transparency

For load balancing, CAN supports algorithms same area, but have other, complex number crunching process, and test parameters such as server CPU and memory utilization, response times faster, etc. CAN also support stricter monitoring of health than simple App Server clustering solutions. This means they can verify the contents and make a passive surveillance, supply, even with the low impact of health checks at the instance of server app.

For applications that require the user to interact with the same server at a meeting, using affinity clustering server for the user. This is more common during the execution of a process such as order entry, when the session is used between pages (requests) for storing data necessary for the closing of a transaction, such as a basket .

For the same situation, CAN use persistence. Clustering solutions are usually quite limited in the variables they can use, while C can not only use traditional application variables but also obtain other information from the application or data network.

More than a few clustering solutions require node-agents deployed on each instance of an application server that is clustered by a controller. It may not be a burden to the extent of deployment and management, as it often is in place, but it is even more processes running on servers and memory consumption and resources CPU. Of course, it also adds another point of possible failure of the data path. Since C does not need server-side components, they remain completely transparent.

Making the right choice

Some might ask: Why do extra work to build a distributed system software and cluster configuration server when you can have multiple servers performing specific roles such as servers separate databases, Web servers, servers messaging, etc. whenever necessary?

So how do you choose? It depends on why you are considering this type of solution first, and (perhaps) whether or not you have to make an additional purchase to achieve the clustering capabilities for the particular application server that you have. There is also the broader question of whether or not you need (or want) to provide support for branded multiple application server. Clustering, of course, is the proprietary application server, but CAN may provide services to any and all applications or web servers.

Clustering checklist

Strengths:

* Usually the package with enterprise server application

* Does not require the highest level of networking expertise

* Usually less expensive than redundant deployments ADC

Weaknesses:

* High availability not guaranteed with clustering solutions

Best Practices * deploy the cluster controller on separate machines

* Node agents required on the server instances managed app

* Clustering is "owner" (you can only group of homogeneous servers)

ADC checklist

Strengths:

* Provides high availability and load balancing in heterogeneous environments

* The value of optimization applications, security and acceleration

* No changes required to applications or servers where they are deployed

Weaknesses:

* An additional piece of infrastructure in architecture

* Generally more expensive than clustering solutions

* May require new skill set to deploy / manage

Recommendations

Get a better view of performance, configurations and case studies by reading a few articles of tests based on ADC testing and examinations based on clusters of servers. Look for case studies that mirror your own situation as closely as possible, and talk to people who do what you're thinking (or thinking). Contrary to the government to enter the automotive field or taking care of health, do not do something quickly to see him do something. Be careful with this decision.

Aucun commentaire:

Enregistrer un commentaire