共计 1525 个字符,预计需要花费 4 分钟才能阅读完成。
继续集成和继续部署(CI/CD)是许多组织应用的麻利办法。它正在帮忙这些组织无效、平安地发行软件。
依据 GitLab 2020 DevSecOps 考察,简直 83%的开发人员示意,他们正在比以前更快、更频繁地公布代码。59%的公司示意他们简直每天都要公布屡次。而这是因为采纳了 DevOps 办法,并且次要归功于继续集成、自动化测试和继续部署。
每个组织都试图在建设 CI/CD 流水线时引入本人的办法,最终找到完满的均衡,咱们通常将其称为“最佳实际”。本文就来谈一些无效且平安的 CI/CD 流水线的根本准则。
可靠性
在软件开发生命周期中领有 CI/CD 流水线工具是组织可能疾速构建和交付应用程序的一大福音,但与此同时,抉择正确的 CI/CD 工具也相当重要,其该当可能随业务组织倒退而扩大,并且运行准确无误。而且,它还应该足够灵便,能够解决多种用例和多种软件交付需要。
CI 流水线该当很快
使 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 流水线来公布软件,以进步代码品质和组织的编码标准。
作者 | Ankit Jain 策动 | 田晓旭
原文:__https://blog.bitsrc.io/ci-cd-…