βš™οΈ
Active Module Path

Jenkins & CI/CD

Delivery end to end β€” declarative Jenkins pipelines, shared libraries and ephemeral agents, then Google Cloud Build and Cloud Deploy, deployment strategies, supply-chain signing, and a pipeline you can defend commit by commit.

18 lessons 397 min syllabus

Stage 1 β€” Foundations

3 lessons
Lesson 1 β€’ ⏱️ 18m
What CI/CD Actually Means

The three terms people use interchangeably, why the pipeline is a contract rather than a script, and the four numbers that tell you whether yours is working.

βœ“
Lesson 2 β€’ ⏱️ 20m
Jenkins Architecture and Installation

Controller and agents, where all the state actually lives, and why the first thing to configure on a new Jenkins is zero executors on the controller.

βœ“
Lesson 3 β€’ ⏱️ 18m
From Freestyle Jobs to Multibranch Pipelines

Why a job configured in a web form cannot be reviewed, what a Jenkinsfile changes, and how multibranch turns branches and pull requests into builds automatically.

βœ“

Stage 2 β€” Pipelines

4 lessons
Lesson 4 β€’ ⏱️ 20m
The Declarative Pipeline

The seven blocks every pipeline is made of, what agent placement costs you, and the post conditions that make a pipeline report the truth.

βœ“
Lesson 5 β€’ ⏱️ 20m
Control Flow: when, parallel and matrix

Running a stage only when it should run, shortening the critical path with parallel branches, and generating a build matrix instead of copying stages.

βœ“
Lesson 6 β€’ ⏱️ 20m
Credentials and Secrets in Jenkins

How a credential reaches a build step, the five ways log masking is defeated, and why OIDC federation removes the problem instead of managing it.

βœ“
Lesson 7 β€’ ⏱️ 20m
Agents and Build Environments

Static agents versus ephemeral pods, why a pinned container per stage beats installing tools on a VM, and building images without handing out the Docker socket.

βœ“

Stage 3 β€” Scaling Jenkins

3 lessons
Lesson 8 β€’ ⏱️ 22m
Shared Libraries

Turning forty lines of copied Jenkinsfile into four, the three directories a library needs, and why pinning it to main is how you break fifty repositories at once.

βœ“
Lesson 9 β€’ ⏱️ 20m
Jenkins Operations: JCasC, Plugins and Backup

Rebuilding a controller from a file in Git instead of a backup, keeping the plugin surface patched, and proving the restore works before you need it.

βœ“
Lesson 10 β€’ ⏱️ 20m
Debugging Pipelines and Flaky Builds

A triage order for a failing build, why replay is the fastest loop you have, and what to do about a test suite nobody believes any more.

βœ“

Stage 4 β€” Cloud-Native Delivery

7 lessons
Lesson 11 β€’ ⏱️ 24m
Cloud Build: The Build Configuration

Every field of a build step, substitutions and secrets done safely, the artifacts block, and the four caching strategies β€” with the measurement that tells you which one helped.

βœ“
Lesson 12 β€’ ⏱️ 22m
Cloud Build: Triggers, Pools and Operations

What starts a build and what it is allowed to do, reaching private networks from a managed builder, and the identity, notification and cost model you inherit.

βœ“
Lesson 13 β€’ ⏱️ 24m
Cloud Deploy: Pipelines, Targets and Releases

The four objects, why rendering once at release time is the whole point, deploy parameters instead of a values file per environment, and the execution identity behind each target.

βœ“
Lesson 14 β€’ ⏱️ 24m
Cloud Deploy: Promotion, Canary and Automation

Rollout job phases and where they fail, verify jobs that actually gate, canary phases without writing orchestration, automation rules, and a timed rollback.

βœ“
Lesson 15 β€’ ⏱️ 20m
Deployment Strategies

Recreate, rolling, blue-green and canary compared on blast radius and cost β€” plus the database constraint that caps how progressive your delivery can be.

βœ“
Lesson 16 β€’ ⏱️ 20m
Supply Chain Security in the Pipeline

SBOMs, signing and provenance in the stages that produce them β€” and the admission control that makes any of it enforcement rather than a report.

βœ“
Lesson 17 β€’ ⏱️ 20m
Choosing a CI/CD Platform

