不容错过的8个持续集成工具
如果你很熟悉“持續(xù)集成”,一定會同意這樣的觀點(diǎn):“它已經(jīng)逐漸成為一種必不可少的工具”。在這篇文章中,我們將介紹幾款流行的持續(xù)集成工具。閱讀后,你會對這些CI工具有一個更好的了解,知道他們能夠為你提供什么功能,從而選出最適合你的一款持續(xù)集成工具。
接下來將依次介紹8款持續(xù)集成工具(排列順序無意義):
Jenkins
Jenkins是一款用Java編寫的開源的CI工具。當(dāng)Oracle收購Sun Microsystems時,它作為Hudson的分支被開發(fā)出來。Jenkins是一個跨平臺的CI工具,它通過GUI界面和控制臺命令進(jìn)行配置。
Jenkins非常靈活,因為它可以通過插件擴(kuò)展功能。Jenkins插件非常好用,同時你可以容易地添加自己的插件。除了它的擴(kuò)展性之外,Jenkins還有另一個非常好的功能——它可以在多臺機(jī)器上進(jìn)行分布式地構(gòu)建和負(fù)載測試。Jenkins是根據(jù)MIT許可協(xié)議發(fā)布的,因此可以自由地使用和分發(fā)。Cloudbees還提供Jenkins in Cloud形式的托管解決方案。
總結(jié):Jenkins是最好的持續(xù)集成工具之一,它既強(qiáng)大又靈活。學(xué)習(xí)它可能要花費(fèi)一些時間,但是如果你需要一個靈活的持續(xù)集成解決方案,那么學(xué)習(xí)使用它將是非常值得的。
官方網(wǎng)址:Jenkins
可用性:免費(fèi)
平臺:跨平臺
TeamCity
TeamCity是一款成熟的CI服務(wù)器,來自JetBrains公司。JetBrains已經(jīng)在軟件開發(fā)世界中建立了權(quán)威,他們的工具如WebStorm和ReSharper正被全球的開發(fā)者所使用。
TeamCity在它的免費(fèi)版本中提供了所有功能,但僅限于20個配置和3個構(gòu)建代理。額外的構(gòu)建代理和構(gòu)建配置需要購買,你可以在這里找到價格。
TeamCity安裝后即可使用,可以在多種不同的平臺上工作,并支持各種各樣的工具和框架。能夠支持JetBrains和第三方公司開發(fā)的公開的插件。盡管是基于Java的解決方案,TeamCity在眾多的持續(xù)集成工具中提供了最好的.NET支持。TeamCity也有多種企業(yè)軟件包,可以按所需代理的數(shù)量進(jìn)行擴(kuò)展。
總結(jié):整體而言是TeamCity是非常好的持續(xù)集成解決方案,但由于其復(fù)雜性和價格,更適合企業(yè)需求。
官方網(wǎng)站:TeamCity
可用性:3個代理和20個構(gòu)建配置是免費(fèi)的,額外的代理和配置需要付費(fèi)
平臺:Servlet容器(本地)
Travis CI
Travis CI是最老的托管解決方案之一,贏得了很多人的信任。雖然它主要以托管解決方案而聞名,但它也以企業(yè)包的形式提供內(nèi)部版本。
Travis CI對GitHub上托管的所有開源項目以及前100個版本的構(gòu)建都是免費(fèi)的。有幾個定價計劃可以供你選擇,它們之間主要區(qū)別是你可以運(yùn)行的并發(fā)構(gòu)建數(shù)量。
Travis CI的構(gòu)建通過.travis.yml文件進(jìn)行配置,該文件包含了在構(gòu)建時所需要執(zhí)行的任務(wù)。它能夠支持多種語言并提供完善的幫助文檔。
總結(jié):一個成熟的解決方案,提供托管和本地變種,被許多團(tuán)隊喜愛和使用,非常有據(jù)可查。
官方網(wǎng)站:Travis CI
可用性:對開源計劃和前100個版本的構(gòu)建是免費(fèi)的,其他的服務(wù)需要付費(fèi)
平臺:托管和本地
Go CD
Go是ThoughtWorks公司最新的Cruise Control的化身。除了ThoughtWorks提供的商業(yè)支持,Go是免費(fèi)的。它適用于Windows,Mac和各種Linux發(fā)行版。
讓Go脫穎而出的是它的流水線概念,使復(fù)雜的構(gòu)建流程變得簡單。關(guān)于流水線概念是如何幫助持續(xù)交付,以及如何與Jenkins的流水線流程進(jìn)行比較,您可以在這里閱讀到相關(guān)內(nèi)容。它最初的設(shè)計時就支持流水線概念,消除了構(gòu)建過程的瓶頸,并能夠并行地執(zhí)行任務(wù)。
總結(jié):Go CD非常適合復(fù)雜場景,并且能夠免費(fèi)提供付費(fèi)的支持。
官方網(wǎng)站:Go CD
可用性:免費(fèi)提供付費(fèi)的支持
平臺:Windows,Mac和一些Linux發(fā)行版
Bamboo
Atlassian是專注于為軟件開發(fā)團(tuán)隊提供工具的公司,你或許已經(jīng)通過JIRA和Bitbucket了解到了他們。Bamboo最初提供了云端和本地兩種持續(xù)集成的解決方案,但在2016年5月,云端版本不再支持Bitbucket Pipeline。
Bitbucket Pipeline能夠支持Docker, 是一個非常高效且快速的持續(xù)集成解決方案,正在迅速發(fā)展,是Bamboo云端版本的有利繼承者。
Bamboo可以免費(fèi)試用30天。作為Atlassian工具,它能夠很好地支持JIRA和BitBucket,甚至可以將Jenkins配置輕松地導(dǎo)入到Bamboo中。
總結(jié):Bamboo是一款本地CI工具。其原本的云段解決方案被Bitbucket pipeline所取代。有30天的免費(fèi)試用,在此之后可以進(jìn)行付費(fèi)使用。
官方網(wǎng)站:Bamboo
可用性:付費(fèi)免費(fèi)試用
平臺:本地
GitLab CI
GitLab CI是開源的Rails項目GitLab的一個組成部分,由GitLab公司將它帶到了大眾的視野中。GitLab托管在GitLab.com上,GitLab.com提供了免費(fèi)的托管服務(wù),并且提供了git倉庫存儲和管理功能,如訪問控制,問題跟蹤,代碼評論等。
GitLab CI能與GitLab完全集成,可以通過使用GitLab API輕松地作為項目的鉤子。GitLab的執(zhí)行部分(流程構(gòu)建)使用Go語言編寫,可以運(yùn)行在Windows,Linux,OSX,FreeBSD和Docker上。
官方的Go Runner可以同時運(yùn)行多個作業(yè),并具有內(nèi)置的Docker支持。 Gitlab CI有兩個版本:開源的GitLab社區(qū)版和GitLab企業(yè)版。
總結(jié):GitLab CI是一款令人印象深刻的托管工具,提供了免費(fèi)版本和企業(yè)版本。
官方網(wǎng)站:GitLab CI
可用性:免費(fèi)和付費(fèi)
平臺:托管(可以在Gitlab.com上托管)
CircleCI
CircleCI也來自GitLab公司,是另一款云端的持續(xù)集成管理工具。CircleCI目前僅支持Github管理,它能夠支持的語言包括:Java, Ruby/Rails, Python, Node.js, PHP, Haskell, and Skala。
CircleCI和其他持續(xù)集成工具不同的地方在于他們提供服務(wù)的方式。CircleCI需要付費(fèi)的主要是它的容器。你可以免費(fèi)使用一個容器,當(dāng)你開始使用更多容器的時候,你可以選擇你所需要的并行化級別來加速你的應(yīng)用。
主要有5個并行化級別可以供我們選擇: 1x, 4x, 8x, 12x and 16x。你可以選擇用16個容器進(jìn)行一個項目的構(gòu)建,此時并行化級別就為16x,當(dāng)然你也可以用16個容器同時進(jìn)行4個項目的構(gòu)建,此時并行化級別為4x,如何選擇取決于你。同時CircleCI也能夠支持Docker。
總結(jié):CircleCI是一個靈活的云端CI工具,提供的最大并行化級別為16x。當(dāng)你需要快速地進(jìn)行項目構(gòu)建時它將是一個不錯的選擇,同時它的價格也不是很貴。
官方網(wǎng)站:CircleCI
可用性:免費(fèi)和付費(fèi)
平臺:托管
Codeship
Codeship是一個本地的持續(xù)集成解決方案。它有兩種不同的版本:基本版和專業(yè)版。在基本版中提供了安裝即用的持續(xù)集成服務(wù)但是不能夠支持Docker,它的主要用途就是通過UI來進(jìn)行應(yīng)用的構(gòu)建等操作。專業(yè)版本提供了更靈活的功能以及Docker支持。
在基本版中有幾個可選的付費(fèi)包,越貴的付費(fèi)包并行能力越好。在專業(yè)版本中你可以選擇你的實(shí)例類型和并行級別(最高的級別為20x),價格稍微有點(diǎn)貴,但是大多數(shù)的團(tuán)隊?wèi)?yīng)該會需要這種并行化構(gòu)建的功能。
總結(jié):Codeship是一個強(qiáng)大的帶有Docker支持的本地持續(xù)集成解決方案。
官方網(wǎng)站:Codeship
可用性:每個月的前100次構(gòu)建免費(fèi),后續(xù)的構(gòu)建需要付費(fèi)
平臺:托管
Codefresh
上面所提到的很多工具都能夠支持Docker,但Codefrsh從設(shè)計到開發(fā)都將容器的理念貫徹其中。
Codefresh的開發(fā)者們從一開始就意識到Docker會廣受歡迎。Codefresh除了能夠在現(xiàn)有的Docker文件中工作外,你也可以選擇幾個不同的模板來輕松地的將你的項目遷移到docker容器中。它的UI非常的干凈和容易理解,你可以很容易地上手。
之所以將Codefresh介紹給你們的原因在于它有一個讓人非常驚喜的功能。這個功能就是將你的鏡像發(fā)布到一個臨時的環(huán)境中。當(dāng)項目被建立時,它的鏡像也被建立了,你可以發(fā)布這個鏡像并觀察它是如何工作的。那意味著你可以得到一個臨時的工作環(huán)境,而不需要一個額外的虛擬機(jī),這就是它非常棒的地方。
Codefresh是一款比較新的工具,有很多能夠改進(jìn)的地方和新的特性可以增加。但是它把容器作為它的重要組成部分使得它對任何一個打算使用Docker容器的團(tuán)隊來說都將是一個非常好的持續(xù)集成解決方案。
總結(jié):Codefresh是一個支持Docker的持續(xù)集成工具,它可以發(fā)布和建立本地環(huán)境的Docker鏡像。
官方網(wǎng)站:Codefresh
可用性:每個月的前200次構(gòu)建,5個并發(fā)的構(gòu)建和一個本地環(huán)境是免費(fèi)的,額外的服務(wù)需要付費(fèi)。
平臺:本地
那么,對于你和你的團(tuán)隊來說,完美的持續(xù)集成工具是什么?
在為你的項目選擇正確的CI工具時,需要牢記幾件事情:
本地解決方案為構(gòu)建過程提供了足夠的靈活性,并且項目信息能被存儲在本地。這對你來說可能并不重要,但在某些情況下,對某些公司來說,這可能是強(qiáng)制性的。
另一方面,托管解決方案不會提供太多的設(shè)置選項和更大的可擴(kuò)展性,因為你不需要硬件來托管它們。
另一個重要的事情是是否支持Docker。Docker革新了我們分發(fā)應(yīng)用程序的方式,并成為不可忽視的一項技術(shù)手段。盡管上面提到的絕大多數(shù)工具都支持Docker,但有些工具對Docker更友好更包容。
最后一個容易被忽視的是用戶界面。上述中的一些工具比其他工具更容易使用。一個好的CI工具的主要作用之一就是使構(gòu)建過程變得容易,因此UI操作應(yīng)該是簡單和流暢的。
長按識別二維碼關(guān)注我們
轉(zhuǎn)載于:https://blog.51cto.com/13561855/2063775
總結(jié)
以上是生活随笔為你收集整理的不容错过的8个持续集成工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell,自动挂载磁盘
- 下一篇: TypeScript的书写规范(TSLi