Image Source: ctl.io
What is Load Balancing?
Load balancing refers to the distribution of a workload across several nodes. In the web hosting service industry, it is commonly used for balancing the HTTP traffic across multiple servers which act together as a web front-end.
A Load Balancer allows the users to distribute the traffic to a single IP across several servers by using a set of different protocols. The processing load can be shared across different nodes, rather limiting it to a single server. This increases performance during times of high activity.
It increases the reliability of web application, thus allowing the user to build the application with redundancy in mind. In case if one of the server nodes fails, the traffic can be programmatically distributed to other nodes without any service interruption.
How Does a Load Balancer Work?
There is always a consistent demand for applications in an organization. The load balancer decides the servers, which can handle the traffic. This traffic management is meant for delivering good user experience. The load balancers monitor the web servers and backend servers for ensuring that these servers can handle large traffic requests.
The load balancer can also remove the ‘unhealthy’ servers from the pool until they are restored. Some load balancers can even trigger the creation of new virtualized applications servers to meet the increased demand and maintain the response times. Some most effective load balancers can operate with workloads across different environments and diversified infrastructures.
Why Use Load Balancing?
A load balancer is essential because of following two reasons-
- At least two backend servers are needed to achieve high availability and the load balancer ensures that if one of the backend servers isn’t functioning, the traffic can be redirected to the other backend server.
- By having a control point enables the change in backends during deployment and managing the traffic flow. A control point gives the ability to change the implemented service on the backend without exposing these changes to the service consumer, who are present at the front end. The front-end service could be an external customer, an internal user or even another service present in the data center.
Load Balancing Algorithms
Some of the common algorithms used in load balancing include
- Least Connection Method
In this method, the virtual server is configured to use select the service with the least number of active connections.
- Round Robin Method
Using this method, the list of servers continuously rotates which are attached to it. Whenever the virtual server receives any request, it assigns the connection to the very first service present in the list and then the services are moved to the bottom of the list.
- Least Response Time Method
In this method, the service with the lowest number of connections and the least average response time is selected.
- Least Bandwidth Method
In this, the service which is currently serving the least amount of traffic is selected. The traffic is measured in megabits per second (Mbps).
- Least Packets Method
In this method, the service which has gained the fewest packets over a specified time is selected.
- Custom Lead Method
In this method, the load balancing application chooses a service which is not handling any active transactions. In case, all the services in the load balancing setup are handling active transactions, the application selects that service which has the least load.
Hardware Load Balancers
The hardware load balancers are dependent on firmware for supplying the internal code base, i.e. the program which operates the balancer. Hardware balancers include a management provision for updating the firmware as new versions, patches, and bug fixes.
Though these firmware updates are downloadable, the actual firmware patch process is often involved than the operating system or applications file patches. Load balancers which have security capabilities can update their application security features like the firewalls, or any type of malware protection.
Software Load Balancers
The software load balancers are sensitive to the OS versions, and virtual appliance deployments which could experience the dependencies of hypervisors. If the software load balancing route is followed, then one needs to ensure that any changes or updates are not adversely affecting the software load balancer.
Benefits of Load Balancing
The amount of traffic that a website receives can cause a substantial effect on its performance, and thus load balancing can provide the capability to handle the sudden spikes in traffic. This can be done by distributing traffic to multiple servers.
The addition of more load-balanced servers makes it easy to handle the increased traffic and is also implemented faster, instead of moving a site to an entirely new server. This proves to be advantageous for sites that operate on virtual web servers, as the existing servers can be easily cloned and added to the load-balanced chain.
As there is a fluctuation in the websites’ traffic, load balancing has allowed the server administrators to increase or decrease the number of web servers, which is fully dependent on the current need of the website.
The changes to the number of load-balanced servers can be made as per the need, thus servers can be added while preparing for increased traffic durations and are removed when they’re not necessary. The utilization of load balancing provides scalability, ensuring that the website is fully prepared to meet the needs of its users.
The use of multiple load balances servers can be used for handling the website’s traffic and it allows the administrators with the flexibility to perform maintenance on a server without causing an impact on the website’s uptime.
This can be achieved by directing all the traffic to one server and placing the load balancer in active/passive mode. The upgrades related to software and code updates can be deployed to the passive server and tested in a production environment.
When the administrators feel they are comfortable with the updates, they can switch the passive server to active and carry out the same task on other servers. Any server maintenance can be staggered in this way, where at least one server remains available, ensuring that the users of the site don’t experience any outages.
The utilization of load balancing for maintaining a website on more than one server can prove to have a great impact in limiting the hardware failure on the overall uptime of the site. As the traffic is sent to two or more web servers, and there is a failure in one of the servers, the load balancer automatically transfers the traffic onto the other working web servers.
Load balancing can be used in two different modes- active/active and active/passive mode. In the active/active mode, all the active servers will receive the traffic and in case of active/passive mode, the active server will receive the traffic and the passive server becomes online, in case the active server fails. Maintenance of multiple load-balanced servers assures that a working server is always online for handling the site traffic in case of hardware failures also.