如何搭建基于Jenkins,ApacheMesos和Marathon的彈性高可用的持續集成環境持續集成(CI)是一種軟件開發實踐,使用得當,它會極大的提高軟件開發效率并保障軟件開發質量;Jenkins是一個開源項目,它提供了一種易于使用的持續集成系統;Mesos是Apache下的一個開源的統一資源管理與調度平臺,它被稱為是分布式系統的內核;Marathon是注冊到ApacheMesos上的管理長時應用(long-runningapplications)的framework,如果把Mesos比作數據中心kernel的話,那么Marathon就是init或者upstart的daemon。本文旨在探討如何利用Jenkins,ApacheMesos和Marathon搭建一套彈性的,高可用的持續集成環境。
持續集成(CI)是一種實踐,旨在緩和和穩固軟件的構建過程。持續集成最早由Martin Fowler 于10年前已經提出,希望通過持續集成能夠實現以下過程: <br>1.任何人在任何地點,任何時間可以構建整個項目。 <br>2.在持續集成構建過程中,每一個單元測試都必須被執行。 <br>3.在持續集成構建過程中,每一個單元測試都必須通過。 <br>4.持續集成構建的結果是可以發布的軟件包。 <br>5.當以上任何一點不能滿足時,整個團隊的主要任務就是去解決這個問題。Hudson是一個軟件界非常流行的開源CI服務器,下面介紹從基礎篇、提高篇兩個層面進行介紹。
持續集成已成為當前許多軟件開發團隊在整個軟件開發生命周期內側重于保證代碼質量的常見做法。在本系列文章中,Nicholas Whitehead給您介紹Hudson ,一個現在非常流行的開源CI服務器。他將告訴讀者在您的應用開發環境下(實例中包含Windows XP+Tomcat6或Ubuntu Linux+JBoss AS )如何搭建一個Hudson服務器環境,還包含了Hudson中許多配置項的概述,和執行一個自動編譯、測試、報告過程的示例。
Hudson是一個可擴展的持續集成引擎。主要用于:<br>1.持續、自動地構建/測試軟件項目。<br>2.監控一些定時執行的任務。Hudson擁有的特性包括:<br>易于安裝-只要把hudson.war部署到servlet容器,不需要數據庫支持。?<br>易于配置-所有配置都是通過其提供的web界面實現。?<br>集成RSS/E-mail/IM-通過RSS發布構建結果或當構建失敗時通過e-mail實時通知。?<br>生成JUnit/TestNG測試報告。<br>分布式構建支持-Hudson能夠讓多臺計算機一起構建/測試。<br>文件識別-Hudson能夠跟蹤哪次構建生成哪些jar,哪次構建使用哪個版本的jar等。<br>插件支持-Hudson可以通過插件擴展,你可以開發適合自己團隊使用的工具。