9 個有趣的 Jenkins 項目想法和主題 [適合初學者和有經驗者]
已發表: 2020-09-10Jenkins 是一個深受 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 校友身份,實用的實踐頂點項目和頂級公司的工作協助。
你對這篇文章有什麼看法? 您最喜歡哪個項目創意? 在下面的評論部分讓我們知道。