共计 2335 个字符,预计需要花费 6 分钟才能阅读完成。
【注】本文译自:https://www.edureka.co/blog/w…
继续集成是 DevOps 最重要的局部,用于集成各个 DevOps 阶段。Jenkins 是最驰名的继续集成工具,我晓得你很好奇 Jenkins 受欢迎的起因以及 Jenkins 是否容易学习。我确信浏览完本文后,您的所有问题都会失去解答。
让咱们用简要概括什么是 Jenkins。
什么是 Jenkins 以及为什么要应用它?
Jenkins 是一个用 Java 编写的开源自动化工具,带有用于继续集成的插件。Jenkins 用于继续构建和测试您的软件我的项目,从而使开发人员更容易将更改集成到我的项目中,并使用户更容易取得新的构建。它还容许您通过与大量测试和部署技术集成来继续交付软件。
借助 Jenkins,组织能够通过自动化来减速软件开发过程。Jenkins 集成了各种开发生命周期过程,包含构建、文档、测试、打包、模仿、部署、动态剖析等等。
Jenkins 借助插件实现了继续集成。插件容许集成各种 DevOps 阶段。如果要集成特定工具,则须要装置该工具的插件。例如 Git、Maven 2 我的项目、Amazon EC2、HTML 发布者等。
下图描述了 Jenkins 正在集成各个 DevOps 阶段:
Jenkins 的劣势包含:
- 是一个具备社区大力支持的开源工具。
- 易于装置。
- 领有 1000 多个插件,可简化您的工作。如果不存在插件,则可通过编码实现并与社区共享。
- 它是收费的。
它是用 Java 构建的,因而能够移植到所有次要平台。
Jenkins 的某些方面将其与其余继续集成工具辨别开来。让咱们看看这些要点。Jenkins 的个性
以下是无关 Jenkins 的一些事实,这些事实使它比其余的继续集成工具更好:
- 利用:Jenkins 利用十分宽泛,在寰球范畴内有超过 147,000 个沉闷装置和超过 100 万用户。
插件:Jenkins 与 1000 多个插件互连,从而使其能够与大多数开发、测试和部署工具集成。
从以上几点能够看出,Jenkins 在寰球范畴内有很高的需要。在咱们深入研究 Jenkins 之前,先理解什么是继续集成以及它的重要性。什么是继续集成?
继续集成是一种开发实际,在这种实际中,要求开发人员每天屡次或更频繁地对共享存储库中的源代码提交更改。而后构建存储库中进行的每个提交。这使团队能够及早发现问题。除此之外,依据继续集成工具的不同,还有其余一些性能,例如在测试服务器上部署构建应用程序,为相干团队提供构建和测试后果等。
让咱们通过用例理解它的重要性。继续集成示例:诺基亚
我敢肯定,您毕生中的某些时候都应用过 诺基亚 手机。在诺基亚的一个软件产品开发我的项目中,有一个名为 每晚构建(Nightly builds)的过程。每晚构建能够被认为是继续集成的前身。这意味着每天晚上,自动化零碎都会拉一整天增加到共享存储库中的代码并构建该代码。这个想法与继续集成十分类似,然而因为在夜间构建的代码很大,因而查找和修复谬误的确很麻烦。因而,诺基亚采纳了继续集成(CI)。后果,构建了对存储库中的源代码的所有提交。如果构建结果表明代码中存在谬误,则开发人员仅须要查看该特定提交。这大大减少了公布新软件所需的工夫。
当初是理解 Jenkins 如何实现继续集成的正确机会。使用 Jenkins 继续集成
让咱们设想一个场景,构建了应用程序的残缺源代码,而后将其部署在测试服务器上进行测试。听起来这是开发软件的现实办法,然而这个过程存在许多缺点。我将逐个解释:
- 发人员必须等到开发出残缺的软件能力取得测试后果。
- 测试后果很有可能显示多个谬误。开发人员很难找到这些谬误,因为他们必须查看应用程序的整个源代码。
- 这会减慢软件交付过程。
- 对于编码或架构问题、构建失败、测试状态和文件公布上传等问题的继续反馈会导致软件品质降落。
- 整个过程是手动的,这减少了频繁故障的危险。
从上述问题能够显著看出,不仅软件交付过程变慢,而且软件品质也降落了。这导致了客户的不满。因而,为了克服这种凌乱,迫切需要一个零碎,使开发人员能够间断触发构建并测试源代码中的每个更改。这就是 CI 的全副意义所在。Jenkins 是可用的最成熟的 CI 工具,因而让咱们看看运行 Jenkins 的继续集成如何克服了上述毛病。
首先,我将向您介绍使用 Jenkins 进行继续集成的通用流程图,能够高深莫测地看到 Jenkins 如何克服上述毛病。同时有助您理解 Jenkins 的工作形式。
上图形容了以下性能: - 首先,开发人员将代码提交到源代码存储库。同时,Jenkins 服务器会定期检查存储库是否有更改。
- 提交后不久,Jenkins 服务器检测到源代码存储库中产生的更改。Jenkins 将拉出这些更改,并将开始筹备新的构建。
- 如果构建失败,那么相干团队将失去告诉。
- 如果构建胜利,Jenkins 将在测试服务器中部署新的版本。
- 在测试之后,Jenkins 会生成反馈,而后告诉开发人员构建和测试后果。
它将持续查看源代码存储库中是否对源代码进行了更改,并且整个过程一直反复。
您当初晓得了 Jenkins 是如何克服传统 SDLC 毛病的。下表显示了“使用 Jenkins 前后”的比照。使用 Jenkins 前后比照
使用 Jenkins 前 | 使用 Jenkins 后 |
---|---|
构建并测试了整个源代码。在构建和测试失败的状况下查找和修复谬误既艰难又耗时,这反过来又减慢了软件交付过程的速度。 | 在源代码中进行的每个提交都将被构建和测试。因而,开发人员无需查看整个源代码,而只须要专一于特定的提交即可。可频繁公布新软件。 |
开发人员必须期待测试后果 | 开发人员晓得源代码中每次提交的测试后果。 |
整个过程是手工的 | 您只须要提交对源代码的更改,Jenkins 将为您主动实现其余过程。 |