什么是 CI/CD?新手入门指南
持续集成/持续交付。
您可能听说过这个在网上流传的奇怪的缩写词。
但这到底是什么?
作为软件开发人员,您应该使用它吗?
请继续阅读以了解详情!
什么是 CI/CD?
CI/CD 是持续集成/持续部署的首字母缩写词。
但它也可以意味着持续集成/持续交付(有关差异的更多信息见下文)。
基本上,CI/CD 自动化:
- 你的构建
- 你的测试
- 您的部署
和所有优秀的软件一样,良好的 CI/CD 工作流程将节省您的时间。
这让老板很开心!
它还能防止你(开发人员)掀翻桌子,愤怒地辞职。哇哦!
CI/CD 有什么好处?
CI/CD 的一些好处包括:
- 减少生产和分阶段错误
- 使错误更容易发现和删除
- 由于变化很小且是增量式的,因此易于回滚
- 提高团队生产力
- 快速反馈,包括自动代码分析和代码健康报告
- 竞争优势:你可以更快地获得客户的反馈
- 不再需要手动 FTP 部署
什么是持续集成?
持续集成不一定是一种特定的工具。
可以将其视为一种工作流程或设置。你选择的 CI 工具可以执行该工作流程。
例如,有一个名为 Jenkins 的 CI 工具。
如果您使用 Jenkins,CI 流程可能如下所示:
-
开发人员频繁地将代码推送到代码库。这可能包括补丁、更新和新功能。
-
一旦推送,Jenkins 构建服务器就会测试该代码。
-
Jenkins 向开发人员展示他们的代码是否通过或失败。
如果代码失败:修复代码并重复步骤 1-3。
如果代码通过:发送到部署环境。
在此流程中,在构建下一个功能之前,损坏的构建将成为优先事项。
什么是持续部署?
持续部署是“CI/CD”方程的第二部分。
并确保您的软件能够按需发布。部署快速且频繁。
还记得上面 CI 部分的流程吗?
一旦代码通过测试,它就会进入最后阶段:部署环境。
这整个过程有个名字,叫做部署流水线。所有代码修改都会经过这个流水线。
什么是部署管道?
部署管道(或 CI/CD 管道)是代码在发布到生产环境之前经过的一系列验证。
例如,一个简单的管道可能由以下阶段组成:
图片来自semaphoreci.com
以下是 Go 项目的理论流程:
图片来自semaphoreci.com
这些示例管道可能看起来相对简单。然而,它们很快就会变得复杂:
图片来自Medium
请记住,管道因公司、项目而异。
持续部署和持续交付有什么区别?
持续部署简单来说就是所有变更都会经过一个流水线,然后自动部署到生产环境中。
另一方面,持续交付意味着开发人员必须手动批准部署。
一旦获得批准,管道将继续实现自动化。
图片来自crisp.se
换一种方式来说明:
图片来自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