The goal of CI/CD is to automate as many steps of software development as possible in order to minimize manual effort. There are a variety of ways to achieve this.
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.
A CI/CD pipeline's goal is to automate as many steps of software development as possible to reduce manual effort.
Now, there is some confusion around the acronym CI/CD. To clarify: "CI" stands for Continuous Integration, while the "CD" can stand for either Continuous Delivery or Continuous Deployment:
- Continuous Integration
Each of the different Continuous X types does 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 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 commit. 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,...) talk about Continuous Deployment while they mean Continuous Delivery! To avoid misunderstandings, you should always clarify these definitions when talking about CI/CD.
Facts about Continuous Deployment:
Deployment to productive system is triggered automatically (instead of manual deployment as in Continuous Delivery)
Putting all these pieces together, you can create a fully automated pipeline to build, test and deploy your application.
In short, Continuous Integration (CI) is the adoption of agile principles while Continuous Delivery/Deployment (CD) is a combination of agile methodology techniques and a high-quality delivery process. The goal is to validate each change (commit), preferably in an automated way, so that it can potentially be delivered in a reliable manner.
Key takeaways of this unit
The capabilities offered with the Application Development allow you to give your developers what they need for developing extensions or custom programs. You can also increase development productivity with tools like SAP Business Application Studio and the CI/CD service for automated deployments. In addition, you can enable key users (or users with basic technical understanding) to build IT implementations using no-code tools like AppGyver or SAP Conversational AI. They can adapt the UI with in-app extensibility. All your requirements regarding software development and increasing user productivity are covered, even though you can not modify SAP objects like in the old on-premise world.