The CI/CD Pipeline, Term Definition
An important purpose in software development is to automate as many steps as possible in order to minimize manual effort. With continuous concepts, there are a variety of ways to achieve this:
- Continuous Integration
Each of the different Continuous X types do not stand isolated or side by side, instead they build upon each other. Continuous Integration is the foundation, which includes several principles. Ultimately, there is always a stable build available. Continuous Integration is the concept of merging code changes in one combined software project. Continuous Integration then triggers the automated test routines and software builds from this single code line.
- Continuous Delivery
On top of Continuous Integration is Continuous Delivery. While a stable build is always available with CI, Continuous Delivery defines the software in such a way that it is ready for deployment on the production system. The deployment can either be triggered manually (for example by pressing a button), or automatically, as a consequence of another conscious decision (for example, automatically after committing changes into the main line of the project's version control system).
Facts about Continuous Delivery:
- Software is ready for deployment to productive system all the time.
- The trigger for deployment to a productive system is a human decision.
- Feedback from productive system gets quickly integrated into teams' backlog.
- Continuous Deployment
On top of the Continuous Delivery, Continuous Deployment means that the deployment to the productive system is triggered with each committed change to the code. It is important to be aware that Continuous Delivery and Continuous Deployment are sometimes not clearly separated, which means that some sources (like blogs, books, and so on) talk about Continuous Deployment while they mean Continuous Delivery. To avoid misunderstandings, you should always clarify these definitions when talking about CI/CD.
Deployment to the productive system is triggered automatically (instead of manual deployment as in Continuous Delivery).
![Components of the CI/CD Pipeline. Components of the CI/CD Pipeline.](/service/media/topic/b586dd68-4ed2-4853-9ddb-47c362a0619e/BTP100_09_en-US_media/BTP100_09_en-US_images/CICD_CONCEPT.png)
Note
In addition to Continuous Integration, Continuous Delivery, and Continuous Deployment, there are also others that exist, such as Continuous Testing or Continuous Development as an umbrella term.However, the first three described concepts, which form the acronym CI/CD, are relevant in this lesson: "CI" stands for Continuous Integration, while the "CD" can stand for either Continuous Delivery or Continuous Deployment.
But before diving deeper, let's clarify the question: what is a pipeline? At its simplest, it is a series of activities that are carried out in a predefined order. Together, Continuous Integration, Continuous Delivery, and Continuous Deployment form the important concept of the CI/CD pipeline with the goal of the best possible automation in software development and reduction of manual effort.