文章

CI-CD 知识总览

CI-CD 知识总览

覆盖持续集成(CI)与持续交付/部署(CD)的核心工具链:GitHub Actions、Jenkins、Argo Workflows、ArgoCD,从单体项目到 K8s 云原生全覆盖。

知识体系总览

graph TB
    subgraph 持续集成 CI
        A1[GitHub Actions]
        A2[Jenkins Pipeline]
    end

    subgraph 持续部署 CD
        B1[ArgoCD GitOps]
        B2[Helm/Kustomize]
    end

    subgraph 流水线编排
        C1[Argo Workflows]
        C2[Tekton]
    end

    subgraph 最佳实践
        D1[分支策略]
        D2[测试策略]
        D3[安全扫描]
        D4[制品管理]
        D5[发布策略]
    end

    A1 --> B1
    A2 --> B1
    A1 --> C1
    C1 --> B1
    B2 --> B1
    D1 --> A1
    D2 --> D1
    D3 --> D2
    D4 --> B1
    D5 --> B1

目录结构

07-Knowledge/cicd/
├── CI-CD 知识总览.md              ← 你在这里
├── GitHub Actions 实战指南.md
├── Jenkins Pipeline 核心实践.md
├── Argo Workflows 入门与实践.md
├── ArgoCD GitOps 实战.md
└── CI-CD 最佳实践与安全.md

工具选型速查

场景推荐工具理由
GitHub 生态项目GitHub Actions零额外维护、社区 Action 丰富、YAML 配置
企业级传统项目Jenkins插件生态最强、灵活性高、多平台支持
K8s 原生 CIArgo Workflows / Tekton声明式、容器化步骤、无状态
GitOps CDArgoCD自动同步、Drift Detection、多集群管理
配置管理Helm + Kustomize模板化部署 + 环境差异化覆盖
制品管理Harbor / Docker Hub / GHCR镜像扫描、漏洞检测、RBAC

GitHub Actions vs Jenkins vs Argo

维度GitHub ActionsJenkinsArgo Workflows
部署方式SaaS(无需自建)自建 Java 服务K8s 集群内运行
配置语言YAMLGroovy / YAML PipelineYAML (CRD)
扩展性Marketplace Actions1800+ 插件模板 + 任务级组合
并发能力按计划限制(免费)按 Agent 数按 K8s 集群资源
Secret 管理GitHub SecretsJenkins CredentialsK8s Secrets + Vault
UIGitHub 集成独立 Web UIArgo UI + kubectl
适用开源/小团队大型企业K8s 原生项目
学习曲线

学习路线

🟢 入门阶段(1 周)

  • GitHub Actions:理解 Workflow/Job/Step 层次,写基础 Build-Test-Deploy 流水线
  • action.yml 基本语法、useswithenvsecrets
  • 了解 Git Flow / GitHub Flow / Trunk-Based 分支策略

🟡 进阶阶段(2 周)

  • Jenkins Pipeline:Declarative 语法、Shared Library、多分支流水线
  • ArgoCD:Application CRD、Sync Policy、多集群管理
  • 自动化测试集成:单元测试(JUnit) + 集成测试 + E2E
  • Docker 多阶段构建 + 镜像扫描(Trivy)

🔴 高级阶段(持续)

  • GitOps 生产实践:PR-based 部署、蓝绿/金丝雀发布(Argo Rollouts)
  • 跨团队 CI/CD 标准化:内部 Actions/Plugin/Shared Library
  • 安全左移:SAST(SonarQube)+ SCA(Dependency Track)+ 容器扫描
  • 自愈流水线:自动重试、通知、灰度回滚

核心概念速查

概念简述相关笔记
Pipeline as Code流水线定义存于代码仓库,可版本化GitHub Actions 实战指南
GitOpsGit 作为唯一声明源,自动同步集群状态ArgoCD GitOps 实战
Drift Detection检测集群实际状态与 Git 声明的差异ArgoCD GitOps 实战
Multi-stage BuildDocker 多阶段构建,分离构建/运行环境CI-CD 最佳实践与安全
Blue-Green两套环境切换,瞬间回滚CI-CD 最佳实践与安全
Canary渐进式流量切换,逐步验证CI-CD 最佳实践与安全
Shared LibraryJenkins 可复用的 Groovy 代码库Jenkins Pipeline 核心实践
DAGArgo Workflows 的有向无环图任务编排Argo Workflows 入门与实践

常用工具链

CI 执行:       GitHub Actions Runner / Jenkins Agent
容器构建:      Docker / Kaniko / BuildKit / Buildpacks
容器注册表:    Harbor / Docker Hub / GHCR / ECR / ACR
Helm 仓库:     ChartMuseum / Harbor / OCI Registry
代码质量:      SonarQube, ESLint, golangci-lint
安全扫描:      Trivy, Snyk, Grype, Dependency Track
测试:          JUnit, pytest, Cypress, Playwright
通知:          Slack, 飞书, PagerDuty, Grafana OnCall

关联知识

学习时间

阶段预计时间备注
目录搭建2026-07-14框架创建
GitHub Actions待定基础 → 进阶
Jenkins待定Pipeline + Shared Library
ArgoCD待定GitOps 运维实践
最佳实践待定安全/测试/发布策略

状态标记

🌱 学习中 | 📖 已掌握 | 🔁 需复习 | 📝 待补充


CI/CD 是 DevOps 的工程化核心。本系列从工具到实践,强调”能跑”到”跑得好”的工程思维转变。