Load Balancing.... How important?

A question in every application design process.

Load Balancing.... How important?

When users carry out any activity on the web, these requests make a route to a server or clusters of servers hosted remotely (Cloud). A bad user experience would be a prolonged response time or service unavailability.

Let's start by defining some terms:

What are servers? They are computers or computer programs that manages access to a centralized resource or service on the internet. Examples would be web servers, domain servers etc.

What is load balancing? This is the process of distributing workloads across multiple computing resources. It is also the process of distributing workloads across multiple servers, collectively known as a server cluster in other to increase resource availability and fast response time.

Why is load balancing important? In simple summary, to prevent servers from been overloaded and crashing out.

Twitter for example has over 187 million daily users. Imagine 187 million clients (Twitter users) making a tweet to a single server via the same network route. This would result in overloading the server’s computing resource like CPU, RAM etc. which will eventually lead to delayed response or worst case, server crashing. This is where load balancing comes into play with the aid of computers called Load Balancers (Software or Hardware Load Balancers). These Load balancers are used to distribute workloads across multiple Twitter servers hosted somewhere in the cloud.

round-robin-load-balancing-diagram.png

Another reason why load balancing is important is that it helps determine if a certain server (or cluster of servers) is likely to get overloaded more quickly and redirect traffic to other nodes that are deemed healthier.

In summary, the pros of load balancing your application are as follows:

  • Reduced the workload on an individual server.

  • A large amount of work will be done at the same time due to concurrency.

  • Increased performance of your application because of a faster response.

  • No single point of failure. In a load-balanced environment, if a server crashes the application is still up and served by the other servers in the cluster.

Therefore as software engineers or systems architect, Load balancing should be key in every application development and design.