HAProxy has hit 2.0, a mere 18 years after the open source load balancer and proxy server was first released.
The last LTS release was 1.8, back in 2017, which brought features including Hitless Reloads, DNS Service Discovery, Dynamic Scaling with the Runtime API, and HTTP/2. The 1.9 release last year was described by project founder Willy Tarreau as a “technological preview or technical foundation for 2.0”.
Top of HAProxy’s new additions is cloud-native threading and logging, which builds on top of the ability to set the nbthread directive to instruct HAProxy to operate across multiple threads, which allows you to make better use of multi-core processor machines. HAProxy will not configure this automatically.
The latest version enables HTTP Representation (HTX) – introduced in v1.9 – by default. This feature creates an internal, native representation of the HTTP protocol(s) and underlies other new features. Because HTX is now on by default, HAProxy “officially supports end-to-end HTTP/2”.
HAProxy 2.0 now delivers full support for the open-source RPC framework, gRPC, which it says allows for bidirectional streaming of data, detection of gRPC messages, and logging gRPC traffic.
Also added in v 2.0 are layer 7 retries for failed HTTP requests, covering a “variety of error types” for granular control.
A new dataplane API “provides a modern REST API for configuring HAProxy on the fly” and means front-ends, backends and servers can be dynamically added and removed. The release also adds support for a new Process Manager, which allows users to specify external binaries that the platform will start and manage under its master/worker mode.
Other additions include a new Kubernetes Ingress Controller, which supports TLS offloading, Layer 7 routing, rate limiting, and whitelisting. It also gets native support for exposing metrics to Prometheus, via new Exporter.
HAProxy has shifted to biannual updates, and the project said it was planning to include UDP support, OpenTracing and Dynamic SSL Cert updates in HAProxy 2.1.