Software Defined Load Balancing Definition
Software defined load balancing is built on an architecture with a centralized control plane and a distributed data plane. The control plane is the brain behind the services delivered by the data plane. It receives and analyzes the continuous stream of application telemetry sent by the distributed load balancers across the environments to decide on service placement, autoscaling, and high availability for each application. Software defined load balancers can be deployed across multiple environments (data center or public cloud) and managed by the control plane.
What is Software Defined Load Balancing?
A software defined load balancer sits in front of servers and directs traffic, but not as a physical appliance. The load balancing software routes client requests across all servers to achieve optimal speed and utilization and prevents degraded performance by ensuring that no one server is overworked. The software defined load balancer redirects traffic if one server fails, distributing requests to the remaining online servers. It also sends requests automatically to any new server that is added to the server group.
In other words, software defined load balancing efficiently distributes network load and client requests across all appropriate servers. It offers the administrator the ability to add or remove servers as needed. And it ensures reliability and high availability by routing traffic only to available servers.
Load balancing for software defined networking (SDN) allows for improved diagnosis and network management by removing protocols at the hardware level. While traditional network equipment defines algorithms for classic load balancers, software defined networking load balancing does not rely on those algorithms to make data path control decisions.
Software Defined Load Balancing vs Hardware Based Load Balancing
Network traffic is routed between web servers using software defined load balancing. Software defined load balancers do not require proprietary hardware and run on standard x86 servers. Software load balancers can examine application-level characteristics such as the HTTP header, the IP address, and the contents of the packet to evaluate client requests. They then select which server will receive a particular request. Due to the processing power of modern x86 servers, software defined load balancers with the right architecture have removed the performance advantages of hardware based load balancers.
A hardware based load balancer runs load balancing software as a stand-alone physical appliance. Traditionally, these units are deployed in (active/standby) pairs, so there is always a backup in case one hardware based load balancer fails. They are usually capable of high-performance functions, and can process many gigabits of traffic from applications of all kinds. A hardware based load balancer may also be available as a virtual appliance which uses the same architecture requiring active/standby pairs.
In contrast, software defined load balancing is typically:
- an application delivery controller (ADC) running on a virtual machine or a standard bare metal x86 server
- installed directly onto a web server or VM
- a load balancer as a service (LBaaS)
Software load balancing works just like hardware based load balancing, using a chosen algorithm to distribute traffic among a pool of servers, but with software rather than a dedicated load balancing device.
Software defined load balancers may run in containers, on common hypervisors, or on bare-metal servers with minimal overhead as Linux processes. Depending on the technical requirements and use cases in question, they are highly configurable.
Software defined load balancers can reduce hardware expenditures and save space while matching performance and delivering even greater flexibility. In this way, they fully replace load balancing hardware.
Software Defined Load Balancing Methods
Software defined load balancers may be deployed as load balancer as a service (LBaaS), or installed directly onto an x86 server or virtual machine, and may be located on-premises or off. The LBaaS option places the burden of installing, configuring, maintaining, updating, and managing the load balancing software on the service provider.
Software defined load balancers distribute workloads across multiple servers to make a network more reliable and efficient. By using available servers in the most efficient way, and ensuring servers don’t get overloaded and workloads are well-managed, load balancing increases network capacity and helps the network run faster. Software defined load balancing also directs traffic away from failed servers to functional servers, ensuring reliability of services despite infrastructure failures.
Software defined load balancing uses a variety of algorithms to evaluate client requests and route traffic in real time. The administrator selects the load balancing policy and method the software uses to route traffic.
Software defined load balancers most often determine where network traffic should go based on one of these methods:
- Round-robin algorithm. The simplest load balancing method, the round-robin algorithm simply moves requests in the same order through a list of available servers.
- Least-connections algorithm. The least-connections algorithm sends requests to the servers in a given moment that are least busy, or that are processing the fewest workloads.
- Least-time algorithm. The least-time algorithm selects servers based both on the fewest active requests and the fastest processing speed. These also often allow administrators to privilege servers with better compute, capacity, or memory by integrating weighted load-balancing algorithms.
- Hash-based algorithm. The hash-based algorithm assigns the source and destination IP address of the client and server a unique hash key. This ensures that repeat requests from the same user will be directed to the same server, and retains previous session data in the server.
What are the Advantages of Software Defined Load Balancing?
Software defined load balancing offers multiple advantages over hardware-based load balancing:
- Scalability. Scalability is the greatest advantage software defined load balancers have over hardware based load balancing. Software defined load balancers can respond in real-time, automatically, to network traffic fluctuations by adding or dropping virtual servers based on demand.
- Cost. Especially using LBaaS, organizations can save money with software defined load balancers.
- Flexibility. Software defined load balancers are more flexible than hardware based load balancers because they function within a variety of environments, including cloud environments, standard desktop operating systems, web servers, virtual servers, bare metal, and containers. Hardware load balancers are not programmable and are just not as flexible.
- Ease of Use. Software defined load balancers are simply deployed on demand, saving time and money. Hardware load balancers can be costly and difficult to install.
- Security. Load balancing software provides an extra layer of security as it sits between the client and the server, rejecting suspicious packets.
There are clear advantages to software defined load balancing, but every organization must balance their unique needs with the pros and cons of software, software as-a-service load balancing, and hardware. Any properly configured and managed load balancing can render a network safer and more reliable.
Does Avi Offer Software Defined Load Balancing?
Yes. Avi offers 100% software defined load balancing to ensure a fast, scalable and secure application experience. It delivers elasticity and intelligence across any environment. Avi’s intent-based applications services platform scales from 0 to 1 million SSL transactions per second in minutes. It achieves 90% faster provisioning and 50% lower TCO than a traditional appliance-based approach. Learn more about Avi here.
For more on the actual implementation of load balancers, check out our Application Delivery How-To Videos or watch the Setting Up Headers How To Video here:
For more information on software load balancing see the following resources: