1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        使用第一性原理,重塑CMDB!丨IDCF

        共 4014字,需瀏覽 9分鐘

         ·

        2022-07-09 21:18


        來(lái)源:新運(yùn)維社區(qū)
        作者:趙班長(zhǎng)


        本文緣起

        每篇文章都有緣分,本篇也不例外,源于和運(yùn)維圈內(nèi)好友,討論為什么CMDB永遠(yuǎn)是“不敗”的熱門話題,每隔幾年就會(huì)被提及,而且為什么經(jīng)??吹紺MDB失敗分析的各類文章。我會(huì)在下面內(nèi)容中解答。


        CMDB基礎(chǔ)知識(shí)



        CMDB(Configuration Management Database)配置管理數(shù)據(jù)庫(kù),它包含了一個(gè)組織的IT服務(wù)使用的信息系統(tǒng)組件的所有相關(guān)信息以及這些組件之間的關(guān)系。CMDB源自于《ITIL V3》服務(wù)轉(zhuǎn)換過(guò)程域中的“服務(wù)資產(chǎn)與配置管理”。

        CMDB是配置管理的核心,更是自動(dòng)化運(yùn)維的基石,它為所有運(yùn)維工具提供基礎(chǔ)數(shù)據(jù)支持,支撐不同的運(yùn)維場(chǎng)景,CMDB建設(shè)直接影響到其他運(yùn)維工具系統(tǒng)的連通性和數(shù)據(jù)一致性。

        名詞解釋:

        • 配置項(xiàng)CI(Configuration Item):

          例如物理機(jī)、交換機(jī)、路由器、虛擬機(jī)、MySQL、Redis、Tomcat這些資源都可以稱之為一個(gè)CI。


        • CI模型:

          每一個(gè)CI都需要有自己的模型,可以理解為一個(gè)關(guān)系型數(shù)據(jù)庫(kù)中的表。

          CI模型由CI屬性組成。


        • CI屬性:

          CI屬性可以理解為表中的字段,例如虛擬機(jī)這個(gè)CI,有以下屬性:

          IP地址、主機(jī)名、CPU、內(nèi)存、創(chuàng)建時(shí)間、操作系統(tǒng)等。


        • CI屬性類型:

          每個(gè)CI屬性都有其數(shù)據(jù)類型,可以理解為表中的字段類型。

          例如MySQL中的字段類型有VARCHAR、INT、TIME、DATE,CI屬性類型可以有字符串、整數(shù)、下拉菜單、浮點(diǎn)數(shù)等等。


        • CI實(shí)例:

          一個(gè)具體的資源對(duì)象,稱之為CI實(shí)例,例如mysql-node1這個(gè)MySQL數(shù)據(jù)庫(kù)。



        為什么CMDB不長(zhǎng)久?



        有一些文章寫(xiě)的是為什么CMDB總是失敗,注意,我這里將“失敗”替換為“不長(zhǎng)久”,因?yàn)槠鋵?shí)很多企業(yè)的CMDB建設(shè)都是成功的,在交付的1~2年可能都是成功的,但是時(shí)間長(zhǎng)了,感情淡了,相愛(ài)的兩個(gè)人也就遠(yuǎn)了,貌似跑題了,是因?yàn)槟憬ㄔO(shè)的可能是一個(gè)“靜態(tài)”的CMDB。

        靜態(tài)CMDB:僅僅是資產(chǎn)、資源的一個(gè)集中管理的數(shù)據(jù)庫(kù),依賴于人工維護(hù),即便有自動(dòng)采集和自動(dòng)比對(duì),也無(wú)法解決數(shù)據(jù)不準(zhǔn)確的問(wèn)題。這樣的CMDB是靜態(tài)的,是死的,是沒(méi)有靈魂的...。

        動(dòng)態(tài)CMDB:在靜態(tài)CMDB的基礎(chǔ)上,CMDB可以和其它運(yùn)維系統(tǒng)如監(jiān)控、作業(yè)進(jìn)行緊密的結(jié)合,CMDB可以與具體的運(yùn)維流程進(jìn)行配合,可以由具體的場(chǎng)景驅(qū)動(dòng)CMDB的數(shù)據(jù)CRUD。這樣的CMDB是動(dòng)態(tài)的,是活的,是具有生命力的...。


        動(dòng)態(tài)的CMDB為什么也不長(zhǎng)久?



        有很多的企業(yè)的CMDB是有生命力的動(dòng)態(tài)的CMDB,但是為什么依然還是不長(zhǎng)久,原因也有很多。而且都是多方面的原因,我只能列舉一個(gè)單獨(dú)的例子,例如如果設(shè)計(jì)的CMDB中CI之間的關(guān)系存在下面這些:運(yùn)行在、放置在、依賴于、連接在、從屬于。這可能就會(huì)不長(zhǎng)久,有人會(huì)問(wèn)為什么?傳統(tǒng)的CMDB不都是這么設(shè)計(jì)的嗎?


        現(xiàn)在你眼睛離開(kāi)手機(jī),想一下,虛擬機(jī)和物理機(jī)是什么關(guān)系,從以上關(guān)系中選擇一個(gè)作為你自己的答案。

        你的答案是:__________________


        然后你也可以問(wèn)問(wèn)周邊的同事,你會(huì)發(fā)現(xiàn),上面的所有關(guān)系,貌似都能說(shuō)的通。我在400多人的微信群里做過(guò)調(diào)研,有近100多選擇了從屬于、還有100多選擇了運(yùn)行在,而且還有很多人選擇了放置在、依賴于和連接在,而且他們選擇的理由我竟然無(wú)法100%反駁,例如我個(gè)人就認(rèn)為“放置在”不合適,但是虛擬機(jī)放置在物理機(jī)上,也不能算就一定是錯(cuò)的。我相信你自己也找到了答案,就算是你的CMDB供應(yīng)商為此專門進(jìn)行培訓(xùn),輸入產(chǎn)品設(shè)計(jì)時(shí)的關(guān)系定義,但是只要有人員變動(dòng),或者有新的CI加入,沒(méi)有經(jīng)過(guò)培訓(xùn)的人就無(wú)法正確的使用CMDB。所以你會(huì)看到這種說(shuō)法:CMDB本身并沒(méi)有錯(cuò),錯(cuò)的是使用者?至少我不這么認(rèn)為!

        多年來(lái)不同的企業(yè)都在嘗試解決這些問(wèn)題(上面只是一個(gè)例子),但是如果是建立在現(xiàn)有的解決方案上面的改進(jìn),還是不能有效的解決這些問(wèn)題,也許【第一性原理】可以幫到我們,我?guī)е蠹乙黄饋?lái)嘗試一下。


        什么是第一性原理?



        請(qǐng)注意,前三個(gè)字需要連起來(lái)讀。第一性原理是一個(gè)哲學(xué)上的概念,它的首創(chuàng)者是亞里士多德,之所以被大眾所熟悉是因?yàn)镾paceX、特斯拉公司CEO埃隆·馬斯克(Elon Musk)在參加一次TED演講時(shí),主持人問(wèn)他,為什么你在不同的領(lǐng)域都能夠取得成功?他說(shuō)可能是我掌握了第一性原理吧。

        用最通俗的話來(lái)解釋什么是第一性原理,就是在當(dāng)前事物設(shè)計(jì)和創(chuàng)新中,我們會(huì)習(xí)慣于站在前人的肩膀上,通過(guò)比較思維去思考問(wèn)題,在別人已經(jīng)做過(guò)的基礎(chǔ)上進(jìn)行迭代發(fā)展。而第一性原理告訴我們,需要用物理學(xué)的角度看待事物,透過(guò)表象看到本質(zhì),然后在從本質(zhì)一層一層往上走。

        針對(duì)第一性原理在CMDB中的實(shí)踐,通俗的理解就是,我們不需要關(guān)心之前互聯(lián)網(wǎng)前輩們的CMDB是如何設(shè)計(jì)的,別人的解決方案是什么,也不要參考或者在已有的解決方案之上的修改或者創(chuàng)新,而是從CMDB的本質(zhì)上進(jìn)行思考如何解決這些問(wèn)題,這樣就有可能會(huì)有新的,真正“正確”的解決方案。注意只是有可能,嘗試總會(huì)遇到各種失敗,但是不嘗試,永遠(yuǎn)不可能有創(chuàng)新。

        由于篇幅問(wèn)題,我下面通過(guò)兩個(gè)CMDB設(shè)計(jì)中兩個(gè)具體的案例來(lái)闡述第一性原理的使用。

        1.如何設(shè)計(jì)CMDB中關(guān)系

        毋庸置疑,在CMDB中,CI和CI的關(guān)系可能會(huì)像下面這樣,是一個(gè)非常復(fù)雜的關(guān)系,有的企業(yè)在嘗試使用圖數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)CI和CI之間的關(guān)系,因?yàn)楸举|(zhì)上CI和CI之間的關(guān)系就是一個(gè)圖,但是這并不能說(shuō)明解決了CI之間的關(guān)系問(wèn)題,因?yàn)槿绻尸F(xiàn)給用戶是下面這樣一個(gè)CMDB關(guān)系,我相信用戶除了贊嘆一聲:「我靠,真牛掰」之外,會(huì)接著打開(kāi)他的EXCEL表進(jìn)行資源的管理維護(hù)。

        從CMDB的CI與CI的本質(zhì)上講,他們是連接在一起的,屬于那種剪不斷理還亂的關(guān)系??梢詮娜祟愂澜鐏?lái)考慮關(guān)系,例如人有父母,有朋友。我就在想是不是所有的CI都應(yīng)該有一個(gè)父親,例如虛擬機(jī),它的父親是物理機(jī),物理機(jī)的父親是機(jī)柜,機(jī)柜的父親是機(jī)房。那么這就組成一個(gè)樹(shù),樹(shù)形關(guān)系應(yīng)該是存在于所有工程師的認(rèn)知里,例如DNS就是一個(gè)樹(shù),我們的Linux文件系統(tǒng)也是一個(gè)樹(shù)形結(jié)構(gòu),甚至每天常用的Xshell工具,我也習(xí)慣使用樹(shù)視圖。

        我把CMDB的關(guān)系分為兩種關(guān)系,父子關(guān)系和連接關(guān)系,如何區(qū)分呢?

        父子關(guān)系:當(dāng)兩個(gè)CI在邏輯上有強(qiáng)依賴關(guān)系的都稱之為父子關(guān)系。例如虛擬機(jī)的父親是物理機(jī),因?yàn)樘摂M機(jī)不可能憑空創(chuàng)造出來(lái)。父子關(guān)系大概可以表達(dá)CMDB中80%的關(guān)系。

        連接關(guān)系:除了父子之外其它的所有關(guān)系都稱之為連接關(guān)系,例如物理機(jī)和交換機(jī),他們之間沒(méi)有強(qiáng)依賴,這就是連接關(guān)系。例如交換機(jī)和工程師張三,也是連接關(guān)系,張三可能是交換機(jī)的負(fù)責(zé)人。這就像你把所有除了父母之外的關(guān)系都稱之為朋友。

        關(guān)系標(biāo)簽:通過(guò)上面的拆分之后,CI和CI之間的關(guān)系就只有兩種了,但是你會(huì)發(fā)現(xiàn)很多CI之間的關(guān)系都是連接,如何快速的尋找到某種類型或者某種意義上的關(guān)系呢,答案是通過(guò)給關(guān)系打標(biāo)簽。例如微信通訊錄上就有標(biāo)簽的功能,通過(guò)標(biāo)簽?zāi)憧梢越o你的朋友進(jìn)行分類,例如我的微信通訊錄會(huì)有(同事、好朋友、鐵哥們、能喝酒的、合作伙伴、老領(lǐng)導(dǎo)、戰(zhàn)友)等非常多的標(biāo)簽,那么通過(guò)標(biāo)簽?zāi)憔涂梢越oCI之間的連接關(guān)系進(jìn)行標(biāo)記,例如物理機(jī)和交換機(jī)的連接關(guān)系叫做網(wǎng)絡(luò)連接,物理機(jī)和員工之間的聯(lián)系關(guān)系叫做管理連接,A服務(wù)和B服務(wù)之間的連接關(guān)系叫做服務(wù)調(diào)用等等。

        虛擬CI:當(dāng)然這里面還有非常多設(shè)計(jì)的小細(xì)節(jié),例如MySQL可以運(yùn)行在容器、虛擬機(jī)、物理機(jī)、云主機(jī)等CI上,也就是說(shuō)MySQL可能會(huì)有了多個(gè)父親,但是MySQL和虛擬機(jī)之間的關(guān)系確實(shí)是父子,因?yàn)橛袕?qiáng)依賴,連接關(guān)系不合適這種非常特殊的情況。這里我引入了“虛擬CI”的概念。例如【主機(jī)】就是一個(gè)虛擬的CI,在實(shí)際的模型之間的關(guān)系設(shè)計(jì)中,MySQL的父CI是【主機(jī)】,這樣在數(shù)據(jù)錄入的時(shí)候,你可以從虛擬CI【主機(jī)】的物理CI(物理機(jī)、虛擬機(jī)、云主機(jī)、容器)中選擇一個(gè)實(shí)例作為MySQL的運(yùn)行主機(jī)。

        2.如何設(shè)計(jì)CMDB中的CI屬性

        CMDB中CI的屬性可以理解為表中的字段,就像一個(gè)人,他有姓名、身份證號(hào)、性別、身高、體重。我把CI的屬性總體分為三個(gè)類別。



        • 普通屬性:就是手工錄入或者自動(dòng)采集的CI屬性,不需要?jiǎng)討B(tài)修改的CI的基本信息。例如姓名、身份證號(hào)等,普通屬性的修改可能就會(huì)涉及到走變更流程,就像如果想修改身份證上的姓名,也需要有一個(gè)非常復(fù)雜的流程。


        • 關(guān)系屬性:父子關(guān)系、連接關(guān)系、無(wú)關(guān)系。關(guān)系也使用CI屬性來(lái)進(jìn)行表達(dá)。其中這里的無(wú)關(guān)系是指兩個(gè)CI模型之間進(jìn)行一個(gè)引用,但是并沒(méi)有具體的關(guān)系。


        • 動(dòng)態(tài)屬性:

          動(dòng)態(tài)變化的,需要依賴于其它系統(tǒng)進(jìn)行更新,而不是手工維護(hù)的。例如一個(gè)主機(jī)有一個(gè)字段叫做【運(yùn)行狀態(tài)】,這個(gè)屬性就應(yīng)該是動(dòng)態(tài)的,不需要人工維護(hù),而且通過(guò)監(jiān)控平臺(tái)實(shí)時(shí)的進(jìn)行狀態(tài)的更新。


        3.如何構(gòu)建可以持久的CMDB?

        這是一個(gè)比較大的話題,從實(shí)踐中我總結(jié)了一個(gè)CMDB的3C建設(shè)方法:

        Core:核心,首先需要建立一個(gè)以CMDB為核心的一個(gè)完整的,可以自動(dòng)采集和定期做數(shù)據(jù)校驗(yàn)的一個(gè)靜態(tài)的CMDB。

        Connection:連接,把CMDB的數(shù)據(jù)消費(fèi)起來(lái),要使用它,不僅僅是簡(jiǎn)單的搜索和查詢,而且要通過(guò)CMDB把自動(dòng)化運(yùn)維的不同工具鏈打通,連接起來(lái)。通過(guò)不同的場(chǎng)景來(lái)消費(fèi)CMDB。

        Closed-Loop:閉環(huán),在連接的基礎(chǔ)上,還需要形成數(shù)據(jù)閉環(huán),保證CMDB中的一個(gè)資源對(duì)象完整的生命周期的管理,同時(shí)也可以反推其它系統(tǒng)進(jìn)行流程化的完善。


        超級(jí)工程師實(shí)戰(zhàn)營(yíng)第八模塊【運(yùn)維模塊】邀請(qǐng)到第四屆北大互聯(lián)網(wǎng)CIO班副班長(zhǎng)、《運(yùn)維知識(shí)體系》&《緩存知識(shí)體系》作者 趙舜東老師帶來(lái)3小時(shí)大時(shí)段課程分享,主題是《自動(dòng)化運(yùn)維知識(shí)體系建設(shè)實(shí)踐


        7月12日(周二)和7月13日(周三)晚上19:30-21:00,線上直播,掃碼立即報(bào)名,精彩內(nèi)容,不容錯(cuò)過(guò)


        瀏覽 109
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            美女搞机91. | 欧美一级大黄 | 91爱视频| 内射视频福利 | 日本三级线观看视频 | 少妇视频网 | 国产美女一区二区 | 赵总极品寻花最新章节更新 | 国产精品a v | 魅影真人直播b站 |