图数据库在CMDB领域的应用
【導(dǎo)語(yǔ)】在上期的圖數(shù)據(jù)庫(kù)介紹中,我們對(duì)什么是圖數(shù)據(jù)庫(kù),以及圖數(shù)據(jù)庫(kù)所擅長(zhǎng)的領(lǐng)域做了一個(gè)初步的介紹,也收到了眾多的反饋和咨詢(xún),特別要求我們對(duì)圖數(shù)據(jù)庫(kù)在一些具體行業(yè)的應(yīng)用能做一些深入介紹。為此,從本期文檔開(kāi)始,筆者將用一系列文章對(duì)圖數(shù)據(jù)庫(kù)在一些專(zhuān)門(mén)領(lǐng)域的部署和應(yīng)用做專(zhuān)題介紹。第一期,將講述圖數(shù)據(jù)庫(kù)在CMDB領(lǐng)域的建模和應(yīng)用場(chǎng)景。
傳統(tǒng)CMDB的弊端
CMDB,英文名Configuration Management Database,即配置管理數(shù)據(jù)庫(kù),常常被認(rèn)為是構(gòu)建其他ITIL流程的基礎(chǔ)而優(yōu)先考慮,ITIL項(xiàng)目的成敗與是否成功建立CMDB有非常大的關(guān)系。
從2000年開(kāi)始,CMDB開(kāi)始在國(guó)內(nèi)企業(yè)慢慢推廣開(kāi)來(lái),分別經(jīng)過(guò)了最初的資產(chǎn)信息電子化階段、開(kāi)始與ITSM流程協(xié)同配合階段,一直到配置自動(dòng)化發(fā)現(xiàn)引入階段,目前隨著云計(jì)算技術(shù)的發(fā)展,CMDB的場(chǎng)景已經(jīng)從傳統(tǒng)的資產(chǎn)臺(tái)賬管理逐步演化到流程協(xié)同管理、影響分析、配置比對(duì)、云化資源管理等方面,但在CMDB的技術(shù)架構(gòu)上,無(wú)論是開(kāi)源產(chǎn)品還是商業(yè)化產(chǎn)品都沒(méi)有明顯改進(jìn),發(fā)展比較緩慢。這在一定程度上也影響了CMDB場(chǎng)景的拓展。
接下來(lái)我們將分析當(dāng)前CMDB建設(shè)遇到的一些常見(jiàn)問(wèn)題。
缺乏合理化、整體化的規(guī)劃
需求不清晰,定義了不合理的配置廣度和深度。
大而全還是小而深——選擇猶豫不決
這種決策機(jī)制在項(xiàng)目初期往往耗費(fèi)了大量時(shí)間,但隨著新技術(shù)的不斷涌現(xiàn),這種方式已經(jīng)無(wú)法適應(yīng)越來(lái)越敏捷的IT環(huán)境,這種相對(duì)靜態(tài)的CMDB模型已經(jīng)不能滿足納管新IT組件的要求。
采用了不正確的管控策略
按照經(jīng)典ITIL的管控和項(xiàng)目實(shí)施機(jī)制,配置管理規(guī)劃,尤其是CMDB模型的規(guī)劃往往由項(xiàng)目組承擔(dān),一旦規(guī)劃完成后整個(gè)模型也就變得很難再進(jìn)行擴(kuò)展,應(yīng)該說(shuō)這里采用的是一種集中管控的策略。?
但在實(shí)際IT運(yùn)維工作中,我們發(fā)現(xiàn)對(duì)于CMDB使用最多的是各個(gè)二線團(tuán)隊(duì),不同團(tuán)隊(duì)之間對(duì)于CMDB深度和廣度的要求,以及管控方式都有較大差別。
配置管理人員職責(zé)定義不清晰
配置經(jīng)理、配置管理員、配置Owner之間職責(zé)不清晰
ITIL或ISO20000中對(duì)于這三類(lèi)角色的定義往往過(guò)于寬泛,沒(méi)有進(jìn)一步考慮實(shí)際運(yùn)維人員的運(yùn)維場(chǎng)景,以及使用的運(yùn)維工具,導(dǎo)致職責(zé)定義和實(shí)際做事方式脫節(jié)。
角色職責(zé)和崗位的對(duì)應(yīng)不明晰
在沒(méi)有ITIL以前,在企業(yè)IT部門(mén)或數(shù)據(jù)中心往往找不到一個(gè)現(xiàn)成崗位對(duì)于IT配置信息進(jìn)行集中管理,而是每個(gè)人各管一攤。
實(shí)施ITIL后,究竟由哪個(gè)部門(mén)的哪個(gè)崗位承擔(dān)配置經(jīng)理這一職責(zé)往往是最讓人傷腦筋的,最后往往是趕鴨子上架。這種角色定義方式最終導(dǎo)致體系無(wú)法運(yùn)轉(zhuǎn)。
配置管理成了IT運(yùn)維的負(fù)擔(dān)
這其實(shí)是CMDB在企業(yè)落地所面臨的最大挑戰(zhàn),無(wú)法充分調(diào)動(dòng)運(yùn)維人員的積極性,主要體現(xiàn)在:
初始數(shù)據(jù)收集工作量大
存量的配置數(shù)據(jù)往往基數(shù)很大,一般配置的量級(jí)在5000以上,考慮到云化環(huán)境的海量運(yùn)維場(chǎng)景,這個(gè)基數(shù)還會(huì)更大。
隨著分布式應(yīng)用架構(gòu)以及微服務(wù)架構(gòu)的興起,未來(lái)一套新應(yīng)用系統(tǒng)上線引入新的配置項(xiàng)數(shù)量也無(wú)法簡(jiǎn)單通過(guò)手工輸入的方式來(lái)完成。
單一的自動(dòng)化配置發(fā)現(xiàn)工具只是一種幻想
如前所說(shuō),約從2007年開(kāi)始,業(yè)內(nèi)引入了自動(dòng)發(fā)現(xiàn)工具用以解決配置數(shù)據(jù)的初始化問(wèn)題,但由于這類(lèi)工具往往由某個(gè)廠商提供,導(dǎo)致了配置發(fā)現(xiàn)的局限性,企業(yè)往往也要付出較大成本。
投產(chǎn)后由于變更頻繁,數(shù)據(jù)無(wú)法保證及時(shí)準(zhǔn)確
以往企業(yè)一般采用變更操作驅(qū)動(dòng)配置修改(人工修改或自動(dòng)化發(fā)現(xiàn)修改)的方式以確保配置數(shù)據(jù)的準(zhǔn)確性,這種方式往往會(huì)出現(xiàn)配置信息的不一致。
如何讓人人“樂(lè)于”參與
這里的參與主要體現(xiàn)在兩個(gè)方面:
-
需要使用與自己相關(guān)的配置數(shù)據(jù)時(shí),CMDB可以立即提供;
-
遇到CMDB無(wú)法提供的數(shù)據(jù)時(shí),IT部門(mén)可自行在一定標(biāo)準(zhǔn)和約束下擴(kuò)展?jié)M足本部門(mén)運(yùn)維CMDB模型,支撐部門(mén)級(jí)的運(yùn)維場(chǎng)景。
配置數(shù)據(jù)的價(jià)值無(wú)法呈現(xiàn)
缺乏清晰的場(chǎng)景定義,包括流程價(jià)值、監(jiān)控價(jià)值、BSM價(jià)值、云價(jià)值等
單一流程驅(qū)動(dòng)CMDB的場(chǎng)景,無(wú)法讓CMDB中的數(shù)據(jù)流動(dòng)起來(lái),隨著時(shí)間的推移CMDB中的數(shù)據(jù)就逐漸腐敗——不及時(shí)也不準(zhǔn)確。
同時(shí),CMDB在技術(shù)上作為一個(gè)“數(shù)據(jù)庫(kù)”,要讓其中的數(shù)據(jù)能夠流動(dòng)起來(lái),必須明確與之匹配的運(yùn)維場(chǎng)景。
場(chǎng)景是用來(lái)描述與CMDB中某些配置項(xiàng)交互的一組活動(dòng),滿足IT部門(mén)某一方面的運(yùn)維管理目標(biāo),這一目標(biāo)可以被度量、跟蹤、改進(jìn)、可視化,與此同時(shí),CMDB的價(jià)值也隨之呈現(xiàn)。
缺乏有效、明確的配置數(shù)據(jù)集成策略
如前所述,CMDB是一個(gè)邏輯上的數(shù)據(jù)庫(kù),其中的數(shù)據(jù)需要和企業(yè)現(xiàn)有IT環(huán)境中的多類(lèi)數(shù)據(jù)源進(jìn)行整合,一套行之有效的數(shù)據(jù)集成策略和ETL(數(shù)據(jù)抽取、轉(zhuǎn)換、轉(zhuǎn)載)工具也必不可少。
通過(guò)以上分析,我們回顧了CMDB的歷史發(fā)展過(guò)程,以及建設(shè)過(guò)程中遇到的挑戰(zhàn)。下面來(lái)看云化環(huán)境下CMDB又將面臨什么新問(wèn)題。
圖數(shù)據(jù)庫(kù)和CMDB
在我們上一篇關(guān)于圖數(shù)據(jù)庫(kù)的文章《圖數(shù)據(jù)庫(kù)——大數(shù)據(jù)時(shí)代的高鐵》中,我們已經(jīng)對(duì)圖數(shù)據(jù)庫(kù)有了一個(gè)初步的認(rèn)識(shí),那么最擅長(zhǎng)做風(fēng)控的圖數(shù)據(jù)庫(kù)為什么也能在CMDB領(lǐng)域大展拳腳呢?這就與圖數(shù)據(jù)庫(kù)天生的技術(shù)特性密不可分。
CMDB領(lǐng)域中最基本的單位是CI,也就是配置項(xiàng),CMDB最基礎(chǔ)的功能就是記錄配置項(xiàng),以及它們的重要屬性和之間的關(guān)系。簡(jiǎn)單而言,CMDB是用以記錄IT系統(tǒng)中所有類(lèi)別及其具體屬性,以及其間關(guān)聯(lián)關(guān)系的。如果你只有那么幾臺(tái)設(shè)備,手指就能數(shù)得過(guò)來(lái);如果有幾十臺(tái)設(shè)備,幾張表也夠了;而如果是成百上千臺(tái),甚至種類(lèi)就多達(dá)幾十種呢?這就必須要有個(gè)資產(chǎn)管理系統(tǒng),否則你怎么知道這臺(tái)設(shè)備的前世今生,以及它出了問(wèn)題應(yīng)該找誰(shuí)(哪家供應(yīng)商)。
而資產(chǎn)管理系統(tǒng)就夠了嗎?設(shè)備要用起來(lái),就不能是孤立的,多種設(shè)備,以及設(shè)備上的系統(tǒng)、軟件必須是連接起來(lái)才有意義,但資產(chǎn)系統(tǒng)顯然管不了這種關(guān)聯(lián)關(guān)系。
而如果使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),很簡(jiǎn)單的想法是一張表對(duì)應(yīng)一種設(shè)備類(lèi)型,表的列就是這種設(shè)備的屬性。那問(wèn)題來(lái)了,我加了一種設(shè)備怎么辦?我需要在數(shù)據(jù)庫(kù)里新建一張表,這個(gè)我還能做,因?yàn)槲沂莻€(gè)系統(tǒng)管理員嘛,這么簡(jiǎn)單的DBA入門(mén)工作還是能做的,但程序怎么辦?它能認(rèn)出新加的這張表嗎?我可不懂Java、JavaScript……于是只好付錢(qián)給我的軟件供應(yīng)商,讓他再幫我加這一類(lèi)設(shè)備。而作為軟件提供商,就會(huì)面臨各種各樣稀奇古怪的設(shè)備類(lèi)型,那軟件開(kāi)發(fā)人員能把這些類(lèi)型都內(nèi)置在里面嗎?顯然不可能。再一種情況,以前我的資產(chǎn)管理系統(tǒng)對(duì)于PC服務(wù)器,只需要記錄它的型號(hào)、配置即可,突然老板跟我說(shuō)今年要作固定資產(chǎn)登記,每臺(tái)機(jī)器加個(gè)標(biāo)簽,上面是固定資產(chǎn)編號(hào)。我又得叫軟件提供商提供新版本了……
簡(jiǎn)而言之,傳統(tǒng)的資產(chǎn)管理系統(tǒng),設(shè)備類(lèi)別不可增,設(shè)備屬性也不能增。或者,都可增,但開(kāi)發(fā)代價(jià)太大了,不是小公司的開(kāi)發(fā)團(tuán)隊(duì)能鎮(zhèn)得住的,其性能及可維護(hù)性也不好。用關(guān)系數(shù)據(jù)庫(kù)(RDBMS)來(lái)做CMDB是死路一條。而圖數(shù)據(jù)庫(kù)為CMDB的未來(lái)發(fā)展指出了一條陽(yáng)關(guān)大道。
圖數(shù)據(jù)庫(kù)屬于NoSQL的一種,其表征數(shù)據(jù)的核心稱(chēng)之為節(jié)點(diǎn),節(jié)點(diǎn)采用Key-Value的方式保存數(shù)據(jù),這一點(diǎn)創(chuàng)造性解決了設(shè)備類(lèi)別(CMDB里叫CI類(lèi))的擴(kuò)展性,可以隨意加一種CI類(lèi),也可以隨意在CI類(lèi)里加一個(gè)屬性,而且它不會(huì)影響原有數(shù)據(jù),也無(wú)所謂空與非空。另外,圖數(shù)據(jù)庫(kù)原來(lái)主要用于社交網(wǎng)絡(luò),就是小明認(rèn)識(shí)小紅,而小紅是她媽媽的女兒,她媽媽是她爸爸的妻子,同時(shí)也是老板的下屬,那小紅與老板有什么社交關(guān)系就可以查出來(lái)了(如圖1所示)。
人與人之間的關(guān)系太復(fù)雜,而設(shè)備與設(shè)備之間的關(guān)系(CI項(xiàng)與CI項(xiàng)之間的關(guān)系)也類(lèi)似,應(yīng)用系統(tǒng)依賴(lài)于數(shù)據(jù)庫(kù)節(jié)點(diǎn)和中間件節(jié)點(diǎn),而數(shù)據(jù)庫(kù)節(jié)點(diǎn)和中間件節(jié)點(diǎn)都依賴(lài)于操作系統(tǒng),操作系統(tǒng)運(yùn)行在虛擬機(jī)上,虛擬機(jī)又依賴(lài)于物理服務(wù)器,物理服務(wù)器又與存儲(chǔ)相連……那么,應(yīng)用系統(tǒng)與存儲(chǔ)其實(shí)也是有關(guān)聯(lián)的。這樣的連接關(guān)系,如果用關(guān)系數(shù)據(jù)庫(kù)來(lái)表示,應(yīng)該怎么設(shè)計(jì)?實(shí)際上是無(wú)法表達(dá)出來(lái)的。
在圖2中,我們可以根據(jù)CI之間的關(guān)系定義不同的關(guān)系,例如CI和CI之間是依賴(lài)關(guān)系、包含關(guān)系、運(yùn)行于關(guān)系、安裝在關(guān)系,以及連接關(guān)系等。而且關(guān)系的屬性種類(lèi)可以根據(jù)實(shí)際的需求無(wú)限制擴(kuò)展。
圖2 一個(gè)圖數(shù)據(jù)庫(kù)中CI關(guān)系圖示例
CMDB領(lǐng)域中的圖數(shù)據(jù)模型
圖數(shù)據(jù)庫(kù)一般都有自己獨(dú)特的對(duì)數(shù)據(jù)進(jìn)行描述的方式,即以圖節(jié)點(diǎn)和圖邊為特征的數(shù)據(jù)表征形式。在不同領(lǐng)域的數(shù)據(jù)結(jié)構(gòu)中圖模型的表現(xiàn)是完全不一樣的。我們將通過(guò)一個(gè)實(shí)際案例來(lái)詳細(xì)了解一下,在CMDB領(lǐng)域的圖模型是如何建模的。
傳統(tǒng)CMDB原始數(shù)據(jù)分析
傳統(tǒng)CMDB都是把數(shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)中,并且分多張表存儲(chǔ)。接下來(lái)我們就把數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫(kù)中導(dǎo)出為.csv格式的表格,用Excel打開(kāi)。如圖3所示,這是一個(gè)包含了UPS、STS、配電柜、機(jī)柜、物理主機(jī)、VM、應(yīng)用系統(tǒng)等超過(guò)20種數(shù)據(jù)類(lèi)型的原始數(shù)據(jù)表格。
圖4是原始數(shù)據(jù)表中配電柜子表的數(shù)據(jù)演示,出于數(shù)據(jù)隱私的需要,我們隱藏了部分字段的真實(shí)信息。其他CI的數(shù)據(jù)我們就不一一示例,基本上都大同小異。
圖4 配電柜原始數(shù)據(jù)示例
原始數(shù)據(jù)關(guān)聯(lián)關(guān)系分析
關(guān)于什么是圖數(shù)據(jù)庫(kù)的“節(jié)點(diǎn)”和“邊”我們不再詳述,大家可以參考我們上一篇介紹圖數(shù)據(jù)庫(kù)的文章,到這一步,我們就直接分析如何根據(jù)原始數(shù)據(jù)建立節(jié)點(diǎn)和邊的關(guān)系數(shù)據(jù)模型。
第一步是要根據(jù)業(yè)務(wù)需求,確認(rèn)不同CI之間的關(guān)系分類(lèi),如我們?cè)诒?中所描述的那樣,一般情況下,CI之間的關(guān)系就只有表中呈現(xiàn)的那么多。
表1 CMDB中CI與CI之間的關(guān)系列表示例
第二步,我們把所有的CI和關(guān)系的種類(lèi)都列出來(lái),當(dāng)然,只需要和業(yè)務(wù)部門(mén)充分溝通。圖5是一個(gè)示例。
圖5 CI與CI之間的關(guān)系分析
根據(jù)分析結(jié)果整理出節(jié)點(diǎn)類(lèi)型和邊類(lèi)型
根據(jù)步驟一和步驟二的整理結(jié)果,列出所有的節(jié)點(diǎn)類(lèi)型,如圖6、圖7所示。
圖6 圖數(shù)據(jù)庫(kù)節(jié)點(diǎn)類(lèi)型
根據(jù)節(jié)點(diǎn)類(lèi)型和邊類(lèi)型畫(huà)出CMDB系統(tǒng)的圖模型
根據(jù)已經(jīng)整理好的節(jié)點(diǎn)類(lèi)型和邊類(lèi)型,我們就可以很輕松地把基于圖數(shù)據(jù)庫(kù)框架的數(shù)據(jù)模型畫(huà)出來(lái),將來(lái)原始關(guān)系型數(shù)據(jù)庫(kù)中的結(jié)構(gòu)化數(shù)據(jù)也會(huì)以這種數(shù)據(jù)模型的架構(gòu)轉(zhuǎn)換成圖數(shù)據(jù)庫(kù)中的節(jié)點(diǎn)和邊的數(shù)據(jù)類(lèi)型,從此不再和關(guān)系型數(shù)據(jù)庫(kù)有任何關(guān)系。
在圖8中我們可以看到所有CI之間的關(guān)系圖譜。圖數(shù)據(jù)庫(kù)的一個(gè)最大優(yōu)點(diǎn)就是數(shù)據(jù)建模非常方便直觀。傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的DBA可以無(wú)需做任何修改就把原始的E-R圖直接轉(zhuǎn)換成圖數(shù)據(jù)庫(kù)的圖數(shù)據(jù)模型,這一點(diǎn)對(duì)業(yè)務(wù)部門(mén)的使用者而言非常方便。
我們?cè)谏衔恼劶皞鹘y(tǒng)CMDB的弊端時(shí),曾經(jīng)說(shuō)過(guò)傳統(tǒng)CMDB的建模非常難以把握CI深度的這個(gè)度的關(guān)系,而在圖數(shù)據(jù)庫(kù)中這都不會(huì)存在問(wèn)題。管理員可以根據(jù)業(yè)務(wù)需求,隨時(shí)修改圖8的圖模型,例如在不同的CI之間建立起邊的聯(lián)系,或者新增加一種節(jié)點(diǎn)類(lèi)型(CI類(lèi)型),而這一切甚至不需要停機(jī),在線狀態(tài)就可以直接修改生效。
圖8 CMDB系統(tǒng)的圖數(shù)據(jù)庫(kù)系統(tǒng)建模示例
CMDB查詢(xún)展示
數(shù)據(jù)模型建好之后,接下去只需要把數(shù)據(jù)導(dǎo)入圖數(shù)據(jù)庫(kù)即可,對(duì)于ITIL管理人員來(lái)說(shuō),還是要看一下圖數(shù)據(jù)庫(kù)是如何解決傳統(tǒng)CMDB系統(tǒng)弊端的。
查某一個(gè)/多個(gè)CI向上支撐/向下影響的其他CI,并支持結(jié)果按類(lèi)別篩選
我們首先來(lái)看看在CMDB中遇到的最常見(jiàn)問(wèn)題:查找任意一個(gè)CI的影響關(guān)系,即如果該CI出現(xiàn)問(wèn)題,無(wú)論是出現(xiàn)故障還是需要做變更,看看這個(gè)CI的影響范圍,以及可能的影響職能部門(mén),甚至指定的個(gè)人。
在圖9中,我們查找從指定UPS出發(fā),在“結(jié)果類(lèi)型”中填0,表示查詢(xún)所有受影響或支撐的CI,在“查詢(xún)深度”輸入框中指定步數(shù),輸入10,則表示查詢(xún)10步及10步以?xún)?nèi)受影響或支持的CI。如,UPS到開(kāi)關(guān)是一步影響關(guān)系,UPS到開(kāi)關(guān)再到配電柜就是2步影響關(guān)系,以此類(lèi)推。
圖9 CI影響范圍的查詢(xún)
在上面的圖展示中,可以對(duì)圖進(jìn)行放大縮小,或者對(duì)某一塊區(qū)域的圖節(jié)點(diǎn)進(jìn)行放大查看,甚至可以對(duì)某一個(gè)節(jié)點(diǎn)進(jìn)行查看。
查詢(xún)關(guān)聯(lián)路徑:選擇2個(gè)CI,看其間的影響/關(guān)聯(lián)路徑
查找兩個(gè)CI之間的關(guān)聯(lián)關(guān)系也是我們?cè)贑MDB系統(tǒng)中經(jīng)常遇到的問(wèn)題,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)需要做不同表之間的Join操作,數(shù)據(jù)量一大就會(huì)出現(xiàn)計(jì)算時(shí)間呈指數(shù)級(jí)別上升,往往查詢(xún)時(shí)間會(huì)讓管理人員無(wú)法忍受。而圖數(shù)據(jù)庫(kù)的查詢(xún)時(shí)間基本上是在幾毫秒到十幾毫秒之間,較之傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)查找時(shí)間,可以減少幾個(gè)數(shù)量級(jí)。
我們?cè)凇霸垂?jié)點(diǎn)ID”輸入框中輸入第一個(gè)CI的ID,如UPSG;在“源節(jié)點(diǎn)類(lèi)型”輸入框中輸入第一個(gè)CI的類(lèi)型,如ups;在“宿節(jié)點(diǎn)ID”輸入框中輸入第二個(gè)CI的ID,如rs-06D51ER;在“宿節(jié)點(diǎn)類(lèi)型”輸入框中輸入第二個(gè)CI的類(lèi)型,如ps。則表示需要查詢(xún)ups為 UPSG和物理主機(jī)rs-06D51ER之間的關(guān)聯(lián)路徑;在“查詢(xún)深度”輸入框中輸入步數(shù),如10,表示查詢(xún)到的路徑最長(zhǎng)不超過(guò)10步。查詢(xún)結(jié)果見(jiàn)圖10。
圖10 不同CI之間的影響路徑查詢(xún)
查詢(xún)某個(gè)人管理著哪些CI
查詢(xún)某個(gè)人管理著哪些CI,在圖數(shù)據(jù)庫(kù)上就是查找和這個(gè)人有關(guān)聯(lián)關(guān)系的節(jié)點(diǎn)和邊的類(lèi)型的計(jì)算。
我們?cè)贑MDB系統(tǒng)中,在“節(jié)點(diǎn)ID”輸入框中輸入某個(gè)人的姓名,在“節(jié)點(diǎn)類(lèi)型”輸入框中輸入類(lèi)型,如person,表示查找某個(gè)管理員管理著哪些CI;在“最多查出多少個(gè)節(jié)點(diǎn)”中指定一個(gè)數(shù),如100,表示最多查出100個(gè)(見(jiàn)圖11)。
圖11 查詢(xún)某個(gè)人管理著哪些CI
類(lèi)似的查詢(xún)場(chǎng)景還有查詢(xún)某個(gè)機(jī)房有哪些CI,如圖12所示。
圖12 查詢(xún)某個(gè)機(jī)房有哪些CI
查詢(xún)某個(gè)IP被哪個(gè)CI使用了
查詢(xún)某個(gè)IP被哪個(gè)CI使用了這是最為頻繁使用的查詢(xún),傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的查詢(xún)速度應(yīng)該也不會(huì)慢太多,但是關(guān)鍵是我要從查詢(xún)到的結(jié)果出發(fā)去進(jìn)一步查找該CI的信息,此時(shí)圖數(shù)據(jù)庫(kù)就可以展現(xiàn)出更直觀的方式。在圖數(shù)據(jù)庫(kù)上只需要點(diǎn)擊查詢(xún)到的CI,就可以從該CI出發(fā),進(jìn)一步展現(xiàn)和該CI有關(guān)系的其他CI,這種查詢(xún)可以無(wú)限制地做下去,直到找到管理員需要的信息(如圖13所示)。
圖13 查詢(xún)某個(gè)IP正在被哪個(gè)CI使用
查詢(xún)結(jié)果可以以多種直觀的方式展現(xiàn)
圖數(shù)據(jù)庫(kù)對(duì)查詢(xún)結(jié)果的輸出可以非常靈活,可以導(dǎo)出為.csv格式的表格性數(shù)據(jù),但更擅長(zhǎng)的還是圖形化界面的展示。
圖形化界面的展示可以是多種形式,例如通過(guò)力學(xué)排列、樹(shù)形排列、層疊排列、環(huán)形排列等不同形式展現(xiàn),方便查看(例圖見(jiàn)圖14、圖15)。
圖14 力學(xué)排列CI查詢(xún)結(jié)果
存在的問(wèn)題
CMDB已經(jīng)是IT領(lǐng)域一個(gè)并不算新穎的話題,甚至有點(diǎn)老生常談,但是通過(guò)圖數(shù)據(jù)庫(kù)來(lái)重新構(gòu)建CMDB系統(tǒng),卻給這個(gè)似乎已經(jīng)步入中年的IT技術(shù)重新帶來(lái)了青春。在問(wèn)題管理、資產(chǎn)管理,以及變更管理上,都大大提高了既有的工作效率。
雖然如此,通過(guò)圖數(shù)據(jù)庫(kù)來(lái)重新構(gòu)建CMDB系統(tǒng)也存在一些待決的問(wèn)題,需要各個(gè)CMDB的軟件廠商和項(xiàng)目落地的合作伙伴共同去面對(duì)和解決。
首先,使用圖數(shù)據(jù)庫(kù)并沒(méi)有解決原始數(shù)據(jù)自動(dòng)化配置發(fā)現(xiàn)的問(wèn)題。圖數(shù)據(jù)庫(kù)的出現(xiàn),大大拓展了CI的范圍廣度和深度,將之前運(yùn)維體系所不能,甚至不敢涉足到的CI數(shù)據(jù)也納入到管理系統(tǒng)中來(lái),同時(shí)查詢(xún)性能反而得到了提高,這是一個(gè)優(yōu)點(diǎn),但是原始數(shù)據(jù)的自動(dòng)化配置也是圖數(shù)據(jù)庫(kù)無(wú)法繞開(kāi)的步驟。巧婦難為無(wú)米之炊,如果沒(méi)有數(shù)據(jù),再?gòu)?qiáng)大的平臺(tái)也無(wú)能為力,所以圖數(shù)據(jù)庫(kù)還需要配合數(shù)據(jù)自動(dòng)化配置發(fā)現(xiàn)才能實(shí)現(xiàn)最佳效果;
第二,目前市面上基于圖數(shù)據(jù)庫(kù)的CMDB系統(tǒng)基本上都是在既有的ITSM系統(tǒng)上再次改造而來(lái),并沒(méi)有廠商開(kāi)發(fā)出原生的基于圖數(shù)據(jù)庫(kù)的CMDB系統(tǒng)。主要原因是圖數(shù)據(jù)庫(kù)技術(shù)還比較新,傳統(tǒng)CMDB廠商對(duì)其了解還不夠深入,所以現(xiàn)在更多的實(shí)踐還是在現(xiàn)有CMDB基礎(chǔ)之上的改進(jìn)和補(bǔ)充。目前已經(jīng)有一些CMDB的開(kāi)發(fā)廠商正在研究如何把圖數(shù)據(jù)庫(kù)整合到ITSM平臺(tái)中,甚至完全替換掉傳統(tǒng)的CMDB技術(shù),讓我們拭目以待。
關(guān)于系統(tǒng)選型和配置建議
從2014年開(kāi)始到現(xiàn)在,圖數(shù)據(jù)庫(kù)已經(jīng)在目前所有數(shù)據(jù)庫(kù)模型的發(fā)展趨勢(shì)中名列第一,如圖16所示。目前業(yè)界基于圖數(shù)據(jù)庫(kù)開(kāi)發(fā)出來(lái)的開(kāi)源軟件和閉源軟件都不少,其中開(kāi)源界最有名的是Neo4j,而在閉源的商業(yè)軟件則有GraphSQL——一個(gè)來(lái)自美國(guó)硅谷的品牌。
圖16 db-engines.com網(wǎng)站對(duì)全球所有數(shù)據(jù)庫(kù)模型發(fā)展趨勢(shì)的評(píng)分
無(wú)論是Neo4j還是GraphSQL,他們都是基于原生圖存儲(chǔ)和圖引擎計(jì)算的數(shù)據(jù)庫(kù)產(chǎn)品,在原理上完全一致。在產(chǎn)品知名度、軟件易用性上,Neo4j經(jīng)過(guò)多年發(fā)展已經(jīng)更加深入人心,但是在大型企業(yè)部署上,例如高可用、高并發(fā)、可擴(kuò)展性等企業(yè)級(jí)管理功能上卻是GraphSQL明顯勝出。
CMDB領(lǐng)域本身的數(shù)據(jù)量并不大,關(guān)鍵是復(fù)雜關(guān)系的關(guān)聯(lián)分析和管理。一個(gè)1000人大型企業(yè)的CI項(xiàng)目總計(jì)在一起一般不會(huì)超過(guò)50萬(wàn)個(gè),轉(zhuǎn)換成圖數(shù)據(jù)庫(kù)中的節(jié)點(diǎn)和邊的數(shù)據(jù)類(lèi)型后一般在100萬(wàn)個(gè)節(jié)點(diǎn)左右甚至以下,邊的數(shù)量在1000萬(wàn)左右。這個(gè)數(shù)據(jù)量對(duì)圖數(shù)據(jù)庫(kù)而言都是小兒科,一臺(tái)普通的X86服務(wù)器就可以滿足要求。如果出于企業(yè)級(jí)管理的需要,例如高可用、熱備等,就要考慮部署3臺(tái)左右的主機(jī),甚至異地?cái)?shù)據(jù)中心的雙集群架構(gòu)。
最后,關(guān)于本文中提到的技術(shù)框架問(wèn)題、數(shù)據(jù)模型,以及如何做到數(shù)據(jù)同步、如何實(shí)現(xiàn)自動(dòng)化數(shù)據(jù)配置發(fā)現(xiàn)等問(wèn)題,因篇幅所限無(wú)法一一展現(xiàn),歡迎有興趣的朋友和我們聯(lián)系。
本文所采用的技術(shù)平臺(tái)由GraphSQL提供支持,在此表示感謝。
作者:董小珊,20年IT從業(yè)經(jīng)驗(yàn),曾供職于HP、F5、Citrix。熟知行業(yè)應(yīng)用,對(duì)企業(yè)級(jí)用戶(hù)的咨詢(xún)、管理、挖掘,有著豐富的經(jīng)驗(yàn)。2016年作為聯(lián)合創(chuàng)始人創(chuàng)辦深圳安聯(lián)信息技術(shù)有限公司,專(zhuān)注于圖數(shù)據(jù)庫(kù)的咨詢(xún)與市場(chǎng)。?
姚臻,大數(shù)據(jù)分析專(zhuān)家,尤其是專(zhuān)注于圖數(shù)據(jù)庫(kù)領(lǐng)域,對(duì)GraphSQL、Neo4J、InfiniteGraph等不同的開(kāi)源技術(shù)和閉源產(chǎn)品都有比較深入的研究。?
譚通,大數(shù)據(jù)工程架構(gòu)師,多年C/C++開(kāi)發(fā)經(jīng)驗(yàn),現(xiàn)致力于圖數(shù)據(jù)庫(kù)領(lǐng)域,對(duì)圖建模、業(yè)務(wù)場(chǎng)景算法有豐富的實(shí)踐經(jīng)驗(yàn)。?
責(zé)編:仲培藝,關(guān)注數(shù)據(jù)庫(kù)領(lǐng)域,尋求報(bào)道或者投稿請(qǐng)致郵zhongpy@csdn.net。?
本文為《程序員》原創(chuàng)文章,未經(jīng)允許不得轉(zhuǎn)載,更多精彩文章請(qǐng)訂閱2017年《程序員》
總結(jié)
以上是生活随笔為你收集整理的图数据库在CMDB领域的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。