9 ms·
Envoy: 7 months later
- josephjacks 9y agoEnvoy is an extremely exciting project. I've been following it closely since OSS inception and am thrilled to see the upcoming deep integration with the Kubernetes project. Such a natural and complimentary fit! With flexibility as both a side car and host proxy network call fabric for polyglot distributed services, I see Envoy as a kind of modern ESB for the reincarnation of SOA we are seeing in the microservices movement. Congrats to the awesome contributors from Lyft/IBM/Google and others!
- TheDong 9y agoAre envoy and linkerd comparable? They look like they fill similar niches, but I'm not familiar enough to know what I don't know.
- moderation 9y agoThe Lyft team cover the comparison in their docs [1]. 1. https://lyft.github.io/envoy/docs/intro/comparison.html#id7 https://lyft.github.io/envoy/docs/intro/comparison.html#id7
- sandGorgon 9y agoThis. Linkerd has been a pretty cool piece of tech. In fact, their rewrite linkerd-tcp is in Rust and is blazingly fast. Also, it works on L4 and can do more stuff than Envoy... though I think that advantage is going to be shortlived. Linkerd guys have been focusing on building deep integration with k8s (as an ingress or sidecar), but this announcement of Envoy trumps it all. >"We are excited to announce that we are working in partnership with both Google and IBM to bring Envoy to Kubernetes. Fun fact: there are now more people working on Envoy at Google than there are at Lyft! We have a lot of other things planned with Google that we will be able to share more about in the coming months." That's a bummer for the amazing guys at Buoyant. I had hoped for linkerd to be the next generation of ingress in k8s. Envoy is in C++, while linkerd-tcp is in Rust. I wonder how much role did the choice of tooling play in Google's decision to adopt.
- gtirloni 9y agoIsn't linkerd in Scala and linkerd-tcp a small subset of it?
- politician 9y agoThat's correct. linkerd/namerd run on the JVM.
- sandGorgon 9y agothat's true - but i was hopeful !
- doublerebel 9y agoAlso see: eBay/fabio, Traefik.io .
- msoad 9y agoFor Googlers out there: Envoy is basically GFE
- chuhnk 9y agoMore like GFE
- curiousDog 9y agoWut? More like Kubernetes is like Borg.
- stellar678 9y agoI had no idea what GFE stands for and had to track down [https://medium.com/@jerub/the-production-environment-at-google-part-2-610884268aaa https://medium.com/@jerub/the-production-environment-at-goog...] in order to get a good answer. Envoy bills itself primarily as a service mesh (seeming closest to GSLB / Global Software Load Balancer), but also as an edge proxy (seeming closest to GFE / Google Front End). Is there any reason to think that it's more like GFE than it is like GSLB?
- euyyn 9y agoThanks for the translation! :)
- tedd4u 9y agoThere was a very interesting talk at Google Next in March that described a way in which the Kubernetes open source team is bringing this sidecar architecture to Kub. In fact I think they are working with the Lyft team. The whole talk is interesting but I've added a time offset to skip to the bit where they talk about sidecar/service mesh. https://www.youtube.com/watch?v=3quCoi5YHz4#t=27m59s https://www.youtube.com/watch?v=3quCoi5YHz4#t=27m59s Also, there is https://istio.io/ https://istio.io/ but it's a placeholder site at the moment.
- aledbf 9y agoYou can find the project here https://github.com/istio/manager https://github.com/istio/manager
- rdli 9y agoWe've been experimenting with Envoy for a few months and have been really impressed with the technology and the responsiveness of the community. We're actually deploying an API Gateway built on Envoy so you can easily extend your service mesh all the way out to the edge. Planning on open sourcing it soon (if anyone wants to give it a try, my email is in my profile).
- lunch 9y agoAny reason you chose to use API Gateway for your edge instead of another Envoy with an ELB in front?
- rdli 9y agoSorry, I wasn't clear. I was referring to using Envoy as an API gateway, not a specific API gateway product. We had to write some wrapper code on top of Envoy that lets you use a REST API to map URLs to services running in your Kube cluster and then dynamically update Envoy config, etc.
- moondev 9y agoInteresting that it seems like there is a bunch of overlap with linkerd in the k8s space. With both k8s and linkerd being CNCF projects, I wonder why google is putting so many resources behind envoy rather than linkerd. I guess that's the beauty of the k8s ecosystem though, freedom and choice to use what you see fit. K8s just provides the rock-solid primitives.
- politician 9y agolinkerd has a dependency on the JVM, k8s doesn't, and not everyone wants to pull in the JVM if they're not already using it.
- Spiritus 9y agoI guess that's one the reasons they created https://github.com/linkerd/linkerd-tcp https://github.com/linkerd/linkerd-tcp
- lobster_johnson 9y agoOne downside to using Linkerd is that unless you have very few apps — or an overabundance of RAM — you can't realistically deploy it as a "sidecar container". The JVM consumes about 100MB of RAM, by their account; it's not lightweight. The sidecar pattern (used by Envoy and by Google's new project, istio) is desirable in that it compartmentalizes the rules and logic in the pod that uses them, as opposed to sharing all settings across all apps. Zero dependencies (between pods) is a great way to manage complexity. I haven't thought much about it, but there might be latency benefits, too.
- shawabawa3 9y agoLooks interesting except imo the configuration makes it basically unusable. They use jinja2 templated json... and there are hundreds of lines for their "simple" examples. Even the "hello world" type example of proxying to google is a mess https://github.com/lyft/envoy/blob/master/configs/google_com_proxy.json https://github.com/lyft/envoy/blob/master/configs/google_com...
- bastawhiz 9y agoThe example you linked isn't so bad. Perhaps a bit verbose for a simple example. The formatting of the json is ugly though, and I think they would do better to not collapse the whitespace inside arrays.
- stock_toaster 9y agoSeems like they could have used something a bit nicer to work with too (yaml, libucl, hocon, etc). I am honestly getting tired of editing fiddly json (no comments, last element in list can't have a comma, etc) all over the place.
- user5994461 9y agoYou can use hjson for human editable json. http://hjson.org/try.html http://hjson.org/try.html Human editable json, with comments, and doesn't kill you for a lack of trailing comma. Available libraries in tons of languages.
- stock_toaster 9y agoThat actually looks pretty nice. Thanks for the link!
- wstrange 9y agoGiven Google's involvement, I am wondering why they did not choose jsonnet?
- searchfaster 9y agoAny numbers on latency Envoy adds for each request ?
- eggie5 9y agoaccording to the talk I just watched, latency/performance was their concern coming out of the gate and was the impetus for writing it in C++...
- searchfaster 9y agoThanks.. just tried it out with my service, beats nginx for simple http proxying pretty easily by a nice margin. Envoy supports way more features than nginx too !
- searchfaster 9y agoJust tried it locally, latency is < 1ms..
- rajesht 9y agoAn engineering blog without any diagrams?
- perfmode 9y agoI wonder why they chose C++ and not Go.
- olalonde 9y agoI presume because the author was more familiar and experienced with C++.