Information Technology Reference
In-Depth Information
On the downside, the machines are now in a less well-understood configuration. Ima-
gine that an 11th web server is added. It starts out with the new software release. Does this
11th machine have the same configuration as the 10 that got to their current state through
upgrades? In theory, yes, but small differences may creep in. Future upgrades require test-
ing that covers both situations, which adds complexity. Proponents of baked images would
argue that it is better to refresh a machine from scratch than to let entropy accumulate.
Different Files for Different Environments
Often there is a group of files that must be different in the testing and production
environments. For example, logos and other images might have special versions
used solely in the actual live service. There may also be special credentials, certi-
ficates, or other data.
One way to handle this situation is to include both sets of files in the package
and use configuration management to point the server at the proper set. However,
this approach does not work for certificates and other files that one might not want
to expose to all environments.
Another solution is to move the environment-specific files into separate pack-
ages. Each environment then has its own configuration package . The installation
process would install the main application package plus the one configuration
package appropriate for that environment.
The problem with using environment-specific packages is that these files have,
essentially, bypassed the testing process. For that reason it is best to keep the use
ofthismechanismtoanabsoluteminimum,preferablyrestrictingittofilesthatare
low risk or files that can be tested other ways, such as via pre-submit checks.
10.5 Continuous Delivery
Continuousdelivery(CD)isthetechniqueinwhichtestingisfullyautomatedandtriggered
to run for each build. With each build, the testing environment is created, the automated
testing runs, and the release is “delivered,” ready to be considered for use in other envir-
onments. This doesn't mean every change is deployed to production, but rather that every
change is proven to be deployable at any time.
CDhassimilarbenefitsascontinuousintegration.Infact,itcanbeconsideredanexten-
siontoCI.CDmakesiteconomicalandlowrisktoworkinsmallbatches,sothatproblems
are found sooner and, therefore, are easier to fix. (See Section 8.2.4 . )
CD incorporates all of continuous integration, plus system tests, performance tests, user
acceptance tests, and all other automated tests. There's really no excuse not to adopt CD
Search WWH ::




Custom Search