前言:在上一篇《無資料,不工作!運維“資料思維”有多重要?》中,我們站在運維的視角來對資料的作用做了一些解讀,其中包括資料的重要性、運維的資料觀和資料思維的了解。在本篇中,對運維資料的一些高階使用場景進行介紹,運維資料使用的發展态勢和落地價值,本章節重點從産品開發角度,探讨運維資料場景的高階落地途徑和方法。
一、 運維的資料覆寫面和難點
對于狹義的運維來說,資料的覆寫面相對較為單一,以系統穩定和資源管理為主,大緻可以分為三類,資源中繼資料、系統狀态資料、事件類資料。其中資源中繼資料主要覆寫基礎架構、标準化支撐元件、虛拟資源資料,以及相關的屬性、組成以及關聯關系。系統狀态資料以各類監控輸出為主,如使用率、存活狀态、支撐能力以及系統級、元件級、請求級的鍊路互動和拓撲關系。事件類資料一般是描述對系統和裝置的變更、業務系統的異常、流程節點的阻斷和政策資料。
對于廣義的運維來說,資料的覆寫面取決于公司展業的業務複雜性群組織架構職能的交叉延伸,在狹義的運維資料覆寫面之上,還包括了較為廣泛的業務資料、營運資料、工程效率資料、使用者體驗資料。相對應的也衍生出複雜的資料使用場景、資料處理規則、資料關聯關系和更為複雜的運維資料輸出能力。
對于運維資料場景輸出來說,有幾個前置階段,分别為場景适配、運維資料中台、運維工程體系和運維資料政策,本章節主要以場景适配闡述。在這幾個階段中,都有一些共性的資料難點,如不确定的資料來源,多類型的資料結構,基于場景的資料關聯變化。下面舉一些典型的例子。
資料來源 | 資料類型 | 資料關聯 |
文本資料 | 日志資料 | 時間關聯 |
流量鏡像 | 名額資料 | 關鍵字關聯 |
監控系統 | 流程資料 | 故障關聯 |
資源管理系統 | 資源資料 | 拓撲關聯 |
業務資料庫 | 業務資料 | 資料趨勢關聯 |
業務系統開放接口 | 财務資料 | 人員關聯 |
第三方資料源 | 政策資料 | 資料流向關聯 |
其他支撐系統(項目、需求) | 其他第三方資料 | 資料血緣關聯 |
二、 運維資料的高階場景
在運維資料輸出場景中,大都遵循資料的時效和擷取方式。在資料處理時效規則方面一般有三種,離線資料處理規則、近線資料處理規則和實時資料處理規則,相對于的資料擷取也有不同的方式,一般有,周期性的拉取資料、周期性的主動推送資料、實時擷取資料。在資料運用和場景适配階段,離線适用于名額統計類,近線适用于智能監控的故障診斷和預測,實時适用于自愈場景、無人值守場景、自動排程場景。本章節中的高階場景以告警自動門檻值、知識圖譜、故障自動評估、無人值守變更和資料血緣流向為例,分别闡述相應的場景落地和具體方法。
1、 知識圖譜
知識圖譜的大面積運用是從谷歌的搜尋服務開始的,從此知識圖譜的資料輸出能力得到了更大範圍的拓展,最常見的是各類知識庫。在運維領域,很多高階的運維資料運用,尤其是基于海量資料的顆粒度關聯以及資料的聚合場景下的應用,通俗點說,基于運維的知識圖譜是基于業務連續性架構下的運維知識工程。
很多人有疑問,運維的知識圖譜和CMDB好像是一回事,其實這個說法并沒有錯,知識圖譜是采用資料聚合和運維政策的CMDB進階方式。通常我們會遇到一個場景,在雲環境下,某台主控端重新開機,知識圖譜會告訴我們這台主控端上運作哪些虛拟機,部署了什麼系統,承接了什麼業務,這些系統的服務狀态又會影響哪些下遊系統,下遊系統又會影響什麼業務場景,業務鍊路會造成什麼影響,對正常展業帶來了什麼風險,這是知識圖譜的的一種能力輸出方式。
在知識圖譜的落地過程中,我們需要打通基礎架構、系統架構、業務架構的資料層次和資料顆粒度的關系,這種資料量是非常龐大的,如CMDB、配置中心和接口系統,甚至還需要對接業務需求系統,比較理想的情況下擷取完整的結構化資料。同時通過運維政策和業務規則進行資料層次關系落地,對運維資料不斷的篩選和知識驗證,最終達到正确的運維知識結構,下面我們舉一個某個業務的知識圖譜例子。
業務系統鍊路流向關系 | ||||||
系統A | 系統B | Redis叢集 | 消息系統 | 資料庫 | 系統C | |
系統A部署關系 | ||||||
虛拟機1 | 虛拟機2 | 虛拟機3 | 虛拟機4 | 虛拟機5 | 虛拟機6 | 虛拟機7 |
主控端1 | 主控端2 | 主控端3 | 主控端4 | 主控端5 | ||
Redis叢集部署關系 | ||||||
主節點1 | 主節點2 | 主節點3 | 從節點1 | 從節點2 | 從節點3 | |
主控端6 | ||||||
系統C部署關系 | ||||||
業務接口流向關系 | ||||||
A系統a接口 | A系統b接口 | B系統e接口 | C系統d接口 | C系統e接口 |
在以上關系圖中,我們可以發現一些不合理的地方,如系統C部署在同一台實體機上,
redis叢集的主節點1和從節點1部署在同一台實體機上,C系統的d接口是一個公共接口,叢集規模不夠大。通過知識圖譜的一些圖形化能力,可以查到豐富的結果,展現給各能力子域較為全面的知識,還可以進階為更進階的語義比對能力。知識圖譜在運維領域主要建構了常見的容量場景、業務鍊路場景、故障場景,通過一定政策判斷對資料輸出實作輔助決策功能。
對于AiOps而言,知識圖譜實作了一定的資料思考和資料推理,和監控系統的打通能夠實作事前事中的風險判斷和風險溯源。
2、 故障自動評估
故障自動評估有較多的應用場景,主要有應急演練時快速避免盲測帶來的風險,故障發生時快速判斷對業務的影響面,故障自動評估也是基于運維知識圖譜的衍生能力之一。
同樣以上述圖示為例,再做一些延伸,當我們對以上主控端1-6進行數量窮舉,當機一台的有6種方式,當機二台的有15種方式,當機三台的機率較小不做分析,此處還可以形成資料中心和機櫃的資訊進行資料聚合。針對當機一台進行分析得到,主控端3和主控端4當機對業務鍊路産生中斷影響。
在故障自動評估中,有一點需要特别關注,那就是資料的模糊邊界。資料的邊界大緻分為三類,面向基礎架構的資料邊界、面向應用系統的資料邊界、面向業務保障的資料邊界,在這個過程中需要将這些資料邊界完全打破,形成多層次的顆粒展現。
在落地過程中還有一點值得關注的,統一偏業務側的運維語言和業務連續性評估方法,這是偏向頂層的設計,将業務邏輯、資料流和基礎架構內建資料進行分析評估,并實作多個資料模型的輸出彙聚,在業務服務的影響下進行資料映射。
除此之外,還有最重要的場景識别,這也是CMDB是否成為運維知識圖譜唯一的發展之路,如果不考慮傳遞的嵌入,基于流程的場景識别和基于業務服務化的場景識别是運維資料的高階使用中必不可少的一個抓手。

