One of the quickest and easiest ways to set up application high availability and improve performance is to implement the load balancer (LB).
On high-level, there are three types of a load balancer.
A hardware load balancer is a dedicated appliance to provide load distribution, and its relevant features. Some of the popular LB hardware vendors are:
They are expensive but give you full control.
Cloud load balancer is trending more than ever.
Using cloud LB is one of the affordable ways to enjoy full features without investing in a hardware appliance. You pay for what you use. The following are some of the known cloud LB.
- Google Cloud
You can get it started from as low as $20 per month.
And the last one is software-based where you install, manage and configure LB software by yourself. This can be either commercial or open-source/free.
If you don’t have a budget or would like to explore a free solution load balancer then below will help you.
Used by Google, a reliable Linux-based virtual load balancer server to provide necessary load distribution in the same network.
Seesaw is developed in Go language and works well on Ubuntu/Debian distro. It supports anycast, DSR (direct server return), and requires two Seesaw nodes. They can be either physical or virtual.
Worth mentioning that Seesaw works with layer four networks, so if you are looking for layer seven load balancing then you may want to explore other options.
LoadMaster by KEMP
A FREE advanced application delivery controller by KEMP is supported on all major hypervisors. You can either download and use it in your data center or deploy it in cloud DC like AWS or Azure.
It’s free but offers a commercial level of features including below.
- Layer 4 load balancing for TCP/UDP using round-robin or least connection algorithms
- Layer 7 balancing
- Inbuilt web application firewall (WAF)
- Inbuilt intrusion prevention engine (IPS)
- True global server load balancing, supports multi-site
- Caching, content compression, content switching
- Web cookie persistence
- IPSec tunneling
KEMP LB is used by some of the big brands like Apple, Sony, JP Morgan, Audi, Hyundai, etc. Free edition provides sufficient features; however, if you need more, you can check out their commercial license.
If you or your organization decide to explore KEMP LB and need some online training, then you can refer to this online course by Mike Walton.
One of the popular ones out there in the market is to provide high availability, proxy, TCP/HTTP load-balancing. HAProxy is used by some of the reputed brands in the world, like below.
Some of the worth mentioning features are.
- Support IPv6 and UNIX socket
- Deflate & Gzip compression
- Source-based session stickiness
- Inbuilt statistics reporting (checkout demo)
As you may expect HAProxy got enterprise edition, hardware & virtual appliance.
The best way to know about HAProxy is to try them. Community Edition comes with tons of features, and they are FREE anyway.
Zevenet support L3, L4, and L7. It’s available as source code, IOS image, and in a docker repository.
It supports advanced health-check monitoring, so faulty servers/services are out of operation quickly to provide a seamless user experience. Zevenet formerly known as Zen works well with a TCP-based protocol like FTP, SIP, SSL, HTTP, etc.
If you are looking for Zevenet hosting then you may try Kamatera.
Neutrino is used by eBay and built using Scala & Netty. It supports least-connection and round-robin algorithms with the following switching features.
- Using canonical names
- L4 using TCP port numbers
Neutrino is tested to handle 300+ requests per seconds throughput on 2-core VM. If you are comparing with HAProxy, then one major advantage of using Neutrino is L7 switching.
But as always, try both and see what works the best for your environment.
Balance by In lab networks is a TCP proxy round-robin LB that supports IPv6 in the listening side. This means you can have IPv4 on the front-end and IPv6 on the back-end.
It got all the basic LB features.
Pen is tested on Linux, FreeBSD, HP-UX, Solaris, Windows but no reason it shouldn’t work on another Unix distro. It supports UDP and TCP-based protocols like HTTP, SNMP, DNS, etc.
Some of the features include the following along with basic one.
- GeoIP filter
- SSL termination
- IPv4 & IPv6 compatibility
I know what you might be thinking. Nginx is a web server, proxy server, etc. But open-source Nginx does support a basic level of content switching & request routing distribution across multiple servers.
However, the Nginx Plus edition is much more than that.
Nginx Plus is an all-in-one web application delivery solution including load balancing, content caching, web server, WAF, monitoring, etc. It provides a high-performance load balancer solution to scale applications to serve millions of requests per second.
It supports WebSockets, HTTP/2, auto SSL certificate renewal with Let’s encrypt, clean interface to manage and monitor the resources.
Gobetween is a minimalistic yet powerful high-performance L4 TCP, TLS & UDP-based load balancer.
It works on multiple platforms like Windows, Linux, Docker, Darwin and if interested you can build from source code. Balancing is done based on the following algorithms you choose in the configuration.
- IP hash
- World-famous – round-robin
- Least bandwidth
- Least connection
Based on this benchmark, Go-between is faster than HAProxy but not from Nginx.
If you are looking for a modern L4 balancing solution with auto-discovery for the dynamic environment, then Go-between seems promising. Give it a try to see how it goes.
I hope above listed open-source load balancer software helps you to choose one for your application. They are all FREE, so the best way to find what works is by trying them.
If you are looking to learn new skills then try Pluralsight, more than 6000 video courses are available.