博客 / 詳情

返回

演講回顧:如何為大規模研發團隊加速CI構建,實現高效流水線

近日,龍智聯合Atlassian舉辦的DevSecOps研討會年終專場”趨勢展望與實戰探討:如何打好DevOps基礎、賦能創新”在上海圓滿落幕。龍智Atlassian技術與顧問諮詢團隊,以及清暉、JamaSoftware、CloudBees等生態夥伴的嘉賓發表了主題演講,分享他們在DevOps領域的豐富經驗與獨到見解,並圍繞Atlassian最新產品趨勢與Jira、Confluence等工具的最佳實踐,展開了深入探討。

本篇文章回顧CloudBees亞太區資深解決方案工程師楊海濤的演講,分享如何將Jenkins升級為能夠為大型企業提供支持的CloudBees CI,它的特點與優勢,以及其如何與Atlassian的Jira、Confluence等產品集成。歡迎閲讀!

演講回顧

如何為大規模研發團隊加速CI構建,實現高效流水線

圖片

大家好,我是CloudBees亞太區資深解決方案工程師楊海濤。很高興參與今天的活動,也感謝龍智的邀請。
我的演講將分為三部分。首先,我會簡要介紹一下我的公司——CloudBees公司,包括我們的主要產品。接下來,我將詳細介紹企業級Jenkins——CloudBees CI。最後,我將分享CloudBees如何與Atlassian平台結合使用。

CloudBees公司及產品簡介

在國內,大家可能對CloudBees還不太熟悉。其實,CloudBees是Jenkins最主要的貢獻者。事實上,Jenkins 80%的代碼由CloudBees提供,並且許多大家熟悉的Jenkins插件也是由CloudBees開發的。由於多年來我們一直是Jenkins的主要開發者,我們深刻了解如何使Jenkins變得更強大、更符合當代企業的需求。
Jenkins在市場上已經存在十多年,擁有龐大的生態系統,超過1,800個插件。Jenkins擁有活躍的全球社區,超過70%的開發者正在使用。最近發佈的市場專家機構的報告顯示,Jenkins的用户數量仍在增加。
為什麼Jenkins能夠保持如此長時間的活力呢?主要原因在於它能夠兼容各種硬件,平台,操作系統,中間件和工具。

企業級Jenkins——CloudBees CI

也許大家會有疑問,既然Jenkins本身功能如此強大,為什麼我們還需要CloudBees?使用免費的開源Jenkins不就足夠了嗎?從Jenkins的功能來看,它確實擁有許多功能和插件,能夠完成各種工作。然而,請記住一點,和所有的免費、開源軟件一樣,Jenkins注重於其核心功能,卻難以滿足大型企業的非功能性需求。讓我們來看一下一些常見情況。

圖片

最常見的情況是,企業為了減少管理控制器的數量,將所有內容放在一個單一控制器上,我們稱之為“巨型Jenkins”。這種情況可能會引發什麼問題呢?當Jenkins規模龐大時,兼容性問題幾乎無法解決。在升級Jenkins時,由於這些問題,它可能會直接崩潰。
另一個問題更為嚴重,就是當所有內容都集中在一個Jenkins上時,它可能成為企業中最大的單點故障因素。一旦它宕機,所有工作都會停滯。因此,高可用性和負載均衡也成為一個嚴重問題。
有些企業選擇另一種方式,為每個團隊使用一個Jenkins,這樣確實可以增加每個團隊的自主性,但也會帶來其他問題。如何瞭解各個Jenkins實例的當前狀態是否穩定?如何集中、高效地管理更多的實例?
共享資源也是一個挑戰,例如Jenkins的代理無法共享。對於有限的資源,如何通過代理在不同Jenkins實例之間實現資源共享?此外,如果有新的團隊,如何快速為他們創建新的Jenkins實例並賦予高度自主權?
您可能還會面臨其他問題,如安全性問題,如何確保所有用户只能執行其被授權執行的操作?還有技術支持問題,使用開源軟件和大量的開源插件,一旦出現問題,誰來提供支持?
在您開始使用Jenkins時,特別是在大型企業使用一段時間後,您可能會發現到了一個瓶頸期——難以真正將其擴展到整個組織的結構中。這就是為什麼大中型企業需要一個企業級Jenkins——CloudBees。

圖片

