不容錯過的8個持續集成工具

如果你很熟悉“持續集成”,一定會同意這樣的觀點:“它已經逐漸成爲一種必不可少的工具”。在這篇文章中,我們將介紹幾款流行的持續集成工具。閱讀後,你會對這些CI工具有一個更好的瞭解,知道他們能夠爲你提供什麼功能,從而選出最適合你的一款持續集成工具。

接下來將依次介紹8款持續集成工具(排列順序無意義):

Jenkins

Jenkins是一款用Java編寫的開源的CI工具。當Oracle收購Sun Microsystems時,它作爲Hudson的分支被開發出來。Jenkins是一個跨平臺的CI工具,它通過GUI界面和控制檯命令進行配置。

Jenkins非常靈活,因爲它可以通過插件擴展功能。Jenkins插件非常好用,同時你可以容易地添加自己的插件。除了它的擴展性之外,Jenkins還有另一個非常好的功能——它可以在多臺機器上進行分佈式地構建和負載測試。Jenkins是根據MIT許可協議發佈的,因此可以自由地使用和分發。Cloudbees還提供Jenkins in Cloud形式的託管解決方案。

總結:Jenkins是最好的持續集成工具之一,它既強大又靈活。學習它可能要花費一些時間,但是如果你需要一個靈活的持續集成解決方案,那麼學習使用它將是非常值得的。

官方網址:Jenkins

可用性:免費

平臺:跨平臺

TeamCity

TeamCity是一款成熟的CI服務器,來自JetBrains公司。JetBrains已經在軟件開發世界中建立了權威,他們的工具如WebStorm和ReSharper正被全球的開發者所使用。

TeamCity在它的免費版本中提供了所有功能,但僅限於20個配置和3個構建代理。額外的構建代理和構建配置需要購買,你可以在這裏找到價格。

TeamCity安裝後即可使用,可以在多種不同的平臺上工作,並支持各種各樣的工具和框架。能夠支持JetBrains和第三方公司開發的公開的插件。儘管是基於Java的解決方案,TeamCity在衆多的持續集成工具中提供了最好的.NET支持。TeamCity也有多種企業軟件包,可以按所需代理的數量進行擴展。

總結:整體而言是TeamCity是非常好的持續集成解決方案,但由於其複雜性和價格,更適合企業需求。

官方網站:TeamCity

可用性:3個代理和20個構建配置是免費的,額外的代理和配置需要付費

平臺:Servlet容器(本地)

Travis CI

Travis CI是最老的託管解決方案之一,贏得了很多人的信任。雖然它主要以託管解決方案而聞名,但它也以企業包的形式提供內部版本。

Travis CI對GitHub上託管的所有開源項目以及前100個版本的構建都是免費的。有幾個定價計劃可以供你選擇,它們之間主要區別是你可以運行的併發構建數量。

Travis CI的構建通過.travis.yml文件進行配置,該文件包含了在構建時所需要執行的任務。它能夠支持多種語言並提供完善的幫助文檔。

總結:一個成熟的解決方案,提供託管和本地變種,被許多團隊喜愛和使用,非常有據可查。

官方網站:Travis CI

可用性:對開源計劃和前100個版本的構建是免費的,其他的服務需要付費

平臺:託管和本地

Go CD

Go是ThoughtWorks公司最新的Cruise Control的化身。除了ThoughtWorks提供的商業支持,Go是免費的。它適用於Windows,Mac和各種Linux發行版。

讓Go脫穎而出的是它的流水線概念,使複雜的構建流程變得簡單。關於流水線概念是如何幫助持續交付,以及如何與Jenkins的流水線流程進行比較,您可以在這裏閱讀到相關內容。它最初的設計時就支持流水線概念,消除了構建過程的瓶頸,並能夠並行地執行任務。

總結:Go CD非常適合複雜場景,並且能夠免費提供付費的支持。

官方網站:Go CD

可用性:免費提供付費的支持

平臺:Windows,Mac和一些Linux發行版

Bamboo

Atlassian是專注於爲軟件開發團隊提供工具的公司,你或許已經通過JIRA和Bitbucket瞭解到了他們。Bamboo最初提供了雲端和本地兩種持續集成的解決方案,但在2016年5月,雲端版本不再支持Bitbucket Pipeline。

Bitbucket Pipeline能夠支持Docker, 是一個非常高效且快速的持續集成解決方案,正在迅速發展,是Bamboo雲端版本的有利繼承者。

Bamboo可以免費試用30天。作爲Atlassian工具,它能夠很好地支持JIRA和BitBucket,甚至可以將Jenkins配置輕鬆地導入到Bamboo中。

總結:Bamboo是一款本地CI工具。其原本的雲段解決方案被Bitbucket pipeline所取代。有30天的免費試用,在此之後可以進行付費使用。

官方網站:Bamboo

可用性:付費免費試用

平臺:本地

GitLab CI

