管理整個團隊的軟體配置方案
當你的系統比一個單獨的應用系統大上許多,而且需要依賴其他基礎建設元件的支援,配置管理就變得重要了。即使是一個簡單的應用程式也可能需要進行一些配置,例如提供資料庫認證(database credentials)或網路服務端點(Web service endpoint)的配置。
妥善管理你的配置資料,將會為你建構健全的、可擴展的和可移植性的系統。
管理工具
配置管理工具幫助記錄和維護軟體系統的配置和相依性。即使可以為專案量身打造專門的配置管理軟體,我們通常使用現有的工具來管理系統配置。
現有的三個開放原始碼(open source)配置管理工具分別是:
基礎設施即程式碼
在程式碼中描述配置及軟體相關性是管理配置的其中一種方法。
這種方法本身含有一般程式設計的所有優點,包含:
- 可測性 testability
- 可重用性 reusability
- 可執行文件 executable documentation
- 描述一個問題領域的共通及約束語言 common and constrained language to describe a problem domain
一旦在程式碼中描述基礎設施配置,這基礎設施配置即被所提及的伺服器,網絡和軟體所執行。
構建可移植性
由於在不同的服務提供者之間移動軟體系統是困難和費時的。即使服務提供者的相容性很高並且取得規則也很簡單,你仍有可能被技術慣性所困住。
配置管理幫助你深刻地瞭解系統的配置,而且這可以被用來在服務供應者之間輕鬆地移轉軟體,如果需要的話。
在開發環境和正式環境使用相同的工具
程式碼在開發環境或測試環境下可以正常運作但在正式環境下卻無法運作,是軟體系統開發常見的問題。常見的原因是配置上的差異:
- 不同版本的軟體
- 不同類型的資料庫
- 不同的應用伺服器
在開發環境及正式環境使用相同的配置管理工具可避免這類的問題。
為什麼 GDS 這麼做
現有管理配置的方法往往是手動、步驟繁瑣,速度緩慢且容易出錯的。
持續完成複雜而單調的任務時人們終將感覺不愉快,更何況安裝數十或數百台伺服器及配置軟體(如果是手動完成)絕對是單調乏味的工作。
即使在一開始便正確地配置了一切,如果不保持時時檢視,配置仍會隨著時間的推移而產生偏誤。傳統處理這類問題的方法是使配置更動變得困難,從而限制配置更動的次數。
然而,當試圖建立敏捷且靈活的軟體系統時,因應快速變化是必要的,相對的手動操作配置更動便無法滿足此類需求。
延伸閱讀
翻譯:Sharon Wang
校稿:
原始出處:https://www.gov.uk/service-manual/making-software/configuration-management.html