Even quite trivial applications have some form of configuration, such as how to connect to its data sources, how to change behavior based on the target deployment environment, or how to log. There are plenty of ways to configure your application.
For example, you can configure your application through:
The trick to making an application deploy and change in the cloud super quick is to externalize the configuration from that app and make it part of the environment in which it runs. The simplest way to do this is to read the configuration from environment variables directly, as this induces a change of behavior without having to recompile or change the application deployable itself.
We do this in two phases.
application.yml
file. If you are new to YAML syntax, CircleCI provides a quick read on the basic building blocks of the format. It is a lot like JSON, but uses indentation to reduce duplication, and provides more readable files. While moving configuration to a YAML file externalizes it from the code, it still gets packaged up and deployed along with your app.