Jump to section

What is continuous delivery?

Copy URL

Continuous delivery is a software development practice that uses automation to speed the release of new code.

It establishes a process through which a developer’s changes to an application can be pushed to a code repository or container registry through automation.

Continuous delivery makes up part of CI/CD, a method to frequently deliver software by automating some of the stages of app development. 

The "CI" in CI/CD refers to continuous integration. With continuous integration, new code changes to an app are regularly built, tested, and merged into a shared repository. It’s a solution to the problem of having too many branches of an app in development at once that might conflict with each other.

The “CD” in CI/CD can refer to continuous deployment or continuous delivery, which describe ways to automate further stages of the pipeline.

CI/CD FLow

CI/CD FLow

Continuous delivery and continuous deployment, while closely related concepts, are sometimes used separately to specify just how much automation is happening.

Continuous delivery usually means a development team’s changes to an application are automatically bug tested and uploaded to a repository (like GitHub or a container registry), where they can then be deployed to a live production environment by the operations team. It’s an answer to the problem of poor visibility and communication between dev and business teams. To that end, the purpose of continuous delivery is to ensure that it takes minimal effort to deploy new code.

Continuous deployment, on the other hand, covers some additional steps through the release process of the new software. It usually includes the process of automatically releasing a developer’s changes from the repository to production, where it is usable by customers. It addresses the problem of overloading operations teams with manual processes that slow down the app delivery process. It builds on the benefits of continuous delivery by automating the next stage in the pipeline.

Transformation takes practice

Read how open digital transformation leads to meaningful outcomes through 3 customer case studies.
 

A CI/CD pipeline is a series of steps performed in order to deliver a new version of software. When you’ve put CI/CD into practice, you’ve established a CI/CD pipeline.

A CI/CD pipeline introduces monitoring and automation to improve the application development workflow, particularly at the integration and testing phases, as well as during delivery and deployment. 

Although it is possible to manually execute each of the steps of a CI/CD pipeline, the true value of CI/CD pipelines is realized through automation of the application lifecycle.

DevOps, a concept that combines the practices of “development” and “operations,” is an approach to culture, automation, and platform design intended to deliver increased business value and responsiveness through rapid, high-quality service delivery.

Continuous delivery is a specific software development practice that’s often applied in connection with DevOps. A DevOps approach is likely to involve the creation of a continuous delivery pipeline.

DevOps describes approaches to speeding up the processes by which an idea (like a new software feature, a request for enhancement, or a bug fix) goes from development to deployment in a production environment where it can provide value to the user. 

With DevOps, developers, usually coding in a standard development environment, work closely with testers and IT operations teams to speed software builds, code commits, unit tests, and releases—without sacrificing reliability.

A major outcome of implementing DevOps is a CI/CD pipeline supported by development and operations teams working together using an agile methodology. 

CI/CD relies on automation to speed the processes of development, deployment, and testing. Automation helps maintain quality while reducing human error. Automation can also support security as part of a DevSecOps strategy.

Some tools specifically handle the integration (CI) side, some manage development and deployment (CD), while others specialize in continuous testing or related functions.

One of the best known open source tools for CI/CD is the automation server Jenkins. Jenkins is designed to handle anything from a simple CI server to a complete CD hub.

Another commonly used open source project is Tekton, part of the Continuous Delivery Foundation. Tekton provides the ability to describe delivery pipelines declaratively using Kubernetes concepts and execute them on-demand in containers.

Tekton is the basis for OpenShift Pipelines, a CI/CD solution for Red Hat® OpenShift®.

Keep reading

Article

What is DevSecOps?

If you want to take full advantage of the agility and responsiveness of DevOps, IT security must play a role in the full life cycle of your apps.

Article

What is CI/CD?

CI/CD introduces ongoing automation and continuous monitoring throughout the lifecycle of apps, from integration and testing phases to delivery and deployment.

Article

Who is a DevOps engineer?

A DevOps engineer has a unique combination of skills and expertise that enables collaboration, innovation, and cultural shifts within an organization.  

More about DevOps

Products

An intensive, highly focused residency with Red Hat experts where you learn to use an agile methodology and open source tools to work on your enterprise’s business problems.

Engagements with our strategic advisers who take a big-picture view of your organization, analyze your challenges, and help you overcome them with comprehensive, cost-effective solutions.

Resources

Podcast

Command Line Heroes Season 1, Episode 4:

"DevOps: Tear down that wall"

Checklist

Enterprise automation with a DevOps methodology

Whitepaper

Streamline CI/CD pipelines with Red Hat Ansible Automation Platform

Operator

Manage infrastructure and application configurations with Red Hat® OpenShift® GitOps