The deployment service provides a system to simplify the management
of application configuration values that are different based on
the runtime-environment of the application.
A standard enterprise application runs in at least three different
environments (development, staging, production) and each environment
contains multiple instances of the application for different developers
or servers. While the configuration structure is the same, some
configuration values must change based on the environment (e.g.
database, credentials, localhost address, etc.). The deployment
service allows all of these settings to reside inside
source-controlled configurations and be changed by setting two
runtime deployment properties that tell the system which
deployment to use.
Deployment configurations are extensible. A base configuration
is created for the environment (such as development) and
individual developers may extend it and override the settings
which are unique to them. This allows an environment setting
to be updated for all developers' environments by updating
the base configuration.