提升管道效率:你需要知道如何识别 CI/CD 管道中的主要障碍
许多企业已通过持续集成、交付和部署 (CI/CD) 来更频繁地发布产品。CI/CD 管道加速了软件开发,但同时,也有存在阻碍其效率的因素。阅读本文,您将了解到如何判断阻碍管道运行效率的因素,找到它们的具体位置并解决它们。当阻碍管道运行效率的因素不复存在,您的 CI/CD 管道效率将持续提高,为公司节省人力与财力。
任何关于 CI/CD 的问题或困惑,欢迎咨询DevSecOps解决方案提供商、CloudBees授权合作伙伴——龙智。
持续集成、开发和交付管道有助于加快软件开发。一个很好的使用案例是,Autodesk 采用 CI/CD 之后提高了生产力。如果实施得当,管道可以缩短上市时间,提高新功能和版本稳定性。
但是你知道管道内部发生了什么情况吗?您能否识别并清除阻碍其高效运行的障碍吗?想要知道是否存在阻碍因素以及它们的位置并非易事。
所以,很难判断阻碍因素是否存在,以及其具体位置,以及解决办法。本篇文章中,我将帮助您确定可能遇到的一些主要障碍,并针对一系列问题提出一套行之有效的解决办法。
贵公司的 CI/CD 文化是什么?
在深入探讨技术方面的问题之前,让我们先了解一下贵公司的 CI/CD 文化。它是每名开发人员都积极参与并全身心投入的文化吗?他们是否意识到 CI/CD 对公司业绩和成功的重要性?还是他们只是略微意识到 CI/CD 的存在及其作用,以及其存在和发挥作用的原理?
与任何议题一样,人们对某个议题的参与度越高,他们就越有可能予以支持。当他们参与和支持时,他们可以更加享受深度参与该议题的成功和喜悦之中,即 CI/CD 的成功也可以被视为开发人员的成功。
此外,当这种参与的积极性存在时,当您需要更多资源来对其进行改进时,您在应用 CI/CD 时遇到的阻碍因素就会少一些。出于这些原因,我强烈建议您考虑贵公司的 CI/CD 文化。
以下是三个建议:
开展小组教育课程,突出现有优势。
邀请外部专家讨论现实的成功案例。
定期举行网络研讨会或群聊讨论,对现存问题进行分析并提供解决之道。
这些只是少数几种方法。我相信你还能有其他解决办法。
您的管道指标是什么?
现在让我们考虑更多的量化方法;毕竟,如果你不知道问题出在哪里,你就不知道从何处着手进行改进,从而实现需要达到的目标。
1、开发人员配置新环境的速度有多快?
无论开发人员是新加入公司、新加入部门还是新加入某个代码库,您都应该关注以下几点:
他们能否快速配置新的开发环境?
他们从零到进入工作的速度有多快?
抛弃现有环境并重新开始是否可行?
“CI 和 CD 的主要优势之一就是提供快速开发的新功能。”
如果开发人员不能快速配置新的开发环境,他们的工作效率就不会达到应有的水平。
配置新开发环境的过程是否由每个开发人员自行决定?他们是否需要手动检查清单、运行脚本和识别依赖项?或者是否可以使用行业标准配置工具(如 Ansible、Terraform 或 Docker)来自动配置环境?
2、测试的运行速度有多快?
您的整个测试套件需要多长时间才能运行?它会在短期内完成,还是会持续数小时甚至数日之久?
不存在平均运行时间之说,因为没有两个应用程序的功能是相同的。我也不能确定是否存在标准的最小或最大执行时间。但我要说的是,它们不能占用很长时间来运行。占用的时间越长,开发人员就越有可能避免运行它们。
鉴于上述:
怎样才能提高它的性能?
所有的测试都是必要的吗?
是否写的测试没有测量任何有意义的东西?
您能更有效地编写测试吗?
您是否应该投入资源来提高开发团队的测试知识储备?
审查当前的测试套件,包括单元测试、验收测试、集成测试和系统测试等,思考如何改进它们,并考虑在持续的测试教育中进一步投入资源。
3、您能多快地部署新功能?
精简的 CI/CD 管道能使您更具竞争力,因为您可以更快地发布修复和功能。
您的部署情况如何? 它们是有机地成长为一个整体,还是变成了错综复杂的烂摊子?新方法能使它们合理化或简化吗?是时候引进专业人士了吗?
是否存在遗留包袱,导致流程耗时过长,或者是因为软件较旧或功能过时?
4、您存在阻碍因素或瓶颈因素吗?
我们已经对运行时间过长的单元测试或未运行的测试做过讨论。但这并非是唯一让您的管道陷入困境的因素。还有一些阻碍因素或瓶颈因素:
Job 之间的依赖关系是否过多?依赖关系是一种耦合形式,而紧密耦合的 Job 是脆弱的。它们很容易断裂,也很难重新组合。
你有多少个 Job 流程?越简单越好。
您的代码储存库是否过大?单体架构的大型存储库需要更长的时间进行更新和签出,需要分解代码以简化管道。
您的审查流程情况如何?
CI/CD 管道的检查不是一次性检查,需要在每次发布主要代码后安排定期检查 CI/CD 管道,以及定期检查。
您的管道工具透明性有多高?
管道的建立和保持透明性是两回事,它的透明性究竟有多高?例如:
您是否将构建、集成和部署指标定位并发布在易于访问的位置,例如开发人员办公室的计算机显示屏上?
是否能够监测构建何时失败以及失败原因?
每个人都可以访问此信息吗?
我提出的上述问题并不是怀疑您的企业存在不诚实的员工或其忠诚度存在疑点。我之所以这样说,是因为当可以快速获取信息时,会带来以下几个明显的益处。
这些好处包括:
让人们承担责任的能力。
集团意识到质量标准下降/提升的情况。
积极肯定成功的结果,例如提供新功能和修复功能。
因此,我建议,如果您还没有开始这样做,则应立即开始收集尽可能多的管道信息。然后尽最大努力让这些信息易于被访问。
但是,不要只显示原始数据。原始数据很好,但它们并不能通过给出适当的上下文或者显示随时间变化的趋势,以便于我们了解管道功能是在改善还是在下降,明确何时采取行动。
从创建到功能发布需要多长时间?
现在,我们已经考虑了一系列孤立的区域,让我们后退一步,对管道进行更多的鸟瞰。从专题报道到专题发布需要多长时间?
这个过程是什么样的?它是一个精简、有据可查、定义明确且顺利的过程吗?还是更随意和杂乱无章?通过这种检查方式,您可以更深入、更彻底地了解它是如何结合在一起并发挥作用的。
在您审查完情况后,应考虑以下问题:
您有标准编写模板吗?
您是否有标准化的审查规则及审查流程?
如何发布它们?
从编写到功能实施(或放弃)需要多长时间?
您写卡片的方式是否适用于企业中的开发人员?换句话说,这些卡片是否包含不必要的术语、缩略词或其他内部术语?
它们是否过于复杂、创建时间过长或试图做得太多?
从头到尾的报告流程是什么?是否有效且透明?
结论
虽然我所提出的问题并不是非常具体、技术性或明确性,但这些问题是帮助提升 CI/CD 管道效率的良好起点。假设您没有全面考虑流程,也没有了解需要解决的关键领域,就匆忙开始。在这种情况下,则存在一种风险, 即您付出大量精力财力却获得了最低收益。
如果您渴望提升 CI/CD 管道的效率和有效性,希望这篇文章能为您的研究工作提供一个良好的开端。请把这些建议作为一个出发点,一个可以激发您的想法和努力并随着时间的推移而建立的起点。
这是一个深刻而复杂的领域,无法迅速或轻松地解决或加以改进。但是,持续改进 CI/CD 管道可以大大节省精力财力。
如需了解更多关于 CI/CD 管道的功能、作用以及使用方法,欢迎立即联系我们(CloudBees授权合作伙伴——龙智)。
文章来源:https://www.cloudbees.com/blog/how-to-identify-major-blockers-in-a-ci-cd-pipeline
评论