Deploying with CI/CD
A course on continuous delivery and deployment.
Learn continuous delivery and deployment: environments and approvals, authenticating to the cloud with OIDC, deploy strategies (blue-green, canary, rolling), database migrations, rollbacks, and deploying to Kubernetes.
Module 1 - Delivery & strategies
CD concepts, environments, approvals, rollouts.
Delivery vs deploymentContinuous delivery vs continuous deployment explained: what each means, where the manual gate sits, and how…
The deployment pipelineA clear map of a deployment pipeline: build, test, package, and promote through environments, with the stages…
Environments and gatesUse GitHub Actions environments to add required reviewers, wait timers, and scoped secrets so deployments to…
Rolling deploymentsRolling deployments explained: replace instances in batches to ship a new version with no downtime, plus the…
Blue-green deploysBlue-green deployments explained: run two identical environments, deploy to the idle one, then switch traffic…
Canary releasesCanary releases and progressive delivery explained: route a small slice of traffic to a new version, watch me…
Feature flagsFeature flags decouple deploy from release: ship code dark, then turn features on for users when ready. Learn…
Safe DB migrationsRun safe database migrations in a deployment pipeline using the expand-and-contract pattern so schema changes…
Rollbacks and recoveryDesign rollbacks and automated recovery in CI/CD: keep deploys reversible, detect bad releases with health ch…
Module 2 - Deploying to the cloud
OIDC auth, AWS/GCP/Azure, serverless, static.
Cloud auth with OIDCAuthenticate to AWS, GCP, and Azure from GitHub Actions with OIDC and no static keys. Learn how short-lived t…
Deploy to AWSDeploy to AWS from GitHub Actions: authenticate with OIDC, push images to ECR, and ship to ECS or other servi…
Deploy to GCPDeploy to Google Cloud from GitHub Actions using Workload Identity Federation for keyless auth, then ship to…
Deploy to AzureDeploy to Azure from GitHub Actions with OIDC federated credentials and the azure/login action, then ship to…
Deploy serverlessDeploy serverless functions from GitHub Actions: package and ship AWS Lambda and Google Cloud Functions, mana…
Deploy a static siteDeploy a static site from GitHub Actions to S3/CloudFront, GitHub Pages, or Netlify: build once, sync assets,…
Terraform in CI/CDManage infrastructure as code in your pipeline with Terraform: plan on pull requests, apply on merge, and use…
Secrets and configManage secrets and config for deployments: separate config from code, scope secrets per environment, and pull…
Module 3 - Kubernetes delivery
kubectl, Helm, GitOps, progressive delivery.
Deploy to KubernetesDeploy to Kubernetes from CI/CD: build and push an image, update the deployment to the new tag, and wait for…
kubectl and manifestsUse kubectl and manifests in a pipeline: apply declarative YAML, organize per-environment overlays with Kusto…
Helm packagingPackage Kubernetes deployments with Helm: template manifests with values, deploy per-environment with helm up…
GitOps explainedGitOps with Argo CD and Flux explained: Git becomes the source of truth and a controller continuously reconci…
Progressive delivery on K8sProgressive delivery on Kubernetes explained: use Argo Rollouts or Flagger to automate canary and blue-green…
Zero-downtime on K8sAchieve zero-downtime deployments on Kubernetes with readiness probes, graceful shutdown, PodDisruptionBudget…
Reliable runners for deploysWhy deployment pipelines need reliable runners: flaky CI infrastructure blocks releases, and managed runners…
Explore other topics
GitHub ActionsWorkflow, runner, and YAML errors - diagnosed and fixed.
Node.js & npmnpm, yarn, and pnpm failures in CI - solved.
DockerBuild, run, compose, and registry errors - explained.
Pythonpip, poetry, venv, and pytest failures - fixed.
Java & JVMMaven, Gradle, and JVM failures in CI - resolved.
GoGo build, module, and test failures - diagnosed.