[ANNOUNCE] haproxy-2.8.0

2023-05-31 Thread Willy Tarreau
Hi,

HAProxy 2.8.0 was released on 2023/05/31. It added 27 new commits
after version 2.8-dev13.

Only a small minor issues were addressed this time, the rest was
mostly doc polishing and cleanups. 2.8 is entering LTS status and will
be supported till 2028-Q2, and 2.9-dev0 was just created to pursue the
development, with an expected release around end of November this year.

Let's try to summarize the changes from 37 participants in the 1382
commits that were merged since 2.7.0 from a high level perspective:

- Lua/Mailers: there's now a full-Lua implementations of the mailers
  subsystem. It's provided as a Lua script (examples/lua/mailers.lua)
  which relies on the new internal event notification API. As such the
  script subscribes to server state change events and emits mails when
  the defined criteria are matched. It continues to rely on the
  "mailers" section, but being a Lua script, it's totally customizable.
  You can imagine to change the contents, change the notification
  conditions, send to multiple destinations etc. With this change, the
  internal Lua view of the servers was made fully dynamic so that added
  or removed servers are always seen in their current state. In fact the
  new event notification API goes way beyond this but better read the Lua
  API documentation to know more. The next step will be to completely
  deprecate the old Mailers subsystem in 2.9 and 3.0 and to remove it in
  3.1.

- HTTP/2 is advertised by default in ALPN on TLS listeners. It was about
  time, 5 years have passed since it was introduced, it's been enabled by
  default in clear text as an HTTP/1 upgrade for 4 years, yet some users
  do not know how to enable it. From now on, ALPN defaults to "h2,http/1.1"
  on TCP and "h3" on QUIC so that these protocol versions work by default.
  It's still possible to set/reset the ALPN to disable them of course. The
  old concern some users were having about window sizes was addressed by
  having a setting for each side (front vs back).

- Threading: thread groups are now usable by default by "bind" lines
  without requiring to replicate these lines once per thread group. This
  means that by default a bind line is bound to all threads, regardless
  of the number of groups (up to 64 groups of 64 threads or 4096 threads
  total). As such it becomes possible to enable multiple groups on a large
  system to benefit from all the processing power available if you're
  running heavy rules, Lua, compression, SSL or whatever. We still default
  to a single NUMA node because the cases where it brings solid benefits
  are not frequent enough, compared to the cost of having more listening
  sockets. Note that on systems with non-uniform L3 caches like AMD EPYC,
  this can bring important performance gains with only one setting in the
  config. We noticed a doubling of the request rate on a 24-core EPYC 74F3
  by enabling 8 groups instead of the default 1, to map to the L3 cache
  topology. The maximum tested so far was 224 threads with 4 & 8 groups on
  a dual-socket intel Sapphire Rapids system. That was blazingly fast :-)

- SSL: there are quite a bunch of updates on the SSL front in this release:
  - it's possible to adjust the signature algorithms to improve
interoperability with some other TLSv1.2/1.3 clients. These
algorithms are used to sign the ephemeral keys used during the
handshake. Changing these algorithms are useful for buggy clients
that negociate algorithms they don't support. Though the usage is
very specific. It's also possible to adjust this parameter for
Client Authentication.

  - SSL hanshake failure logs now dump the OpenSSL error string by
default. No need to configure an error-log-format anymore to show
details on the handshake error. It can be helpful to debug SSL
problems (e.g. you'll now see "tlsv1 alert unknown ca" instead
of just "SSL handshake failure").

  - OCSP: in 2.8 the OCSP responses for certificates can be automatically
updated by a background task (by default every 5 minutes) so that it is
no longer necessary to feed them over the CLI from an external script.
Of course, this requires that your load balancers have outgoing HTTP
access. This is enabled in crt-list files by adding "ocsp-update on" on
the certificate's line. All this is observable on the CLI via
"show ssl-ocsp-update" and "show ssl-ocsp-response".
  
  - LetsEncrypt: there's an acme.sh script in admin/acme.sh that can be used
