Release management
Release: a version of a service or CI or set of CIs which is ready to use.
A release may contain many components, documents, training, processes, or tools in relation whit each other, and any single component could be made by a different development team and then be integrated with other components by another team.
Time scheduling a release and planning for steps of designing and implementing is essential. In waterfall environments, the release management activities are done before deployment but in agile environments, it’s possible that a release management activity exists after deployment.
Figure 5.25 – release management in waterfall and legacy environments
Figure 5.26 – release management in DevOps and Agile environments
In both agile and waterfall environments, the release management is done by stages and steps in order to test the probe releases in test environments and make sure that they work properly. Staging a release can be used by these two approaches:
- Blue/green releases: Two mirrored production environments exist. Users can switch to the other updated environment to use new features.
- Feature flag: It’s possible that some features are assigned to some users in a controlled manner without releasing a new version to all users. After testing the new release, it will be activated for specific groups or individuals.
Figure 5.27