Labs ICT
⭐ Pro Login

CI/CD Overview

Continuous Integration and Continuous Delivery/Deployment concepts

CI/CD Overview

Continuous Integration (CI) and Continuous Delivery/Deployment (CD) are the backbone of modern DevOps pipelines. They automate the process of building, testing, and releasing software.

CI vs CD


  Continuous Integration (CI):
  β”Œβ”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ Dev  │───▢│  Git  │───▢│ Build │───▢│  Test  β”‚
  β”‚ Push β”‚    β”‚  Push β”‚    β”‚       β”‚    β”‚        β”‚
  β””β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                           β”‚
                                    Pass/Fail Report

  Continuous Delivery (CD):
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Test  │───▢│ Staging│───▢│ Manual │───▢ Production
  β”‚  Pass  β”‚    β”‚ Deploy β”‚    β”‚ Approvalβ”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜

  Continuous Deployment (CD):
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Test  │───▢│ Staging│───▢│ Production β”‚
  β”‚  Pass  β”‚    β”‚ Deploy β”‚    β”‚   Deploy   β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              No human intervention

Benefits of CI/CD

  • Faster releases β€” Deploy multiple times per day instead of weekly
  • Higher quality β€” Automated tests catch bugs early
  • Reduced risk β€” Small changes are easier to debug and rollback
  • Consistency β€” Same process every time, no manual steps
  • Developer productivity β€” Less time on manual tasks, more on coding

Common CI/CD Tools


  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚           CI/CD Tools Landscape            β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
  β”‚ Self-hosted     β”‚ Cloud-hosted             β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
  β”‚ Jenkins         β”‚ GitHub Actions           β”‚
  β”‚ GitLab CI       β”‚ CircleCI                 β”‚
  β”‚ TeamCity        β”‚ Travis CI                β”‚
  β”‚ Bamboo          β”‚ AWS CodePipeline         β”‚
  β”‚ GoCD            β”‚ Azure DevOps Pipelines   β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

A Typical CI/CD Pipeline


  Code Push
     β”‚
     β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Lint &  │─▢│  Build   │─▢│  Unit    │─▢│  Deploy  │─▢│ Deploy   β”‚
  β”‚  Format  β”‚  β”‚          β”‚  β”‚  Tests   β”‚  β”‚  to      β”‚  β”‚ to       β”‚
  β”‚          β”‚  β”‚          β”‚  β”‚          β”‚  β”‚  Staging β”‚  β”‚ Prod     β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚              β”‚              β”‚              β”‚              β”‚
     Fail=         Fail=          Fail=          Fail=         Fail=
     Stop         Stop           Stop           Stop          Rollback

πŸ§ͺ Quick Quiz

What is Continuous Integration (CI)?