五個舉措:現代化Jenkins 和終結“Jenkinsteins”

weixin_33807284發表於2018-12-06

摘要:Jenkins和CloudBees技術長川口耕介(Kohsuke Kawaguchi)上月在尼斯的Jenkins World上發表了演講,談到了現代化這款流行的CI/CD工具的五個正在進行的專案。川口耕介想要解決隨著老化出現的痛點,他倡議圍繞Jenkins Evergreen、Jenkins Pipeline (Blue Ocean)、Jenkins Configuration-as-Code、Jenkins X和雲原生Jenkins這五個專案著手解決。他們每一個都處於不同的發展階段,而且彼此間保持著獨立。

Jenkins和CloudBees技術長川口耕介(Kohsuke Kawaguchi)上月在尼斯的Jenkins World上發表了演講,談到了現代化這款流行的CI/CD工具的五個正在進行的專案。川口耕介想要解決隨著老化出現的痛點,今年早些時候在一篇文章中討論到,特別要注意所謂的“Jenkinsteins”出現了:大量的專案和團隊使用了大量臃腫集中的安裝工具,導致效能低下,以及依賴關係和管理的噩夢。他倡議圍繞Jenkins Evergreen、Jenkins Pipeline (Blue Ocean)、Jenkins Configuration-as-Code、Jenkins X和雲原生Jenkins這五個專案著手解決。他們每一個都處於不同的發展階段,而且彼此間保持著獨立。

Jenkins Evergreen的目標是更快的開箱即用的體驗,它提供預置模版,極大地降低了管理和配置的工作量。此外, Blue Ocean(目前已得到廣泛使用的一個外掛,專注於使流水線更清晰視覺化)將成為預設UI(具體的時間尚未公佈),那麼每次需要修改時就不必再切換到經典UI了。川口耕介稱,Jenkins Evergreen還將提供自我升級功能,對使用者來說基本上是透明的。Evergreen目前處於測試階段,還不推薦用於生產。

川口耕介告訴InfoQ,Evergreen最終將能夠持續交付Jenkins本身。它將支援執行post bootstrap自助測試和診斷,將資訊傳送回相應的團隊,以監控錯誤和趨勢。還將內建自動回滾,以防萬一升級失敗。當被問及使用者是否能夠新增自己的post bootstrap診斷時,川口耕介說,做這個專案的團隊應該考慮這種可能性。

Jenkins Configuration as Code(Jenkins配置即程式碼,也稱為JCasC)旨在支援以YAML格式對Jenkins的設定(具有合理的預設值)進行編碼,以便能夠完全自動化對交付系統的安裝和更新。然後,團隊可以像處理任何其他程式碼提交和拉取請求一樣處理對Jenkins配置的更改,並在出現問題時回滾。最後,刪除對Jenkins UI的依賴可以加速其設定和管理,減少出錯的可能性,提高可重複性。JCasC外掛的1.0版本於9月初發布,已經可以投入生產使用。

Jenkins X 是一個完全獨立於Jenkins的解決方案(儘管它們在幕後共享相同的流水線引擎),Jenkins在今年早些時候引入了這個解決方案。它為基於 GitOps方式的雲本地(基於Docker和Kubernetes)應用程式交付提供了很有獨道見解的檢視。它的優點之一是通過使用常見的第三方工具(Helm 圖表、 Skaffold,和 Prow的1.3版本)以及快速入門功能,使新使用者可以快速上手特定棧的通用流水線自動化。 jx 命令列工具進一步支援管理任務的自動化和流水線及Kubernetes叢集和環境的設定。Jenkins X已經可以用於生產了。

當被問及建立像Jenkins X這樣的獨立解決方案是否會讓人感到困惑或者增加採用的阻力時,川口耕介告訴InfoQ,Jenkins X與Jenkins“有著相同的DNA”,只是側重點不同而已。Jenkins X針對特定的用例和工作流,減少了UI介面。他還認為,隨著人們的接受程度不斷提高,Jenkins X將在某個時候與經典Jenkins 捆綁在一起。川口更喜歡把生態系統看作一個整體:

Jenkins正在變得越來越大,不僅僅是一個web應用程式和一堆外掛。它是一個自動化的平臺。真正讓Jenkins成為Jenkins的是這種生態系統的力量,許多人在此基礎上構建和試驗,並且走的是不同的方向。如果你關注Jenkins X, 會非常明顯地看到其Jenkins DNA。

最後,將Jenkins現代化,使其在Kubernetes中作為一個完整的雲本地應用程式執行,從而受益於更高的可用性和效能,這是雲本地特殊興趣組( Cloud Native special interest group)的目標。為了擺脫傳統的客戶機/伺服器設計,這個團隊將對Jenkins架構進行增量改進。例如,支援Jenkins資料的可插拔外部儲存(當前儲存在伺服器的檔案系統中),並向無狀態Jenkins服務發展。目前還沒有完成這一倡議或其任何部分的時間表。
我們非常渴望從InfoQ讀者這裡得到反饋。在與Jenkins一起成長的過程中,你是否遇到過什麼痛點?你認為正在進行的計劃會消除這些痛點嗎?如果有什麼意見建議,歡迎在下面評論。

檢視英文原文:
https://www.infoq.com/news/2018/11/jenkins-world-initiatives

相關文章