Websites and applications of modern companies receive hundreds or thousands of customer requests per minute. During peak season, traffic can increase even more. Servers are under high load to keep up and respond to requests with multimedia data. Any outages or downtime can lead to poor service and user churn, resulting in lost revenue.
What is a load balancer?
The growth in the number of active users inevitably leads to an increase in the load on the servers. To ensure good UX it is necessary to properly balance the load. This is why the use of load balancer is important – it distributes network or application traffic between multiple servers in a server pool. Each load balancer resides between client devices and back-end servers, receiving and distributing incoming requests to any available server capable of fulfilling them.
Reliability. A Web site or application should provide a good UX even when traffic is high. Load balancers handle traffic spikes by moving data efficiently, optimizing the use of resources for application delivery, and preventing server overloads. Thus, site performance stays high.
Availability. Load balancing is important because it involves performance tests between the load balancer and the host machines to ensure they are receiving requests. If one of the host machines fails, the load balancer redirects the request to the other available devices.
Security. Load balancing is a must for most modern applications, especially with the addition of security features as cloud computing evolves. The offloading feature of a load balancer protects against DDoS attacks by shifting attack traffic to the public cloud provider rather than to the corporate server.
Prediction. Load balancing includes analytics that can predict traffic bottlenecks and enable organizations to prevent them. Predictive analytics facilitate automation and help organizations make decisions for the future.
What are the different types of load balancing?
Load balancers have different types of storage, complexity, and functionality.
Dedicated hardware with proprietary software installed. It can handle large volumes of traffic from different types of applications.
Hardware-based load balancers contain built-in virtualization capabilities that enable multiple instances of a virtual load balancer to be used on a single device.
Runs on virtual machines or white-box servers, typically as part of an ADC (application delivery controllers). Virtual load balancing provides superior flexibility compared to physical load balancing.
Software load balancers run on conventional hypervisors, containers, or Linux processes with little overhead on a bare metal server.
A virtual load balancer deploys proprietary load balancing software from a dedicated device on a virtual machine to combine the two types mentioned above. However, virtual load balancers cannot handle the architectural issues of limited scalability and automation.
This type of load balancing uses a cloud infrastructure. Here are some examples:
Network Load Balancing is based on L-4 and uses network layer information to determine where to send network traffic. This is the fastest load balancing solution.
HTTP(S) load balancing is based on L-7. It is one of the most flexible types of load balancing, enabling administrators to make traffic allocation decisions based on any information coming from the HTTP address.
Internal Load Balancing is almost identical to network load balancing, except that it can balance distribution across the internal infrastructure.
Types of cloud load balancing algorithms
Load balancing algorithms offer different benefits and complexity depending on the use case. The most common load balancing algorithms include:
Round Robin. Servers receive traffic sequentially. The load balancer chooses the first server in the list and sends it the first request, the second server will receive the second request, and so on.
Least connections. The balancer chooses the least busy server to serve traffic (that is, the server with the least number of connections at the moment). This algorithm is especially useful if long sessions are required to serve traffic.
Hash. The load balancer selects the server based on the hash of the original IP request (for example, based on the visitor's IP address). In this case, the same backend server will serve all requests from a particular user.
These are the basic things to know about the load balancer. Different algorithms and types of load balancers are suitable for different scenarios, and you can choose the right type for your particular use case.