文集文档索引

CI、CD 实践:自动化构建、测试与部署


  • 文集信息
  • 目录大纲
  • 最新文档
  • 知识宇宙

文集详情

文集导读

CI/CD 实践教程导读 持续集成(CI)、持续交付(CD)与持续部署(CDP) 把「提交代码」到「用户可用」之间的重复劳动自动化。本教程采用动手优先叙事:每节先给一段能跑的最小流水线配置,再解释为什么这样设计、踩过什么坑。 Amazon 2011 年内部数据曾显示:部署频率从「数月一次」提升到「每天数百次」后,变更失败率反而下降——不是因为代码变少了,而是因为每次变更更小、反馈更快。CI/CD 的核心不是工具炫技,而是把质量信号嵌进交付路径,让「能不能发布」变成可观测、可回滚的工程问题。 你将学到什么 读完本教程,你应能: 区分 CI、CD、CDP 三者的目标边界与适用场景 用 Jenkins、GitHub Actions 或 GitLab CI 搭一条含构建、测试、制品发布的流水线 设计部署管道各 stage 的门禁与失败策略 评估蓝绿、金丝雀、滚动更新在业务约束下的取舍 在流水线中集成容器构建、IaC 与安全扫描(DevSecOps) 章节路线 章 | 主题 | 动手入口 第1章 | CI/CD 基础 | 三条最小流水线对比 CI vs CD vs CDP 第2章 | 持续集成 | Git 触发策略 + Maven/npm 构建 + pytest 门禁 第3章 | 持续交付 | 多环境管道 + E2E/性能测试 + 配置分离 第4章 | 持续部署 | 全自动条件清单 +

CI/CD 实践教程导读

持续集成(CI)、持续交付(CD)与持续部署(CDP) 把「提交代码」到「用户可用」之间的重复劳动自动化。本教程采用动手优先叙事:每节先给一段能跑的最小流水线配置,再解释为什么这样设计、踩过什么坑。

Amazon 2011 年内部数据曾显示:部署频率从「数月一次」提升到「每天数百次」后,变更失败率反而下降——不是因为代码变少了,而是因为每次变更更小、反馈更快。CI/CD 的核心不是工具炫技,而是把质量信号嵌进交付路径,让「能不能发布」变成可观测、可回滚的工程问题。

你将学到什么

读完本教程,你应能:

  1. 区分 CI、CD、CDP 三者的目标边界与适用场景
  2. 用 Jenkins、GitHub Actions 或 GitLab CI 搭一条含构建、测试、制品发布的流水线
  3. 设计部署管道各 stage 的门禁与失败策略
  4. 评估蓝绿、金丝雀、滚动更新在业务约束下的取舍
  5. 在流水线中集成容器构建、IaC 与安全扫描(DevSecOps)

章节路线

主题 动手入口
第1章 CI/CD 基础 三条最小流水线对比 CI vs CD vs CDP
第2章 持续集成 Git 触发策略 + Maven/npm 构建 + pytest 门禁
第3章 持续交付 多环境管道 + E2E/性能测试 + 配置分离
第4章 持续部署 全自动条件清单 + 蓝绿/金丝雀 + 回滚剧本
第5章 DevSecOps Docker 多阶段构建 + Terraform + SAST 扫描

CI/CD 三大自动化支柱

CI/CD 三大自动化支柱

30 分钟快速上手

若你手头有一个 Python 小项目,下面这段 GitHub Actions 工作流就是本教程的「第零课」——push 即触发构建与测试:

