How Continuous Delivery, Deployment and Integration Work Together

The continuous delivery software strategy is about as straightforward a process as agile software development gets. But terms like continuous delivery can be confusing and conflated when discussed with continuous integration software or continuous deployment software.

Most experts consider continuous delivery to be the umbrella approach that includes these continuous processes. Within the approach lay software tools for integration, deployment, build automation software and configuration management software.

Continuous Delivery

It’s a practice closely related devops approaches, but significantly more specific and outlined. Developers aim to create software that’s redeployable during its lifecycle. It involves having team members continuously viewing, testing and trading feedback.

The order of operations usually functions as follows: build automation, continuous integration and continuous deployment. All occur in a circular pattern while teams utilize configuration management software.

Build Automation

It all starts here. Everything that is eventually deployed and delivered is built, then passes through the following stages of the continuous delivery pipeline. Build servers compile and package code every time changes occur. It then flows into a source code repository (i.e. continuous integration).

Changes are built then tested and returned to developers. Tests are interpreted and notify development teams of functionality breakdowns and errors. The number of times this back and forth occurs varies across development teams.

The best build automation tools, according to users, are Ansible, CircleCI and Apache Maven.

Continuous Integration

This component of the pipeline is often included within the build stage. As code is committed and builds occur, bit by bit, code is integrated into the software’s code base.

Developers “check out” code from the repository like they would a book from the library. A continuous integration server monitors the repository as the developer makes changes and tests for successful integrations.

Once builds are fully integrated into the source code repository, new features are deployable with the push of a button.

The best continuous integration tools, according to users, are CircleCI, BitBucket and Codeship.

Continuous Deployment

Deployment is not always adopted by teams practicing continuous delivery. If it is, it follows shortly after integrations are tested and declared successful.

“It is the practice of releasing every good build to users,” according to Jez Humble, author of the book “Continuous Delivery.”

Many software tools are designed specifically for this practice. They automatically release the code and instantly activate it.

The best continuous deployment tools, according to users, are CircleCI, Ansible and Codeship.

Configuration Management

These tools allow for development teams to provision and manage code and track changes made throughout the continuous delivery process. It provides development teams a historical record of changes.

These tools come in handy when managing projects, finding bugs and auditing the process. It captures release versions and allow development teams the ability to roll back configurations of previous versions of the application.

The best configuration management tools, according to users, are Apache Maven, Codenvy and Ansible.

Want to Learn More?

The process can be confusing. To make sure your team is equipped with the correct tools and works as efficiently as possible, visit our Continuous Delivery category page to learn more.