我們的構建/部署過程非常繁瑣,充分手動且容易出錯。你能提出改進建議嗎?如何改進我們的構建和部署過程?
因此,讓我描述我們的部署策略和構建過程。 我們正在開發名爲Application Server(簡稱AS)的系統。它基本上是基於servlet的web應用程序,它駐留在JBoss Web服務器上。 AS可以安裝在兩個「環境」中。每個環境都是一個帶有webapp代碼的目錄。該目錄放置在網絡存儲上。存儲安裝到安裝了JBoss實例的多個生產服務器上。目錄鏈接到JBoss'webapps
目錄。因此,所有JBoss實例對環境使用相同的代碼。 JBoss的配置與環境是分開的,並且基於實例進行更新。
因此,我們有兩種類型的補丁:Web應用程序的補丁(針對不同的環境),並配置補丁(每個實例配置)
補丁是一個可執行文件。實際上它是帶有嵌入式二進制rpm包的bash腳本。安裝非常簡單:您只需執行文件並選擇回答一些問題。重要的一點是,修補程序不是整個系統 - 它只包含一些修正配置文件的類和/或修改配置文件的腳本。類被複制到WEB-INF /類中(AS被部署爲爆炸目錄)。
我們建立這些pathes的方法是:
- 我們採取了一些以前的補丁文件,並複製它們。
- 修改補丁的內容。其中最重要的部分是RPM規範。在那裏,我們更改補丁的名稱,更改其先決條件rpm包並寫下實際的bash命令以備份,複製和修改文件。這是最令人討厭的部分之一,因爲我們並不總是可以得到實際的變更。對於跨越多個變更請求和提交的新複雜功能尤其如此。另外,編寫這些變更集的命令也很乏味且容易出錯。
- 對於webapp補丁,我們還修改了其他環境的規範。除了rpm包名以外,它們通常是相同的。
- 我們把所有與rpm相關的文件都放到了VCS中
- 我們通過添加一些構建新補丁的目標來修改build.xml。修改是通過複製和編輯完成的。
- 我們通過copypasting項目並在
- 改變Ant目標最後修改CruiseControl的配置,我們建立了一個系統
另外,我感興趣的是在貼劑和部署實踐的任何引用,最好是Java應用程序。我沒有成功使用Google搜索。
浪費任何定義,計算CPU秒而不是僱員天需要有點反思的。 – soru 2010-07-16 15:54:02
謝謝你的回答。不幸的是,我們現在需要修補程序。補丁通常代表特徵,其中一些特定於客戶,另一些獨立於其他特徵等。該項目是未來的產品線。同時,我們既沒有架構也沒有SCM支持。說實話,我不知道我應該從哪邊咬這頭大象。 – Rorick 2010-07-19 12:26:20
曾經是市場上稱爲RTPatch的Windows軟件產品。該產品會比較兩個版本,稱它們爲v2.3和v2.4,並生成一個windows程序,其數據可以將用戶機器上安裝的v2.3更改爲v2.4。也許這樣的事情。但嚴重的是 - 現在沒有比現在更好的時間來處理供應鏈管理問題,特別是如果你希望把你的軟件變成現金牛。 – 2010-09-08 12:09:42