CMDB的基礎知識

CMDB是Configuration Management Database的簡稱,中文翻譯成配置管理數據庫。

只是這樣的解釋,一般人很難理解CMDB到底是一個什麼東西,其真實情況是,每個人理解的CMDB可能都有所差異。用不着驚訝,CMDB本質上是一個數據庫,存什麼東西,當然是因人而異的。和計算機術語中“數據庫”的差別是,CMDB不僅包含真實的數據庫,而且隱含了管理者對資源的抽象和建模的邏輯。每個管理者所處環境不同,所以他所管理的資源的類型,數量和關係也不同,因此就不難理解,爲什麼市面上沒有一款CMDB產品能夠適應大部分場景。因此,自研CMDB的需求,也就愈發明顯。

運維認爲的CMDB

運維人員的工作內容,更注重於業務的發佈和運行,因此,CMDB中至少需要管理的有:主機、IP、端口、應用和域名。如果使用了Kubernetes集羣,還要關注Kubernetes集羣資源。

如無特殊說明,以下討論的CMDB都指運維認爲的CMDB

CMDB中資源管理的原則

基礎性

存儲到CMDB中的資源,應是最基礎的資源。

由於使用CMDB的人員大多隸屬運維或基礎設施部門,因此,CMDB中不應該存儲抽象層很高或者較複雜的的資源。一來是用不到,二來是這會讓CMDB的設計過於複雜,第三個是難以維護數據。

CMDB中可以存儲的資源有:服務器、人員、應用、域名等。

不建議存儲的資源:公司組織結構、業務調用邏輯等。

另外,基礎性的解釋,還可以用於調用關係。CMDB應該提供基礎資源服務接口,並被另外的工具所調用,儘量不或者少調用其他基礎服務,不能主動調用中、高級服務,避免環形調用出現調用循環問題。

權威性

存儲到CMDB中的數據,應該是最準確的,這樣一來,建立了權威性之後,才擁有了對CMDB的運營推動能力。

一旦CMDB中的數據並非最準確的,那麼用戶就會考慮通過其他渠道獲取數據,甚至是自行維護一套數據,這樣一來,CMDB就失去了存在的意義。

完整性

考慮權威性之後,還要考慮完整性。雖然CMDB中的數據是準確的,但是一旦數據的覆蓋面不夠全,也會導致使用的時候出現問題。

例如,當我在CMDB中查找一臺IP地址爲10.0.0.1的服務器時,沒有查找到。如果CMDB中服務器數據是完整的,那麼我可以認爲不存在這樣一臺服務器;反之,我還要通過其他渠道來覈實是否真的不存在這樣一臺服務器,效率下降明顯。

CMDB應該有什麼功能

資源管理功能

簡單的來說,就是資源的增刪查改功能,這是必須的基礎功能。

資源關係梳理

不同資源不是孤立存在的,相互之間存在一定的關係。

比如說一條服務器資源數據,有一個字段是其負責人,這個負責人就是人員資源的一條數據。

特殊情況下,同一種資源之間也存在關係,例如人員資源,可以有上下級關係,如果要維護這個關係,就需要對其關係進行梳理和存儲。

對外提供數據服務

CMDB建立之初,需要管理員維護數據。當數據維護達到權威性和完整性的標準之後,就具備了對外提供服務的能力。

常規對外提供服務的方式可以有:

  1. 開發Web界面,對真實用戶提供服務
  2. 開發標準API接口,對第三方工具提供服務

CMDB不應該有哪些功能

工單流程管理

工單流程管理是一種流程管理手段,通過提交工單,逐級審批的方式,實現流程的流轉,並可以提供回調Hook來自動執行某些操作。

這樣一個工單流程管理的功能,不僅需要對工單流程有詳盡的瞭解,還需要對每個流程進行定製。實際上這樣的一個功能不屬於資源管理的範疇,徒增了項目的複雜度,還會導致定位不清晰。

數據版本管理

數據版本管理一般要求存儲數據的歷史版本和變更信息,並利用這些信息進行版本管理。而CMDB的數據管理原則要求了權威性和完整性,存儲歷史版本的需求不大,徒增複雜性。

CMDB可用於那些服務和流程

監控管理

使用CMDB我們可以獲得完整的主機列表,並對這些主機進行監控。

發佈管理

使用CMDB和監控我們可以選擇在合適的主機發布應用

批量執行

使用CMDB我們可以有的放矢地進行批量操作
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章