What is Software-Defined Load Balancing (SDLB)?by Iwan Price-Evans on Architecture • June 10, 2022
Load balancing is used to improve the performance and reliability of websites, applications, databases, and other services by distributing the workload of the servers. A failure of any of these services can be mitigated by introducing a load balancer. This ensures that servers don't get overloaded with workloads while other servers have unused capacity.
Software-defined load balancing (SDLB) uses dynamic load balancer services that are virtual, ephemeral, and centrally controlled, and sit in front of servers distributing traffic.
SDLB is not to be confused with software load balancers, which are virtualized appliances that are individually managed.
Individually managed load balancers tied to hardware or a VM are together known as load balancer appliances.
SDLB is related to software-defined networking (SDN), which applies similar principles to routing and network components. In both SDN and SDLB, components and topologies that were previously defined by the underlying hardware are now defined by centralized software with an agnostic approach to the underlying hardware.
How does SDLB work?
Software-defined load balancing (SDLB) does the same job as other load balancing models: it distributes request traffic to server clusters based on the algorithm defined for the server nodes.
SDLB decouples the control plane from the data plane, and centralizes the control plane in the cloud. The centralized control plane manages all of the logic, configuration, data intelligence, user interface, and API. The data plane contains lightweight worker nodes providing dynamic load balancer services.
SDLB nodes typically run in containers, virtual machines (VMs), or standard x86 or ARM servers. SDLB provides the same functionality as other load balancers but isn't tied to a physical server device or dedicated appliance or even to a particular VM. Instead, SDLB creates, configures, and destroys load balancer nodes entirely by software.
An SDLB will map virtual IP addresses (VIPs) to dynamic IP addresses (DIPs) that are part of the cloud service resources. These VIPs act as the primary IP address that end-user clients access from the public internet. DIPs are assigned to each VM of the load balancing pool that sits behind the VIP.
SDLBs use load balancing algorithms to decide which server node to route network traffic to. These are the types of load balancing algorithms typically used:
Load Balancing Algorithms
Round-robin load balancing
Round-robin is the most widely used load balancing algorithm because it's easy to implement and easy to understand. It is suited to server clusters that contain servers that have identical specifications.
Weighted round-robin load balancing
An alternative to standard round-robin load balancing is weighted round-robin. Weighted round-robin load balancing can receive and forward requests to servers of differing capacities.
Least connections load balancing
Least connections load balancing will consider the number of connections each server node is handling before it forwards more requests. When a client requests a connection, the load balancer will determine which server has the least number of current connections and forward the request to that server.
Weighted least connections load balancing
The weighted least connections algorithm is similar to the weighted round-robin algorithm in that it introduces a weight to the server node based on its capacity. A weighted least connection load balancer will take into consideration the weight, or capacity, of each server, and the number of concurrent connections to each server before assigning additional requests.
Random load balancing
Similar to a round-robin load balancer, a random load balancer is suited to server clusters that have identical server specifications. Client requests can be forwarded to servers randomly using a random number generating algorithm.
Resource-based load balancing
Resource-based load balancing takes into account the available resources on every server in the cluster. This method uses an agent on every server that reports server and application telemetry to the load balancer.
IP Hash load balancing
An IP hash algorithm uses a mathematical function to convert incoming request source and destination IP addresses into a unique hash key. The load balancer will then use this hash key to assign the request to a specific server.
What is the difference between SDLB and load balancer appliances?
Load balancer appliances are standalone. Each load balancer must be deployed individually, with accompanying power and network connections.
Software-defined load balancers (SDLB) nodes can be installed in a container or VM on any server or cloud. A software-defined load balancer doesn't require proprietary hardware.
Additionally, SDLB enables a SaaS-style deployment model called load balancing as a service (LBaaS).
Logic and Configuration
Load balancer appliances store load balancing logic and configuration on each appliance. Each load balancer contains a control plane and data plane. Users must configure each load balancer separately, or use a complex orchestration platform to configure multiple appliances.
SDLB stores load balancing logic and configuration in a central controller. The control plane is decoupled from the data plane and centralized in the cloud. Data plane worker nodes can be lightweight and ephemeral because they do not store valuable configuration.
Load balancer appliances collect and store their own telemetry. Users must monitor application traffic and health on each load balancer, or use a complex orchestration platform to monitor multiple appliances.
SDLB collects and stores telemetry from any number of nodes in a central controller, making application intelligence more complete and more accessible.
Load balancer appliances can only scale up by purchasing and deploying new load balancers. This typically leads to expensive over-provisioning.
SDLB can scale-out and scale-in dynamically on-demand in response to traffic load and the health of your backends.
Load balancer appliances typically achieve high availability by deploying two servers or VMs (active and standby) running load balancing software. Paired appliances are used to maintain the service if one fails. This paired approach can also be implemented using VMs.
SDLB can achieve high availability by rapidly instantiating new load balancer services in containers on healthy nodes anywhere in the network, even across multiple clouds.
SDLB gains additional resilience because the logic is stored in a centralized control plane. If a data plane worker node fails, no configuration is lost. New nodes can be spawned instantly from the centralized configuration.
The benefits of software-defined load balancing
SDLB is becoming more popular because it provides:
Intelligent load balancers automatically determine how to distribute requests to servers in a cluster, or to locations or clouds in a multi-location network. They can do this in real-time and can handle fluctuations in network traffic by adding, reconfiguring, and removing services as needed.
SDLBs are suitable for ensuring service delivery within the cloud, desktop, web and virtual servers, and container environments.
Ease of Use
When deploying SDLB as part of LBaaS users don't need to install, program, operate, or maintain the load balancers. This means that scalable load balancing is available to teams who don't have these technical skills in-house.
Does Snapt provide software-defined load balancing?
Yes. Snapt Nova provides software-defined load balancing and WAF security on-demand to millions of nodes from a central controller. Nova uses a centralized control plane decoupled from the data plane, which enables centralized control, multi-cloud deployment, autoscaling, complete app observability, and ML-powered anomaly detection.