3天学会Jenkins_1_Jenkin与CI(Continuous Integration,持续集成)?
轉載注明出處,歡迎關注微信小程序小白AI博客 微信公眾號小白AI或者網站 https://xiaobaiai.net
文章目錄
- 1 什么是持續集成?
- 2 什么是Jenkin?
- 3 Jenkin歷史
- 4 為什么選擇Jenkins做持續集成服務器?
- 5 持續集成的實際案例研究
- 6 Jenkins插件
- 7 使用Jenkins的優點
- 8 使用Jenkins的缺點
- 9 總結
- 10 參考鏈接
1 什么是持續集成?
持續集成(Continuous Integration)即是發生在每一次的代碼提交后,立即開始軟件的構建(Build)和測試(Test),在一個擁有許多開發人員的大型項目中,一天中會多次提交,伴隨著每個提交代碼的構建和測試,如果測試通過,則測試構建以進行部署。如果部署成功,則代碼將推送到生產環境。提交(commit),構建(build),測試(test)和部署(deploy)是一個連續的過程,因此稱為持續集成/部署。
持續集成流水線是一種功能強大的工具,由一組用于托管,監控,編譯和測試代碼或監控代碼更改的工具組成,比如:
- 持續集成服務器有:Jenkins, Bamboo, CruiseControl, TeamCity等等
- 源碼版本控制工具:GIT,CVS, SVN, Mercurial, Perforce, ClearCase等等
- 編譯構建工具:Make, CMake, ANT, Maven, Ivy, Gradle等等
- 自動測試框架:Selenium, Appium, TestComplete, UFT等等
在本文中,你將學會:
- 什么是持續集成?
- 什么是Jenkin?
- Jenkin歷史
- 為什么選擇Jenkins做持續集成服務器?
- 持續集成的實際案例研究
- 使用Jenkins的優點
- 使用Jenkins的缺點
2 什么是Jenkin?
Jenkins是一個開源的持續集成服務器,能夠編排一系列操作,用自動化方式幫助你實現持續集成過程。Jenkins完全用Java編寫。Jenkins是世界上廣泛使用的應用程序,安裝量約為300k,并且日益增長。它是一個基于Web服務器的應用程序,需要像Apache Tomcat這樣的Web服務器。Jenkins變得如此受歡迎的原因在于它監督項目開發過程中出現的重復任務。例如,如果你的團隊正在開發項目,Jenkins將不斷測試你的項目,并在開發的早期階段向你顯示相關錯誤。
通過使用Jenkins,軟件公司可以加速他們的軟件開發過程,因為Jenkins可以快速自動化構建和測試。Jenkins通過構建,測試,文檔化軟件,部署和軟件開發生命周期的其他階段來支持軟件的完整開發生命周期。
3 Jenkin歷史
- Kohsuke Kawaguchi, 一個Java開發者,在SUN Microsystems工作,厭倦了重復構建代碼和修復錯誤。2004年,創建了一個名為Hudson的自動化服務器,可自動構建和測試開發任務。
- 2011年,擁有Sun Microsystems的Oracle與Hudson開源社區存在爭議,因此分叉的Hudson將其重命名為Jenkins。
- Hudson和Jenkins都繼續獨立運作。但是在短時間內,Jenkins得到了了很多項目的應用并有大量開源貢獻者共享代碼,而Hudson只剩下32個應用項目。隨著時間的推移,Jenkins變得更受歡迎,而Hudson則不再受到維護。
4 為什么選擇Jenkins做持續集成服務器?
有些人可能會認為開發軟件的老式方法是更好的方法。讓我們通過以下示例了解CI與Jenkins的優勢。
讓我們想象一下,大約有10個開發人員在共享存儲倉庫上工作。一些開發人員在25天內完成任務,而其他人則需要30天才能完成任務。
| 一旦所有開發人員完成了他們分配的編碼任務,他們就會同時提交他們的代碼。稍后,將進行測試和部署。 代碼提交已建立,測試周期非常罕見,并且在多天后完成了單個構建 | 一旦Developer提交代碼,代碼就會構建并測試。Jenkin將在白天多次構建和測試代碼;如果構建成功,則Jenkins會將源代碼部署到測試服務器并通知部署團隊;如果構建失敗,那么Jenkins會將錯誤通知給開發人員團隊。 |
| 由于代碼是一次性構建的,一些開發人員需要等到其他開發人員完成編碼才能檢查他們的構建 | 代碼是在任何Developer提交后立即構建的。 |
| 隔離,檢測和修復多次提交的錯誤并不是一件容易的事情。 | 由于代碼是在每次提交單個開發人員之后構建的,因此很容易檢測到哪些代碼導致構建失敗 |
| 代碼構建和測試過程完全是手動的,因此存在很多失敗的可能性。 | 自動構建和測試過程可節省時間并減少缺陷。 |
| 修復并測試所有錯誤后,才能部署代碼。 | 每次成功構建和測試后都會部署代碼。 |
| 開發周期緩慢 | 開發周期很快。 |
用戶可以更輕松地使用新功能。
增加利潤。
5 持續集成的實際案例研究
我相信大家都知道諾基亞的舊手機。諾基亞曾經實施過稱為夜間構建的程序。在白天多次提交多個開發人員后,每晚都會構建軟件。由于該軟件僅在一天內構建一次,因此在大型代碼庫中隔離,發現和修復錯誤是一件非常大的難事。
后來,他們采用了持續集成方法,一旦開發人員提交了代碼,就會構建并測試該軟件,如果檢測到任何錯誤,相應的開發人員可以快速修復缺陷。
6 Jenkins插件
默認情況下,Jenkins提供一組有限的功能。如果你想在Jenkins中安裝Git等版本控制工具集成,那么就需要安裝與Git相關的插件。實際上,為了集成Maven,Amazon EC2等工具,你也需要在Jenkins中安裝相應的插件。
7 使用Jenkins的優點
- Jenkins由社區管理,非常開放。每個月,他們都會舉行公開會議并接受公眾的意見,以促進Jenkins項目的發展。
- 到目前為止,Github上大約有4000多個issues被關閉,500多個貢獻者,10000+star,該項目每3個月發布一次穩定版本,每個月都會有小版本發布
- 隨著技術的發展, Jenkins也是如此。到目前為止,Jenkins在其插件數據庫中發布了大約超過1000個插件。借助插件,Jenkins變得更加強大,功能豐富。
- Jenkins還支持基于云的架構,因此你可以在基于云的平臺中部署Jenkins
- Jenkins之所以流行,是因為它是由開發人員為開發人員創建的。
8 使用Jenkins的缺點
盡管Jenkins是一個非常強大的工具,但是它也有它的缺陷:
- 與當前的前端UI趨勢相比,它的界面過時且不便于用戶使用
- 盡管Jenkins受到許多開發人員的喜愛,但維護它并不容易,因為Jenkins在服務器上運行并需要一些技能作為服務器管理員來監控其活動
- 許多人沒有實現Jenkins的原因之一是由于難以安裝和配置Jenkins
- 由于一些小的設置變化,連續集成會定期中斷。持續集成將暫停,因此需要一些開發人員的注意
9 總結
- 在持續集成中,代碼提交后,軟件即刻構建和測試
- Jenkins是一個開源的持續集成服務器,能夠協調一系列操作
- 在沒有Jenkins之前,當所有開發人員完成他們分配的編碼任務時,他們過去常常同時提交他們的代碼,然后才進行測試和部署。
- 在使用Jenkins之后,代碼構建并在開發者提交代碼后立即進行測試。Jenkin將在白天多次構建和測試代碼
- 默認情況下,Jenkins提供一組有限的功能。如果你想將Jenkins安裝與Git等版本控制工具集成,那么你需要安裝與Git相關的插件
- Jenkins最大的優點是它由社區管理,該社區舉行公開會議并接受公眾對Jenkins項目開發的意見
- Jenkin的最大特點是它的界面已經過時,與當前的UI趨勢相比不是用戶友好的
10 參考鏈接
- https://jenkins.io/zh/
- https://github.com/jenkinsci/jenkins
總結
以上是生活随笔為你收集整理的3天学会Jenkins_1_Jenkin与CI(Continuous Integration,持续集成)?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux优化deepin启动速度,如何
- 下一篇: [leetcode]488. Zuma