最常见的两个 Jenkins 问题,以及解决方法
Jenkins 是当今最流行的持续集成工具之一,据有关报告估算,超过 70%的 CI 流水线都在使用 Jenkins,它还是很多技术团队第一个使用的自动化工具。但它也有一个明显弱点:难以达到企业级管理和扩展,这同时催生了很多问题。
阅读本篇文章,您能了解到最常见的两个 Jenkins 问题:Jenkinsteins(大量的项目和团队使用了大量臃肿集中的安装工具集,导致性能低下,以及依赖关系和管理的噩梦)和 Jenkins 孤岛,以及应对这两个问题的解决方法。
如需了解更多 Jenkins 企业版——CloudBees 的相关信息,请联系CloudBees授权合作伙伴——龙智。
持续集成和持续交付 (CI/CD) 之所以成为当今软件流水线的标准,是有原因的。在 CI/CD 之前,测试和交付过程是手动的。可重复性几乎是不可能的,而发布则是件压力很大的事情,需要在最后时刻争先恐后地修复重大缺陷。一个忙碌的团队当然做不出最好的作品,雪上加霜的是,软件质量往往不尽如人意。
Jenkins 在流水线自动化方面的广泛应用(全球 70%的开发人员都在使用它!)改变了一切。软件组织依靠 Jenkins 来支持一致的、可重复的、早期和经常性的测试,这反过来又意味着更频繁的提交和更高质量的软件更快地进入市场。显然,开源的 Jenkins 是一个出色的 CI/CD 解决方案,但它有一个明显弱点:为企业管理和扩展 Jenkins 是一场艰苦的战斗。
为了解决与治理、开销管理、插件管理、基础设施管理和团队动态相关的挑战,催生了两种常见(且令人厌恶)的场景:Jenkinsteins 和 Jenkins 孤岛。
“Jenkinsteins”——单体服务器
创建一个 Jenkins 单体服务器并让组织中的每个人都使用它,这就是 Jenkinstein 方法。虽然看起来很合理,但它会使您的服务器变得非常脆弱,并有可能使业务增长停滞。让我们看看 Jenkins 单体服务器在实际应用中的四个主要问题。
缓慢的服务器:当服务器过载时,会直接影响构建和测试时间,从而影响您快速创新的能力。
单点故障:如果您唯一的 Jenkins 服务器出现故障,整个软件组织的生产就会暂停,直到故障得到解决。
插件冲突:插件是 Jenkins 伟大的一部分,但是由于各个团队的不同要求,拥有一个 Jenkins 单体服务器可能会产生插件冲突。
个人依赖:一切都取决于组织中“Jenkins 伙伴”配置和维护脆弱的设置。
当这些摩擦出现时,许多团队选择自行出击,这就产生了 Jenkins 孤岛。
“Jenkins 孤岛”——断开连接的控制器
通常,组织内的每个团队都有自己的 Jenkins 控制器。这确实防止了 Jenkinsstein 问题,但也带来了新的麻烦。所有这些单独的服务器,都营造出每个团队在只有自己的孤岛上生活的感觉。结果呢?
没有管理:让每个团队都按照自己的规则和实践工作是一场管理噩梦。几乎不可能控制谁有权访问什么,并且不会出现最佳实践。
合规性挑战:没有适当的机制来确保团队始终如一地运行测试。例如,一些团队可能会将安全扫描内置到其流水线的每个部分中,而其他团队可能不会。您将永远无法实现合规性。
缺乏协作:很难在不同且断开连接的 Jenkins 控制器之间切换任务。如果一个团队发现了一种更有效地做事的新方法,他们没有办法与其他孤立的团队共享这些信息。
隐性成本:工程师不应该浪费他们宝贵的时间和资源来维护一系列 Jenkins 实例和配置。
请记住:没有人是一座孤岛,Jenkins 控制器也一样。
优化和扩展 Jenkins,实现更快、更可靠的 DevOps
无论是 Jenkins 扩张、单体控制器、插件漏洞、耗时的管理任务,还是不断膨胀的基础设施成本,管理和扩展开源 Jenkins(更不用说创造一种文化,打破孤岛,每个人都在一个共享的愿景)都是一项艰巨的任务。为了实现这一切,您需要为所有运行 Jenkins 的开发团队提供共享、集中管理、受管控的体验——这正是CloudBees CI所提供的。
文章来源:https://www.cloudbees.com/blog/most-common-issues-scaling-jenkins
如需了解更多 CloudBees CI 的相关信息,请联系CloudBees授权合作伙伴——龙智:
官网:www.shdsd.com
电话:400-775-5506
邮箱:marketing@shdsd.com
评论