GitLab CI是開源的Rails項目GitLab的一個組成部分,由GitLab公司將它帶到了大衆的視野中。GitLab託管在GitLab.com上,GitLab.com提供了免費的託管服務,並且提供了git倉庫存儲和管理功能,如訪問控制,問題跟蹤,代碼評論等。

GitLab CI能與GitLab完全集成,可以通過使用GitLab API輕鬆地作爲項目的鉤子。GitLab的執行部分(流程構建)使用Go語言編寫,可以運行在Windows,Linux,OSX,FreeBSD和Docker上。

官方的Go Runner可以同時運行多個作業,並具有內置的Docker支持。 Gitlab CI有兩個版本:開源的GitLab社區版和GitLab企業版。

總結:GitLab CI是一款令人印象深刻的託管工具,提供了免費版本和企業版本。

官方網站:GitLab CI

可用性:免費和付費

平臺:託管(可以在Gitlab.com上託管)

CircleCI

CircleCI也來自GitLab公司,是另一款雲端的持續集成管理工具。CircleCI目前僅支持Github管理,它能夠支持的語言包括:Java, Ruby/Rails, Python, Node.js, PHP, Haskell, and Skala。

CircleCI和其他持續集成工具不同的地方在於他們提供服務的方式。CircleCI需要付費的主要是它的容器。你可以免費使用一個容器,當你開始使用更多容器的時候,你可以選擇你所需要的並行化級別來加速你的應用。

主要有5個並行化級別可以供我們選擇: 1x, 4x, 8x, 12x and 16x。你可以選擇用16個容器進行一個項目的構建,此時並行化級別就爲16x,當然你也可以用16個容器同時進行4個項目的構建,此時並行化級別爲4x,如何選擇取決於你。同時CircleCI也能夠支持Docker。

總結:CircleCI是一個靈活的雲端CI工具,提供的最大並行化級別爲16x。當你需要快速地進行項目構建時它將是一個不錯的選擇,同時它的價格也不是很貴。

官方網站:CircleCI

可用性:免費和付費

平臺:託管

Codeship

Codeship是一個本地的持續集成解決方案。它有兩種不同的版本:基本版和專業版。在基本版中提供了安裝即用的持續集成服務但是不能夠支持Docker,它的主要用途就是通過UI來進行應用的構建等操作。專業版本提供了更靈活的功能以及Docker支持。

在基本版中有幾個可選的付費包,越貴的付費包並行能力越好。在專業版本中你可以選擇你的實例類型和並行級別(最高的級別爲20x),價格稍微有點貴,但是大多數的團隊應該會需要這種並行化構建的功能。

總結:Codeship是一個強大的帶有Docker支持的本地持續集成解決方案。

官方網站:Codeship

可用性:每個月的前100次構建免費,後續的構建需要付費

平臺:託管

Codefresh

上面所提到的很多工具都能夠支持Docker,但Codefrsh從設計到開發都將容器的理念貫徹其中。

Codefresh的開發者們從一開始就意識到Docker會廣受歡迎。Codefresh除了能夠在現有的Docker文件中工作外,你也可以選擇幾個不同的模板來輕鬆地的將你的項目遷移到docker容器中。它的UI非常的乾淨和容易理解,你可以很容易地上手。

之所以將Codefresh介紹給你們的原因在於它有一個讓人非常驚喜的功能。這個功能就是將你的鏡像發佈到一個臨時的環境中。當項目被建立時,它的鏡像也被建立了,你可以發佈這個鏡像並觀察它是如何工作的。那意味着你可以得到一個臨時的工作環境,而不需要一個額外的虛擬機,這就是它非常棒的地方。

Codefresh是一款比較新的工具,有很多能夠改進的地方和新的特性可以增加。但是它把容器作爲它的重要組成部分使得它對任何一個打算使用Docker容器的團隊來說都將是一個非常好的持續集成解決方案。

總結:Codefresh是一個支持Docker的持續集成工具,它可以發佈和建立本地環境的Docker鏡像。

官方網站:Codefresh

可用性:每個月的前200次構建,5個併發的構建和一個本地環境是免費的,額外的服務需要付費。

平臺:本地

那麼,對於你和你的團隊來說,完美的持續集成工具是什麼?

在爲你的項目選擇正確的CI工具時,需要牢記幾件事情:

本地解決方案爲構建過程提供了足夠的靈活性,並且項目信息能被存儲在本地。這對你來說可能並不重要,但在某些情況下,對某些公司來說,這可能是強制性的。

另一方面,託管解決方案不會提供太多的設置選項和更大的可擴展性,因爲你不需要硬件來託管它們。

另一個重要的事情是是否支持Docker。Docker革新了我們分發應用程序的方式,併成爲不可忽視的一項技術手段。儘管上面提到的絕大多數工具都支持Docker,但有些工具對Docker更友好更包容。

最後一個容易被忽視的是用戶界面。上述中的一些工具比其他工具更容易使用。一個好的CI工具的主要作用之一就是使構建過程變得容易,因此UI操作應該是簡單和流暢的。

長按識別二維碼關注我們
不容錯過的8個持續集成工具

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章