We get asked often by developers starting new companies or projects how Snapt's Nova Community Edition compares to the HAProxy you can download. It's a good question and a good debate to have.
HAProxy is effectively the default solution most developers turn to for reliable and high-performance proxying and load balancing. The open source edition is free and flexible, but lacks many of the advanced features necessary to provide the essential security and scalability of an application operating at enterprise scale.
Snapt’s Nova Community Edition was designed for similar purposes, but with a difference. While Nova Community Edition is also free, we decided to include almost all of our enterprise features in the free version, because we think developers who anticipate scaling up should plan to use these advanced features from the very beginning. By architecting applications around a feature set that supports enterprise scale, developers can benefit from long-term stability and confidence.
For the record, we are huge fans of HAProxy. Thousands of startups use it for load balancing and proxying TCP and HTTP-based applications. And with good reason. HAProxy is fast, lightweight, and scalable. It can be configured for high availability and powers many high traffic big brand websites. An open source software project, HAProxy has an active and responsive community that pushes bug fixes and prioritizes security. Because HAProxy is open source, developers are free to configure and customize it to match their environment. There is no vendor lock-in.
There are several features that basic HAProxy downloaded from GitHub lack, which developers and DevOps teams will almost certainly want. We built these features into Nova Community Edition by default to make it more useful out of the box. Here's a quick comparison list of the most critical capabilities.
HAProxy Lacks API Horsepower
Most DevOps teams are used to using APIs to control nodes. An API is crucial for any type of dynamic scaling and for handling dynamic traffic patterns. Also, if you are deploying more than one load balancer, the lack of API means managing each node requires manual labor or writing bespoke scripts (which you will then have to maintain). HAProxy does not have a fully-featured exposed API. The lack of a full-featured API also means that the export of telemetry and performance data into external systems like Prometheus or InfluxDB takes time and effort. Nova Community Edition includes a full-featured API that enables DevOps teams to manage multiple nodes (up to 2), export telemetry and performance data, and run cluster-wide health checks.
No Default Global Server Load Balancing (GSLB)
To manage multiple load balancers requires GSLB capability. HAProxy does not have GSLB included in its default downloads. This means DevOps teams need to create a GSLB-like capability to balance traffic across nodes and/or clouds. GSLB is critical for larger applications that have multiple nodes. Even for smaller applications with 3 to 5 nodes, GSLB solves many scaling and traffic delivery problems early for DevOps and architecture teams. Nova Community Edition includes free GSLB capability for up to two nodes covered by the CE license terms. Nova’s GSLB functionality is powered by destinations. Destinations are powerful Nova powered intelligent DNS addresses that allow auto-scaling, traffic routing, disaster recovery, and multi-cloud routing.
No Real-Time Observability and Dashboards
If you are running high-performance applications where the customer and user experience is at a premium, having a real-time view of the application and traffic is essential. This is not available by default in HAProxy and is only available in the Enterprise Edition. The lack of real-time data means your dashboards will show old data. You will need to potentially add data back into your time-series databases after the fact - a royal pain and a source of application performance monitoring problems. Nova Community Edition includes real-time views into performance and traffic that gives developers peace of mind.
No Automated Scaling Capabilities
For many industries, such as online games or eCommerce, highly dynamic traffic patterns are the norm. Setting up auto-scaling for HAProxy requires writing specific automation scripts for scale up and scale down. This can add significant overhead to DevOps teams because they will need to wire up telemetry and build automation logic based on critical load thresholds. Doing this is non-trivial and requires both initial startup and ongoing maintenance. Snapt includes auto-scaling capabilities in its Nova Community Edition nodes, allowing coordinated scale up and scale down across up to two nodes - in multiple clouds.
No Built-In Security Capabilities
HAProxy does a great job managing traffic spikes and accelerating applications, but it has limited ability to protect your application's public face. HAProxy does not have a Web Application Firewall (WAF), so teams that use HAProxy usually need to deploy and manage a WAF in front of their HAProxy. This adds management overhead and cost. For live applications, most DevOps teams will want to put in place some sort of anomaly detection to spot potentially malicious behavior - including DDOS and Bot attacks. They would need to purchase that as a separate service from their cloud provider or CDN. Nova Community Edition includes integrated WAF, DDOS, Bot, and anomaly detection, all of which are set to run by default.
No Native Multi-Cloud Management
Many cloud native applications are being built on containers and designed to run on more than one public cloud. This is to prevent lock-in and enable greater application resilience. If you want to run HAProxy nodes in multiple clouds (AWS, Azure, GCP, DigitalOcean, and Linode), then you will need to create and maintain the tooling for management, scaling, and observability across all three clouds. This is a significant time sink because each cloud has its own conventions in scripts, API structure, and pricing. Snapt built the Nova Community Edition to be as abstracted as possible from any single cloud; multi-cloud management, observability, scalability, and portability are all default features in this edition.
Requires Larger VMs / Instances
HAProxy was designed over a decade ago before the rise of Containers. While it is possible to deploy HAProxy in a Containerized fashion because HAProxy was designed before cloud native became popular, each install has both a data plane and a control plane and additional code to run more easily outside of Containers. HAProxy's more traditional software architecture requires larger capacity cloud instances, which cost significantly more over a period of time. Nova Community Edition was designed not only to run in the traditional fashion but also in Containers. It can run on small instances because it only contains the necessary load balancing and application delivery data plane.
Summing It Up: Your Mileage May Vary And Closing Notes
To be clear, HAProxy does have some robust features in its Community Edition, including autoscaling, basic APIs, and health checks. For organizations that are dead set on running only open source software, then HAProxy makes a lot of sense. Also, if your team has a lot of experience customizing HAProxy installations and is willing to spend considerable time each month tuning, managing, and fixing HAProxy clusters, then it's hard to beat the openness of OSS.
However, many teams would prefer to treat load balancing and proxies (and security and observability) as services they can quickly light up and consume without worrying about the underlying service architecture. Consuming load balancing as a service improves agility, makes it easier to scale up and down, improves security, and requires less time and hassle. Nova Community Edition was designed to mesh with the modern approach to microservices and give small teams and small applications the same capabilities reserved for larger organizations.