One of the quickest and easiest ways to setup application high-availability and improve performance is to implement the load balancer (LB).
On high-level, there are three types of load balancer.
A hardware load balancer is a dedicated appliance to provide load distribution, and it’s 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 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 free solution load balancer then below will help you.
Free/Open Source Load Balancer
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 option.
LoadMaster by KEMP
A FREE advanced application delivery controller by KEMP is supported on all major hypervisor. You can either download and use it in your data center or deploy 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, it 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 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 one out there in the market 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 server/services are out of operation quickly to provide the seamless user experience. Zevenet formerly known as Zen works well with a TCP based protocol like FTP, SIP, SSL, HTTP, etc.
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 which supports IPv6 in the listening side. This means you can have IPv4 on 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, 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 high-performance load balancer solution to scale applications to serve millions of request per seconds.
A modern and fast HTTP reserve proxy and LB built with GO. Traefik support multiple back-end services Amazon ECS, Docker, Kubernetes, Rancher, etc.
It supports Websockets, HTTP/2, auto SSL certificate renewal with Let’s encrypt, clean interface to manage and monitor the resources.
Gobetween is 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, Gobetween is faster than HAProxy but not from Nginx.
If you are looking for modern L4 balancing solution with auto-discovery for the dynamic environment, then Gobetween seems promising. Give 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 ways 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.