为什么CI/CD 管道需要DevOps质量关卡?

点击上方蓝字⭐️关注“DevOps云学堂”,接收最新技术实践

ddb8837f41b6a123cdb98c5e268bff24.gif

今天是「DevOps云学堂」与你共同进步的第 23 

dddcf900c49fe770d16b7b16bb21edf2.png
DevSecOps 带来了“左移安全”的概念,这意味着“左移测试”。它通过 SDLC 流程使 QA 和测试成为优先事项,并使质量代码或工件对于维护可持续的 CI/CD 管道非常重要。

越早对任何潜在发现做出反应越好。但它与许多开发和 IT 团队不同。它仅在采用 DevSecOps 的地方进行实践。因此,没有想到“向左移动安全”方式的公司正在处理技术债务和代码质量问题。它导致团队放慢速度,错过最后期限,并提供脆弱的解决方案,迫使公司采取被动行动而不是主动行动,并为持续的战火埋下根源。为了达到预期的速度和响应能力,公司需要有效的发布管理策略,而这正是 DevOps Quality Gates 的用武之地。

实施质量门禁就是要有流程和检查表来检测因源代码的不断变化而可能出现的故障和缺陷。在CI/CD周期中实施质量门禁有很多充分的理由,包括:

  • 质量门禁的实施有助于识别需要重组或简化的代码部分。

  • 在开发周期的早期,可以发现消除业务随时间积累的技术债务的错误。它降低了未来维护的费用。

  • 它使开发人员能够构建可无错误编译或运行的应用程序代码,并在出现任何问题时向他们发出警告,帮助他们避免使用糟糕的编码标准。它有助于全面提高代码质量。

  • 它有助于定义随后将自动实施的特定于项目的规则。

什么是质量门禁?

质量门禁是现代应用程序开发实践的重要组成部分。它在SDLC的每个阶段都用作关卡。通过质量门禁实践,每个工件都会根据特定需求进行审查和测量,这些需求对于将工件推进到下一阶段至关重要。如果工件不符合要求,它会被送回各自的团队,以完成它以满足所需的标准。

质量门禁如何适应现代发展?

质量门禁关乎管理代码质量和代码安全性,这在当今世界更为普遍,公司希望在系统稳定的情况下快速部署。要为软件产品增加这种级别的稳健性,公司需要提高对软件发布周期的信心。公司正在采用 CI/CD 和现代应用程序开发实践,使他们能够在生产中快速、自信地稳定地部署他们的解决方案。怀着这样的愿望,公司正在采用 DevOps 质量门禁,帮助他们关注产品的内部质量——即源代码质量。
一些开发团队在 CI/CD 管道中使用质量门作为自动静态代码分析规则,以便在每次将源代码推送到版本控制系统后执行可重复且一致的内部质量分析。当代码库的质量或安全性受到威胁时,它会主动举手。现在您了解了质量关卡的基础知识,让我们来看看在现代项目开发过程中实施它们的优势。

1. 保持敏捷

质量门是一种主动识别产品可能存在的缺陷的方法,而不是事后对问题做出反应。开发人员可以通过采用质量门来快速识别和修复错误来维护产品标准。它使团队能够快速解决持续集成和持续管道中的问题,并帮助他们保持组织敏捷性。速度和响应能力是 DevOps 的关键组成部分。如果没有质量门,企业将不得不投入更多精力来诊断和修复其系统的问题。

2. 节省代码审查时间

在许多组织中,代码审查往往成为瓶颈。每天可以复习的代码就这么多,过一段时间就很容易失误了。突然,一个严重的错误进入了生产环境。Quality Gate 有助于防止此类问题,因为它有助于满足许多标准,例如代码覆盖率、分支覆盖率、代码流失和其他对管道重要的因素。它有助于通过自动化测试很好地覆盖代码。随着软件行业想要快速发展,质量门作为一个额外的监控层来预测每个变更集和提交的交付风险。此预测侧重于审查和验证活动,这些活动可缩短反馈循环并确保您的发布按计划发展,而不会因系统中断而让您感到意外。

3.消除技术债务