with your existing deployments (pull request for upstream still pending).
It will permit to handle the renewal of LE certificates in stateless mode
with no hassle (no need to proxy to a local port anymore).

  - OpenSSL: version 3.1 is now supported. It's less slow than 3.0 but still
significantly slower than 1.1.1, but might be usable for most users with
a low enough traffic.

  - wolfSSL: we've worked quite a bit with the wolfSSL team to make sure
their latest version w

Re: [ANNOUNCE] haproxy-2.8.0

2023-05-31 Thread Tim Düsterhus

Willy,

On 5/31/23 17:14, Willy Tarreau wrote:

HAProxy 2.8.0 was released on 2023/05/31. It added 27 new commits
after version 2.8-dev13.


Congratulations! Enjoy the release party :-)

Best regards
Tim Düsterhus

PS: Wouldn't be a "Tim email" without some minor nit. Just FYI: I made a 
small adjustment to the docs repository: 
https://github.com/haproxy/docs/commit/7797f2d18aa1beafd73f9cec2a9222cff1b7cd1c




Re: [ANNOUNCE] haproxy-2.8.0

2023-05-31 Thread Willy Tarreau
On Wed, May 31, 2023 at 06:10:37PM +0200, Tim Düsterhus wrote:
> Willy,
> 
> On 5/31/23 17:14, Willy Tarreau wrote:
> > HAProxy 2.8.0 was released on 2023/05/31. It added 27 new commits
> > after version 2.8-dev13.
> 
> Congratulations! Enjoy the release party :-)

Thanks ;-)

> Best regards
> Tim Düsterhus
> 
> PS: Wouldn't be a "Tim email" without some minor nit.

Yeah, after sending the message I said to the coworkers here "now
let's wait for Tim's message ;-)"

> Just FYI: I made a
> small adjustment to the docs repository: 
> https://github.com/haproxy/docs/commit/7797f2d18aa1beafd73f9cec2a9222cff1b7cd1c

Ah, nice catch, thank you! I'm never much at ease when I touch these,
though they're not too difficult to deal with when you compare them.

Cheers,
Willy



Re: [ANNOUNCE] haproxy-2.8.0

2023-05-31 Thread Tristan

Congratulations to the team at large for the release!
There's definitely been more improvements and fixes than meets the eye 
from the release notes alone!


On 31/05/2023 16:14, Willy Tarreau wrote:


- QUIC: it has been running almost flawlessly for a year on haproxy.org,
   and totally flawlessly over the last 6 months [...] >we now consider it 
production-ready [...]
All I can say is that this was a long time coming since the early days 
of 2.6.0, and that the amount of bug fixes and improvements Amaury and 
Fred provided to make this happen has been nothing short of amazing.


A big thank you to them for their patience with my reports and not 
giving up on even the most obscure issues!


As a parting gift, I don't have a CSS nit to report like Tim, but I do 
have this prophetic comment from Willy almost a year ago on the matter: 
https://github.com/haproxy/haproxy/issues/1808#issuecomment-1230660870 :)


Tristan



Re: [ANNOUNCE] haproxy-2.8.0

2023-05-31 Thread Willy Tarreau
On Wed, May 31, 2023 at 04:54:57PM +, Tristan wrote:
> Congratulations to the team at large for the release!
> There's definitely been more improvements and fixes than meets the eye from
> the release notes alone!
> 
> On 31/05/2023 16:14, Willy Tarreau wrote:
> 
> > - QUIC: it has been running almost flawlessly for a year on haproxy.org,
> >and totally flawlessly over the last 6 months [...] >we now consider 
> > it production-ready [...]
> All I can say is that this was a long time coming since the early days of
> 2.6.0, and that the amount of bug fixes and improvements Amaury and Fred
> provided to make this happen has been nothing short of amazing.
> 
> A big thank you to them for their patience with my reports and not giving up
> on even the most obscure issues!
> 
> As a parting gift, I don't have a CSS nit to report like Tim, but I do have
> this prophetic comment from Willy almost a year ago on the matter:
> https://github.com/haproxy/haproxy/issues/1808#issuecomment-1230660870 :)

Hehe indeed. That was not prophetic, that's experience. Over time you
learn to detest what you did in the past :-)

Willy