什麼是 CMDB?
“CMDB 即配置管理數據庫,通過獲取、維護,檢查企業的IT資源,從而高效控制與管理不斷變化的 IT 基礎架構與 IT 服務,併為其它系統,例如任務調度、運維工單、發佈管理等系統提供準確的配置信息。”
早期 CMDB 是以數據存儲為驅動來進行建設的,現在比較主流的 CMDB 的建設方式,是以應用和業務驅動的,需要什麼數據,就創造什麼數據,通過靈活數據建模,來實現以需求為導向的 CMDB 建設。
通過完善的 Web API 來進行各個流程或應用之間的數據通信,例如:數據上報,驗證,獲取,更新等等。
CMDB 建設中需要做到的幾點要求:
01、靈活性
靈活配置數據字段,現在的系統或者平臺多樣化,例如:雲平臺、Docker、物理機、虛擬機等等,這些在數據存儲上字段都是有區別的,因此需要靈活配置字段可以兼容這些系統或平臺。
02、安全性
對於 CMDB來說,數據的安全是非常重要的,不能隨意的去更改,因此一定要注意安全保障,如:設定嚴格的權限訪問控制。
03、準確性
CMDB是數據存儲的集合,是建設其他系統的數據基石,因此就需要保證CMDB的數據的準確性,否則會引起一些不必要的問題。
04、實時性
其實這個事項,在有些人裡面覺得不太重要,甚至認為以天級來收集、更新數據即可,但是我認為,雖然 CMDB 對數據的實時性要求不高,但是還是需要達到最優的實時性。
CMDB 數據存儲需要注意的事項
對於數據的建模,應該從使用數據的角度考慮,而不是從數據的提供角度考慮,一旦形成數據建模,數據提供者應該按照既定的規則進行數據的提供。
CMDB 的目的是為了在其他流程或應用之間共享數據的,如果一個應用或流程需要對某類數據單獨使用的話,則不建議將這類數據存入 CMDB 中,存在自身應用即可。
對於業務服務的建模,建議粒度儘可能的小。
動態數據,如服務器當前負載,CPU 使用率,這類數據建議不存儲在 CMDB 中,因為這類數據更新過於頻繁。
如果沒有任何流程、應用及人員,需要對特定的數據進行使用,則沒有必要放到CMDB 中進行存儲。
“建設CMDB一定要把握一個核心邏輯關係:所有 CMDB 所管理的資源一定要有使用場景;要想各種場景被正確執行,就會要求 CMDB 所提供的資源是準確且實時的;這樣運維人員才會有動力去努力維護和更新 CMDB 的數據,以確保運維的工作能夠順利開展。這樣一個需求關係要時刻銘記。”
各種使用場景還有很多,但是要把握一個前提,管理的資源一定要能對應到工作中的需求場景。
整理的 CMDB 流程圖:https://www.processon.com/view/link/5829a24be4b00c4fc8a221b1?pw=51reboot#map
CMDB 在線項目截圖:
閱讀更多 Python學習 的文章