《持續(xù)交付》第二章 ? 配置管理

本章主要討論以下三個問題

  • 為管理應(yīng)用程序的構(gòu)建,部署,測試和發(fā)布過程做好準(zhǔn)備
    對所有內(nèi)容進(jìn)行版本控制;管理依賴關(guān)系
  • 管理應(yīng)用軟件的配置信息
  • 整個環(huán)境的配置管理
版本控制

進(jìn)行版本控制的目的

  • 保留每個文件的所有版本的歷史信息,團隊協(xié)作不受時間和空間的限制
  • 大大減小了時間和空間對團隊間協(xié)作的限制

版本控制的原則

  • 對所有內(nèi)容進(jìn)行版本控制
  • 版本控制不僅僅針對源代碼,每個與所開發(fā)的軟件相關(guān)的產(chǎn)物都應(yīng)被置于版本控制下
  • 我們的目標(biāo)是能夠隨時獲取軟件在整個生命周期中任意時間點的文件狀態(tài)
  • 每個成員都應(yīng)該將與項目有關(guān)的任何文件及其修訂狀態(tài)保存在版本控制存儲之中
  • 并不推薦將源代碼編譯后得到的二進(jìn)制文件也納入到版本控制中
  • 保存與搭建測試環(huán)境和生產(chǎn)環(huán)境的所有必需的信息
  • 頻繁提交到主干
  • 頻繁并有規(guī)律地向版本控制系統(tǒng)提交代碼
  • 將代碼提交到主干。創(chuàng)建分支的做法違背了持續(xù)集成的宗旨
  • 代碼提交之前要做的事:在提交代碼前運行測試套件;增量式引入變化,即每完成一個小功能或一次重構(gòu)之后就提交代碼
  • 使用意義明顯的提交注釋
  • 注釋應(yīng)盡可能詳細(xì),描述本次提交做了什么,以及這樣做的原因
依賴管理
  • 外部庫文件管理。通常以二進(jìn)制形式存在,對于“是否將外部庫文件放到版本控制庫中”這個問題,至今存在爭議。其實,放與不放,各有利弊
  • 組件管理。將整個應(yīng)用軟件分成一系列的組件進(jìn)行開發(fā),能讓某些變更的影響范圍比較小,從而減少回歸缺陷。另外,它還有利于重用,使大項目的開發(fā)更加高效。構(gòu)建流水線之間的依賴應(yīng)該是二進(jìn)制文件依賴,而不是源文件依賴
配置管理

我們應(yīng)該以對待代碼的方式來對待你的系統(tǒng)配置,使其受到正確的管理和測試

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

  • 獲取配置信息
    • 通過一個中央服務(wù)系統(tǒng)得到它們所需要的配置信息
    • 從某個中心倉庫中獲取配置信息
  • 為配置項建模
    • 配置信息可以被看作是元組的一個集合。
    • 元組及其取值取決于三方面:應(yīng)用程序,該應(yīng)用程序的版本,該版本所運行的環(huán)境
  • 系統(tǒng)配置的測試
    • 保證配置設(shè)置中對外部服務(wù)的引用是良好的
    • 應(yīng)用程序一旦安裝好,就要在其上運行一些冒煙測試,以驗證運行正常
環(huán)境管理

目的:為了降低環(huán)境管理的成本和風(fēng)險,有必要將環(huán)境變成可量產(chǎn)的對象,使對其進(jìn)行的操作具有可重復(fù)性且時間是可預(yù)測的

基本原則

  • 將二進(jìn)制文件與配置信息分離
  • 將所有的配置信息保存在一處
  • 你應(yīng)該像對待源代碼一樣對待環(huán)境,增量式地修改,并將修改提交到版本控制中。對每個修改都要進(jìn)行測試,以確保它不會破壞在這個新版本地環(huán)境中運行地應(yīng)用程序

環(huán)境管理的工具

  • 以自動化方式管理操作系統(tǒng)配置,以聲明方式來定義一些事情
  • 虛擬化技術(shù)也可以提高環(huán)境管理過程的效率

變更過程管理

  • 應(yīng)該嚴(yán)格控制生產(chǎn)環(huán)境,未經(jīng)組織內(nèi)部正式的變更管理過程,任何人不得對其進(jìn)行修改
  • 測試環(huán)境的軟件配置應(yīng)該非常接近于生產(chǎn)環(huán)境
  • 我們應(yīng)該使用同樣的機制來管理,部署和配置這兩類環(huán)境

總結(jié)&疑惑
  • 在一個軟件項目中包括源程序,依賴關(guān)系以及配置信息
  • 我們通常所說的源代碼指的是什么,源代碼是包含配置文件和依賴文件,還是說是源代碼與配置文件和依賴文件屬于同等地位
  • 打包與編譯是否有明確的先后順序
  • 配置信息可以看作是元組的一個集合,那么元組與配置項之間的關(guān)系是什么
  • 回歸測試是指重復(fù)執(zhí)行以前的全部或部分相同的測試工作,那么回歸缺陷是否就是進(jìn)行回歸測試后存在的問題,缺陷回歸又是什么
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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