CI and CD: Separate but Symbiotic
August 21, 2023

Stephen Atwell
Armory.io

CI/CD is a common phrase in the DevOps lexicon. Despite its everyday use, many lack a clear understanding of its exact definition. While continuous integration (CI) and continuous delivery/deployment (CD) are inherently linked, they do not always coexist.

This blog provides a breakdown of CI and CD and shows how the combination enhances software development.

What is CI?

Simply put — CI is the automation of builds and testing. The process occurs early in the development cycle when teams develop and complete code.

Using CI, developers merge changes from the code base to the main branch as often as possible. To validate the code, a CI solution creates a build (artifact) with the changes and runs automated tests against the build. If the code doesn't pass the tests, the changes don't merge with the main branch. This practice identifies errors early in the development process and ensures compatibility among all changes to the code base.

CI's benefits include:

■ Faster development.

■ Improved software quality.

■ Increased reliability.

■ Improved communication.

Identifying issues early in the coding process makes them easier to fix, reducing the time required to release software updates. CI also drastically cuts down the number of bugs that make it to production. Automated testing identifies most coding issues. Because engineering teams make more frequent, and therefore more minor, changes, any errors escaping detection are less significant.

Without CI, organizations face significant communication challenges. Developers must manually coordinate with one another and could lose visibility into code changes, increasing the risk of breaking functionality. These issues grow as an organization scales. With larger teams and codebases, non-CI methodologies become increasingly difficult to synchronize. Without CI, miscommunication is almost inevitable.

What Is CD?

CD happens when code is written and ready to be pushed to a repository or registry. In DevOps, CD can mean both continuous delivery and continuous deployment, and people often use the terms interchangeably. But while similar, they are not synonymous.

Continuous delivery

Continuous delivery is when developers automatically build an installable artifact after CI is complete, and make it available for download. A user can then download the artifact, and deploy it to an environment.

Continuous delivery results in:

■ Increased safety and speed in product development.

■ Shortened feedback loops.

■ Simplified troubleshooting.

■ Reduced time between updates.

Continuous delivery aims to maintain code in a deployable state but requires a human to push a button to ship the code to production.

Continuous deployment

You cannot perform continuous deployment without continuous delivery. Continuous deployment involves the complete automation of the last step in your software delivery process — deployment. If the code is approved, tested and ready for deployment, continuous deployment sends it to production without human intervention.

Often times, some automated tests require a deployed environment in which to run. In this case a CD system may deploy to multiple environments, and trigger automated testing from the CI system to run against a staging environment after deployment. Such a pipeline will typically only deploy to production if such non-production tests pass.

Continuous deployment also allows teams of all sizes to practice advanced progressive deployment strategies like Blue/Green and Canary. These strategies are important for deploying to production because they gradually introduce changes to a system while minimizing risks and maximizing the ability to respond quickly to any issues. If the code fails at a test at any point, developers can quickly roll the changes back to a predetermined version, reducing the number of users impacted by bad code.

How Do CI and CD Work Together?

While CI and CD occur at different points in the development cycle, they work together. CI ensures frequent integration and testing of code changes. Once code passes CI, CD takes over and automates deployment. CD relies on the stability and reliability established by CI to confidently push code to production.

Some enterprise development teams may choose to only use CI because they want more control over releases and have the personnel to manage deployment effectively. But smaller teams can use continuous deployment to achieve elite metrics, even with limited resources and people.

CI is non-negotiable to remain competitive in today’s market. CD further elevates team performance by building upon CI to accelerate value and empower developers.

Stephen Atwell is Principal Product Manager at Armory.io
Share this

Industry News

May 08, 2024

MacStadium announced that it has obtained Cloud Security Alliance (CSA) Security, Trust & Assurance Registry (STAR) Level 1, meaning that MacStadium has publicly documented its compliance with CSA’s Cloud Controls Matrix (CCM), and that it joined the Cloud Security Alliance (CSA), the world’s leading organization dedicated to defining and raising awareness of best practices to help ensure a secure cloud computing environment.

May 08, 2024

The Cloud Native Computing Foundation® (CNCF®) released the two-day schedule for CloudNativeSecurityCon North America 2024 happening in Seattle, Washington from June 26-27, 2024.

May 08, 2024

Sumo Logic announced new AI and security analytics capabilities that allow security and development teams to align around a single source of truth and collect and act on data insights more quickly.

May 08, 2024

Red Hat is announcing an optional additional 12-month EUS term for OpenShift 4.14 and subsequent even-numbered Red Hat OpenShift releases in the 4.x series.

May 08, 2024

HAProxy Technologies announced the launch of HAProxy Enterprise 2.9.

May 08, 2024

ArmorCode announced the general availability of AI Correlation in the ArmorCode ASPM Platform.

May 08, 2024

Octopus Deploy launched new features to help simplify Kubernetes CD at scale for enterprises.

May 08, 2024

Cequence announced multiple ML-powered advancements to its Unified API Protection (UAP) platform.

May 07, 2024

Oracle announced plans for Oracle Code Assist, an AI code companion, to help developers boost velocity and enhance code consistency.

May 07, 2024

New Relic launched Secure Developer Alliance.

May 07, 2024

Dynatrace is enhancing its platform with new Kubernetes Security Posture Management (KSPM) capabilities for observability-driven security, configuration, and compliance monitoring.

May 07, 2024

Red Hat announced advances in Red Hat OpenShift AI, an open hybrid artificial intelligence (AI) and machine learning (ML) platform built on Red Hat OpenShift that enables enterprises to create and deliver AI-enabled applications at scale across hybrid clouds.

May 07, 2024

ServiceNow is introducing new capabilities to help teams create apps and scale workflows faster on the Now Platform and to boost developer and admin productivity.

May 06, 2024

Red Hat and Oracle announced the general availability of Red Hat OpenShift on Oracle Cloud Infrastructure (OCI) Compute Virtual Machines (VMs).

May 06, 2024

The Software Engineering Institute at Carnegie Mellon University announced the release of a tool to give a comprehensive visualization of the complete DevSecOps pipeline.