配置管理
配置管理是指一個過程,通過該過程,所有與項目相關(guān)的產(chǎn)物,以及他們之間的關(guān)系都被唯一定義、修改、存儲和檢索。
從我自己的經(jīng)驗,配置管理涵蓋很多方面,最重要的一條準(zhǔn)則就是需要把所有與項目相關(guān)的code、data、腳本等管理起來。
對于當(dāng)前來說,配置管理等等是必須要使用版本控制系統(tǒng)來完成此管理能力。
對于如何高效的使用版本控制的幾點(diǎn)建議:
1、對所有內(nèi)容進(jìn)行版本控制
2、頻繁提交代碼到主干(主要的原則是讓增量的維度更小)
3、提交需要使用有意的提交注釋
對于依賴管理,基于java的依賴管理,我們可以通過maven,同時對工程進(jìn)行基礎(chǔ)拆分,通過parent的方式來統(tǒng)一管理外部引入的基礎(chǔ)依賴服務(wù)。
同時對于構(gòu)建流水線中的依賴和上下文一定是二進(jìn)制的制品。
配置的外延還包括了,軟件配置和環(huán)境配置,對于這些的一切都應(yīng)該被控制系統(tǒng)管理起來,基于此沿用一切皆代碼的思路,我們應(yīng)該把環(huán)境、軟件配置、測試用例、基礎(chǔ)數(shù)據(jù)模型和增量腳本都統(tǒng)一管理起來,并以產(chǎn)品和解決方案的維度來進(jìn)行管理,并在相應(yīng)的維度管理中增加DSL文件,通過可自描述DSL來實現(xiàn)對構(gòu)建、測試和交付的全景流程描述,通過系統(tǒng)平臺工具的引擎進(jìn)行分析和執(zhí)行,如通過CI的DSL完成此產(chǎn)品的持續(xù)構(gòu)建,通過測試的DSL完成測試的自動化回歸(包括對環(huán)境和應(yīng)用依賴的描述分析),基于此理念一個基本的產(chǎn)品目錄應(yīng)該是如下模式:
針對一個產(chǎn)品的版本庫目錄結(jié)構(gòu)如下:
CRM產(chǎn)品
├── payment(模塊,產(chǎn)生容器鏡像)
├──DATA
????????└──data.dsl
????????└──preinstall(預(yù)安裝腳本)
????????└──update(增量腳本)
├──ENV
? ? ? └──env.dsl(DSL,描述版本測試關(guān)聯(lián)的環(huán)境和資源的要求以及基于什么鏡像和組件的服務(wù)要求)
├──CI
????????└──ci.dsl
????????└──findbugs(findbugs相關(guān)的例外,規(guī)則等配置目錄,以下類同)
????????└──checkstyle
????????└──pmd
????????└──……
├──CASE
?????? └──CTU
????????└──Case
????????└──Client
????????└──Data
????????└──Function
????????└──Job
????????└──TU
????????└──Var
├──target
├──Dockerfile
└──pom.xml