持續整合及部署利器:Go(不要和Google的程式設計語言Go混淆了!)

來源:互聯網
上載者:User

標籤:工具   googl   群組   image   架構   開源軟體   read   pipe   軟體   

Go是一款先進的持續整合和發行管理系統,由ThoughtWorks開發。(不要和Google的程式設計語言Go混淆了!)其前身為CruiseControl,是ThoughtWorks在做諮詢和交付交付項目時自己開發的一款開源的持續整合工具。後來隨著持續整合及持續部署的火熱,ThoughtWorks專門成立了一個項目組,基於Cruise開發除了Go這款工具。ThoughtWorks開源持續傳遞工具Go,Go的官方網站是http://www.go.cd/,其文檔是http://www.thoughtworks.com/products/docs/go/13.3/help/welcome_to_go.html。使用Go來建立起一個項目的持續部署pipeline是非常快的,非常方便。

Go的架構設計

Go使用了Server-Agent的模式。Server用來展示和配置pipeline的DashBoard,並存放構建出來的Artifacts(封存檔案,比如一個war包); Agent則用來執行真正的構建操作,一個Server可以和多個Agent建立串連,Agent支援多個主流的作業系統。

這樣的好處是:

  1. 測試可以運行在不同的平台上,保證你的軟體在多個平台都能良好的工作;

  2. 你可以將測試劃分為不同的群組並並行的運行在多個Agent上,節省運行測試時間;

  3. 可以方便的管理Agent,及時響應不同的環境要求。

Agent的lifecycle

是Agent工作的生命週期。

每一台Go的構建節點機器上都需要安裝Go Agent軟體(這個名字蛋疼,不是FQ的那個軟體),其用來建立起與Go Server的串連。 Go Agent會以輪詢的方式來詢問Go Server是否有當前有構建工作。如果有的話,Go Server會將其分配給處於ready狀態的Agent。該Agent會在自己機器目錄上建立一個目錄,並下載同步最新的材料(比如配置的SVN repo地址),然後執行指定的task,比如構建項目,運行單元測試或功能性測試等。如果配置了artifacts(比如構建的結果,一個war包),Agent執行完畢後將這個artifacts發布到Go Server上,這樣artifacts就會被接下來的stage用到。

Go中的一些概念

Go對複雜的構建和部署活動進行了合理的抽象,並提供了GUI和XML兩種方式來配置pipeline。

在Go的世界中,多個pipeline可以共同組成一個group,這叫做pipeline group。沒個pipeline又由多個stage組成。假設一個pipeline需要做如下事情: 構建項目->部署到測試環境->部署到生產環境。那麼每一個環節都可以設定為一個stage。而一個stage則由1個或多個job組成。比如構建項目這個stage,可能會分為編譯及驗證->功能性測試,每一步可以作為一個job。job則由一個或多個task組成。比如功能性測試這個job可以分為兩個task來完成,先將artifacts部署到測試機上,再運行功能性測試。

Go和Jenkins的比較

Go在設計之初就是一款持續部署工具,而Jenkins其實只是一款持續整合工具,如果要實現持續部署需要安裝相應的外掛程式。 Go和Jenkins都是開源軟體,雖然免費,但是出現問題要麼自己動手解決,要麼等待維護社區修複,Go可以向ThoughtWorks購買支援服務。 Jenkins作為開源產品,社區比較活躍,文檔資料和外掛程式都比較多,而Go的文檔或資料較少。

 

Go as continuous delivery tool for .NET

邁出持續傳遞的第一步

 

http://www.cnblogs.com/shanyou/p/3750720.html

 

持續整合及部署利器:Go(不要和Google的程式設計語言Go混淆了!)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.