12factor - Where to store config parameters?

Reading Config section for 12 factor app : https://12factor.net/config it states "Another approach to config is the use of config files which are not checked into revision control" . Instead "The twelve-factor app stores config in environment variables " If not store config in source/revision control then where should config for environment variables be stored ?For example a new developer joins a team how does that same developer access the environment variables in order to run the app ? Is it assumed an environment is provided that contains va...Read more

12factor - Is using ENV variables a good idea?

BackgroundOur app uses a MySQL DB and a couple more services.To connect our app to these servers, we have the usernames and passwords saved in a prod.config file. If we are in dev, we use a dev.config file and so on...Recently, I have been studying good practices in the industry ( such as the https://12factor.net/ ) and the majority of them ( if not all ) specify that information like usernames and pwd's to connect to DB and other services should not be in conifg files but rather in ENV variables.If you have no idea what the 12 factor spec is y...Read more

12factor - Why cloud application's file system is ephemeral

The "Beyond 12 factor APP" and "Considerations for Designing and Running an Application in the Cloud "(https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html) states file system is ephemeral. However I got different result when testing with openstack:create VM using openstack server create with centos qcow2 image, noexternal storagessh to the VM, create file under /home/centosreboot VMafter VM startup, the file is still there.Did I understand something wrong?quote from the book:cloud-friendly applications don’t just run in th...Read more

12factor - 12-Factor: dynamic backend configuration

The default configuration of a backend for a Twelve-Factor App is to put its (network) location in an environment variable, e.g. DB=mysql://user:pw@host/db_name.But what is the recommended way if your backend configuration is more dynamic? In my case the app could use 1 to n backends depending on the environment. My idea is to use a serialization format like JSON and put it in a single variable likeDB="{1: 'host:port', 2: 'host:port'}"Is this the preferable way to deal with such a situation or what would be better alternatives?...Read more