At its simplest, a load balancer is a mechanism that distributes traffic across multiple destination hosts to ensure no one single host catches the full workload. A DNS load balancer, for example, distributes DNS name resolution queries across several DNS servers to prevent overwhelming individual servers. Load balancers are also used as a tool to help web servers deal with periods of high demand.
Historically, load balancers have been either hardware or software. Hardware load balancers are physical appliances that deliver a specific level of throughput as they distribute requests to back-end servers. Software load balancers perform the same job, but eliminate the hardware, which enables IT teams to adapt to changes in the network architecture. Software load balancers are also more scalable than their hardware counterparts because their performance is not constrained by a rigid, or physical, configuration.
IT teams have several options for virtual load balancing tools, and vendor offerings vary in both architecture and capability. Virtual load balancers -- i.e., software -- are just abstracted appliances. They function similarly to hardware load balancers, but run on virtual hardware and distribute requests across VMs.
When using a virtual load balancer, organizations must pay close attention to VM affinity rules. Imagine that a virtual load balancer distributes web requests across several virtualized web front-end servers. If all those virtualized web servers run on the same physical host, a single physical server would still have to carry the full burden of the inbound web requests -- despite that the load balancer's workload distribution across virtual servers prevents disproportionate shares of the total workload. Rules must be instated to ensure the virtual web servers are always distributed across multiple host servers, rather than residing on a single host.
Load balancing on Microsoft Azure
Microsoft offers a virtual network load balancer within the Azure cloud. IT ops teams can configure the Azure load balancer as either a public load balancer or a private, or internal, load balancer.
A public load balancer accepts inbound traffic from the external network and distributes that traffic across a series of hosts. In the case of the Azure load balancer, use IP address translation to distribute to Azure VMs.
IT teams can also use an internal or private load balancer for non-internet-facing resources. IT could use a public load balancer to distribute requests from the internet to the front-end servers. However, those same front-end servers would also need to access back-end databases. If the databases have been replicated across multiple virtual hosts, an internal load balancer could distribute the requests from the web front-end servers to the back-end database servers.
Nginx load balancing
Nginx is another virtual network load balancing tool that offers an open source version as well as a more full-featured load balancer included in Nginx Plus. The primary difference between the Plus and open source products is that Plus adds active health checks and DNS service discovery integration to the features found in Nginx open source. Both support load balancing for HTTP, TCP and UDP (User Datagram Protocol) traffic, as well as Layer 7 request routing and session persistence.
Nginx functions as more than just a load balancer. It can also be configured to act as a content cache or a web server reverse proxy. Nginx Plus includes a built-in monitoring dashboard and high availability support.
The features that IT teams get with LoadMaster vary by licensing model. Kemp offers perpetual, subscription, metered and pooled licensing. Supported throughputs range from 50 megabits and up, with some options offering unlimited throughput. Kemp LoadMaster provides Level 4 and Level 7 load balancing for TCP and UDP traffic, and works with most hypervisors and cloud platforms.
SolarWinds Virtualization Manager
This tool performs an entirely different type of load balancing: Rather than load balance network requests to specific services or applications, Virtualization Manager performs host-level load balancing. VMs are distributed automatically across hosts based on resource availability. This method ensures maximum VM performance. SolarWinds Virtualization Manager integrates with VMware vSphere and Microsoft Hyper-V hosts.