在CloudBees CI中,我們究竟增強了哪些方面,才使其成為一款適用於企業級產品?

首先,如果您目前使用的是開源Jenkins實例,那麼每個Jenkins都是單兵作戰。而在CloudBees CI中,我們增加了一箇中心的管理節點Operations Center。通過Operations Center,您可以一鍵創建新的Jenkins實例,也叫Controller。CloudBees CI還可以在Kubernetes中動態生成Agent,並在在所有的Controller中進行共享。此外,您也可以創建新的Agent和Controller,部署在其他裸金屬、虛擬機或容器中。

這是一個重要且最顯著的不同之處。Jenkins是單兵作戰,而CloudBees CI則採用了集羣作戰的模式。您可以創建任意數量的實例,但它們都受到一箇中心的管理。

圖片

通過這種方式,可以實現很多期望的目標。例如,一鍵創建新的Jenkins實例,僅需幾分鐘即可完成。創建完成後,每個團隊都可以自主控制自己的Jenkins實例。同時,這些實例都會有一箇中心的管理點,並由CloudBees CI進行整體管理。通過共享Agent,可以在整個集羣範圍內充分共享有限或受限的資源。

圖片

剛剛提到CloudBees CI的重要優勢在於集羣作戰,但我們的創新不僅於此。在2023年,我們推出了迄今為止最重要的Jenkins價值中心——實現高可用和高性能的Jenkins。
那麼高可用的真正能力是什麼呢?它除了可以讓所有Jenkins實例並肩作戰外,同時賦予其更強大的功能——分身術。
在過去,Jenkins實例是在一個容器或虛擬機中運行的進程,現在我們可以更加複雜地設計它的結構,加上前端的負載均衡,後面可以有任意多的實例,它們可以共同發揮作用。這樣做的好處在於,通過負載均衡器可以實現負載均衡、避免單點故障,並確保其具有更穩定、更優越的性能。如果您的環境安裝在像Kubernetes這樣的平台上,那麼可以通過滾動升級實現零停機的要求。此外,還可以通過監控CPU等資源使用來實現節點的彈性伸縮,或者手動進行彈性伸縮。
所有這些都可以實時同步,因為CloudBees與Jenkins是共享的,並且具有共享內存和數據的機制。

圖片

Jenkins的插件數量龐大,並且插件之間關係複雜。當日常升級Jenkins時,就會發現一個問題——很難找到合適的插件版本來保證所有的插件都能正常工作。尤其是在插件比較多的情況下,這個問題就會更加明顯,有時甚至可能導致生產系統崩潰。
因此,我們為企業級客户提供了Beekeeper,這也是CloudBees的核心優勢之一。Beekeeper可以幫助客户管理插件,包括驗證與產品升級等。
也許有人會問:“1,800個插件都能管理嗎?”實際上,在這1,800個插件中,最常用的可能只有兩三百個,目前CloudBees只需將這些最核心的插件放入自己的管理池中,便可以滿足大多數用户的需求。這樣,每次進行升級時,我們不僅提供新的Controller版本或Jenkins版本,同時還會將所有與之相兼容的核心插件一併發佈給客户,而這些插件的版本兼容性都是我們事先驗證過的。
通過這種方式,客户無需擔心插件之間的衝突問題,也無需擔心與Jenkins本身的兼容性問題,因為CloudBees會協助客户進行全面管理。

圖片

因此,CloudBees能夠為客户提供可靠的支持。我們的技術支持團隊由經驗豐富、擁有多年Jenkins經驗的專家組成,能夠在全球範圍內提供7x24小時的技術支持。

圖片

在提及輕鬆擴展時,相信大家會想到一個問題:在輕鬆擴展完之後,幾十個甚至上百個實例該如何管理?也就是説,在集羣作戰模式下,CloudBees CI如何管理所有的實例?

在CloudBees的Operation Center中,提供了一箇中心管理工具。通過此工具,您可以使用過濾器選擇所有的Controller與實例,也可以根據條件選擇要執行操作的實例。選擇完成後,您可以進行各種日常任務,如備份、安裝、執行腳本、重啓和升級等。您可以將這些操作編輯在一起,然後決定如何執行。例如,您可以將其作為日常運維任務定期執行,或通過其他操作進行觸發執行。

