Hacker News new | ask | show | jobs
by ohstopitu 3508 days ago
Ignoring availability & mirroring (and all other cloud enabled features) for conversation's sake:

Can't the above be orchestrated via docker-compose?

(I've been using docker with docker-compose for my side projects but not been using it excessively in customer facing production)

1 comments

It can, if you have a single production host and only one development machine, i.e. if you are a solo developer.

For anything more than that, native Docker tooling is inadequate.

I can understand the use of Kubernetes to spread over multiple hosts (but that's generally for scaling & availability).

If you have multiple devs...how does docker-compose fall short? (I'm asking because I wanted to suggest using docker for my team and wanted to know it's short comings before I suggested it).

From my understanding: you can use compose to orchestrate databases, cache, app all on one machine quite easily (and pass environment variables, get them linked etc.)

In addition to multi-node distribution, there are a bunch of things Kubernetes gives you. Things that you may think you don't need, but you probably will if you ever intend to put something into production. To name just a few:

- Secret distribution

- Managing persistent volumes

- Monitoring containers for failure, restarting according to policy

- Service discovery and DNS integration

- Integration with load balancers, setting up routes, etc.

- Managing affinity / non-affinity for containers

- Sharing resources on a cluster via namespaces

- Monitoring containers for failure, restarting according to policy

This alone warrants an orchestration solution, even on a single machine.