I recently posted an update to an article I wrote two years ago that predicted Traefik would replace HAProxy and nginx, which you can read here Two years later – did Traefik replace nginx and HAProxy? and someone left a comment asking “Where is envoy?”
Great question… where is Envoy?
In my opinion Envoy messed up big time in the branding department, that’s where Envoy is.
Envoy’s first big mistake was choosing a dictionary word for their name. But that’s not the only issue with their name, they’re also up against www.envoy.com who happens to be advertising on the keyword envoy.
In addition to the terrible name they chose, they never bothered to grow their community on Reddit or keep up with making regular blog posts. Their most recent blog post was made sometime last year.
Now let’s take a look at their one-liner and compare it to Traefik’s.
Envoy Proxy – Cloud-native high-performance edge/middle/service proxy
Traefik – The Cloud Native Edge Router
Which value proposition is clearer to you? For me it’s Traefik, it’s easy to understand and they aren’t trying to be a “proxy of all trades” like Envoy is.
The bottom line in terms of “branding” is that Envoy is extremely weak, and doesn’t stand a chance against Traefik’s brand identity.
Envoy and Traefik have been around for about the same amount of time and Envoy has the power of Lyft behind it but Traefik is clearly winning the reverse proxy “brand war”.
But here’s the kicker, “Envoy might be a better choice!”
Envoy Proxy vs Traefik, nginx and HAProxy
Branding aside let’s look at the actual technology to see if there’s something there, after all Envoy is used by Lyft and some other big firms and it has great traction on GitHub and plenty of stars and forks.
Envoy vs nginx
nginx is the canonical modern web server. It supports serving static content, HTTP L7 reverse proxy load balancing, HTTP/2 + QUIC / HTTP/3, and many other features. nginx has far more overall features than Envoy as an edge reverse proxy, though many modern service oriented architectures don’t typically make use of them. Envoy claims to provide the following main advantages over nginx as an edge proxy:
- Full HTTP/2 transparent proxy. Envoy supports HTTP/2 for both downstream and upstream communication. nginx only supports HTTP/2 for downstream connections.
- Freely available advanced load balancing. Only nginx plus (the paid server) supports similar advanced load balancing capabilities as Envoy.
- Ability to run the same software at the edge as well as on each service node. Many infrastructures run a mix of nginx and haproxy. A single proxy solution at every hop is substantially simpler from an operations perspective.
Envoy vs HAProxy
HAProxy is the canonical modern software load balancer. It also supports basic HTTP reverse proxy features. Envoy claims to provide the following main advantages over haproxy as a load balancer:
- HTTP/2 support.
- Pluggable architecture.
- Multi-threaded architecture. It is substantially easier to operate and configure circuit breaking settings when a single process is deployed per machine versus potentially multiple processes.
- Integration with a remote service discovery service.
- Integration with a remote global rate limiting service.
- Ability to hot restart.
- Substantially more detailed statistics.
Envoy vs Traefik on GitHub
So Traefik is winning in the GitHub department as well as the branding department.
But wait, there’s more… let’s watch the Envoy Mobile presentation. Maybe Envoy are better presenters than Traefik.
Envoy Mobile Presentation
What do you think about Envoy? And an invitation…
Leave your comments below, and I invite you to submit an in-depth guest post comparing Traefik to Envoy that covers the finer points, pros and cons and maybe some benchmarks.
And if you love Envoy go help them build a presence at /r/EnvoyProxy on Reddit!