Some of you au fait with CD will no doubt have heard of blue-green deployments, which are one of the cornerstones of the original CD approach. For those of you not in the know, blue-green deployments allow you to deploy (as the name suggests) a new version of software (or a new server with updated O/S, or new configuration or DB engine, and so on) while the incumbent version/server is up and running, and then seamlessly switch new for old. This is a very simplistic overview of the approach, but suffice it to say it's quite an easy concept to get your head around.
This approach vastly improves your ability to not only reduce/remove the need for downtime (see Chapter 5, Approaches, Tools, and Techniques), but also to try side-by-side versioning (for example, running two different versions of the same thing within the same environment)—which is...