這篇文章主要是來聊一聊jenkins,可說道jenkins,我沒有辦法不把它與持續整合(Continuous integration,簡稱CI)聯絡到一起,所以我先來談談什麼是持續整合以及為什麼需要持續整合?
我舉個生活中的直觀例子,最近家裡剛剛搞完裝修,就發現這裝修的過程中,暗含著很多持續整合的思想,比如說地板,你家的房子50平,80平,100平,又有臥室客廳,可是地板塊的大小就是統一的,而且都很小塊,小而靈活就是持續整合的一個關鍵,其次呢,無論在哪裡,地板要從一個邊開始,一塊一塊的鋪,鋪完一塊敲一下讓地板塊緊密排布在一起,再鋪另一塊,如果發現這塊是殘次品,趕緊換另一塊,而不是全部鋪完,再一起檢查。你可以把每一塊地板看作是一行代碼,持續整合就是你寫一行代碼就會整合一次檢測一次。再比如家裡要安裝水管和電路,地板鋪完了要測試下是不是把水管敲壞了,線路鋪完了,,水管裝好了 都要用一用。如果全部裝完了再測,出現問題可能會互相影響,比如電路不行咋辦呢?可能要把地板撬開……。那麼每完成一部分就測試,這也是持續整合的一部分。全部裝修完了,你去驗收,發現地磚顏色和牆紙顏色不匹配,水池有裂痕,馬桶漏水,返工嗎,那成本可太大了,所以不如每完成一部分,你就去用一下試用驗收,這還是持續整合的一部分。你可以把電路,水管,地板看作是一個一個特性,沒完成一個特性就要進行一次整合驗收,而不是全部都弄完了再來整合驗收。如此持續整合的價值便不然而喻了。
互連網軟體的開發和發布,已經形成了一套標準流程,最重要的組成部分便是那持續整合。持續整合說的通俗點就是,快節奏地,頻繁地,進行代碼合入和測試。如今雲端運算平台日臻完善,容器技術廣泛普及,微服務化改造進行如火如荼,小步快跑的敏捷開發發布流程越來越深入每一個企業和開發人員的日常工作中,這一切都衍生出了當前互連網模式的一個顯著特點,那就是極其快速的產品迭代與交付、7*24小時線上以及問題響應修複及時。這與傳統的瀑布等開發模式大相徑庭,而持續整合正是這一切的基礎保障。持續整合的核心措施是,你編寫的每一行代碼在合入和發布的時候,必須通過自動化測試。只要有一個測試案例失敗,整個流程就會終止,持續整合並不能消除Bug,而是讓它們非常容易發現和改正。這裡強調了一個關鍵詞“自動化”整合,我們來感受下如果沒有自動化會發生什麼呢?
話說沒有對比就沒有傷害,如果沒有自動化持續整合,第一個矛盾點會集中在,Dev與Ops之間,即一個要變化,一個要穩定。對於一個服務上線發布,測試,升級部署是不可避免的,作為ops人員經常存在的一個情境就是:不懂業務,對著開發人員每一步都寫得清清楚楚的操作指南,一步步執行,不問為什麼,出了問題找開發,全都是你的鍋。開發人員一定很氣憤,這種ops要來有什麼用,機器人嗎? 而且ops人員最討厭的就是變化,恨不得你先開發十年的特性,十年變更一次才好。測試也是存在類似的問題,你新寫的每一行代碼合入後如果不全量測試一遍,誰又能保證沒有問題呢? 如果按照持續整合的思想,那測試會抱怨,因為你的小步快跑而不得不把同樣的測試案例反覆執行,說到這自動化的好處就呼之欲出了,而jenkins便是這自動化整合的利器。終於開始本文了
Jenkins是一個廣泛用於持續構建的可視化web工具,持續構建說得更直白點,如:自動化,效能,打包,部署,發布&發布結果自動化驗證,介面測試,單元測試等等等等。jenkins可以很好的支援各種語言(比如:java, c#, php等)的項目構建,也完全相容ant、maven、gradle等多種第三方構建工具,同時跟svn、git能無縫整合,也支援直接與知名原始碼託管網站,比如github、bitbucket直接整合。簡單點說,Jenkins其實就是大的框架組,可以整個任何你想整合的內容,實現公司的整個持續整合體系!各種你能想到的,和不能想到的 ,而且Jenkins可自由部署在各種平台:Windows, Linux, Mac。這麼優秀的工具如果擷取安裝部署使用呢?使用AOS樣本模板,你無需下載軟體,無需配置,真,完成自動化,給你持續整合般的暢快體驗!
本樣本模板 Jenkins服務 (jenkins-with-cluster)協助您部署Jenkins服務,部署成功後,通過outputs介面展示的Web URL,可以訪問Jenkins服務,堆棧建立的資源套件括VPC(虛擬私人雲端)、Subnet(子網)、Cluster(叢集)、Deployment、StatefulSet、Service和Secret。使用本模板前,你需要保證至少有一個可用的金鑰組,如果你還沒有key pair,請先點擊這裡建立。
【部署結果展示】
- 瀏覽器開啟獲得如下初始化介面,按照jenkins流程進行初始化即可
【部署流程詳解】
- 使用jenkins服務樣本模板建立堆棧,點擊建立堆棧
- 填寫堆棧名稱與描述。
- 填寫輸入參數。
(1)基礎資源配置:填寫可用性區域,cce叢集規格,節點規格,金鑰組。
(2)jenkins配置:jenkins鏡像地址,訪問連接埠服務號
注意事項:jenkins服務連接埠填寫範圍為1~65535。
- 點擊下一步,審核配置資訊,查看計費資訊,點擊建立堆棧。
- 確認是否開通CCE服務
- 等待建立成功。
- 查看堆棧輸出參數,獲得jenkins服務訪問地址http://49.4.92.105:32129,