根據(jù)我的經(jīng)驗(yàn),基于文本文件的配置管理系統(tǒng)帶來(lái)的麻煩最少,至少應(yīng)該優(yōu)先為內(nèi)部代碼使用。有很多種方式去管理基于文本的配置。你可以使用源碼處理系統(tǒng)管理,如Git。通過(guò)很多工具,如diff,可以降低調(diào)試出錯(cuò)配置的難度。如果情況緊急,你可以通過(guò)遠(yuǎn)程文本編輯器,如Emacs或者Vi,在服務(wù)器上直接編輯配置。
通過(guò)數(shù)據(jù)庫(kù)來(lái)處理配置的方式不那么靈活。這是一種容易引起爭(zhēng)議的反模式,通常在開(kāi)發(fā)和運(yùn)維團(tuán)隊(duì)隔得比較遠(yuǎn)的企業(yè)中出現(xiàn),也是DevOps希望解決的目標(biāo)。用數(shù)據(jù)庫(kù)處理配置讓?xiě)?yīng)用棧運(yùn)行更加困難。你需要一個(gè)工作的數(shù)據(jù)庫(kù)才能讓?xiě)?yīng)用啟動(dòng)。
通過(guò)命令式的命令行API來(lái)管理配置設(shè)置同樣也是讓人懷疑的實(shí)踐,但是有時(shí)候還是有用的,特別是在API用來(lái)管理底層基于文本的配置時(shí)。很多配置管理系統(tǒng),如Puppet,
依賴(lài)于能夠管理聲明配置。如果我們通過(guò)其他方式管理配置,比如命令行命令式API,就失去了使用Puppet的好處。