Here are a few options I am exploring :
Which one according to you is the best option (considering I'll deploy a production app with preferably zero/low downtime)?
I personally like to use dokku. Github
Dokku ist based on docker and enables hot deployment. You simple push to your server and dokku identifies it, builds it and deploys it. This system is based on that what they use at Heroku.
Jan Vladimir Mostert
Idea Incubator
Build a Docker image, push the docker image to a registry, deploy the Docker image wherever you want to deploy it using
docker pull.I'm using Google Cloud instances running CoreOS which has Docker support built into the OS (don't know if AWS / Azure supports CoreOS, but is easy to install on Debian if they don't have CoreOS).
If you develop against that same Docker image, your production setup will be exactly the same as your dev setup which means no surprises later on when stuff works locally but not in production.