Release management
We have so far assumed that the release process is mostly automatic. This is the dream scenario for people working with DevOps.
This dream scenario is a challenge to achieve in the real world. One reason for this is that it is usually hard to reach the level of test automation needed in order to have complete confidence in automated deploys. Another reason is simply that the cadence of business development doesn't always the match cadence of technical development. Therefore, it is necessary to enable human intervention in the release process.
A faucet is used in the following figure to symbolize human interaction—in this case, by a dedicated release manager.
How this is done in practice varies, but deployment systems usually have a way to support how to describe which software versions to use in different environments.
The integration test environments can then be set to use the latest versions that have been deployed to the binary artifact repository. The staging...