9 个有趣的 Jenkins 项目想法和主题 [适合初学者和有经验者]

已发表: 2020-09-10

Jenkins 是一个深受 DevOps 专业人士欢迎的开源工具。 它有利于持续集成,并且是用 Java 构建的。 如果您正在学习 DevOps 和自动化,您应该了解 Jenkins,因为它是最著名的 DevOps 团队工具之一。 DevOps 团队在整个软件产品的开发周期中使用此工具。

了解像 Jenkins 这样的工具的最好方法是研究它的项目。 这就是为什么我们将在本文中讨论我们最重要的 Jenkins 项目想法。 我们的项目适用于各种技能水平,因此您可以根据自己的兴趣和经验进行选择。 让我们开始:

目录

我们的顶级 Jenkins 项目创意

先决条件

请注意,在开始从事以下任何 Jenkins 项目之前,您应该对 Java 有足够的了解。 Jenkins 基于 Java,因此,您应该熟悉它的语法和实现。 否则,您将很难完成我们在下面讨论的一些项目。 有些项目需要额外的技能。

1. 蓝色海洋

这是您在使用 Jenkins 时应该了解的项目。 Blue Ocean 允许用户通过图形创建、诊断和可视化CD(持续交付)管道。 它通过提供独特且易于使用的图形界面来简化 Jenkins 的使用。 无论您是持续交付管道的新手还是有一些经验,您都会发现它相对容易学习。

Blue Ocean 自推出以来已成为 Jenkins 不可或缺的一部分,这就是为什么您必须了解它的工作原理。 了解 Blue Ocean 将确保您了解 Jenkins 的工作原理以及如何将其用于持续交付。 它的可视化功能允许您以这样一种方式表示管道,您也可以将它们展示给非技术用户。 简单的表示也使问题的诊断变得容易。 您可以通过使用可视化轻松找到错误并快速纠正错误。

总而言之,了解 Blue Ocean 对熟悉 Jenkins 会大有裨益。

2. 詹金斯基础设施

Jenkins 是一种开源技术。 这意味着它的代码对所有人开放。 如果您是一位经验丰富的程序员并想展示您的专业知识,您可以为其基础架构做出贡献。 它会在你的简历上看起来很棒,并帮助你了解很多关于协作任务的知识。 您还将体验开源技术如何变得更好,同时帮助 Jenkins 变得更好。

有多种方式可以为 Jenkins 基础设施做出贡献。 您可以为他们的网站或技术的主要基础设施做出贡献。 要为站点做出贡献,您必须使用 HTML,而您需要实现 Ruby 来为基础设施贡献。 它拥有一个蓬勃发展的开发人员和贡献者社区,如果您遇到任何问题,他们很乐意为您提供帮助。 你可以去这里了解更多关于 Jenkins 基础设施的信息

3.詹金斯远程项目

对于网络学生和爱好者来说,这是一个极好的项目创意。 它将允许您学习 Jenkins 的网络应用程序并了解如何增强其实现。 Jenkins Remoting 是一个用于实现通信层的存档和库。 它有TCP协议、数据流、过程调用等。因为它是基于TCP协议的,同样的失败也会导致代理的连接失败。 当多个代理通过它进行通信时,这些协议也会造成障碍。 这些缺点影响了 Jenkins 的规模和稳定性。

所以在这个项目中,你可以改进 Jenkins Remoting。 您可以通过使其与消息总线/队列技术(ActiveMQ 或 RabbitMQ)兼容来做到这一点。 它可以作为 Jenkins 的容错层。 要完成这个项目,您应该熟悉网络、消息队列和 Java 的基础知识。

4. 改进 Jenkins ATH

Jenkins ATH(验收测试工具)是一个在部署之前测试 DSL 库和 Jenkinsfiles 的工具。 然而,这个工具的旧版本有几个缺点:

  • 它必须为每个测试方法引导一个完整的实例,因此性能相对较慢
  • 真实环境通常需要一组精确的插件及其版本

您可以通过修复这两个问题来改进 Jenkins ATH。 如果您之前没有参与过任何 Jenkins 项目,您可以先解决其中一个问题,然后再着手解决下一个问题。 要完成这个项目,您应该熟悉 Docker 和 Selenium,以及 Java。

5. Discard Builds 步骤的插件

在这个项目中,您必须创建一个插件,让用户能够更适当地管理他们的数据保留策略。 该插件应允许用户实施策略以构建工件、历史记录和工作空间。 通常,任务的管理员必须处理此问题,但为项目贡献者提供实施其数据保留策略的能力会更合适。 您的插件应该使用户能够使用管道构建步骤创建和定义他们的数据保留策略。

