持續(xù)交付發(fā)布可靠軟件的系統(tǒng)方法(基礎(chǔ)篇)第二章:配置管理

《持續(xù)交付發(fā)布可靠軟件的系統(tǒng)方法》讀書筆記

配置管理指一個(gè)過程,通過該過程,所有與項(xiàng)目有關(guān)的產(chǎn)物,以及它們之間的關(guān)系都被唯一定義、修改、存儲與檢索。

使用版本控制

  • 對所有內(nèi)容進(jìn)行版本控制(所需的支撐軟件配置信息,操作系統(tǒng)配置信息、DNS區(qū)域文件和防火墻配置等)

配置管理是持續(xù)集成交付過程的基礎(chǔ)。

軟件配置管理

靈活性:先專注于提供具有高價(jià)值且可配置程度低的功能,冒煙測試就是一種緩解配置驗(yàn)證問題的方法

配置分類

  • 推薦應(yīng)使構(gòu)建打包生成的包,面向所有環(huán)境,并不植入配置信息

應(yīng)用程序的配置管理

  • 將特定于測試環(huán)境或生產(chǎn)環(huán)境的實(shí)際配置信息存放于與源代碼分離的單獨(dú)代碼庫,需要注意配置信息的版本,一定要與相應(yīng)的應(yīng)用軟件的版本相切爾西
  • 不要把密碼放在版本控制系統(tǒng)中
  • 獲取配置信息:文件系統(tǒng)、從某個(gè)中心倉庫中獲取配置信息
  • 配置信息:區(qū)分應(yīng)用、版本、環(huán)境,都需要滿足以下:
    • 新增一個(gè)環(huán)境,能為這個(gè)配置應(yīng)用的新環(huán)境指定一套新的配置信息
    • 新建應(yīng)用程序的一個(gè)新版本,確保在部署新版本時(shí),使用新的配置,但是一量需要回滾時(shí),還能夠使用舊版本的配置
    • 將新版本從一個(gè)環(huán)境移到另一個(gè)環(huán)境,確保新環(huán)境上的新配置里有效
    • 重定向到一個(gè)數(shù)據(jù)庫服務(wù)器,只需要簡單更改一個(gè)配置項(xiàng)
    • 通過虛擬化技術(shù)管理環(huán)境
  • 一種方法是把預(yù)生產(chǎn)環(huán)境的配置信息作為默認(rèn)配置,其它環(huán)境通過適當(dāng)?shù)姆绞礁采w這些默認(rèn)值,盡量減少配置項(xiàng)

跨應(yīng)用的配置管理

每個(gè)應(yīng)用程序的配置項(xiàng)管理都應(yīng)該作為項(xiàng)目啟動階段的一個(gè)議題,且應(yīng)維護(hù)一份應(yīng)用程序配置選項(xiàng)索引表,記錄配置項(xiàng)的功能,位置及生命周期,如何修改。

  • 在應(yīng)用程序的生命周期中,我們應(yīng)該在什么時(shí)候注入哪類配置信息,要與系統(tǒng)運(yùn)維和支持團(tuán)隊(duì)一同討論。
  • 將應(yīng)用程序的配置項(xiàng)與源代碼保存在一個(gè)倉庫中,但要把配置項(xiàng)的值保存在別處,另外像用戶密碼這類敏感信息不應(yīng)該放在版本控制庫中
  • 應(yīng)該總是通過自動化的過程將配置項(xiàng)從保存配置信息的存儲庫中取出并設(shè)置好,這樣就能很容易掌握不同環(huán)境中的配置信息了
  • 配置系統(tǒng)應(yīng)該能依據(jù)應(yīng)用、版本、環(huán)境為打包、安裝以及部署腳本提供不同的配置值。
  • 對每個(gè)配置項(xiàng)都應(yīng)用明確的命名習(xí)慣,避免使用難懂的名稱。
  • 確保配置信息是模塊化且封閉的,使得對某處配置項(xiàng)的修改不會影響到那些與其無關(guān)的配置項(xiàng)。
  • DRY原則。定義好配置中的每個(gè)元素,使每個(gè)配置元素在整個(gè)系統(tǒng)中都是唯一的,其含義絕不與其他元素重疊。
  • 最少化,即配置信息應(yīng)盡可能簡單且集中。
  • 避免對配置信息的過分設(shè)計(jì),應(yīng)該盡可能簡單。
  • 確保測試已覆蓋到部署或安裝時(shí)的配置操作。

環(huán)境管理

  • 環(huán)境中各種各樣的操作系統(tǒng),包括其版本、補(bǔ)丁級別及配置設(shè)置
  • 應(yīng)用程序所依賴的需要安裝到每個(gè)環(huán)境中的軟件包,以及這些軟件包的具體版本及配置
  • 應(yīng)用程序正常工作所需的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
  • 應(yīng)用程序所依賴的所有外部服務(wù),以及這些服務(wù)的版本和配置信息
  • 現(xiàn)有的數(shù)據(jù)以及其他相關(guān)信息

當(dāng)評估第三方產(chǎn)品或服務(wù)時(shí),應(yīng)該問自己以下問題:

  • 我們可以自行部署它嗎?
  • 我們能對它的配置做有效的版本控制嗎?
  • 如何使它適應(yīng)我們的自動化部署策略?

對環(huán)境的變更過程進(jìn)行管理,嚴(yán)格控制生產(chǎn)環(huán)境,未經(jīng)組織內(nèi)部正式的變更管理過程,任何人不得對其進(jìn)行修改。
應(yīng)該像對待生產(chǎn)環(huán)境一樣對待測試環(huán)境,其配置管理應(yīng)該與生產(chǎn)環(huán)境中的配置管理一樣的策略。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,641評論 19 139
  • 摘要: 隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,各種計(jì)算機(jī)軟件種類繁多,功能各異,加上計(jì)算機(jī)軟件規(guī)約的約束和發(fā)展,軟件的規(guī)范性變...
    云測學(xué)院閱讀 5,336評論 3 15
  • 軟件配置管理 軟件配置管理 (Software Configuration Management, SCM) 問題...
    厲鉚兄閱讀 8,816評論 2 14
  • 開端 某日,某傻說忘記自己看書看到哪頁了,于是乎,突然想到在自己買的小卡片背面畫個(gè)小表情,給TA當(dāng)書簽好了 說干就...
    趙家小妹閱讀 1,170評論 0 4
  • 了解了解就是可以先交往交往,那兩個(gè)人談場戀愛豈不是更好。 窈窕淑女,君子好逑。沒有錯,追不上,難受。這個(gè)事不好...
    駕云太歲閱讀 309評論 0 0

友情鏈接更多精彩內(nèi)容