你应该知道的基本CI/CD术语!

289 阅读5分钟

你应该知道的基本CI/CD术语!

关于CI/CD的新入门者的介绍

你是否认识到自己...?你刚刚拿到计算机科学(或其他)的大学学位并开始在一家科技公司工作。很快你就意识到,尽管有所有的理论知识和一些小组项目,你甚至不知道专业软件开发的基本工具和工作流程。这有点像上学后的情况,你仍然不知道如何做自己的纳税申报。

在我的第一份工作中,我不得不以初学者的身份做出这种体验。当我开始工作时,我从未听说过关于CI/CD的事情,或者说直到现在我才真正对它有了完整的了解。当然,你在学习中已经学到了一些关于测试和软件质量的知识,你也听说过这个软件是如何发布的,但对于现实世界来说,这还不够。现在到了第一份工作,我面对着webhooks、runners、pipeline、stage、build processes、release等术语,不知道该如何处理它们。所有这些术语都可以在GitHub或Gitlab等知名代码托管平台上找到。对于你的职业生涯,我认为了解这些术语和概念的关系是很重要的。其中有些术语的含义甚至完全相同,但你却认为它们是不同的。在下文中,我想帮助你更好地理解这些术语。

本文只介绍CI/CD的概念和相关术语,后续文章将介绍CI/CD的自动化。

让我们首先从CI/CD的概念开始。这到底是什么?

CI/CD指的是 持续集成持续交付.这实际上是两个紧密耦合的工作流程,用于发布或部署软件。除了持续交付,甚至还有另一个 "CD",它代表的是 持续部署 (但首先我们坚持说交付)。在CI/CD中,人们希望实现两个目标。

  1. 人们可以在任何时候对软件进行无缺陷的交付修改(本文是关于)。
  2. 更改的交付是完全 自动化的。(下一篇文章)

这里你可以直接指定CI和CD这两个工作流程。CI负责测试源代码,CD负责相应地交付经过测试的源代码。现在让我们来看看 任务在下图中的CI和CD的CI/CDPipeline 。在一些平台上,这些任务也被称为(如Gitlab)阶段免责声明:有人会说 "Build "是CI的一部分,但这是可以讨论的。我将坚持使用该图。

CI/CD管道 (作者)

持续集成(CI)中的任务

CI是关于必须集成到现有源代码中的源代码。源代码(变化)要通过它的考验。你可以把这些任务想象成机场的安检,你必须顺利通过才能上飞机。因此,CI验证了你的代码修改的质量,确保安全地交付它们。

  • 提示(Linting)。这里我们谈论的是源代码的静态分析。这意味着你并没有执行源代码。它负责识别常见的编程和风格错误。
  • 单元测试和集成测试:在这里,所有的旧测试和新测试都要通过,以查看所有的东西是否仍然有效。(我假设你知道这些测试是什么...)

如果源代码仍然工作,并且没有测试错误报告,那么恭喜你,你的修改已经被整合了。完成这些任务后,源代码就处于可发布的状态了。

持续交付(CD)的任务

在这里,所有的工作都是关于释放源代码的新变化。与其说是检查代码,不如说是将源代码转化为一种形式,以便于发布。CD与以下术语有关。

  • 构建。所有的源代码和其他人工制品(如图像、文本等)都被收集起来,并被放到一个特定的形式中。这种形式取决于进一步的使用。大多数情况下,它通常意味着将用某种编程语言编写的代码编译成机器语言。
  • 发布。你通过复制到一个软件库来发布你改变的应用程序(源代码)。这是一个包含所有经过测试和发布的准备发布的版本的存储库。一个例子是将改变后的应用程序的图像(如Docker图像)上传到一个图像注册中心(如Docker注册中心--Docker Hub.)。
  • 发布。这是你向用户提供你的改变的部分。更改后的应用程序在这里首次获得流量(例如,用新的镜像替换之前运行的镜像)。

我知道 "发布 "和 "释放 "这两个词在语义上非常接近。我不得不选择这些术语,以便你能更好地放置注册表的概念。

结论

那么,今天就到此为止。到目前为止,已经介绍了最基本的术语,这肯定会帮助一些人更好地理解CI/CD的概念。通过这个管道,我们实现了开头介绍的两个目标中的第一点。下一次,让我们看看这条管道是如何自动化的。然后会涉及到webhooks、runners等术语。