在本篇中,對(duì)運(yùn)維數(shù)據(jù)的一些高階使用場(chǎng)景進(jìn)行介紹,運(yùn)維數(shù)據(jù)使用的發(fā)展態(tài)勢(shì)和落地價(jià)值,本章節(jié)重點(diǎn)從產(chǎn)品開發(fā)角度,探討運(yùn)維數(shù)據(jù)場(chǎng)景的高階落地途徑和方法。
一、運(yùn)維的數(shù)據(jù)覆蓋面和難點(diǎn)
對(duì)于狹義的運(yùn)維來說,數(shù)據(jù)的覆蓋面相對(duì)較為單一,以系統(tǒng)穩(wěn)定和資源管理為主,大致可以分為三類,資源元數(shù)據(jù)、系統(tǒng)狀態(tài)數(shù)據(jù)、事件類數(shù)據(jù)。其中資源元數(shù)據(jù)主要覆蓋基礎(chǔ)架構(gòu)、標(biāo)準(zhǔn)化支撐組件、虛擬資源數(shù)據(jù),以及相關(guān)的屬性、組成以及關(guān)聯(lián)關(guān)系。系統(tǒng)狀態(tài)數(shù)據(jù)以各類監(jiān)控輸出為主,如使用率、存活狀態(tài)、支撐能力以及系統(tǒng)級(jí)、組件級(jí)、請(qǐng)求級(jí)的鏈路交互和拓?fù)潢P(guān)系。事件類數(shù)據(jù)一般是描述對(duì)系統(tǒng)和設(shè)備的變更、業(yè)務(wù)系統(tǒng)的異常、流程節(jié)點(diǎn)的阻斷和策略數(shù)據(jù)。
對(duì)于廣義的運(yùn)維來說,數(shù)據(jù)的覆蓋面取決于公司展業(yè)的業(yè)務(wù)復(fù)雜性和組織架構(gòu)職能的交叉延伸,在狹義的運(yùn)維數(shù)據(jù)覆蓋面之上,還包括了較為廣泛的業(yè)務(wù)數(shù)據(jù)、運(yùn)營(yíng)數(shù)據(jù)、工程效率數(shù)據(jù)、用戶體驗(yàn)數(shù)據(jù)。相對(duì)應(yīng)的也衍生出復(fù)雜的數(shù)據(jù)使用場(chǎng)景、數(shù)據(jù)處理規(guī)則、數(shù)據(jù)關(guān)聯(lián)關(guān)系和更為復(fù)雜的運(yùn)維數(shù)據(jù)輸出能力。
對(duì)于運(yùn)維數(shù)據(jù)場(chǎng)景輸出來說,有幾個(gè)前置階段,分別為場(chǎng)景適配、運(yùn)維數(shù)據(jù)中臺(tái)、運(yùn)維工程體系和運(yùn)維數(shù)據(jù)策略,本章節(jié)主要以場(chǎng)景適配闡述。在這幾個(gè)階段中,都有一些共性的數(shù)據(jù)難點(diǎn),如不確定的數(shù)據(jù)來源,多類型的數(shù)據(jù)結(jié)構(gòu),基于場(chǎng)景的數(shù)據(jù)關(guān)聯(lián)變化。下面舉一些典型的例子。
二、運(yùn)維數(shù)據(jù)的高階場(chǎng)景
在運(yùn)維數(shù)據(jù)輸出場(chǎng)景中,大都遵循數(shù)據(jù)的時(shí)效和獲取方式。在數(shù)據(jù)處理時(shí)效規(guī)則方面一般有三種,離線數(shù)據(jù)處理規(guī)則、近線數(shù)據(jù)處理規(guī)則和實(shí)時(shí)數(shù)據(jù)處理規(guī)則,相對(duì)于的數(shù)據(jù)獲取也有不同的方式,一般有,周期性的拉取數(shù)據(jù)、周期性的主動(dòng)推送數(shù)據(jù)、實(shí)時(shí)獲取數(shù)據(jù)。
在數(shù)據(jù)運(yùn)用和場(chǎng)景適配階段,離線適用于指標(biāo)統(tǒng)計(jì)類,近線適用于智能監(jiān)控的故障診斷和預(yù)測(cè),實(shí)時(shí)適用于自愈場(chǎng)景、無人值守場(chǎng)景、自動(dòng)調(diào)度場(chǎng)景。
本章節(jié)中的高階場(chǎng)景以告警自動(dòng)閾值、知識(shí)圖譜、故障自動(dòng)評(píng)估、無人值守變更和數(shù)據(jù)血緣流向?yàn)槔謩e闡述相應(yīng)的場(chǎng)景落地和具體方法。
1、知識(shí)圖譜
知識(shí)圖譜的大面積運(yùn)用是從谷歌的搜索服務(wù)開始的,從此知識(shí)圖譜的數(shù)據(jù)輸出能力得到了更大范圍的拓展,最常見的是各類知識(shí)庫(kù)。在運(yùn)維領(lǐng)域,很多高階的運(yùn)維數(shù)據(jù)運(yùn)用,尤其是基于海量數(shù)據(jù)的顆粒度關(guān)聯(lián)以及數(shù)據(jù)的聚合場(chǎng)景下的應(yīng)用,通俗點(diǎn)說,基于運(yùn)維的知識(shí)圖譜是基于業(yè)務(wù)連續(xù)性框架下的運(yùn)維知識(shí)工程。
很多人有疑問,運(yùn)維的知識(shí)圖譜和CMDB好像是一回事,其實(shí)這個(gè)說法并沒有錯(cuò),知識(shí)圖譜是采用數(shù)據(jù)聚合和運(yùn)維策略的CMDB進(jìn)階方式。通常我們會(huì)遇到一個(gè)場(chǎng)景,在云環(huán)境下,某臺(tái)宿主機(jī)重啟,知識(shí)圖譜會(huì)告訴我們這臺(tái)宿主機(jī)上運(yùn)行哪些虛擬機(jī),部署了什么系統(tǒng),承接了什么業(yè)務(wù),這些系統(tǒng)的服務(wù)狀態(tài)又會(huì)影響哪些下游系統(tǒng),下游系統(tǒng)又會(huì)影響什么業(yè)務(wù)場(chǎng)景,業(yè)務(wù)鏈路會(huì)造成什么影響,對(duì)正常展業(yè)帶來了什么風(fēng)險(xiǎn),這是知識(shí)圖譜的的一種能力輸出方式。
在知識(shí)圖譜的落地過程中,我們需要打通基礎(chǔ)架構(gòu)、系統(tǒng)架構(gòu)、業(yè)務(wù)架構(gòu)的數(shù)據(jù)層次和數(shù)據(jù)顆粒度的關(guān)系,這種數(shù)據(jù)量是非常龐大的,如CMDB、配置中心和接口系統(tǒng),甚至還需要對(duì)接業(yè)務(wù)需求系統(tǒng),比較理想的情況下獲取完整的結(jié)構(gòu)化數(shù)據(jù)。
同時(shí)通過運(yùn)維策略和業(yè)務(wù)規(guī)則進(jìn)行數(shù)據(jù)層次關(guān)系落地,對(duì)運(yùn)維數(shù)據(jù)不斷的篩選和知識(shí)驗(yàn)證,最終達(dá)到正確的運(yùn)維知識(shí)結(jié)構(gòu),下面我們舉一個(gè)某個(gè)業(yè)務(wù)的知識(shí)圖譜例子。
在以上關(guān)系圖中,我們可以發(fā)現(xiàn)一些不合理的地方,如系統(tǒng)C部署在同一臺(tái)物理機(jī)上,redis集群的主節(jié)點(diǎn)1和從節(jié)點(diǎn)1部署在同一臺(tái)物理機(jī)上,C系統(tǒng)的d接口是一個(gè)公共接口,集群規(guī)模不夠大。通過知識(shí)圖譜的一些圖形化能力,可以查到豐富的結(jié)果,展現(xiàn)給各能力子域較為全面的知識(shí),還可以進(jìn)階為更高級(jí)的語義匹配能力。
知識(shí)圖譜在運(yùn)維領(lǐng)域主要構(gòu)建了常見的容量場(chǎng)景、業(yè)務(wù)鏈路場(chǎng)景、故障場(chǎng)景,通過一定策略判斷對(duì)數(shù)據(jù)輸出實(shí)現(xiàn)輔助決策功能。
對(duì)于AIOps而言,知識(shí)圖譜實(shí)現(xiàn)了一定的數(shù)據(jù)思考和數(shù)據(jù)推理,和監(jiān)控系統(tǒng)的打通能夠?qū)崿F(xiàn)事前事中的風(fēng)險(xiǎn)判斷和風(fēng)險(xiǎn)溯源。
2、故障自動(dòng)評(píng)估
故障自動(dòng)評(píng)估有較多的應(yīng)用場(chǎng)景,主要有應(yīng)急演練時(shí)快速避免盲測(cè)帶來的風(fēng)險(xiǎn),故障發(fā)生時(shí)快速判斷對(duì)業(yè)務(wù)的影響面,故障自動(dòng)評(píng)估也是基于運(yùn)維知識(shí)圖譜的衍生能力之一。
同樣以上述圖標(biāo)為例,再做一些延伸,當(dāng)我們對(duì)以上宿主機(jī)1-6進(jìn)行數(shù)量窮舉,宕機(jī)一臺(tái)的有6種方式,宕機(jī)二臺(tái)的有15種方式,宕機(jī)三臺(tái)的概率較小不做分析,此處還可以形成數(shù)據(jù)中心和機(jī)柜的信息進(jìn)行數(shù)據(jù)聚合。針對(duì)宕機(jī)一臺(tái)進(jìn)行分析得到,宿主機(jī)3和宿主機(jī)4宕機(jī)對(duì)業(yè)務(wù)鏈路產(chǎn)生中斷影響。
在故障自動(dòng)評(píng)估中,有一點(diǎn)需要特別關(guān)注,那就是數(shù)據(jù)的模糊邊界。數(shù)據(jù)的邊界大致分為三類,面向基礎(chǔ)架構(gòu)的數(shù)據(jù)邊界、面向應(yīng)用系統(tǒng)的數(shù)據(jù)邊界、面向業(yè)務(wù)保障的數(shù)據(jù)邊界,在這個(gè)過程中需要將這些數(shù)據(jù)邊界完全打破,形成多層次的顆粒展現(xiàn)。
在落地過程中還有一點(diǎn)值得關(guān)注的,統(tǒng)一偏業(yè)務(wù)側(cè)的運(yùn)維語言和業(yè)務(wù)連續(xù)性評(píng)估方法,這是偏向頂層的設(shè)計(jì),將業(yè)務(wù)邏輯、數(shù)據(jù)流和基礎(chǔ)架構(gòu)集成數(shù)據(jù)進(jìn)行分析評(píng)估,并實(shí)現(xiàn)多個(gè)數(shù)據(jù)模型的輸出匯聚,在業(yè)務(wù)服務(wù)的影響下進(jìn)行數(shù)據(jù)映射。
除此之外,還有最重要的場(chǎng)景識(shí)別,這也是CMDB是否成為運(yùn)維知識(shí)圖譜唯一的發(fā)展之路,如果不考慮交付的嵌入,基于流程的場(chǎng)景識(shí)別和基于業(yè)務(wù)服務(wù)化的場(chǎng)景識(shí)別是運(yùn)維數(shù)據(jù)的高階使用中必不可少的一個(gè)抓手。
3、無人值守變更
變更在運(yùn)維領(lǐng)域是核心的輸出能力,項(xiàng)目上線和產(chǎn)品投產(chǎn)在交付環(huán)節(jié),變更是最后一個(gè)步驟,因此變更的成功至關(guān)重要,在運(yùn)維領(lǐng)域而言,無人值守變更并不是沒有人的變更,是無需人員過度參與的變更。
上線變更過程中大致有幾種類型,分別為變更前評(píng)估變更步驟和上線策略,其中包括代碼變更、數(shù)據(jù)庫(kù)變更、網(wǎng)絡(luò)策略變更、流量切換、業(yè)務(wù)開關(guān)和策略。變更中執(zhí)行變更策略和上線策略,確保變更有序正確,變更后執(zhí)行系統(tǒng)和業(yè)務(wù)檢查。
在很多企業(yè),變更過程是這樣的,運(yùn)維人員關(guān)注監(jiān)控、發(fā)布單、機(jī)器、業(yè)務(wù)故障預(yù)警,監(jiān)控能夠反映出來當(dāng)前系統(tǒng)的一些狀況,例如機(jī)器的負(fù)載是否上去了,接口的成功率是否下降了,發(fā)布單則能讓我們了解當(dāng)前的發(fā)布情況,有多少機(jī)器已經(jīng)更新到新版本了,有多少還在跑舊版本,有多少機(jī)器啟動(dòng)又遇到異常了等等,盯著機(jī)器則可以看一些日志信息,是否有一些新的異常出現(xiàn)了,異常的量是否很大。這種變更方式被很多的企業(yè)所接受,但是人畢竟是局限的,如果運(yùn)維人員責(zé)任心不強(qiáng),或者流量過大數(shù)據(jù)刷新過快,又或者對(duì)業(yè)務(wù)指標(biāo)相對(duì)不是很熟悉,很容易造成變更過程中的故障被疏忽,因此我們需要無人值守變更。
一般情況下,無人值守需要具備一些必備的條件,①具備業(yè)務(wù)線的發(fā)布的先后順序,系統(tǒng)之間發(fā)布的阻斷條件,如A系統(tǒng)發(fā)布成功后執(zhí)行B系統(tǒng)發(fā)布,B系統(tǒng)成功發(fā)布后可以同時(shí)對(duì)C、D、E系統(tǒng)進(jìn)行發(fā)布。②業(yè)務(wù)開關(guān)策略需要納入到自動(dòng)變更體系,如A系統(tǒng)發(fā)布后執(zhí)行關(guān)閉某個(gè)掛起任務(wù)。③必須提供完善的驗(yàn)證條件,如最新包驗(yàn)證、異常啟動(dòng)日志驗(yàn)證、無日志驗(yàn)證、異常業(yè)務(wù)日志驗(yàn)證。④觸發(fā)阻斷后自動(dòng)回退。⑤基于業(yè)務(wù)指標(biāo)的監(jiān)控回檢,如用戶流量、業(yè)務(wù)成功率、異常指標(biāo)的同環(huán)比。
無人值守變更是運(yùn)維數(shù)據(jù)高階運(yùn)用的典型,通過對(duì)接發(fā)布策略、基礎(chǔ)架構(gòu)、全鏈路監(jiān)控和數(shù)據(jù)分析系統(tǒng),對(duì)發(fā)布過程中的流量數(shù)據(jù)進(jìn)行采集分析和比對(duì),進(jìn)行結(jié)果的判斷,事后針對(duì)歷史變更故障異常集的回放屬于更高階的功能。
檢驗(yàn)無人值守變更的最佳方式還是事后驗(yàn)證,通過業(yè)務(wù)監(jiān)控的召回率和準(zhǔn)確率指標(biāo)來回溯,優(yōu)先保證準(zhǔn)確率,其次是召回率。
4、動(dòng)態(tài)閾值
動(dòng)態(tài)閾值在AIOps中是個(gè)熱門的話題,最佳實(shí)踐案例也比較多,在此,筆者簡(jiǎn)單介紹下動(dòng)態(tài)閾值的一些基本方法和場(chǎng)景。
需要?jiǎng)討B(tài)閾值的一般在高流量且突增突降的電商生態(tài)場(chǎng)景,如數(shù)據(jù)源輸出、支付、線上搶購(gòu),此類生態(tài)系統(tǒng)的運(yùn)維方式和普通的運(yùn)維方式相比存在不同。如監(jiān)控指標(biāo)繁多,動(dòng)輒上萬監(jiān)控指標(biāo),且配置復(fù)雜,一旦用戶流量呈幾何級(jí)的爆發(fā),準(zhǔn)確率和召回率斷崖式的下降,連帶了劇烈的報(bào)警風(fēng)暴,噪音也呈幾何級(jí)的上升。因此調(diào)整監(jiān)控閾值并不是一個(gè)好辦法,只能通過數(shù)據(jù)挖掘或機(jī)器學(xué)習(xí)來達(dá)到閾值自動(dòng)調(diào)整。
一般的數(shù)據(jù)偏差有三類場(chǎng)景會(huì)進(jìn)行關(guān)注,①數(shù)據(jù)的環(huán)比同比出現(xiàn)明顯問題;②周期內(nèi)的數(shù)據(jù)出現(xiàn)持續(xù)偏離的問題;③數(shù)據(jù)指標(biāo)在時(shí)間周期內(nèi)發(fā)生較為明顯的漂移。
在實(shí)際的業(yè)務(wù)場(chǎng)景中,結(jié)合數(shù)據(jù)偏差情況所對(duì)應(yīng)的三種閾值類型,①周期性波動(dòng)的數(shù)據(jù),如非活動(dòng)期間的接口平均耗時(shí)和活動(dòng)期間的接口平均耗時(shí),工作日流量和非工作日流量,此類數(shù)據(jù)一般是按天來計(jì)算;
②某些時(shí)間的突變數(shù)據(jù),如接口的峰值耗時(shí)和數(shù)量,此類數(shù)據(jù)更多體現(xiàn)在局部數(shù)據(jù)的影響放大,針對(duì)此類數(shù)據(jù)的處理要格外審慎,需要考慮場(chǎng)外因素,如發(fā)布、第三方外部系統(tǒng)導(dǎo)致的短暫異常。
③毛刺數(shù)據(jù),毛刺數(shù)據(jù)是尋常監(jiān)控難以發(fā)現(xiàn)的,對(duì)于全局?jǐn)?shù)據(jù)來說,毛刺對(duì)均值和閾值基線不會(huì)存在影響,但對(duì)于搶購(gòu)場(chǎng)景的洪峰閾值存在較大的不確定性,因此在閾值方面要做一些濾波操作。
在報(bào)警風(fēng)暴方面,除了對(duì)報(bào)警信息按照系統(tǒng)級(jí)進(jìn)行收斂,還需要有依賴策略。根據(jù)知識(shí)圖譜的數(shù)據(jù)關(guān)聯(lián),進(jìn)行基礎(chǔ)架構(gòu)和業(yè)務(wù)系統(tǒng)的關(guān)鍵字?jǐn)?shù)據(jù)匹配,對(duì)告警信息進(jìn)行依賴匹配。舉個(gè)簡(jiǎn)單的例子,如某臺(tái)宿主機(jī)宕機(jī),宿主機(jī)承載的虛擬機(jī)出現(xiàn)請(qǐng)求失敗,在秒級(jí)和分鐘級(jí)的數(shù)據(jù)呈現(xiàn)勢(shì)必引起較高的峰值耗時(shí)和熔斷數(shù)量,對(duì)于業(yè)務(wù)指標(biāo)的影響不會(huì)放大,因此需要對(duì)服務(wù)器宕機(jī)短信和接口耗時(shí)短信進(jìn)行策略依賴和異常依賴,避免報(bào)警風(fēng)暴和額外的人力投入,這也是通過傳統(tǒng)的數(shù)據(jù)挖掘來達(dá)到數(shù)據(jù)特征的關(guān)聯(lián)分析。
故障處理包括四個(gè)階段,故障發(fā)現(xiàn)、故障處理、故障恢復(fù)和故障總結(jié),而動(dòng)態(tài)閾值是故障發(fā)現(xiàn)的重要一環(huán)。
后記
運(yùn)維領(lǐng)域的數(shù)據(jù)使用從最開始的運(yùn)維保障到現(xiàn)在數(shù)據(jù)能力輸出,一方面來說提升運(yùn)維能力的寬度和廣度,實(shí)現(xiàn)了自動(dòng)化到智能化來進(jìn)行運(yùn)維效能提升和運(yùn)維成本降低。
另一方面,對(duì)數(shù)據(jù)進(jìn)行技術(shù)變現(xiàn),來完善科技對(duì)業(yè)務(wù)的支撐能力,讓運(yùn)維從幕后走到前臺(tái)。