许多企业已通过继续集成、交付和部署 (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/blo…