Summary

An 18-day structured curriculum for learning CI/CD from scratch, organized into six modules: foundations (what CI/CD is, Git basics), source & pipeline control (branching, pipeline stages, build automation), testing & tooling (test pyramid, Jenkins), modernizing the flow (GitHub Actions, pipeline-as-code, artifact immutability), containers & deployment (Docker, deployment strategies, Kubernetes/GitOps), and production readiness (DevSecOps, observability, a capstone project).

一份從零開始學習 CI/CD 的 18 天結構化課程,分為六個模組:基礎(什麼是 CI/CD、Git 基礎)、來源與管線控制(分支策略、管線階段、建置自動化)、測試與工具(測試金字塔、Jenkins)、現代化流程(GitHub Actions、Pipeline as Code、產物不可變性)、容器與部署(Docker、部署策略、Kubernetes/GitOps)、以及生產就緒(DevSecOps、可觀測性、期末實作專案)。

Key Points

  • Day 4: prefers GitHub Flow / Trunk-Based development over Git Flow for CI/CD — short-lived branches, protected main branch with PR review + passing checks
  • Day 12: “immutability” as a core production principle — never overwrite a published artifact; build once, promote the same artifact through every environment
  • Day 13: always tag Docker images with commit SHA, never latest, so what was tested is exactly what runs
  • Day 14: prefers Canary releases (e.g. 5% rollout first) over Recreate deploys; never deploy without a rollback plan
  • Day 15: GitOps via ArgoCD — Git becomes the single source of truth, cluster state is continuously synced to match it rather than manually kubectl applyd
  • Day 16: secrets never hardcoded — injected at runtime via a secret manager; pipeline gates include SAST and container image scanning
  • Day 18 capstone ties it together: commit → lint/unit test → build Docker image → vulnerability scan → registry push → ArgoCD canary sync → Prometheus-monitored rollout, with zero manual server access

Insights

  • The “build once, promote everywhere” immutability principle is the connective thread across most of the later modules (artifacts, Docker tagging, GitOps) — worth treating as the single mental model to hold onto rather than memorizing each tool separately
  • The roadmap is tool-and-buzzword-forward (Jenkins, GitHub Actions, ArgoCD, Prometheus) without deep technical detail on any one — useful as a checklist of “concepts I should be able to name and place in the pipeline,” not as a hands-on tutorial

Connections

Raw Excerpt

If your pipeline isn’t defined in a YAML or Groovy file stored in Git, it essentially doesn’t exist.