Re:Linkerd 1.0
by shanemhansen on Tuesday April 25, 2017 @06:09PM
(#14198570)
I'm curious. You have a dozen+ services running in a container platform. How many people/teams run software on this platform? How many customers use this platform? How much money does this platform make?
So I work for a very large company, and there's many projects going on throughout the business. This only describes one particular project, but the entire system is a multi-billion £ business, and this project is replacing the customer-facing part of the system, so it will ultimately serve hundreds of thousands, possibly millions of customers. There are about 30-40 projects in the business that I know of, and there about 25 infrastructure/platform engineers working on these projects.
things like naming, load balancing and service discovery can be done by a well managed dynamic dns system
monitoring / "circuit breakers" would probably require a proxy I guess
Speaking as someone who has successfully implemented service discovery and load balancing using DNS and DNSSRV, let me emphatically state that these are not the right tools for the job. They are slow, client support is so variable it can only be called broken, and they're extremely difficult to rationalize and debug.
as a counter example I've implemented it myself for non-trivial systems using short TTL SRV records, and it's worked very well indeed
you can use existing tools to introspect state (e.g. dig), and with sufficient logging it's perfectly debuggable
Re:Linkerd 1.0
by theossuary on Tuesday April 25, 2017 @03:28PM
(#14197146)
The CNCF also has [coredns.io](https://coredns.io/), which I think fits the use-case you describe well. I actually really like the concept behind linkerd, it makes a lot of sense when used in conjunction with Kubernetes.
linkerd contains some advanced features, that are not easily solvable with DNS.
By sending specific headers (and having your application forward them) one can have per request routing[1] and/or tracing[2].
[1] https://blog.buoyant.io/2016/11/04/a-service-mesh-for-kubern...
[2] https://blog.buoyant.io/2017/03/14/a-service-mesh-for-kubern...
> well managed dynamic dns system
oxymoron?
We could test out Kong, Consul, Fabio, and forget the event-driven callbacks; We could use Route 53 and ELBs; or we could just use Linkerd to drive this and get some pooling features and monitoring features as well.
I think of it as a layer both on top of the services and also a pool that the services swim around in and it ensures that there's one place to manage traffic, the services don't have to care how to do service discovery for other services and it's all being load balanced at a reasonable price.