Jenkins介紹
- 1 簡介
- 介紹
- 特性
- 2 CI/CD介紹
- 2.1 CI(Continuous integration)持續集成
- 介紹
- 要求
- 優點
- 2.2 CD(Continuous Delivery)持續交付
- 介紹
- 要求
- 優點
- 2.3 CD(Continuous Deployment)持續部署
- 介紹
- 要求
- 優點
- 3
- 參考
1 簡介
介紹
- Build great things at any scale.
- The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.
- Jenkins是一個開源的、提供友好操作界面的持續集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持續、自動的構建/測驗軟體專案、監控外部任務的運行(這個比較抽象,暫且寫上,不做解釋),Jenkins用Java語言撰寫,可在Tomcat等流行的servlet容器中運行,也可獨立運行,通常與版本管理工具(SCM)、構建工具結合使用,常用的版本控制工具有SVN、GIT,構建工具有Maven、Ant、Gradle,

特性
- 開源的java語言開發持續集成工具,支持CI,CD,
- 易于安裝部署配置:可通過yum安裝,或下載war包以及通過docker容器等快速實作安裝部署,可方便web界面配置管理,
- 訊息通知及測驗報告:集成RSS/E-mail通過RSS發布構建結果或當構建完成時通過e-mail通知,生成JUnit/TestNG測驗報告,
- 分布式構建:支持Jenkins能夠讓多臺計算機一起構建/測驗,
- 檔案識別:Jenkins能夠跟蹤哪次構建生成哪些jar,哪次構建使用哪個版本的jar等,
- 豐富的插件支持:支持擴展插件,你可以開發適合自己團隊使用的工具,如git,svn,maven,docker等,
2 CI/CD介紹
CI / CD的采用改變了開發人員和測驗人員如何發布軟體,

最初是瀑布模型,后來是敏捷開發,現在是DevOps,這是現代開發人員構建出色的產品的技術路線,隨著DevOps的興起,出現了持續集成(Continuous Integration)、持續交付(Continuous Delivery) 、持續部署(Continuous Deployment) 的新方法,傳統的軟體開發和交付方法正在迅速變得過時,從歷史上看,在敏捷時代,大多數公司會每月,每季度,每兩年甚至每年發布部署/發布軟體,然而,現在,在DevOps時代,每周,每天,甚至每天多次是常態,當SaaS正在占領世界時,尤其如此,您可以輕松地動態更新應用程式,而無需強迫客戶下載新組件,很多時候,他們甚至都不會意識到正在發生變化,開發團隊通過軟體交付流水線(Pipeline)實作自動化,以縮短交付周期,大多數團隊都有自動化流程來檢查代碼并部署到新環境,
2.1 CI(Continuous integration)持續集成
介紹
CI(Continuous integration)即持續集成,在CI環境中,開發人員將會頻繁地向主干提交代碼,這些新提交的代碼在最終合并到主干前,需要經過編譯和自動化測驗流進行驗證,

要求
- 團隊需要為每個新功能、代碼改進、或者問題修復創建自動化測驗用例,
- 你需要一個持續集成服務器,它可以監控代碼提交情況,對每個新的提交進行自動化測驗,
- 研發團隊需要盡可能快的提交代碼,至少每天一次提交,
優點
- 通過自動化測驗可以提早拿到回歸測驗的結果,避免將一些問題提交到交付生產中,
- 發布編譯將會更加容易,因為合并之初已經將所有問題都規避了,
- 減少作業問題切換,研發可以很快獲得構建失敗的訊息,在開始下一個任務之前就可以很快解決,
- 測驗成本大幅降低,你的CI服務器可以在幾秒鐘之內運行上百條測驗,
- 你的QA團隊花費在測驗上面的時間會大幅縮短,將會更加側重于質量文化的提升上面,
2.2 CD(Continuous Delivery)持續交付
介紹
CD(Continuous Delivery)即持續交付,它可以讓軟體產品的產出程序在一個短周期內完成,以保證軟體可以穩定、持續的保持在隨時可以釋出的狀況,它的目標在于讓軟體的建置、測驗與釋出變得更快以及更頻繁,這種方式可以減少軟體開發的成本與時間,減少風險,

要求
- 你需要有強大的持續集成組件和足夠多的測驗項可以滿足你代碼的需求,
- 部署需要自動化,觸發是手動的,但是部署一旦開始,就不能人為干預,
- 你的團隊可能需要接受特性開關,沒有完成的功能模塊不會影響到線上產品,
優點
- 發布頻率更快,因為你不需要停下來等待發布,每一處提交都會自動觸發發布流,
- 在小批量發布的時候,風險降低了,發現問題也可以很輕松的修復,
- 客戶每天都可以看到我們的持續改進和提升,而不是每個月或者每季度,或者每年,
2.3 CD(Continuous Deployment)持續部署
介紹
CD(Continuous Deployment)即持續部署,在CD環境中,通過自動化的構建、測驗和部署回圈來快速交付高質量的產品,某種程度上代表了一個開發團隊工程化的程度,任何修改通過了所有已有的作業流就會直接和客戶見面,只有當一個修改在作業流中構建失敗才能阻止它部署到產品線,
持續部署是一個很優秀的方式,可以加速與客戶的反饋回圈,但是會給團隊帶來壓力,因為不再有“發布日”了,開發人員可以專注于構建軟體,他們看到他們的修改在他們完成作業后幾分鐘就上線了,
要求
- 研發團隊測驗理念比較完善,測驗單元的健壯性直接決定你的交付質量,
- 你的檔案和部署頻率要保持一致,
- 特征標志成為發布重大變化程序的固有部分,以確保您可以與其他部門(支持,市場營銷,公關…)協調,
優點
- 發布頻率更快,因為你不需要停下來等待發布,每一處提交都會自動觸發發布流,
- 在小批量發布的時候,風險降低了,發現問題也可以很輕松的修復,
- 客戶每天都可以看到我們的持續改進和提升,而不是每個月或者每季度,或者每年,
3
參考
1、Jenkins官網
2、百度百科–Jenkins
3、Jenkins詳細教程
4、jenkins教程
5、jenkins詳解
6、Jenkins的詳細安裝及使用
7、誰才是世界上最好的 CI/CD 工具?
8、什么是CICD
9、詳解CI、CD相關概念
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294330.html
標籤:其他
上一篇:初始化腳本
