A load balancer enables distribution of network traffic dynamically across resources (on-premises or cloud) to support an application.
A load balancer is a solution that acts as a traffic proxy and distributes network or application traffic across endpoints on a number of servers. Load balancers are used to distribute capacity during peak traffic times, and to increase reliability of applications. They improve the overall performance of applications by decreasing the burden on individual services or clouds, and distribute the demand across different compute surfaces to help maintain application and network sessions.
Modern applications must process millions of sessions simultaneously and return the correct text, videos, images, and other data to each user in a fast and reliable manner. To handle such high volumes of traffic, most applications have many resource servers with duplicate data among them.
Load balancing distributes network traffic dynamically across a network of resources that support an application. A load balancer is the device or service that sits between the user and the server group and acts as an invisible facilitator, ensuring that all resource servers are used equally. A load balancer helps increase reliability and availability, even in times of high usage and demand, and ensures more uptime and a better user experience.
In some cases, it is essential that all requests from a client are sent to the same server for the duration of a session, for example when a client is putting items in a shopping cart and then completing the purchase. Maintaining the connection between client and server is known as session persistence. Without session persistence, information has to be synchronized across servers and potentially fetched multiple times, creating performance inefficiencies.
Users and customers depend on near-real-time ability to find information and conduct transactions. Lag time or unreliable and inconsistent responses—even during peak demand and usage times—can turn a customer away forever. And high spikes in compute need can cause havoc to an internal server or server system if the incoming demand—or “load”—is too high to be easily accommodated.
Advantages of using a load balancer include:
There are two types of load-balancing algorithms in terms of how they operate: static and dynamic. Static load balancing measures the incoming load on a server using algorithms that have performance capacity information about the existing servers in the distributed network. Dynamic load balancing can dynamically identify the amount of load that needs to be shed during runtime and which system should bear the load. It is designed for systems with high fluctuation in incoming load.
The following are some of the common types of load balancing algorithms.
Load balancing works by either statically or dynamically responding to a user request, and distributing that request to one of the backend servers capable of fulfilling the request. If one of the servers goes down, the load balancer redirects traffic to the remaining online servers.
An example of static load balancing: A company hosts a website with content that is largely static. This scenario would be ideal for a static load balancer because the traffic needs are predictable and consistent. The company can use two (or more) identical web servers across which the static load balancer can distribute traffic.
An example of dynamic load balancing: A company experiences surges, spikes, and drops in traffic. Some are predictable and some are not. These organizations would benefit from dynamic load balancing. Such companies might include an e-commerce retailer announcing Black Friday hours and dates; a healthcare company which has just announced it can schedule online appointments for a seasonal vaccine; a government unemployment agency which requires unemployment insurance recipients to file a weekly claim on a certain day of the week; a relief organization that may need to respond quickly online to a natural disaster. Some of these surges and spikes in traffic and demand can be planned for, but some cannot. In these scenarios, a dynamic load balancing algorithm will help ensure access to apps and resources when customers and users need them most.
Different types of load balancers with different capabilities reside in the architecture called the Open System Interconnection (OSI) model. In this model are seven layers. Network firewalls are at levels one to three (L1-physical wiring, L2-data link and L3-network). Meanwhile, load balancing happens at layers four to seven (L4-transport, L5-session, L6-presentation and L7-application). Load balancers are generally used at Layer 4 and Layer 7.
Cloud-based load balancers are not just traffic controllers for spikes in traffic and for optimizing server use. Cloud-native load balancers can also provide predictive analytics to help you visualize traffic bottlenecks before they happen. That in turn delivers actionable insights to help any company optimize its IT solutions.
Application Load Balancing: As enterprises rely more and more on application performance and availability, application load balancing can help them scale, streamline operations, and save money.
Global Server Load Balancing: With users and customers around the world, companies can enhance their load availability with global server load balancing, which sends users to the nearest endpoint to them.
DNS Load Balancing: The practice of configuring a domain in the Domain Name System (DNS) so that user requests to the domain are distributed across a group of server machines is called DNS load balancing.
Network Load Balancing: Application delivery controllers (ADCs), physical or virtual appliances functioning as proxies for physical servers, manage application or network functions, and rely on a network load balancing solution to support them. ADCs also use other techniques, including caching, compression, and offloading of SSL processing, to improve the performance of web applications. In the usual configuration, the ADC sits in front of a group of web and application servers and mediates requests and responses between them and their clients, effectively making the group look like a single virtual server to the end user.
HTTP(S) Load Balancing: The technique for distributing traffic across multiple web or application server groups to optimize resource utilization is called HTTP(S) load balancing.
Internal Load Balancing: An internal load balancer is assigned to a private subnet and does not have a public IP. It typically works within a server farm.
Diameter: A diameter load balancer distributes signaling traffic across multiple servers in a network. One of the most cost-effective ways to do this is to scale the diameter control plane rather than the data transport layer. (Diameter load balancing can also be static or dynamic.)
There are other types of load balancer solutions, which can be used alone or in a network with cloud-native load balancers. Here are some notable types.
Hardware Load Balancer: A hardware load balancer is a physical device with a specialized operating system that can be programmed to distribute web traffic across several application servers, usually on-premises.
Software Load Balancer: A software load balancer operates like a physical load balancer, but it runs on software programs. The software keeps apps available through all kinds of traffic demands, using both static and dynamic load balancing to eliminate single points of failure.
Virtual Load Balancer: A type of load balancer that combines hardware and software load balancers is a virtual load balancer. It uses application delivery controller software that helps to distribute network traffic load among hardware backend servers.
WHITE PAPER
Load Balancing 101: Nuts and Bolts ›
USE CASES
Load Balancing Your Applications ›
GLOSSARY
What Is a Diameter Load Balancer? ›
WHITE PAPER
Load Balancing on AWS: Know Your Options ›
WHITE PAPER
Load Balancing 101: The Evolution to ADCs ›