持續(xù)集成
開發(fā)人員喜歡把寫的代碼當(dāng)成自己的孩子,他們會(huì)被當(dāng)成藝術(shù)品一樣呵護(hù)。作為家長(zhǎng),總是會(huì)認(rèn)為自己的孩子是最好的,也會(huì)盡全力給自己的孩子最好的,就算有時(shí)候會(huì)超出自己的能力范圍。
最終,孩子會(huì)走出去,和其他的小朋友一起玩,在某些時(shí)候,各家的孩子都可以按照自己的想法玩耍。
但是有時(shí)候,沖突無(wú)法避免,此時(shí)由誰(shuí)去解決他們之間的整合問題呢?這就是我們要說的集成,而持續(xù)集成(CI)及其自動(dòng)化工具的全部目的是將代碼從測(cè)試、構(gòu)建、部署和交付的障礙中解放出來。
隨著項(xiàng)目的增長(zhǎng),需要集成的東西會(huì)越來越多,此時(shí)代碼走查,沖突解決以及合并,問題回溯等任務(wù)甚至?xí)ㄙM(fèi)比編寫代碼更多的時(shí)間。
CI 旨在幫助開發(fā)人員克服集成困難,并將注意力集中在他們喜歡做的事情上:編寫代碼。
CI 是一種開發(fā)實(shí)踐,它要求編碼人員每天數(shù)次將他們的工作集成到一個(gè)遠(yuǎn)程倉(cāng)庫(kù)中。
CI 工具會(huì)驗(yàn)證和測(cè)試每次提交的代碼,并報(bào)告錯(cuò)誤,允許團(tuán)隊(duì)成員快速解決錯(cuò)誤。
市場(chǎng)上有很多這樣的工具,它們之間有很多差異,因此為開發(fā)團(tuán)隊(duì)選擇合適的工具不是一件容易的事情。然而,你可以通過以下方面評(píng)估工具是否符合要求:
- 設(shè)置簡(jiǎn)單
- 容易使用
- IDE 集成
- 方便擴(kuò)展的插件系統(tǒng)
我們來看看目前的主流 CI 工具有哪些。
01.Jenkins
Jenkins 是一個(gè)流行的、開源的自動(dòng)化服務(wù)器,用于持續(xù)集成,具有豐富的插件和友好的用戶界面。
Jenkins 可用于 Windows、Mac OS、Linux 和其他 Unix 版本。它提供了簡(jiǎn)單的安裝和更新過程,并且可以通過圖形用戶界面輕松配置。
主從模式允許 Jenkins 支持分布式構(gòu)建和基于表達(dá)式定時(shí)任務(wù)。它不僅提供了關(guān)于構(gòu)建狀態(tài)的通知,而且支持在構(gòu)建步驟中執(zhí)行命令。是目前最主要使用的 CI 工具。
02.Bamboo
Bamboo 由 Atlassian 研發(fā)。你可能對(duì)這個(gè)公司比較陌生,但是你一定聽過 Jira 和 Trello,這些工具都是有 Atlassian 研發(fā)的。
Bamboo 在提供發(fā)布、質(zhì)量指標(biāo)和端到端可視性方面表現(xiàn)突出。
內(nèi)置的 Git 和 Mercurial 使 Bamboo 能夠自動(dòng)化合并來自兩個(gè)版本控制系統(tǒng)
的分支的過程。Bambor 負(fù)責(zé)分支檢測(cè)、構(gòu)建、測(cè)試和合并任務(wù),以便僅基于分支名稱將代碼持續(xù)部署到生產(chǎn)環(huán)境。
Bamboo 是一個(gè)收費(fèi)應(yīng)用,一個(gè)公司可以付很少的費(fèi)用獲取許可證,就能獲得技術(shù)支持是很劃算的事情。
03.CircleCI
CircelCI 是一個(gè)基于云的 CI 解決方案,支持多平臺(tái)的,適合分布式,有很多定制選項(xiàng)。它支持許多不同的語(yǔ)言,包括 Java、Python、JS、Haskell、Ruby on Rails 和 Scala,不過他只支持 GitHub 代碼管控。
CircelCI 擁有龐大的用戶群,是最常用的 DevOps 工具之一,每天處理超過一百萬(wàn)個(gè)構(gòu)建。
CircleCI 的用戶非常欣賞其獨(dú)特的儀表盤,其中包含關(guān)于團(tuán)隊(duì)工作方式和代碼運(yùn)行方式的統(tǒng)計(jì)數(shù)據(jù)和數(shù)據(jù),幫助他們提高生產(chǎn)力并縮短上線時(shí)間。
你可以免費(fèi)使用,一旦有更高的需求就可以花少量錢提供更多的功能。
04.GOCD
雖然它的名字表明這一個(gè)更像是一個(gè) CD(持續(xù)交付)工具,但 GoCD 實(shí)際上是一個(gè)開源 CI 服務(wù)器,用于輕松地可視化和構(gòu)建復(fù)雜的工作流。它為構(gòu)建 CD 管道提供了直觀的界面,并以安全的方式將軟件部署到生產(chǎn)環(huán)境中。
它可以通過管道進(jìn)行版本控制。
GoCD 支持 JSON 和 YAML 格式,使您能夠在管理配置時(shí)跳過界面。它還支持并行和順序執(zhí)行,允許團(tuán)隊(duì)領(lǐng)導(dǎo)輕松配置依賴項(xiàng)。
GoCD 可以實(shí)時(shí)、從端到端地查看可視化工作流。GoCD 有社區(qū)和插件系統(tǒng),能更有彈性的擴(kuò)展功能。
05.GitLab
GitLab 提供持續(xù)集成作為其版本控制產(chǎn)品的一部分。它的 CI 工具是一個(gè) Web 應(yīng)用程序,帶有一個(gè)開放 API,通過友好的用戶界面管理項(xiàng)目,并集成了 GitLab 的所有功能。
通過此 API,開發(fā)人員可以創(chuàng)建與產(chǎn)品的更深層次的集成。
GitLab CI 通過發(fā)現(xiàn)開發(fā)過程的潛在改進(jìn),幫助開發(fā)人員將想法轉(zhuǎn)化為產(chǎn)品。開發(fā)人員在合并請(qǐng)求中共享每一段新代碼,這將觸發(fā)執(zhí)行所有驗(yàn)證任務(wù)的管道,然后再將更改合并到源代碼存儲(chǔ)庫(kù)中。
06.Codeship
一個(gè)簡(jiǎn)單靈活的 CI 工具,旨在通過快速持續(xù)集成解決方案幫助小型和成長(zhǎng)型團(tuán)隊(duì)。
CodeShip 幾乎可以與任何工具、服務(wù)或云集成,讓團(tuán)隊(duì)領(lǐng)導(dǎo)添加他們需要的功能,比如如部署、通知、代碼覆蓋、安全掃描、版本控制等。
說說有理
評(píng)論區(qū)說說 ~
你平時(shí)用哪個(gè)持續(xù)集成工具比較多
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。