The best way is to follow the 12 factor app -- use environment variables.
We use Deis to host our Django apps, and moving between dev, staging and production is a breeze. The config file never changes, and it doesn't contain any passwords or sensitive keys, so we don't worry about it being checked into git.
Look into deis, it's like running your own Heroku, you can use Heroku's Play buildpack to get things running easily or roll your own docker setup.
Nice content and layout!
I think you're missing something important on the containers section... For provisioning and orchestration ECS and GKE services are worth a mention.
Based on my experience in this space, most developers should be careful jumping into container orchestration in general. Managed container services are a smaller step than trying to learn rkt and Kubernetes.
Then along this vein, there are some really developer-friendly platforms built on these services.
For example Empire and Convox make ECS simple.
Deis makes Kubernetes easier.
Disclaimer: I work on Convox, helping devs do ops full time.
You might want to review this repo a bit. You'll have to modify it to fit your needs, but there is a lot in this repo. ansible/immutablish-deploys. If you're in Heroku than you should definitely take a look at deis.io as well. Deis in a sense allows you to run a private heroku. I'm finishing the load testing of apps in our deis cluster as my company prepairs to deliver the 2.0 version of our ecommerce platform to production. We manage our databases separately and use amazon service where we can. Kong we also manage separately, but 10-20 web services, apis, administration services, product import worker all run inside our deis data-plane clusters. I could go on, if your interested pm me.
It sounds like you may want Deis, one of the new-ish breed of PaaS offerings. Deis is explicitly based on CoreOS, and is basically "how to do 12-factor apps on CoreOS."
As /u/wbsgrepit said, look at dokku
if you want the direct comparison. But, both solutions are extremely limited. Both are limited to running on a single host which means they really don't at all do what heroku does and IMO have limited benefit over something like capistrano. If your looking for a more realistic heroku replacement look at something like Deis
I do things a little different. I have Go setup on a linux machine (my main dev machine). I have my git repo over at bitbucket.
Here's where it gets tricky.
I run http://deis.io/ on 5 CoreOS nodes. I use git to push changes to micro services. I just generate a new service, and push it up. All auth is via OAuth so every service is also secure.
If your site only needs a single instance of a VPS i suggest checking out Dokku. All of the convenience of deploying with git without any extra cost above your normal Digital Ocean or AWS bill. Since it uses buildpacks (like heroku) and docker its extremely portable as well. Just install dokku on another VPS, add it as a remote, and git push.
If you do need horizontal scale, check out Deis. I personally haven't used it but it uses similar processes to Dokku as far as workflow.
Heroku can scale horizontally very quickly. It's literally one terminal command (or web browser slider) away. Caveat, it's also probably the most expensive to do.
Of course, you can configure your own servers to scale horizontally, and the others above me already gave some guidelines on how to do that. But there is an open source project called Deis that essentially allows you to host your own Heroku-ish cloud on your own infrastructure. I haven't tried it out myself but it looks promising.
Minimal docker is easy to get started with and an easy way to enter it is something very light like Dokku (https://github.com/progrium/dokku) or much heavier like Deis (http://deis.io/). However setting up a legitimate custom multi-node docker deployment system has a lot of difficult things that need to be dealt with which probably aren't worth your time.
If you ask me then I think PaaS is cool, and even cooler when you can run your own. I've been wandering on internet around the self-deployable PaaS solutions, encountered Deis and Flynn.
This is the dawn of the new era for web application deployment. Days before the flood of NodeJS, RoR, Python and all that, most of the web apps can be deployed on the normal PHP-based webhosting (it was a burgeoning industry back then).
Now web apps have been richier in features and language implementations, and most of the developers are thinking to leverage the goodness of the new web stacks as the old hosting stack (PHP-MySQL) isn't appealing anymore (and after Oracle's acquisition of MySQL, some of us were frantic about that hahaha).
By using the PaaS, it makes thing easier. Pushing code as easy as git push with PaaS is the wonder of this age.