3 ms·
I see the author is a proponent of docker-compose, which I use myself for small projects. I have a docker-compose configuration in all my repos, and a `docker-c
by supermatt 7y ago
I see the author is a proponent of docker-compose, which I use myself for small projects. I have a docker-compose configuration in all my repos, and a `docker-compose up` brings the app up on my laptop. I could use minikube in almost exactly the same way. i.e. there is effectively no difference from a development perspective.
If you are managing kubernetes yourself, on your own hardware, the moving parts can indeed be a burden for a small team - but all of these pain points go away with a managed kubernetes, as offered by most IaaS providers. i.e. if you are using an IaaS provider, there is (usually) no difference from a production perspective.
There are less moving parts in docker compose, and its easier to run on a single VM - but it doesnt offer any of the dynamic features of kubernetes that you would want at scale. The same containers can run on both.
If you need to dynamically scale your application, or grow beyond a single machine (I disagree with the vertical scaling proposed by the author - thats for a very specific use-case IMHO), then docker-compose is simply no good. Then you need to use docker-swarm. At this point, you either need to manage a docker-swarm cluster or a kubernetes one. Kubernetes is the obvious choice here. Fortunately, there is a trivial migration path from docker-compose to kubernetes.
- Legogris 7y agoOr Nomad or Mesos!
- supermatt 7y agoIll check these out. Thanks!
- emptysea 7y agoAlso docker-compose doesn't have zero downtime deploys which might be a deal breaker depending on your application.
- supermatt 7y agoTo be fair, its quite simple to do this. As part of your config, you would specify a reverse proxy service, and a couple of app aliases. Then you would bring up the new deployment under one alias, and shut down the other. But yeah, its nice to have that kind of stuff (and much more) built in. docker-swarm also offers that out of the box, but my experience leans more towards k8s here.
- mosselman 7y ago> there is a trivial migration path from docker-compose to kubernetes The migration path of docker-compose to swarm is basically: eval $(docker-machine env my_cluster) docker deploy --compose-file docker-compose.yml PROJECT_NAME I have looked into k8s and it wasn't as easy as this.
- supermatt 7y agoYeah, its not quite as easy as swarm - you basically need new configs - but you can use the existing containers. From experience, this was no more than a few hours work on an app consisting of ~20 services - but I already had kubernetes experience so knew what I was doing.