name: ci-starter on: [push, pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: { python-version: "3.11" } - run: pip install -r requirements.txt pytest - run: pytest --cov=app --cov-fail-under=80

跑通后对照四问:触发条件是否覆盖 PR?依赖是否锁定?覆盖率阈值是否可解释?失败通知是否到达负责人?——后续各章会把每一问展开成可复用的工程模式。

阅读建议

  • 后端 Java 团队:第2章 Maven/Gradle 构建 → 第3章 Nexus 制品 → 第4章 K8s 滚动更新
  • 前端 Monorepo:第2章 npm/pnpm 缓存 → 第3章 preview 环境 → 第5章容器多阶段构建
  • 合规行业:第3章审批 gate → 第4章金丝雀 + 人工确认 → 第5章 SAST/依赖扫描

⚠️ 常见误解:买了 Jenkins 就等于有了 CI。工具只是执行器;没有版本规范、测试门禁和制品策略,流水线只是更快的打包机。

💡 关键直觉:CI/CD 的价值在反馈环的直径——从 commit 到「知道有没有问题」的时间越短,修复成本越低。Martin Fowler 早年就强调:集成频率与缺陷发现成本呈反比。

每章支柱页给出学习目标与子节导航;各节含 Jenkinsfile、GitHub Actions yaml、pytest 等可改即跑的配置片段,以及 mermaid 流程图与对比表。

三大自动化支柱详解

SOURCE 原文将 CI/CD 拆解为三根支柱,本教程各章与之对应:

自动化构建将源码经编译、依赖解析、打包变为 JAR、Docker 镜像等制品。典型步骤:拉代码 → 下载依赖(Maven Central/npm registry)→ 编译 → 单元测试 → 打包 → 上传制品库。Maven package、Gradle build、npm run build、Docker build 都是构建动作。构建必须在干净环境重复执行——Docker 或 CI runner 保证「不在开发者笔记本特有的全局状态里编译」。

自动化测试形成质量门禁金字塔:单元测试毫秒级、集成测试秒级、E2E 分钟级。JUnit、pytest、Jest 跑单元;Testcontainers 跑集成;Cypress、Playwright 跑 E2E。CI 阶段拦快测,CD 阶段拦慢测——顺序错了,反馈环就断了。

自动化部署把制品推到 dev/test/staging/prod。Ansible、Helm、kubectl 是常见工具;策略有滚动、蓝绿、金丝雀。部署后须健康检查与 smoke test,CDP 场景下失败自动 rollback。

DORA 与团队成熟度

级别 部署频率 你处在哪
起步 先 CI
成长 周~天 加 CD
精英 按需多次 CDP 可选

别跨级跳:没有稳定 CI 就上 CDP,等于去掉最后一道人工保险却未建立自动保险。

工具选型速览

场景 推荐起点 原因
GitHub 开源项目 GitHub Actions 与 PR 一体
私有 GitLab GitLab CI Registry+K8s Agent
企业 Jenkins 存量 Jenkins + 共享库 插件生态
多云 K8s Argo CD + 任意 CI GitOps 部署

本教程代码示例以 GitHub Actions、Jenkinsfile、GitLab CI yaml 三系并用——便于对照迁移。

下一章我们从 CI、CD、CDP 的定义差异入手,用三条最小流水线帮你建立直觉。

目录大纲

    最新文档

    知识宇宙

    正在加载知识图谱...


    转发
    作者与出处
    发布者 / 整理账号: 灏天文库
    来源:灏天文库
    由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
    《CI、CD 实践:自动化构建、测试与部署》是什么?
    CI/CD实践:实现软件自动化构建、测试与部署。 本站提供目录导航、全文检索与在线阅读,便于系统化学习。
    《CI、CD 实践:自动化构建、测试与部署》适合谁阅读?
    适合希望系统学习《CI、CD 实践:自动化构建、测试与部署》的初学者,以及需要查漏补缺、按需查阅的进阶学习者。
    《CI、CD 实践:自动化构建、测试与部署》包含哪些内容?
    文集围绕主题系统展开,共收录 21 篇文档。本站将全部内容按目录结构化呈现,支持全文检索与在线阅读,方便按主题跳转与反复查阅。
    《CI、CD 实践:自动化构建、测试与部署》的内容从何而来?
    本文集由灏天文库平台收录,内容或由平台用户上传分享,仅供学习交流,版权归原作者所有。
    《CI、CD 实践:自动化构建、测试与部署》的版权如何归属?
    本文集版权归原作者所有,灏天文库平台仅提供在线收录与学习展示;如需转载或商用请遵循原版权方要求。