Describing Continuous Integration and Delivery

Objective

After completing this lesson, you will be able to Describe the principles and benefits of continuous integration and delivery.

Continuous Integration and Continuous Delivery (CI/CD)

What is a CI/CD Pipeline?

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?

Well, at its simplest, it is a series of activities that are carried out in a predefined order.

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

The following figure, Integration, illustrates the following:

  • Developers push to the main code line at least once per day
  • Automated central build and tests are triggered upon each push
  • Team ensures stable build and test quality all the time

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 (CI): Basic Flow

Watch this video to learn about the basic flow of continuous integration.

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 trigger for the deployment is a human decision. Therefore, deployment must be triggered automatically or manually, for example, by pressing a button.

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, 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.

Facts about Continuous Deployment: Deployment to a productive system is triggered automatically (instead of manual deployment as in Continuous Delivery).

The Pipeline

Putting all these pieces together, you can create a fully automated pipeline to build, test, and deploy your application.

Deep Dive - Deploy CAP Applications Using CI/CD

You can implement continuous integration and continuous deployment (CI/CD) for CAP projects using 3 possibilities:

  1. SAP CI/CD Service. SAP Continuous Integration and Delivery (CI/CD) is a service on SAP BTP, which lets you configure and run predefined continuous integration and delivery pipelines. It connects with your Git SCM repository and builds, tests, and deploys your code changes. In its user interface, you can easily monitor the status of your builds and detect errors as soon as possible, which helps you prevent integration problems before completing your development.

    SAP Continuous Integration and Delivery has a ready-to-use pipeline for CAP, that is applicable to multi-target application (MTA) and Node.js based projects. It does not require you to host your own Jenkins instance and it provides an easy, UI-guided way to configure your pipelines.

  2. Project "Piper". Project "Piper" is an open-source project that provides preconfigured Jenkins pipelines, which you can use in your own Jenkins infrastructure and adapt according to your needs, if necessary. It consists of two components:
    • A shared library (jenkins-library) , which contains the description of steps, scenarios, and utilities required to use Jenkins pipelines .
    • A set of Docker images (devops-docker-images) that can be used to implement best practice processes.
  3. GitHub Actions. GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline. You can create workflows that build and test every pull request to your repository, or deploy merged pull requests to production.

Summary

By now, you have a more profound understanding of the core principles and benefits of a CI/CD pipeline. You should now be able to describe the principles and benefits of continuous integration and delivery. 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 reliably. For deploying CAP projects you can use the SAP CI/CD Service, Project "Piper" or GitHub Actions depending on your needs.

Further Reading

These resources might be helpful if you want to dive deeper into CI/CD: .

Log in to track your progress & complete quizzes