CI/CD Important terminology

Published by CyberSec Tutor on

CI/CD Process

CI/CD breakdown of the terms related to software delivery and deployments:

CI/CD (Continuous Integration and Continuous Delivery/Deployment):

  • CI/CD is a software development practice that emphasizes frequent automation of the build, testing, and delivery process. It aims to streamline software development by catching issues early and delivering changes faster with greater reliability.
  • Continuous Integration (CI): This is the practice of automating the integration of code changes from multiple developers into a central repository (like Git) frequently.
    • Each integration triggers automated builds and tests to identify potential issues early in the development cycle.
  • Continuous Delivery (CD): This builds upon CI by automating the entire software delivery pipeline, including building, testing, and potentially deploying the software to a staging or testing environment.
    • With CD, the software is always in a deployable state, making it easier to release new versions frequently.
  • Continuous Deployment (Sometimes referred to as Continuous Delivery with Automatic Promotion): This takes CD a step further by automatically deploying the software to production after successful completion of the delivery pipeline.
    • This requires a high degree of confidence in the automated testing and deployment process.

CI/CD Deployment Strategies:

  • Blue/Green Deployment: This strategy involves maintaining two identical production environments: “Blue” (current production) and “Green” (new deployment).
    • When a new version is ready, it’s deployed to the Green environment.
    • If everything works smoothly, traffic is switched from Blue to Green, effectively putting the new version into production.
    • This minimizes downtime and rollback risk as the old version (Blue) remains available until the new version is proven.
  • Canary Deployment: This strategy involves deploying a new version of the application to a small subset of users or production servers (the “canary”).
    • The performance and behavior of the new version are monitored closely on the canary group.
    • If no issues are identified, the new version is gradually rolled out to a larger percentage of users until it fully replaces the old version.
    • This approach allows for early detection of potential problems in production without impacting all users immediately.

Here’s a table summarizing the key points:

TermDescription
CI/CDOverall practice of automating building, testing, and delivering software
Continuous Integration (CI)Automating code integration and testing frequently
Continuous Delivery (CD)Automating delivery pipeline including building, testing, and potentially deploying to a staging environment
Continuous DeploymentGradually roll out a new version to a small subset of users/servers for monitoring before wider deployment
Blue/Green DeploymentMinimizes downtime by switching traffic between identical production environments (Blue and Green)
Canary DeploymentGradually rolls out a new version to a small subset of users/servers for monitoring before wider deployment
Cloud Computing Key concepts

Image credit

Jez Humble, CC BY-SA 1.0, via Wikimedia Commons