In the realm of software development it is impossible to go a week without heard about CI/CD. At a high level the concept of continuous integration / continuous delivery is to facilitate higher velocity change changes with more visibility. Software exists to support the business. So CI/CD helps the business people and software people work with more visibility.
The current CI/CD naming pattern is as follows:
- CI = integration – merge changed to default branch often
- CD = delivery – provide the business with visibility of progress (JIRA, pipeline, reports)
- CD = deployment – update the version of the software running in a running system
Two ‘CD’s? From an industry that prides itself on have very specific terms to define abstract concepts I find this unacceptable. I propose we use the phrase ‘continual release’ in place of ‘continual deployment’. In my mind a release
is a set of changes to be deployed
. Whereas a deployment
is the act of placing the release
into an environment. We deploy
a release
to an environment
.
To better clarify the abbreviations I propose replacing deployment
with release
.
- CI = integration
- CD = delivery
- CR = release – publish a new release; optionally deploy to target environments
Is it pedantic? Sure. Are software concepts often confusing? Also yes. Hopefully with this change in terminology the concepts involved become a little more clear and understandable.