DevOps

Software Deliveryci cdSoftware delivery refers to the process of developing, testing, and deploying software applications to…

Getting software from a commit to production, repeatably.

CI/CD is the practice of turning every commit into a tested, deployable artifact and moving it to production through an automated, repeatable pipeline. This section explains the stages and links to the detailed software delivery notes.



‹ Tools

1. Overview

A Typical CI/CD Pipeline Commitpush / pull requestBuildcompile, packageTestunit, integrationArtifactimage + versionDeploystaging then prodContinuous integration covers commit through artifact; delivery and deployment cover the last step.Every stage must be automated and fail fast so a broken change never reaches production.

Continuous integration (CI) means developers merge small changes into the main branch frequently, and each merge triggers an automated build and test run. The goal is to detect integration problems within minutes instead of at the end of a release cycle. Continuous delivery extends this so that every passing build produces an artifact (a container image, a wheel, a JAR) that could be released at any time, usually after a manual approval. Continuous deployment removes that approval: every change that passes the pipeline goes to production automatically.

Common tools are GitHub Actions, GitLab CI, Jenkins, CircleCI and Azure DevOps for pipelines, and Argo CD or Flux for GitOps-style deployment to Kubernetes, where the cluster continuously reconciles itself to manifests stored in Git.

2. Deployment Strategies

StrategyHow it worksUse when
RollingReplace instances a few at a timeDefault for stateless services
Blue/greenRun two environments, switch traffic at onceYou need instant rollback
CanarySend a small share of traffic to the new version firstHigh-traffic services with good metrics
Feature flagsDeploy code dark, enable per user or cohortDecoupling release from deploy

The detailed page, Software Delivery, walks through the full lifecycle from development through testing to release. Containers are the usual unit of delivery; see Containers for Docker and Kubernetes.

3. Common Pitfalls