Live data from Hacker News

Announcing Envoy: C++ L7 proxy and communication bus

eng.lyft.com

1–10 of 33 posts

Re: Announcing Envoy: C++ L7 proxy and communication bus

#2
This does seem incredibly useful for service oriented architectures. As I understand, it's basically a per application, per machine monitoring library for quickly detecting problems up and down the network stack.

However it also does load balancing. But doesn't that defeat the purpose a little bit? If your monitoring tool is the same as your load balancing tool, then who's monitoring the load balancer? :) I might be misunderstanding the architecture here.

Re: Announcing Envoy: C++ L7 proxy and communication bus

#3
Nicely done! Quite impressed since my company also has had similar problems with a fine-grained service oriented architecture. Envoy seems to cover almost of them, kudos.

However, I couldn't find a performance benchmark test or something compared to alternatives such as haproxy, nginx, etc. So I'm going to make my hands dirty now. ;)

Re: Announcing Envoy: C++ L7 proxy and communication bus

#4
This looks really neat! We are deploying a few new microservices every month now and I'm afraid that things will get out of hand networking wise (we are too using ELBs for both load balancing and service discovery), so I'm looking forward to try Envoy, thank you for open sourcing it guys.

Re: Announcing Envoy: C++ L7 proxy and communication bus

#6
post #2

This does seem incredibly useful for service oriented architectures. As I understand, it's basically a per application, per machine monitoring library for quickly detecting problems up and down the network stack. However it also does load balancing. But doesn't that defeat the purpose a little bit? If your monitoring tool is the same as your load balancing tool, then who's monitoring the load balancer? :) I might be…

This is hardly my field, but it was my understanding that this was the opposite. It's a load balancer that reports statistics so that you can figure out what's happening. That doesn't make your concern less valid, but it does change how everything is framed.

Re: Announcing Envoy: C++ L7 proxy and communication bus

#7
post #5

Pardon my ignorance, but would someone mind explaining, in a little more detail, when this software would be necessary, and perhaps other tools that do the same thing? Envoy seems like it does a lot, I'm just trying to wrap my head around it.

Their docs actually compare it to a lot of other stuff like haproxy, nginx, Amazon ELB, and more.

https://lyft.github.io/envoy/docs/intro/comparison.html

Re: Announcing Envoy: C++ L7 proxy and communication bus

#8
post #5

Pardon my ignorance, but would someone mind explaining, in a little more detail, when this software would be necessary, and perhaps other tools that do the same thing? Envoy seems like it does a lot, I'm just trying to wrap my head around it.

Their docs actually compare it to a lot of other stuff like haproxy, nginx, Amazon ELB, and more. https://lyft.github.io/envoy/docs/intro/comparison.html

I didn't see these, thank you!

Re: Announcing Envoy: C++ L7 proxy and communication bus

#9
post #8

Earlier quoted context omitted.

Their docs actually compare it to a lot of other stuff like haproxy, nginx, Amazon ELB, and more. https://lyft.github.io/envoy/docs/intro/comparison.html

I didn't see these, thank you!

Yeah, I read a fair bit of their docs before I happened across it. I feel like they should make that comparison more prominent. Even knowing it was in there, I had a little trouble finding it again.

Re: Announcing Envoy: C++ L7 proxy and communication bus

#10
post #2

This does seem incredibly useful for service oriented architectures. As I understand, it's basically a per application, per machine monitoring library for quickly detecting problems up and down the network stack. However it also does load balancing. But doesn't that defeat the purpose a little bit? If your monitoring tool is the same as your load balancing tool, then who's monitoring the load balancer? :) I might be…

So correct me if I'm wrong, but it seems to maintain a web socket 'mesh' that it proxies all inter-service communication through. So whenever you need to speak to another service, you don't need to worry about the extra cost of creation/teardown of a new web socket. It also says that it handles automatic retries, global rate limiting (https://lyft.github.io/envoy/docs/intro/what_is_envoy.html).

Because all inter-service requests are going through Envoy, it is really easy to keep incredibly detailed stats about network health, request success rate & more.

Envoy performing the task of load balancing does not defeat the purpose, because it provides extremely detailed stats for ALL THE THINGS, they reported it helped them find problems much quicker, instead of checking service code, EC2 networking, or the ELB. Essentially by creating a supersolution with better stats reporting for all, troubleshooting seems like it would be easier.

Post reply on HN