Hi.
On 2024-03-15 (Fr.) 15:09, Christopher Faulet wrote:
Hi all,
It was evoked on the ML by Willy and mentioned in few issues on GH. It is now
official. The SPOE was marked as deprecated for the 3.0. It is not a pleasant
announce because it is always an admission of failure to remove a feature.
Sadly, this filter should be refactored to work properly. It was implemented as
a functional PoC for the 1.7 and since then, no time was invest to improve it
and make it truly maintainable in time. Worst, other parts of HAProxy evolved,
especially applets part, making maintenance ever more expensive.
We must be realistic on the subject, there was no real adoption on the SPOE and
this partly explains why no time was invest on it. So we are really sorry for
users relying on it. But we cannot continue in this direction.
The 3.0 is be an LTS version. It means the SPOE will still be maintained on this
version and lower ones for 5 years. On the 3.1, it will be marked as
unmaintained and possibly removed if an alternative solution is implemented.
It remains few months before the 3.0 release to change our mind. Maybe this
announce will be an electroshock to give it a new lease of life. Otherwise it is
time to find an alternative solution based on an existing protocol.
For all 3.0 users, there is now a warning if a SPOE filter is configured. But
there is also a global option to silent it. To do so,
"expose-deprecated-directives" must be added in the global section.
Now we are open to discussion on this subject. Let us know your feeling and if
you have any suggestion, we will be happy to talk about it.
As I fully understand this step it would he very helpful to have a filter which
have the possibility to run some tasks outside of HAProxy in async way.
There was a short discussion, in the past, about the future of filters
https://www.mail-archive.com/haproxy@formilux.org/msg44164.html
maybe there are some Ideas which can be reused.
From my point of view would be a http-filter (1,2,!3 imho), with all the pros
and cons, one of the best way for a filter, because this protocol is so widely
used and a lot of knowledge could be reused. One of the biggest benefit is also
that, even in Enterprise environments, could this filter be used as this
protocol is able to run across a proxy.
FCGI is also another option as it's already part of the Filter chain :-).
I don't know too much about grpc but maybe this protocol could also be used as
filter ¯\_(ツ)_/¯.
Lua-API with some external Daemons could be also used to move the workload out
of HAProxy.
From my point of view, what ever solution is chosen the Idea behind the SPOE
should be kept because it's a good concept to scale the filters outside of HAProxy.
I see a lot of possibilities here the main point is always how much work it it
to maintain the filter chain.
Regards,
Jm2c
Regards
Alex