当前位置: 首页 > Linux

CI-CD最佳实践基础_0

时间:2023-04-06 05:52:22 Linux

持续集成和持续部署(CI/CD)是许多组织使用的敏捷方法。它正在帮助这些组织高效、安全地分发软件。根据GitLab2020DevSecOps调查,近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管道授权和发布软件,以提高组织的代码质量和编码标准。作者|AnkitJain规划|田晓旭原文:__https://blog.bitsrc.io/ci-cd-...