Hacker News new | ask | show | jobs
by scanr 3432 days ago
Docker may be overkill to start but it's relatively low cost to implement and it will definitely pay dividends over time:

    * You can be sure that what you're running locally 
      is exactly what you'll be running on the server
    * Your deployment experience will be the same 
      regardless of which tech stack you're using for the 
      web application
    * There are many places you can deploy docker 
      containers (Google GCE, Amazon ECS, Amazon EB, etc.)
    * A web application is often composed of several 
      services (e.g. the web app, a database, redis etc.) 
      and docker compose makes it easy to fire all of 
      those up in development e.g. if a new 
      developer joins, they only need to install 
      docker rather than web app framework + 
      database + redis
    * Docker sets you up quite well to grow into a 
      more complex deployment (e.g. using Kubernetes)
1 comments

> it's relatively low cost to implement

Running Docker in production takes a huge amount of effort to get right and is not easily done.

I dont believe that's an accurate assessment. If the grandparent wants to run a one off container with reproducible results, something like docker-compose is perfect. If he wants to run a multi-node microservices architecture then the story gets more complicated.
i run a lot of small projects with docker-compose on a single host and it makes deploying my changes very easy. Maybe there is a low cost setting it up, but i think eve with a small project it pays it divides pretty fast.
I could have been clearer. I meant that setting up docker for his use case i.e. a single 'standard' web application, is relatively easy. Especially if you're using something like Amazon Elastic Beanstalk. At least, that's been my experience.

You're right that docker can become very complex e.g. dockerizing and orchestrating mariadb with galera for high availability was not pleasant.

I agree that its actually ok for that use case. But then you don't have a big initial pain to solve, anyway - people using Docker in production usually have few other choices due to the scale they are operating at, and Nomad+Ansible doesn't cut it because there are complex dependencies.