3、 無人值守變更
變更在運維領域是核心的輸出能力,項目上線和産品投産在傳遞環節,變更是最後一個步驟,是以變更的成功至關重要,在運維領域而言,無人值守變更并不是沒有人的變更,是無需人員過度參與的變更。
上線變更過程中大緻有幾種類型,分别為變更前評估變更步驟和上線政策,其中包括代碼變更、資料庫變更、網絡政策變更、流量切換、業務開關和政策。變更中執行變更政策和上線政策,確定變更有序正确,變更後執行系統和業務檢查。
在很多企業,變更過程是這樣的,運維人員關注監控、釋出單、機器、業務故障預警,監控能夠反映出來目前系統的一些狀況,例如機器的負載是否上去了,接口的成功率是否下降了,釋出單則能讓我們了解目前的釋出情況,有多少機器已經更新到新版本了,有多少還在跑舊版本,有多少機器啟動又遇到異常了等等,盯着機器則可以看一些日志資訊,是否有一些新的異常出現了,異常的量是否很大。這種變更方式被很多的企業所接受,但是人畢竟是局限的,如果運維人員責任心不強,或者流量過
大資料重新整理過快,又或者對業務名額相對不是很熟悉,很容易造成變更過程中的故障被疏忽,是以我們需要無人值守變更。
一般情況下,無人值守需要具備一些必備的條件,①具備業務線的釋出的先後順序,系統之間釋出的阻斷條件,如A系統釋出成功後執行B系統釋出,B系統成功釋出後可以同時對C、D、E系統進行釋出。②業務開關政策需要納入到自動變更體系,如A系統釋出後執行關閉某個挂起任務。③必須提供完善的驗證條件,如最新包驗證、異常啟動日志驗證、無日志驗證、異常業務日志驗證。④觸發阻斷後自動回退。⑤基于業務名額的監控回檢,如使用者流量、業務成功率、異常名額的同環比。
無人值守變更是運維資料高階運用的典型,通過對接釋出政策、基礎架構、全鍊路監控和資料分析系統,對釋出過程中的流量資料進行采集分析和比對,進行結果的判斷,事後針對曆史變更故障異常集的回放屬于更高階的功能。
檢驗無人值守變更的最佳方式還是事後驗證,通過業務監控的召回率和準确率名額來回溯,優先保證準确率,其次是召回率。
4、動态門檻值
動态門檻值在AiOps中是個熱門的話題,最佳實踐案例也比較多,在此,筆者簡單介紹下動态門檻值的一些基本方法和場景。
需要動态門檻值的一般在高流量且突增突降的電商生态場景,如資料源輸出、支付、線上搶購,此類生态系統的運維方式和普通的運維方式相比存在不同。如監控名額繁多,動辄上萬監控名額,且配置複雜,一旦使用者流量呈幾何級的爆發,準确率和召回率斷崖式的下降,連帶了劇烈的報警風暴,噪音也呈幾何級的上升。是以調整監控門檻值并不是一個好辦法,隻能通過資料挖掘或機器學習來達到門檻值自動調整。
一般的資料偏差有三類場景會進行關注,①資料的環比同比出現明顯問題;②周期内的資料出現持續偏離的問題;③資料名額在時間周期内發生較為明顯的漂移。
在實際的業務場景中,結合資料偏差情況所對應的三種門檻值類型,①周期性波動的資料,如非活動期間的接口平均耗時和活動期間的接口平均耗時,工作日流量和非工作日流量,此類資料一般是按天來計算;②某些時間的突變資料,如接口的峰值耗時和數量,此類資料更多展現在局部資料的影響放大,針對此類資料的處理要格外審慎,需要考慮場外因素,如釋出、第三方外部系統導緻的短暫異常。③毛刺資料,毛刺資料是尋常監控難以發現的,對于全局資料來說,毛刺對均值和門檻值基線不會存在影響,但對于搶購場景的洪峰門檻值存在較大的不确定性,是以在門檻值方面要做一些濾波操作。
在報警風暴方面,除了對報警資訊按照系統級進行收斂,還需要有依賴政策。根據知識圖譜的資料關聯,進行基礎架構和業務系統的關鍵字資料比對,對告警資訊進行依賴比對。舉個簡單的例子,如某台主控端當機,主控端承載的虛拟機出現請求失敗,在秒級和分鐘級的資料呈現勢必引起較高的峰值耗時和熔斷數量,對于業務名額的影響不會放大,是以需要對伺服器當機短信和接口耗時短信進行政策依賴和異常依賴,避免報警風暴和額外的人力投入,這也是通過傳統的資料挖掘來達到資料特征的關聯分析。
故障處理包括四個階段,故障發現、故障處理、故障恢複和故障總結,而動态門檻值是故障發現的重要一環。
三、 後記
運維領域的資料使用從最開始的運維保障到現在資料能力輸出,一方面來說提升運維能力的寬度和廣度,實作了自動化到智能化來進行運維效能提升和運維成本降低。另一方面,對資料進行技術變現,來完善科技對業務的支撐能力,讓運維從幕後走到前台。