5 ms·
I haven't used kube in production yet. However, I'm using mesos, marathon and chronos to manage a production environment with service discovery glue based on R
by avitzurel 10y ago
I haven't used kube in production yet.
However, I'm using mesos, marathon and chronos to manage a production environment with service discovery glue based on Route53.
Using Docker to ship an application to a well configured environment is just a delight, the amount of configuration needed is absolutely minimal.
However, I think people need to realize that it's "easy" if your services are not talking to each other and dependent on one another in a way. If service X is using service Y directly (via HTTP), it gets a bit more challenging.
The way I like to configure micro-service is based on messaging so you send a message to a queue and multiple satellite services can consume that message and do stuff with it.
If your services are dependent on one another, the configuration gets trickier and the maintenance gets a bit harder.
Good job by Box also contributing back to the core of Kube based on what they needed, based on it getting merged I am guessing other people will find it useful as well.
- ryanl-ee 10y agoHave you checked out DC/OS? It's built on Mesos/Marathon/etc. and has some pretty cool service discovery/routing built in, i.e. Minuteman which allows you to define virtual IPs and ports that map to specific services.
- jdoliner 10y agoCould you explain a bit more why things get harder if service X is using service Y? I'm sort of the opposite of you in that I haven't used much of the Mesos stack yet but am familiar with Kubernetes. Services depending on each other is pretty trivial in Kubernetes so I'm wondering what makes it so hard in mesos.
- avitzurel 10y agoIt's not that it's hard to do it with Marathon/Mesos, it's just hard to maintain an application with dependent services. It's just a matter of my personal comfort, I like to use isolated services that just use messaging and fire a message when their done with their role. Even if Kube handles everything perfectly, it's still harder to maintain application with inner-service communication, hard to follow problems/errors/stack traces etc...
- TheIronYuppie 10y agoThanks for the feedback - may I ask if you've looked at Kubernetes at all? It appears to do exactly what you describe, and I'd love to hear if you evaluated it but found something missing. You can see some details of how this would work in a recent blog post by CoreOS (https://coreos.com/kubernetes/docs/latest/services.html https://coreos.com/kubernetes/docs/latest/services.html). Disclosure: I work at Google on Kubernetes.
- avitzurel 10y agoI have looked into Kubernetes and am running a couple of POCs on it. I agree 100% Kube answers everything I am missing with mesos/marathon combination, that's why I am planning to start moving over new services.
- nemothekid 10y agoI'm using Mesos/Marathon stack, and even that part I don't have trouble with. Mesosphere has a service called mesos-dns that will take care of service discovery, and Marathon has built in support for dependencies (don't launch X until Y is launched). We have built some tools for port discovery (talking to mesos to figure out what port service Y is built on), but even with all our tools, we recently did a complete cloud migration (to GCP), and it was easy as backing up and deploying Zookeeper on the new nodes. Once the slaves were up, everything was running as if nothing changed in under an hour.