什么是 CI/CD?新手入门指南

2025-05-26

什么是 CI/CD?新手入门指南

持续集成/持续交付。

您可能听说过这个在网上流传的奇怪的缩写词。

但这到底是什么?

作为软件开发人员,您应该使用它吗?

请继续阅读以了解详情!

什么是 CI/CD?

CI/CD 是持续集成/持续部署的首字母缩写词。

但它也可以意味着持续集成/持续交付(有关差异的更多信息见下文)。

基本上,CI/CD 自动化:

  • 你的构建
  • 你的测试
  • 您的部署

和所有优秀的软件一样,良好的 CI/CD 工作流程将节省您的时间。

这让老板很开心!

它还能防止你(开发人员)掀翻桌子,愤怒地辞职。哇哦!

CI/CD 有什么好处?

CI/CD 的一些好处包括:

  • 减少生产和分阶段错误
  • 使错误更容易发现和删除
  • 由于变化很小且是增量式的,因此易于回滚
  • 提高团队生产力
  • 快速反馈,包括自动代码分析和代码健康报告
  • 竞争优势:你可以更快地获得客户的反馈
  • 不再需要手动 FTP 部署

什么是持续集成?

持续集成不一定是一种特定的工具。

可以将其视为一种工作流程或设置。你选择的 CI 工具可以执行该工作流程。

例如,有一个名为 Jenkins 的 CI 工具。

詹金斯公司标志管家,戴着毛巾,西装革履

如果您使用 Jenkins,CI 流程可能如下所示:

  1. 开发人员频繁地将代码推送到代码库。这可能包括补丁、更新和新功能。

  2. 一旦推送,Jenkins 构建服务器就会测试该代码。

  3. Jenkins 向开发人员展示他们的代码是否通过或失败。

如果代码失败:修复代码并重复步骤 1-3。

如果代码通过:发送到部署环境。

在此流程中,在构建下一个功能之前,损坏的构建将成为优先事项。

什么是持续部署?

持续部署是“CI/CD”方程的第二部分。

并确保您的软件能够按需发布。部署快速且频繁。

还记得上面 CI 部分的流程吗?

一旦代码通过测试,它就会进入最后阶段:部署环境。

这整个过程有个名字,叫做部署流水线。所有代码修改都会经过这个流水线。

什么是部署管道?

CICD 管道

部署管道(或 CI/CD 管道)是代码在发布到生产环境之前经过的一系列验证。

例如,一个简单的管道可能由以下阶段组成:

简单的 ci/cd 管道图示
图片来自semaphoreci.com

以下是 Go 项目的理论流程:

采用 Go 编程语言的 CI/CD 管道
图片来自semaphoreci.com

这些示例管道可能看起来相对简单。然而,它们很快就会变得复杂:

使用 Jenkins 完成 CI/CD 管道的演示
图片来自Medium

请记住,管道因公司、项目而异。

持续部署和持续交付有什么区别?

持续部署简单来说就是所有变更都会经过一个流水线,然后自动部署到生产环境中。

另一方面,持续交付意味着开发人员必须手动批准部署。

一旦获得批准,管道将继续实现自动化。

ci/cd 管道图解
图片来自crisp.se

换一种方式来说明:

ci/cd 管道图解
图片来自RedHat

有哪些流行的 CI/CD 工具?

一些流行的 CI/CD 工具包括:

  • 特拉维斯·CI
  • 詹金斯
  • CircleCI
  • GitLab
  • 大三角帆
  • 建造风筝

CI/CD 工具需要花钱吗?

这取决于。

虽然有些 CI/CD 工具是完全免费的,但有些是免费增值版,有些则需要付费。

此外,许多库都包含在 GitHub 学生开发者包中,其中包括 Travis CI。

因此,如果您是学生,请阅读此 GitHub 帖子以检查您的资格。

此外,GitHub 于 2019 年宣布 GitHub Actions 现已支持 CI/CD。这是一项免费功能,可供公共仓库使用。

作为软件开发人员,我应该使用 CI/CD 吗?

对于完全代码新手:

不推荐。

CI/CD 对您的工作流程来说是一个非常强大的机制吗?是的。

但对于有抱负的开发人员来说,学习编程基础知识和工作流管理 101(即 Git 工作流)更为重要。

对于高级初学者:

尝试一下!

因为如果您计划以软件开发人员的身份在该行业工作,那么您很有可能会使用某种自动化技术。

因此,即使作为单独的开发人员,熟悉持续集成和持续部署/交付也是一种很好的做法。

对于业内人士来说:

当然。如果你有一个 DevOps 团队,他们很可能已经实现(或计划实现)了 CI/CD 工作流程。

但是如果您没有 DevOps 团队,您仍然可以使用 CI/CD 来启动和运行。

结论:什么是 CI/CD?

总之,CI/CD 是一种自动化构建、测试和部署的方法。

有很多可用的开源工具。

但如果您需要升级,也有付费选项。

总而言之,持续集成和持续部署/交付可以节省时间和金钱。

最后,如果您在开发团队,您应该认真考虑使用它。

您在使用 CI/CD 吗?如果是,您更喜欢用什么工具?

文章来源:https://dev.to/realtoughcandy/what-is-ci-cd-introduction-to-ci-cd-for-newbies-1l0f
PREV
你应该知道的 10 个数组方法 👀 基础知识 🕺
NEXT
学习编码的 4 大平台(2020 年版)Reeeeeeeeeeeee!