CI/CD
CI/CD是持续集成和持续交付/持续部署的组合实践,目标是让代码变更经过构建、测试、制品管理和部署流程后,更稳定、更可追溯地交付到目标环境。这个标签聚合流水线、自动化部署、制品仓库、发布规范和交付治理内容。
显示更多
这个页面适合围绕 CI/CD 流程、工具选型和发布治理查找文章;如果希望按阶段系统学习 DevOps、CI/CD、GitOps 和平台工程,可以进入 DevOps 学习路径页。
- 流程建设重点关注代码提交、构建、测试、制品、部署和回滚链路
- 工具选型重点比较 Jenkins、GitLab CI、GitHub Actions、制品仓库和发布平台
- 治理升级重点关注标准流水线、审批、灰度、审计和多团队复用
CI/CD建设可以先从稳定构建和制品管理开始,再逐步推进自动部署、审批、灰度和回滚。企业场景不要只追求自动化速度,更要关注流水线模板复用、权限审计、质量门禁、制品可追溯和失败后的恢复能力。
学习路径
推荐阅读
-
发布日历怎么设计?版本节奏、冻结窗口与团队对齐方法
读完本文,你可以快速把握《发布日历怎么设计?版本节奏、冻结窗口与团队对齐方法》的关键问题与落地重点,并判断当前更值得优先推进哪些能力。
-
发布编排怎么做?跨服务、跨环境与变更窗口协调方法
读完本文,你可以梳理《发布编排怎么做?跨服务、跨环境与变更窗口协调方法》的关键步骤与落地重点,并判断当前最该先补哪一层能力。
-
灰度发布怎么做?蓝绿、金丝雀与特性开关的适用边界
读完本文,你可以梳理《灰度发布怎么做?蓝绿、金丝雀与特性开关的适用边界》的关键步骤与落地重点,并判断当前最该先补哪一层能力。
-
流水线安全怎么做?凭证管理、制品签名与权限隔离基础实践
流水线安全不是在 CI/CD 里多加一次扫描,而是把凭证、制品和权限边界一起收紧。本文会从更贴近企业落地的角度拆开说明。
-
DevSecOps是什么?如何把安全左移融入CI-CD流程
DevSecOps 不是在流水线里多加一个扫描步骤,而是把安全要求提前嵌进研发和交付链路。本文会从企业落地角度讲清楚它为什么重要、该怎么做。
-
环境一致性怎么保障?开发、测试、预发、生产配置治理思路
环境一致性问题并不只是配置文件不同那么简单,它背后往往是依赖、权限、数据和发布流程同时失控。本文会从企业治理角度讲清楚怎么把多环境差异管住。
-
发布回滚怎么设计?版本管理、数据库变更与应急策略实践
发布回滚不是临时出问题时再想办法撤回,而是上线前就要设计好的失败路径。本文会从版本、数据库和应急流程三个关键点拆开讲清楚。
-
GitOps和CI/CD有什么区别?二者是替代还是协同关系
GitOps 和 CI/CD 经常被放在一起讨论,但两者并不是同一个层面的能力。本文会把它们的职责边界、配合方式和典型误区一次讲清楚。
-
制品库是什么?镜像仓库与二进制仓库在交付链路中的作用
制品库经常被当成一个存储工具,但在企业交付体系里,它更像构建结果的标准交接层。本文会把镜像仓库和二进制仓库在链路里的职责区别讲清楚。
-
发布流水线怎么设计?构建、测试、制品与发布四阶段拆解
当流水线越来越长、失败越来越难定位时,问题通常不在工具,而在阶段边界、制品可信度和发布门禁没有设计清楚。本文用四阶段方法梳理可落地的发布流水线设计。
-
Jenkins和GitLab CI怎么选?CI平台能力与适用场景对比
团队在选 CI 平台时,真正要比较的不是谁更流行,而是代码仓库、流水线治理、插件扩展、运维成本和组织协作方式是否匹配。本文用 FACT 框架拆解 Jenkins 与 GitLab CI 的差异和适用边界。
-
自动化部署怎么做?从代码提交到上线发布的完整流程
自动化部署不是把上线脚本丢进流水线就结束了,真正关键的是把构建、制品、环境、验证和回滚串成一条稳定链路。本文会按企业落地顺序拆开讲清楚。
-
CI和CD有什么区别?持续集成、持续交付、持续部署一次讲清楚
CI、持续交付、持续部署经常被混着说,但三者关注的阶段、责任边界和上线节奏并不一样。读完本文,你可以快速判断团队当前到底缺的是哪一段能力。
-
CI和CD有什么区别?别再把持续集成和持续交付当成一回事
CI和CD有什么区别?本文从目标、流程位置、交付边界和常见误区等角度,讲清楚持续集成、持续交付与持续部署之间的关系,以及团队应该先把哪一段能力建设扎实。
-
自动化部署怎么做?从代码提交到上线发布的完整流程
自动化部署怎么做?本文从流程设计、制品管理、环境一致性、灰度发布、验证回滚和风险控制等角度,梳理一套更适合企业落地的自动化部署方法,而不是把手工步骤简单改成脚本。
-
GitOps是什么?为什么很多团队把它当成交付治理方式
GitOps是什么?本文从核心理念、与CI/CD的关系、声明式交付、多环境管理和回滚审计等角度,解析 GitOps 为什么会成为云原生发布工程中的关键方法。
-
CI/CD是什么?持续集成与持续交付的区别和实践方法
CI/CD是什么,是现代软件交付体系里最常见也最容易被混用的概念之一。很多团队把 CI/CD 简单理解成“自动发版”,但实际上它覆盖的不只是部署动作,而是一整条从代码提交、构建、测试到交付和上线的工程化链路。理解 CI/CD,关键不是背出缩写,而是理解为什么软件交付会从手工操作演进到自动化流水线,以及这条链路如何支撑 DevOps 和云原生时代的高频迭代。 …
了解更多关于CI/CD的信息
CI/CD应该先建设CI还是CD?
通常先把 CI 做稳,再逐步推进 CD。 如果代码检查、构建、测试和制品管理都不稳定,直接自动部署只会把不确定性更快带到测试或生产环境。
比较稳妥的顺序是:先统一代码扫描、依赖安装、构建缓存和测试门禁,再把镜像、二进制包或 Helm Chart 等制品纳入制品库管理;当制品可追溯、构建可重复之后,再推进自动部署、审批、灰度和回滚。这样 CD 才不是简单的脚本触发,而是建立在可靠 CI 基础上的交付能力。
CI/CD和DevOps是什么关系?
CI/CD 是 DevOps 落地中非常关键的工程链路,但 DevOps 不等于 CI/CD。CI/CD 更关注代码变更如何经过构建、测试、制品和部署流程进入目标环境;DevOps 还包括组织协作、平台能力、发布治理、度量反馈和持续改进。
如果只有流水线,没有质量门禁、权限控制、制品追溯、失败恢复和团队协作机制,交付效率未必真正提升。 因此 CI/CD 可以看作 DevOps 的技术抓手之一,而 DevOps 的目标是让研发、测试、运维、安全和平台团队围绕同一套交付链路协作。
企业选择CI平台时看哪些能力?
企业选 CI 平台不能只看能不能跑脚本,还要看它能否支撑团队规模、权限边界和交付治理。Jenkins、GitLab CI、GitHub Actions 等工具没有绝对优劣,关键是匹配组织现状和平台策略。
- 是否能对接现有代码仓库、合并请求、分支策略和权限体系。
- Runner 是否支持隔离、弹性扩缩容、缓存和 Kubernetes 动态构建环境。
- 流水线模板是否便于复用,能否沉淀标准构建、测试和安全检查。
- 密钥、制品、日志、审计和失败重试机制是否完整。
- 能否与镜像仓库、发布平台、GitOps 或 Kubernetes 集成。
CI/CD流水线标准化会不会降低团队灵活性?
好的标准化不会消灭灵活性,而是把高风险、重复性的部分统一起来。 例如代码扫描、制品命名、镜像推送、部署审计和质量门禁适合标准化;构建命令、测试矩阵、业务参数和发布节奏可以保留差异。
平台侧可以提供模板、默认阶段和安全基线,业务团队通过参数和扩展步骤适配自身应用。这样既能降低重复维护成本,又不会把所有应用强行塞进同一条固定流水线。真正需要避免的是“表面统一”,即模板看似一致,但每个团队都在私下绕过规则。
CI/CD流水线是否应该完全自动上线?
不一定。是否完全自动上线取决于业务风险、合规要求、测试质量、监控能力和回滚能力。对低风险服务,可以逐步推进自动发布;对核心系统,生产发布可能仍需要审批、灰度、发布窗口和人工确认。
判断是否适合自动上线,可以看几个条件:测试是否覆盖关键路径,发布后是否有健康检查和告警,失败后是否能快速回滚,变更记录是否可审计,团队是否清楚故障响应责任。自动化上线不是目标本身,稳定、可控、可恢复的交付才是目标。
CI/CD指标应该看哪些?
CI/CD 指标应该帮助团队发现交付瓶颈,而不是单纯考核部署次数。常见指标包括部署频率、变更前置时间、变更失败率、平均恢复时间、流水线成功率和流水线耗时。
这些指标需要结合业务上下文解读。部署频率提升但失败率也提升,说明交付质量可能在下降;流水线耗时变长,可能是测试、依赖、缓存或构建环境出现瓶颈;平均恢复时间过长,则说明回滚、监控和应急流程需要改进。