高效率團隊為啥都會選擇 Jenkins?一文帶您瞭解 Jenkins

語言: CN / TW / HK

你好,這裡是網路技術聯盟站。

相信不管是做開發還是測試的朋友,對於 Jenkins 應該很熟悉,即使你用的是其他相同功能的的工具,聽總歸聽過吧,那麼你知道 Jenkins 的架構是什麼樣子嗎?它的優勢在哪?本文瑞哥就帶著大家好好了解一下 Jenkins 這個強大的工具。

讓我們直接開始!

什麼是 Jenkins?

Jenkins 是一個用 Java 編寫的開源自動化工具,用於 持續整合 ,集成了所有型別的開發生命週期流程,包括構建、文件、測試、打包、階段、部署、靜態分析等。

Jenkins 擁有超過 1000 個外掛,可以輕鬆配置和自定義任何專案,因為其開源性質,所以一分錢也不收,對絕大數公司來說,Jenkins 絕對是一個特別香的工具。

什麼是持續整合?

持續整合是 DevOps 中最重要的部分之一,用於將 DevOps 的各個階段整合在一起,可以使得開發團隊能夠非常頻繁地對程式碼和版本控制方法進行小幅更改,持續整合通常以所有開發人員每天多次將程式碼推送到共享儲存庫的形式完成。它非常適合應該在不同平臺上使用多種工具進行編碼和開發的專案。

為什麼需要選擇 Jenkins?

想象一下沒有 Jenkins 的時候,一個軟體專案從初期到交付是什麼樣的。

開發人員首先完成程式碼開發、測試,然後檢查錯誤,一般來說團隊中的開發人員傾向於獨立工作,每個人都會寫大段程式碼新增到專案中,那麼對於這個整體專案而言,檢查專案整體的程式碼錯誤就顯得非常繁瑣而龐大。

並且多個開發人員將各自的開發分支向版本控制傳送提交,也會增加許多時間,迭代程式碼速度非常緩慢,這樣就會直接影響軟體交付的完成率。

所以急需持續整合進行介入提高效率,而 Jenkins 就是其中一種。

Kohsuke Kawaguchi 於 2004 年在 Sun Microsystems 工作時首次開發了 Hudson,當甲骨文在 2010 年收購 Sun Microsystems 時,甲骨文和 Hudson 社群之間就使用的基礎架構發生了爭執,2011 年 1 月 29 日,有人呼籲將專案名稱從 Hudson 更改為 Jenkins,並在 2011 年 1 月 29 日獲得了 Hudson 社群的壓倒性批准,從而建立了第一個“Jenkins”專案。

Jenkins 架構

以單個 Jenkins 服務為例,Jenkins 工作過程一般為:

  1. 開發者從程式碼倉庫拉程式碼

  2. 開發者本地開發後將程式碼推送到程式碼倉庫

  3. Jenkins 對開發者更新的程式碼進行編譯、檢查,一旦發生錯誤會立即通知開發者。

Jenkins 叢集架構

如下圖所示,Jenkins 叢集包含了一個主節點,三個從節點。

主從單元使用 IP/TCP 協議相互通訊,下面我們來介紹一下 Jenkins 主從節點:

Jenkins 主節點

Jenkins 主節點負責處理許多工,包括但不限於排程構建作業、記錄和呈現構建結果、將構建分派給從屬伺服器執行、離線和線上監控所有從屬伺服器等,Jenkins 主節點可以直接執行構建作業。

Jenkins 從節點

Jenkins 從節點一般在遠端伺服器上執行,遵循 Jenkins master 的請求,相容所有作業系統,主要負責執行 Master 分派的構建作業。

Jenkins 優點

  • 免費開源,可以在任何支援 Java 虛擬機器 (JVM) 的作業系統上執行,包括 Windows、Linux、Mac OS X 和 Solaris。

  • 可通過大量現有外掛進行高度擴充套件,靈活性比較高。

  • 易於配置、擴充套件和修改,允許即時生成測試以及在不同平臺上構建、自動化和部署程式碼。

  • Jenkins 擁有廣泛的知識庫、豐富的文件和豐富的社群資源,這些資源使 Jenkins 安裝的安裝、管理和故障排除變得更加容易。

Jenkins 相關網站

1、Jenkins 官網

https://www.jenkins.io/

複製程式碼

2、Jenkins github

https://github.com/jenkinsci/jenkins

複製程式碼

總結

總的來說,Jenkins 提供了一種簡單的方法來設定 CI/CD 環境,廣泛應用於作業執行批處理操作、應用程式和基礎設施程式碼的持續整合、執行臨時操作,如備份、清理、遠端等。

本文精簡的介紹了 Jenkins 的基本介紹、工作流程、架構、優勢等,希望本文對您有所幫助,最後感謝您的閱讀,如果覺得文章對您有幫助,別忘了點贊:+1:、收藏:star:哦!有任何問題,歡迎在下方評論區與我討論!!!

劃線

評論

複製