通過這種方式,您可以高效、自動化地管理Jenkins。舉個例子,我們有一位大客户,他們目前已經運行了上千個實例,但仍然運行非常穩定,集中管理的方式在此起到了關鍵作用。通過集羣中心的管理方式,能夠獲得整個集羣範圍內的可見性與可維護性。

圖片

在有很多Jenkins實例的情況下,該如何進行角色權限控制?在開源的Jenkins中,每個Jenkins實例的權限管理都受限於自身,無法嚴格控制所有角色。而CloudBees CI採用基於角色的權限控制管理,引入角色和羣組的概念,可以去定義各個層級的羣組,包括集羣, 文件夾, 單個Jenkins實例等。如果您使用的是LDAP或AD等外部工具,也可以將其連接在一起,直接映射到CloudBees CI中。
CloudBees CI的權限控制細化到什麼程度呢?例如,您希望每個開發團隊的成員只能訪問自己的實例。他們可以看到自己或其他人的實例,可以看到其他組織,但不能對其進行操作。通過CloudBees CI的角色權限管理模型,能夠輕鬆配置,實現細化的全局權限管理。

圖片

以上是CloudBees CI比較核心的功能。現在,我再給大家介紹另外兩款產品。
如果考慮到流程的持續改進,我們還有另外一款產品——CloudBees CD/RO。它的主要功能是實現軟件在生產環境中的持續部署,以及軟件發佈全生命週期的流程管理。它更像是工作流工具,只不過面向的是企業應用的發佈流程。通過此工具,我們可以協調所有的基礎設施,包括在開發過程中使用的不同工具、相關的流程、不同角色的審批及參與,通過調動所有的這些工作,將整個軟件開發流程以可視化的方式呈現,並進行整體控制。
CloudBees CD/RO有一個重要功能,它可以和CI結合,收集整個軟件開發過程中相關的數據模型。另外,也可以從外部系統中收集相關數據。整合數據後,它將為大家呈現多樣化的數據分析圖表,包括Dora等數據分析圖表或定製數據報表。

圖片

接下來我要介紹的是CloudBees的下一代產品。大家都知道,現在企業都在關注以開發者為中心的內部開發平台。CloudBees也開發了相應產品,叫做CloudBees Platform。它能夠無縫地調動和控制Jenkins和CloudBees,讓傳統應用在此平台上能夠順暢運行。更重要的是,如果您正在開發雲原生的應用,此平台也提供無縫的DevSecOps環境,幫助您快速構建自己內部的開發平台。所以,這其實就是我們CloudBees基於TEKTON打造的平台構建工具。
目前,CloudBees Platform的重要優勢在於它的授權同時包括了CloudBees CI和CloudBees Platform。對於現有的CloudBees CI客户,以及正在使用Jenkins並想要升級到CloudBees CI的客户來説,這意味着一次升級(從Jenkins升級到CloudBees CI),您不僅能擁有一個企業版Jenkins,同時還能擁有一個面向未來的企業內部的開發基礎平台——CloudBees Platform。
由於CloudBees是Jenkins的主要貢獻者,所以我們未來還將在此平台為客户提供一個重要且獨特的創新——類似SaaS Jenkins的體驗。Jenkins的任務例如流水線等,都可以在此平台上運行。在未來,後台可以運行一個類似在線Jenkins實例,幫助您把任務運行完成,免去維護本地Jenkins或CloudBees CI的工作量。

CloudBees + Atlassian

圖片

Jenkins本身擁有豐富的插件,能夠無縫集成Atlassian產品,包括Jira、Confluence和Bitbucket等,都有現有的插件支持。而企業級Jenkins——CloudBees CI與Jenkins別無二致,其完全遵循Jenkins的開放理念。因此,Jenkins現有的所有插件都可在CloudBees CI中直接運行。

圖片

舉例來説,CloudBees CI與Jira的集成能夠實現在編譯結果中展示Jira信息、在Jenkins任務中 引用Jira信息,以及在Jenkins流水線中更新Jira信息,並且操作都非常便捷。
以上就是我演講的全部內容,非常感謝大家的聆聽。再次提醒大家,龍智目前是CloudBees在國內的合作伙伴,如果您對我們的產品有任何疑問或想了解更多信息,請隨時聯繫龍智,謝謝大家!

user avatar destiny_zxx 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.