CICD 最佳实践的基本原则

CICD 最佳实践的基本原则

时间: 2024-01-28 16:09:04 |   作者: 视觉检测设备

产品说明

  持续集成和持续部署(CI/CD)是许多组织使用的敏捷方法。它正在帮助这些组织有效、安全地发行软件。

  根据 GitLab 2020 DevSecOps 调查,几乎 83%的研发人员表示,他们正在比以前更快、更频繁地发布代码。59%的公司表示他们几乎每天都要发布多次。而是因为采用了 DevOps 方法,并且主要归功于持续集成、自动化测试和持续部署。

  每个组织都试图在建立 CI/CD 流水线时引入自己的方法,最终找到完美的平衡,我们一般将其称为“最佳实践”。本文就来谈一些有效且安全的 CI/CD 流水线可靠性

  在软件开发生命周期中拥有 CI/CD 流水线工具是组织能快速构建和交付应用程序的一大福音,但与此同时,选择正确的 CI/CD 工具也很重要,其应当能够随业务组织发展而扩展,并且运行准确无误。而且,它还应该足够灵活,能处理多种用例和多种软件交付需求。

  使 CI/CD 流水线尽可能快是很重要的。我们所有的自动化测试都运行在开发环境中的 CI 流水线上,而其最终会被部署到生产环境中。因此,涵盖所有边缘情况和潜在的致命失效很重要,同时,我们应该确保所有这些更改不会在我们的代码中造成任何没办法预测的错误。因此,同时保持 CI 流水线简单、快速和安全非常重要。

  随着微服务架构的广泛采用,CI 流水线变得简单明了(不同于单体架构的情形)。但是如果流水线任务繁重,最好移除一些不会产生重大影响的测试,并且记录下这种取舍。我们还应该确定测试的优先顺序。运行较快的测试应首先执行。例如,单元测试比较快,而且是程序功能或模块的基础,因此应当首先执行,然后再进行功能测试和集成测试。这样,我们大家可以尽早发现错误并节约时机。开发者应该在推送代码之前在本地运行测试以尽早发现错误。

  从 CI/CD 流水线的安全性以及确保它类似于预发布环境和生产环境的角度讲,在独立的环境中运行 CI/CD 流水线一直都很重要,这能保证我们的测试结果更加准确。

  我们能够正常的使用 Docker 或其他任何容器化工具来运行我们的测试套件,也可以在 Docker 容器中为我们的应用程序安装其他依赖。这样,我们大家可以确保测试在完全隔离的环境中运行,并且不受底层主机的任何影响。由于我们的 CI/CD 平台可以完全访问我们的代码仓库,因此大多数组织也习惯于在自己的云平台基础设施中部署 CI/CD 工具以确保安全。

  许多组织迈出了更大一步,他们还在隔离环境中渲染和测试 UI 组件。在将它们作为独立的构建块交付并集成到一个或多个项目中之前,此过程是一种验证它们确实独立的方法(这通常使用 Bit(Github)完成)

  建议从始至终保持预发布环境和生产环境等价,以避免运行测试时发生意外错误导致发布暂停这种小概率事件。我们的 CI/CD 流水线首先经过运行测试和在预发布环境中部署的阶段。测试后,该应用会自动升级(或手动部署)到生产环境。

  使开发和测试环境完全等价于生产环境十分艰难,但我们大家可以在需要时做出决定保持他们尽可能相似,并且了解我们正在做出的取舍。大多数组织还使用“蓝绿部署”或“金丝雀发布”的部署策略,在该策略中,我们第一步在生产环境中部署应用并处理大约 1% 的流量。然后将流量提高到 100%,或者也可以较为轻松的回滚到之前的版本。

  所有 CI/CD 工具都不相同,每个组织都尽可能以最有效和便捷的方式利用 CI/CD。但以上是一些最佳实践,任何一个人都应注意并遵循这些最佳实践,以避免将来出现一些明显的异常问题。每个组织都应授权并仅通过 CI/CD 流水线来发布软件,以提高代码质量和组织的编码规范。

Copyright © 2017-2022 ub8优游登录地址-客户端官网下载版权所有 蜀ICP备18001364号-1 蜀ICP备18001364号-1