您可以改进 Discard Old Builds 工具并使其更适合代码。 您可以专注于提供比当前 Discard Old Builds 工具提供的更多功能。 您的插件的工作可以分为两个部分。 首先,它会根据特定作业的历史选择它必须丢弃的构建。 然后它应该丢弃它添加到其列表中的构建。

这是 Jenkins 最感兴趣的项目之一,通过完成它你会学到很多东西。 您可以使用 Run Selector Plugin 作为项目的基础。

6. 代码覆盖率

您可以构建一个执行代码覆盖的插件。 虽然它是最常见的 Jenkins 项目理念之一,但您可以通过使您的代码覆盖工具独特而强大来更进一步。 例如,您可以将多个代码覆盖工具合并为一个,使您的插件更加通用和实用。 如果您是初学者,则只能构建一个简单的代码覆盖率插件。 另一方面,如果您是一位经验丰富的 Jenkins 程序员,您可以按照我们在此处分享的想法使项目更具挑战性,即将不同的插件组合成一个。

除了 Java,你还必须在这个项目中实现 HTML 和 CSS。 它们将帮助您使工具的结构和外观更好、更吸引人。

7. EDA 工具

由于各种优势,电子设计自动化(简称 EDA)工具在工程师中非常流行。 您可以构建一个插件,将一个 EDA 工具与 Jenkins 集成,同时提高两者的性能。 将 EDA 工具与 Jenkins 集成将允许用户执行他们以前无法完成的许多任务。 例如,他们可以发布时序报告,根据自己的要求使用其他 Jenkins 插件,启动带有步骤的 Pipeline 作业等。

市场上有许多可用的开源 EDA 工具。 您可以从任何一种开源工具(FuseSoC、icetools、Yosys 等)中进行选择,或者选择您喜欢的其他方式。 如果您是初学者,您可以从一个 EDA 工具开始,并将其与 Jenkins 集成。 另一方面,您可以通过将不同的 EDA 工具与各种 Jenkins 插件集成来使这项任务更具挑战性。 学习Jenkins在工程领域的应用是一个很好的项目。

8. Jenkins 指纹的外部存储

Jenkins 通过其指纹引擎存储工件、凭据、它们的使用历史和其他相关数据。 该引擎有一个带有各种 WebUI 的 XML 数据库,以方便其操作。 您可以制作一个 Jenkins 插件,允许 Jenkins 指纹引擎存储其外部存储数据。

许多组织可能由于各种原因(例如,引擎中的低存储空间)必须将其数据导出到另一个存储。 您的解决方案将允许用户从引擎中导出他们的数据并将其用于其他目的。 在你开始从事这个项目之前,你应该有一些从事 Jenkins 项目的经验。

您必须使用 JavaScript、REST API 和 Java 来完成此任务。 您还应该熟悉数据库及其操作,因为您将在此项目中使用它们。

9. 詹金斯的工作转换器

Jenkins 是用于持续交付的工具,因此它专注于流水线以提高效率。 但是,我们都知道许多工作是自由式的,而不是基于流水线的。 您可以为 Jenkins 构建一个工具,将自由式作业转换为流水线作业。 该设备必须将自由式作业数据迁移到其数据库并将其安排到管道作业中。

作为初学者,您可以通过制作简单的迁移和转换工具来保持项目简单。 另一方面,您可以通过使其能够迁移多个自由式作业并将它们转换为单个管道作业来使其更具挑战性。

您的工具将有两个部分,一个用于数据迁移,另一个用于转换。 您应该熟悉 Groovy(负责 Jenkins Pipeline 的语言)、Python、Java、XML 和 Jenkins Pipelines 才能参与此项目。

了解有关 Jenkins 和持续交付的更多信息

我们已经到了列表的末尾。 我们希望您发现我们的 Jenkins 项目想法对您有所帮助。 从事这些项目将帮助您成为更好的 Jenkins 用户和开发人员。 它也会让你获得持续交付实施的经验。 如果您想了解有关 Jenkins 和持续交付的更多信息,我们建议您访问我们的博客。 您会在我们的博客上找到许多有价值且令人兴奋的资源(例如这个)。 这里有两个供您进一步阅读:

  • 詹金斯在印度的薪水
  • 什么是詹金斯? 历史、建筑等
  • 詹金斯面试问题

如果您有兴趣了解有关全栈开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发 PG 文凭,该文凭专为在职专业人士设计,提供 500 多个小时的严格培训、9 个以上的项目和作业, IIIT-B 校友身份,实用的实践顶点项目和顶级公司的工作协助。

你对这篇文章有什么看法? 您最喜欢哪个项目创意? 在下面的评论部分让我们知道。

软件开发课程 | 掌握 Java、C、Python 等‎

行业值得信赖的学习 - 以实践为导向的课程 - 行业认可的认证。
今天报名