8+2 Maturity Levels of Continuous Integration

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

在你的持续集成流程变得完美之前,你需要经历一系列的层级。我最近在盐湖城的DevOpsDays上发现了其中的八个,并在几周前的演讲中分享了我的发现(观看视频)。现在是时候将它们写下来并询问你——你处于哪个层级?请在下方回答。

  1. 自动化构建。在这个级别上,您的构建是自动化的,这意味着您只需在命令行中输入一行命令,就可以编译、测试和打包整个产品。请注意,只需一行。您必须能够按下一个按钮,然后要么得到一个错误,要么得到一个成功的构建。

  2. Git。在这个层次上,你将你的源代码保存在Git中。你也可以将其保存在其他源代码控制系统中,但那将很奇怪-目前Git是现状。你应该能够获得一台全新的电脑,里面什么都没有,从Git仓库中检出源代码,并进行完整的构建。

  3. 拉取请求。您对源代码的每一次更改都必须通过拉取请求进行提交,这意味着您将代码库托管在GitHub上。您可以将其托管在其他地方,但再次强调,这会有些奇怪,因为GitHub目前是主流。同样,除了通过分支和拉取请求之外,没有人应该能够直接向主分支提交任何内容。

  4. 代码评审。每个拉取请求在合并之前必须经过强制性的代码评审。您必须制定一些代码评审政策,解释谁负责进行评审,如果作者与评审人员意见不一致会发生什么等等。但是,除非经过评审,否则不得合并任何拉取请求。

  5. 测试。在这个阶段,你的代码由单元测试(和集成测试)覆盖,并且每次修改都伴随着一个新的测试。你的自动构建会同时运行所有的测试,并且如果有任何测试失败,则构建失败。

  6. 静态分析。静态分析是指在不运行代码的情况下检查代码质量。在这个层面上,代码的质量是由自动化构建工具进行检查的。如果代码质量低于阈值,构建将失败。

  7. Pre-Flight Builds. 这个主意在这里解释。

  8. 生产模拟。该构建在一个容器中运行,该容器模拟生产环境和数据。

  9. 压力测试。性能和压力测试都是自动化的,并在每次构建中执行。

顺便一提,在此演示中,我还提到了在每个成熟度水平下可能会遇到的问题。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 10:32

sixnines availability badge   GitHub stars