当有很大的压力和最后期限时,技术债务很容易积累。技术债务有一个由质量门决定的信用额度。对于通过大门的部署,这些部署必须有组织且质量更高。虽然可能会有一些短期的延迟,但它有助于在整个开发生命周期中保持质量。使用 DevOps 质量门的部署快速、简短且敏捷。

4. 维护安全

当企业不断面临新出现和持续存在的威胁时,严格执行安全要求就显得尤为重要。质量门有助于提高代码的安全性。一段代码的安全性与其质量直接相关。任何不符合安全标准的东西都可以通过质量门的通过/失败标准来阻止部署。

5. 保持合规性和标准

在当今的分布式开发环境中,项目经理必须在团队之间实施编码标准,以提高代码的整体质量并遵守相关行业标准和法规。这样,无论项目运行得有多快或团队规模有多大,团队都可以在不中断构建的情况下保持每个发布周期的代码质量预期。在持续开发环境中,质量门有助于监控改进。

用于执行 DevOps 质量门作业的前五种工具

静态分析是指分析未运行的代码的过程。静态分析的主要优点是它可以快速发生,通常是实时的,因为它不需要应用程序运行。有很多静态分析工具,其中许多是基于开源代码构建的,或者是完全开源的。它们通常与您的 CI/CD 工具集成,例如 GitLab、Jenkins、Bamboo 或 TeamCity。有这么多选择,很难知道选择哪个。以下是我们推荐的:

  • SonarQube:可能最流行和使用最广泛的静态代码分析工具是 SonarQube。它可以扫描 29 种不同的语言,并可以在您发出拉取请求之前检查您的源代码。SonarQube 的最大好处是它会在您编写代码时检查您的代码。它还有一个“质量门”,可以阻止任何未达到特定质量阈值的代码投入生产。公司可以根据项目要求选择开源和付费版本。

  • Codacy:Codacy 是一种不会在您编写时进行检查的工具,它会在您每次发出拉取请求时进行检查。因此,您仍然可以确保您的代码在上线之前达到标准。虽然它可能不像 SonarQube 那样常见,但它确实有更多好评。

  • DeepSource:一种流行的工具,尽管有些局限。它的主要缺点是它不适用于许多编程语言。然而,今年 2 月,他们发布了 .NET 语言的测试版。随着他们的扩张,它很容易在队伍中上升。

  • Crucible:Crucible 是一个基于网络的应用程序,支持协作代码审查。它是来自 Atlassian 的产品解决方案。它很容易与版本控制工具集成,并允许自动代码审查过程。它是开源的,并被广泛采用,以支持对代码库进行同行评审,从而完全简化开发人员和审阅人员的工作。

  • Veracode:这个主要用于提高应用程序安全性和查找软件中的漏洞。这是一个非常彻底的工具,可以改进您的代码,但扫描可能需要相当长的时间。因此,最好将其用作最终检查以确保您没有留下任何漏洞。

2aa3848bf075e671037d3b20d0c8a2b9.png

结论

企业将安全转移到左手并创造更安全的产品的一个关键策略是使用质量门。通过尽早将安全和质量参数纳入 SDLC,开发团队可以节省更多时间;这些将在流程中变得更加普遍。在当今不稳定的威胁形势下,没有任何组织能够负担得起分发可能存在漏洞的代码。


往期内容

04ccb9cffe9518f04ac44762f92926e0.jpeg

《 Istio 权威指南 》重磅发行!华为云云原生团队匠心著作

9e04bbfa381a6b3c7dcb53a970e64c03.jpeg

站点可靠性工程与 DevOps 有何不同

e70cb2f6a85c8dfb407a78266c373ebe.jpeg

CI/CD: GitLab Runner安装注册配置管理

4e65275a673c557f196e16792e944d29.jpeg

Bytebase SQL审核|将结果与代码提交进行关联

90ff87219e9c96ed0b9c397fdc6f61b6.jpeg

基于Jira的持续交付流水线实践方式


如果这篇文章对您有帮助,欢迎转发点赞分享。您的关注是我持续分享的动力!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值