2010-10-05 30 views
3

你使用什麼來自動部署使用各種技術(不同的數據庫,語言等)的各種服務器應用程序(web,套接字,守護進程)的應用程序?不可知論的自動部署

這裏我們使用Python,Java和Ruby,並且將來也可以使用其他語言。

更新:我結束了使用Puppet來管理所有服務器設置,配置和部署。爲了觸發新版本的部署,我最終使用了Python Fabric腳本。

+0

我想只看到一個應用程序的答案。我知道沒有銀彈,但至少有一個適用於Python,Ruby和Java的部署應用程序。 – hgf 2010-10-05 17:48:44

回答

3

我使用Puppet進行一些服務器的部署/初始配置。基於Java的項目Maven和Ant。

2

您可以使用Ant,Makefile或批處理腳本。或者他們的組合。

1

我們使用Maven並在需要時拔出螞蟻插件。反過來,螞蟻插件非常偶爾會向某些本地腳本語言/應用程序/打包器/ /不管怎麼樣,但是我們發現,隨着時間的推移,我們通常可以找到一個Maven或ANT插件/任務來完成這個任務。

您可能想查看連續部署,這是目前構建和CI空間中一個非常熱門的話題。

1

對於Python,您可以使用Fabric或Paver 對於Ruby,capistrano和'vlad部署者' 對於Java,它是Ant。

對於PHP/Python項目,我還使用Peritor Webistrano,一個整潔的capistrano前端。它涉及到更改一些默認配方以刪除特定於軌道的內容,但一旦您正確設置它就值得。

1

我認爲你可以做的最好的選擇是使用maven。即使Maven主要用於Java項目,您也可以使用正確的插件(或您編寫的插件)在任何地方部署任何內容。

1

你可以使用maven,ant,ivy以及hudson for java項目。

1

我們使用Ant或Maven作爲我們在家中的不同項目(取決於項目的需求和年齡......)。我們傾向於使用Jenkins(以前稱爲Hudson)作爲我們的構建和部署工具。

然後,我們鼓勵開發人員編寫不會對數據庫,URL等進行硬編碼的代碼。我們嘗試在應用程序服務器中運行時通過容器(即數據源,純JMS API等)進行抽象。我們傾向於通過我們在運行時查看的屬性文件來抽象​​環境細節。屬性文件的路徑將被定義爲服務器上的變量。通過這種方式,我們可以靈活地構建一次代碼並將其轉移到我們的所有環境中。

2

前往KWateeSDCM。它帶有一個簡單的Web GUI,不需要難以理解的腳本,並通過REST API與您的構建鏈很好地集成。