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