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 原生 CI | Argo Workflows / Tekton | 声明式、容器化步骤、无状态 |
| GitOps CD | ArgoCD | 自动同步、Drift Detection、多集群管理 |
| 配置管理 | Helm + Kustomize | 模板化部署 + 环境差异化覆盖 |
| 制品管理 | Harbor / Docker Hub / GHCR | 镜像扫描、漏洞检测、RBAC |
GitHub Actions vs Jenkins vs Argo
| 维度 | GitHub Actions | Jenkins | Argo Workflows |
|---|
| 部署方式 | SaaS(无需自建) | 自建 Java 服务 | K8s 集群内运行 |
| 配置语言 | YAML | Groovy / YAML Pipeline | YAML (CRD) |
| 扩展性 | Marketplace Actions | 1800+ 插件 | 模板 + 任务级组合 |
| 并发能力 | 按计划限制(免费) | 按 Agent 数 | 按 K8s 集群资源 |
| Secret 管理 | GitHub Secrets | Jenkins Credentials | K8s Secrets + Vault |
| UI | GitHub 集成 | 独立 Web UI | Argo UI + kubectl |
| 适用 | 开源/小团队 | 大型企业 | K8s 原生项目 |
| 学习曲线 | 低 | 中 | 中 |
学习路线
🟢 入门阶段(1 周)
- GitHub Actions:理解 Workflow/Job/Step 层次,写基础 Build-Test-Deploy 流水线
action.yml 基本语法、uses、with、env、secrets
- 了解 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)+ 容器扫描
- 自愈流水线:自动重试、通知、灰度回滚
核心概念速查
常用工具链
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 的工程化核心。本系列从工具到实践,强调”能跑”到”跑得好”的工程思维转变。