Jenkins, Cloud Build, GitHub Actions and GitLab CI on what each actually costs you β€” plus push versus pull delivery, and how to migrate without a rewrite.

βœ“

Stage 5 β€” Capstone

1 lesson
Lesson 18 β€’ ⏱️ 45m
Project: A Pipeline You Can Defend

One commit to production through build, scan, sign, staged deploy and a gated promotion β€” then nine drills that prove every gate actually closes.

βœ“

πŸ—ΊοΈ Beginner β†’ Expert Roadmap

5 stages with prerequisites and a concrete mastery check at each.

→

🎯 What You'll Learn

  • β€’ Separate continuous integration, delivery and deployment by where the human gate sits β€” and say which one you actually have.
  • β€’ Measure a delivery system with four DORA numbers instead of describing it.
  • β€’ Build an artifact once and promote the same digest, so what ships is what was tested.
  • β€’ Explain why a Jenkins controller runs zero executors, and rebuild one from Git rather than a backup.
  • β€’ Convert a freestyle job to a multibranch pipeline and get PR builds for free.
  • β€’ Write declarative pipelines whose agent placement does not waste executors on approvals.
  • β€’ Use when, parallel and matrix deliberately β€” including beforeAgent, which saves real money.
  • β€’ Bind credentials narrowly, name the five ways log masking is defeated, and replace stored keys with OIDC.
  • β€’ Run builds on ephemeral pod agents and build images without ever mounting the Docker socket.
  • β€’ Ship a shared library that is versioned, tested and pinned to a tag rather than to main.
  • β€’ Operate Jenkins as code: JCasC, pinned plugins, and a restore drill with a measured time.
  • β€’ Triage a failing build in a fixed order, and quarantine a flaky test instead of retrying it.
  • β€’ Write a Cloud Build config using the full step schema, with substitutions and secretEnv done safely.
  • β€’ Choose between four caching strategies and prove which one helped with measured build durations.
  • β€’ Give every trigger its own service account, so a fork pull request cannot reach a deploy credential.
  • β€’ Reach private networks from a managed builder with a private worker pool and a fixed egress IP.
  • β€’ Model delivery in Cloud Deploy: pipelines, targets, releases and rollouts, with manifests rendered once.
  • β€’ Use deploy parameters instead of a values file per environment, and split render from deploy identity.
  • β€’ Gate promotion on a verify job that compares the canary against stable, and automate what needs no human.
  • β€’ Roll back to any prior release without a rebuild, and state what the rollback did not undo.
  • β€’ Choose between rolling, blue-green and canary on blast radius, and know what the database caps.
  • β€’ Make supply-chain claims enforceable: SBOM, signing, deploy by digest, and admission control.
  • β€’ Choose a CI/CD platform from a constraint rather than a feature list, and migrate without a rewrite.
  • β€’ Ship a pipeline proven by nine drills, including the four that fail on pipelines that deploy perfectly.

πŸ›‘οΈ Best Practices in Production

The short version of this path. Every lesson also ends with the specific mistake it exists to prevent.

Do this
  • βœ“ Build once and promote the same digest; never rebuild per environment.
  • βœ“ Keep the pipeline definition in the repository it builds, so build changes are reviewed with code changes.
  • βœ“ Run zero executors on the Jenkins controller, and use ephemeral agents.
  • βœ“ Set timeout on every pipeline and buildDiscarder on every job.
  • βœ“ Bind credentials narrowly with withCredentials, use single quotes in sh, and prefer OIDC over stored keys.
  • βœ“ Every gate blocks or is deleted β€” a scan that warns and proceeds is a dashboard.
  • βœ“ Rebuild the controller from JCasC plus plugins.txt, and run a restore drill with a measured time.
  • βœ“ Measure the four DORA numbers, and measure rollback from the decision rather than the command.
Avoid this
  • βœ— A fork pull request that can reach a deploy credential. That is a shell on your infrastructure.
  • βœ— retry(3) around a flaky test β€” it hides the defect and triples the bad-day duration.
  • βœ— Mounting the Docker socket in a build agent to build images. Use kaniko or buildkit.
  • βœ— Plain --force push, or a pipeline input step holding an executor for hours.
  • βœ— Deploying a mutable tag instead of the digest you scanned and signed.
  • βœ— Configuring anything important in the Jenkins UI, where it has no diff and no history.