CI/CD 最佳实践的基本原则

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

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

每一个组织都试图在创建 CI/CD 流水线时引入本身的方法,最终找到完美的平衡,咱们一般将其称为“最佳实践”。本文就来谈一些有效且安全的 CI/CD 流水线的基本原则。架构

可靠性app

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

CI 流水线应当很快工具

使 CI/CD 流水线尽量快是很是重要的。咱们全部的自动化测试都运行在开发环境中的 CI 流水线上,而其最终会被部署到生产环境中。所以,涵盖全部边缘状况和潜在的致命失效很是重要,同时,咱们须要确保全部这些更改不会在咱们的代码中形成任何没法预料的错误。所以,同时保持 CI 流水线简单、快速和安全很是重要。单元测试

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

在独立环境中构建和运行编码

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

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

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

预发布环境和生产环境等价

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

使开发和测试环境彻底等价于生产环境很是困难,但咱们能够在须要时作出决定保持他们尽量类似,而且了解咱们正在作出的取舍。大多数组织还使用“蓝绿部署”或“金丝雀发布”的部署策略,在该策略中,咱们首先在生产环境中部署应用并处理大约 1% 的流量。而后将流量提升到 100%,或者也能够较为轻松的回滚到以前的版本。

总结

全部 CI/CD 工具都不相同,每一个组织都尽量以最有效和便捷的方式利用 CI/CD。但以上是一些最佳实践,每一个人都应注意并遵循这些最佳实践,以免未来出现问题。每一个组织都应受权并仅经过 CI/CD 流水线来发布软件,以提升代码质量和组织的编码规范。

做者 | Ankit Jain      策划 | 田晓旭
原文:__https://blog.bitsrc.io/ci-cd-...

image

相关文章
相关标签/搜索