Software vs Hardware Load Balancer
There are 2 ways to implement load balancing. Traditionally it is to use a dedicated hardware which is a separate device and the other option is to install load balancing tool on the server or hypervisor or even in the cloud.
Typically the software load balancer is cost effective compared to hardware load balancer. So the first question is why we need hardware load balancer in the first place.
The advantages of hardware load balancer
- High Performance
The system performance is critical for any network application and load balancer is no exception. When it comes to system performance, you need properly designed software architecture running on dedicated hardware.The NIC driver should be tuned or even completely rewritten for best performance. Take Intel Gigabit and 10G ports as example. As of 2018, MSI-X NIC is the mainstream for both Gigabit and 10G ports.The driver of Intel I350 controller utilizes all the available CPU cores on the machine by default. And this brings up serious lock contention and blows the system up at some point. You have to optimize multi-threaded code to manage lock contention. It is the same case with Intel 82599 (10G NIC) controller.
Furthermore, you need dedicated ASIC-chip accelerator in SSL offloading to gain high SSL TPS.
You just can’t install the software on random server or hardware and still hope the performance is good. Hardware load balancer has lower latency and more consistent performance.
- Less prone for failure
The hardware load balancer is typically built on properly optimized and well-tested hardware platform. And underlying OS of load balancer is built against specific hardware for performance and stability.
The disadvantages of hardware load balancer
You have to pay more for load balancing capability to meet peak demands.
Hardware load balancer requires expensive maintenance and it definitely increase TCO for IT infrastructure.
The advantages of software load balancer
- Cost effective
Deploying software load balancer is much more cost effective than its hardware counterparts.
- Easy scaling up
The nature of software load balancer makes it easier to scale up or down.
- Cloud and Virtualization
This is where benefits of a software load balancer come into play. Because software load balancer can be running directly on VM. You just can use hardware load balancer in Cloud. With hardware virtualization, software load balancer can be running on a hypervisor.
The disadvantages of software load balancer
Compared to hardware load balancer, the main downside to software load balancer is in its performance.
In a nutshell, the question is which scaling up method, performance, and TCO that you needs from load balancer.