軟件項(xiàng)目開發(fā)中的環(huán)境配置和分支策略

字號:

策略1:一個分支+開發(fā)服務(wù)器+生產(chǎn)服務(wù)器
    源代碼管理可以使用VSS或CVS等開源軟件等來進(jìn)行。在這里不需要啟用任何分支,僅僅將源代碼受控即可以了。整個開發(fā)由于需要小組協(xié)作,所以需要有一天專門的開發(fā)服務(wù)器,開發(fā)服務(wù)器可以同時(shí)承擔(dān)數(shù)據(jù)庫服務(wù)器和應(yīng)用服務(wù)器。
    對于生產(chǎn)環(huán)境需要專門的一天數(shù)據(jù)庫服務(wù)器和應(yīng)用服務(wù)器。如果考慮硬件的多層部署,這里可以應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器分開。
    其它問題分析:
    1.沒有啟動分支,緊急BUG的部署困難,所以設(shè)計(jì)開發(fā)中要考慮新功能開發(fā)絕對不要影響老功能已有的接口。
    2.沒有單獨(dú)的測試環(huán)境,測試過程不穩(wěn)定,測試和開發(fā)工作有相互影響。
    適用情況
    1.適用于新項(xiàng)目的開發(fā),舊項(xiàng)目的版本的維護(hù)期。
    2.小于5人的軟件開發(fā)團(tuán)隊(duì)
    策略2:開發(fā)分支+開發(fā)服務(wù)器+測試服務(wù)器+生產(chǎn)服務(wù)器
    啟用測試分支和測試服務(wù)器主要目的是保證維護(hù)版本的順利發(fā)布和測試環(huán)境的穩(wěn)定性。在項(xiàng)目配置了專門的測試人員后,必須要保證測試環(huán)境的穩(wěn)定性。測試服務(wù)器上需要安裝測試數(shù)據(jù)庫,測試環(huán)境的部署主要是同步開發(fā)數(shù)據(jù)庫->測試數(shù)據(jù)庫。然后將開發(fā)環(huán)境打包的接口拷貝到測試服務(wù)器相關(guān)目錄。
    其它問題分析:
    1.沒有測試分支,維護(hù)版本的BUG部署困難。
    適用情況
    1.項(xiàng)目有專門的測試人員
    2.項(xiàng)目進(jìn)行每日構(gòu)建,需要保證測試環(huán)境的穩(wěn)定性。
    策略3:開發(fā)分支+測試分支+開發(fā)服務(wù)器+測試服務(wù)器+生產(chǎn)服務(wù)器
    啟用測試分支了可以基本解決掉維護(hù)版本BUG部署困難的問題。整個測試環(huán)境的部署也修改為了直接去編譯測試分支的內(nèi)容進(jìn)行打包和部署。
    其它問題分析:
    1.測試的多個BUG必須要測試人員全部測試通過才能夠部署。
    2.無法很好的解決同時(shí)要部署新功能的測試版本,又要部署維護(hù)版本的測試功能的問題。
    3.正式版本發(fā)布過后,在下個版本沒有發(fā)布前,很難重現(xiàn)或重新編譯出生產(chǎn)環(huán)境的部署包。
    適用情況:
    1.運(yùn)行中的項(xiàng)目,經(jīng)常需要處理BUG發(fā)布維護(hù)版本
    2.項(xiàng)目有專門的測試人員,需要保證測試環(huán)境的穩(wěn)定。
    策略4:開發(fā)分支+測試分支+集成分支+開發(fā)服務(wù)器+測試服務(wù)器+生產(chǎn)服務(wù)器
    啟用集成分支了項(xiàng)目中的開發(fā),測試和生產(chǎn)三套環(huán)境從數(shù)據(jù)庫到代碼完全獨(dú)立開來。三套環(huán)境互不影響和沖突,都可以進(jìn)行獨(dú)立的編譯和構(gòu)建。在這種策略下生產(chǎn)環(huán)境的部署可以轉(zhuǎn)移到專門的運(yùn)維人員進(jìn)行。啟用集成分支的目的是保證在集成環(huán)境遭到破壞的時(shí)候可以快速的重新構(gòu)建出生產(chǎn)包進(jìn)行重新部署。
    其它問題分析:
    1.當(dāng)新功能的開發(fā)和BUG的修改涉及到同樣一個源代碼文件時(shí)候,沒有辦法做到僅僅對BUG內(nèi)容單獨(dú)部署。
    適用情況
    1.運(yùn)行中的項(xiàng)目,經(jīng)常需要處理BUG發(fā)布維護(hù)版本
    2.項(xiàng)目有專門的測試人員,需要保證測試環(huán)境的穩(wěn)定。
    3.系統(tǒng)需要保證集成環(huán)境獨(dú)立性,在需要情況下可以再現(xiàn)集成環(huán)境。
    策略5:開發(fā)分支+測試分支+集成分支+開發(fā)服務(wù)器+測試服務(wù)器+BUG分支+BUG數(shù)據(jù)庫服務(wù)器+生產(chǎn)服務(wù)器
    在運(yùn)行中需要既進(jìn)行新版本功能開發(fā),又需要對已經(jīng)部署的版本進(jìn)行維護(hù)和BUG修復(fù)的時(shí)候。往往項(xiàng)目需要設(shè)置專門的維護(hù)人員,維護(hù)人員使用專門的BUG分支和BUG數(shù)據(jù)庫服務(wù)器對BUG進(jìn)行修改并發(fā)布維護(hù)版本。
    維護(hù)版本的發(fā)布可以直接在BUG分支基線后發(fā)布,注意問題是
    1.必須所有BUG都改好并測試通過后才可以發(fā)布維護(hù)版本
    2.BUG分支的內(nèi)容要及時(shí)Deliver到開發(fā)分支,當(dāng)出現(xiàn)Merge沖突的時(shí)候要優(yōu)先保證BUG修改內(nèi)容。
    維護(hù)版本的發(fā)布如果要在集成分支發(fā)布,需要注意問題
    1.BUG先Deliver到開發(fā)分支
    2.Deliver到開發(fā)分支的BUG及時(shí)Deliver到測試分支,在測試分支打包后交測試人員測試。
    3.測試人員測試通過后,BUG分支修改的內(nèi)容直接Devlier到集成分支后在集成分支打包進(jìn)行維護(hù)版本部署。
    4.存在一個問題是新功能開發(fā)完成發(fā)布時(shí)候統(tǒng)一Deliver到集成分支的時(shí)候存在Merge沖突問題。