title: Managing configurations for different environments
body: <p>I've had a discussion with some people at work and we couldn't come to a conclusion.<br>
  We've faced a dilemma - how do you manage different configuration values for different environments?</p>
  
  <p>We've come up with some options, but none of them seemed to satisfy us:<br>
  - Separate config files (i.e. <code>config.test</code>, <code>config.prod</code> etc.), and having a file pointing to the selected one (at <code>~/env</code> for instance), or an environment variable pointing to it.<br>
  - Using a single DB to store all configurations (you query it with your environment and get the corresponding configuration values)<br>
  - Creating configuration files on deploy (Using CI/CD system like Atlassian Bamboo)</p>
  
  <p>Which is the more widely used option? Is there a better way?<br>
  Should config file be kept in the git repository along with the rest of the code?
  Our systems are written in python (both 2.7 and 3)</p>