從DevOps到ALOps,一文聊聊面向終態的監控平臺建設

發布時間:2020-09-03


隨著運維能力的不斷增強,主觀判斷的不確定性隨之放大,給運維能力輸出的穩定性保障帶來了極大的挑戰,同時也讓我們認識到,面向過程與操作的運維能力輸出模型將難以為續,這一特性在 DevOps AIOps 的建設上表現的尤為突出。在本篇中,我們將通過監控平臺來系統的闡述面向終態,來解決運維數據運營中的一系列問題。

一、什么是面向終態

需要明確的是,面向終態是一種設計方法,在運維領域,有核心的四個能力域,分別是安全、穩定、高效、低成本。這四個能力域也匹配著運維能力輸出的四個階段,分別是手工運維、自動化運維、DevOps、AIOps。在這四個階段中,運維的對象始終貫穿了系統、用戶、業務、業態,因此面向終態重點在于終態的對象和范圍。

以系統為例,面向終態描述了系統的最終形態,用戶只需要描述自己需要什么,不需要詳細規劃執行路徑,系統會根據線上的實時狀況以及運維知識庫來動態調整,來達到系統安全穩定的目的。舉個通俗易懂的例子,在灰度過程中,會根據灰度的需求來自動執行灰度策略來動態分配流量。

以用戶為例,面向終態描述了用戶的最終需求,重點在于系統內部的控制邏輯,主要核心在于聲明式API,用戶只需要描述最終需求,不需要提供詳細的邏輯設計,系統會根據需求通過聲明后提交給系統,最終完成用戶期望的結果,和面向系統的終態不同的是,面向用戶的終態主要是暴露給用戶的使用方式。

二、監控平臺的意義

隨著科技的不斷發展,線上業務占比不斷攀升,信息科技越來越成為核心生產力,因此一些非功能性的需求逐步上升到一個比較高的程度,可用性、可靠性、業務連續性的兜底都需要監控來完成。另一個方面,數據存儲成本、數據價值輸出、數據衍生能力也需要將核心業務數據擴展到一個較寬泛的范圍,這也是面向終態的監控平臺。

在運維領域來說,業務保障域是監控平臺的核心功能,具備全方位無死角的監控覆蓋范圍,以業務為頂層視角,系統為主體數據輸出模式,對故障進行檢測、診斷、恢復、預測,其中故障預測是基于運維經驗沉淀和積累的結果,對數據的分析來總結出故障的模式,從而進行預測。在IT數字化方面,監控數據是重要的數據資產,因此監控平臺需要承擔核心數據集散地的作用,為業務數據提供補全,為技術數據提供支撐。在成本預測方面,容量管理和采購管理需要相應的資源利用率提供數據支撐,還包括投入產出比來進行優化建議。

因此,基于系統的面向終態,監控平臺應該包括以下幾種特性。基于業務的實時鏈路監控;基于平臺的應用異常實時監控;基于用戶的子域數據匯聚;基于數據交換的實時輸出;基于預警的統一集中收斂。

基于用戶的面向終態,用戶的最終需求涵蓋了故障處理的事前、事中、事后的全流程,在事前階段,用戶關心有沒有做監控,在事中階段,用戶關心監控是否及時,相關指標的準確率高不高,事后階段,用戶關心故障復盤是否能夠達到既定的目的。因此監控平臺應該應該包括以下幾種特性。以服務目錄的方式對監控對象進行解讀;能夠以自動化的方式對監控對象進行全覆蓋;能夠智能的對報警閾值和等級進行定義;對故障處理流程進行學習,并形成知識庫。

從輸出能力來羅列,面向終態的監控平臺應該對監控數據進行全生命周期管理,以達到運行態監控、安全審計、業務分析和數據輸出的功能,并以數據集散地的形態來提供第三方數據的接入和接出。

從監控平臺的目標來看,需要發揮的作用主要有以下,能夠實時的采集數據;能夠實時的反饋業務的運行態狀態;能夠智能的預知故障和告警;能夠支撐能力子域進行輔助故障定位;能夠支撐研發人員對系統進行針對性的優化;能夠對容量規劃進行輔助分析。

從監控平臺的數據覆蓋度來看,橫向需要進行數據寬度的延展,從網絡、服務器存儲、系統、應用到最終的業務層進行數據的采集和匯聚??v向需要進行打通用戶終端、流量出入口、系統集群、產品運營進行端對端的數據多維度關聯。


通過一張圖進行簡單的理解。

三、現有監控方案的一些問題

現實中,企業已經采取各種各樣的監控軟件來達到業務域保障的目的,比較典型的是以為Zabbix、ELK為代表的開源軟件,在實際使用中都取得了很好的效果。但從面向終態的方法來看,還存在一些需要改進的點。主要有以下,

  1. 對于企業來說,監控能力的全局性較弱,現有的監控系統只針對某個領域或者某個能力聚焦,無法對全局有全面的掌控。
  2. 無法將業務層往下的子域的鏈路關系、數據關系形成邏輯匯聚,因此造成排錯時間長,業務恢復緩慢。
  3. 監控告警多且雜。正因為有很多領域級的監控軟件,這些不同的監控軟件造成了各種獨立的告警,導致告警風暴。
  4. 不支持對其他能力子域的系統接入,尤其涉及到業務鏈路級、接口級、方法級的數據自動獲取,導致監控漏配、錯配引起的準確率和召回率不達標。
  5. 作為數據的接入接出的集散地,對數據的聚合和二次計算支撐不夠,導致數據的資產能力大打折扣。
  6. 對大規模的時間序列分析和根因定位存在功能缺失。

四、面向終態的監控設計

在面向終態的監控設計過程中,需要更加友好的面對監控對象和監控使用者,因此和普通監控所不一樣的,第三方的數據接入需要在服務目錄的范疇。在面向終態的服務目錄設計中,包括如下特性。

  1. 提供可視化的服務內容,使用更為便捷,降低使用成本,提升用戶人群的覆蓋度,把監控視角提升至業務優先。
  2. 將第三方數據統一以服務中介的方式進行進行接入,服務中介在于端到端的數據開箱即用方式,如外接接口管理平臺,接口的新增、廢除能夠自動的進行統計、計算和分析。
  3. 由服務中介指定相應的服務提供給監控平臺用戶,通過對數據標簽的方式自動的進行關聯,根據實時、近線、離線不同方式的處理,最終呈現給特定的標簽用戶。
  4. 監控平臺用戶可自定義的接入可用的服務對象。

在數據的處理方面,更偏重于清洗和指標分層計算,在此之前,需要數據源的多樣化匹配,支持kafka、clickhousevictoriaMetrics等多數據源的接入,最終需實現實時消息、文件的接入和數據的實時聚合。在數據聚合的需求梳理中,需達到多個維度和指標對數據進行聚合。數據衍生是面向終態的最直接表現,需支持根據不同的指標進行運算,得到用戶想要的多維復合數據。

其中,在清洗階段,需要實時的接收數據,進行數據的處理、轉換、清洗,任務一般基于stormflink實現,經過清洗任務處理后的結構化數據通過消息隊列進行數據流轉或回流。在指標計算階段,對結構化數據進行相關指標的計算,需達到高吞吐量,標準SQL等特性,還需要加強時間窗口、去重等能力的匹配。根據標簽數據和標簽用戶的不同特性,動態的對數據進行實時處理和離線更新。

在數據的回流輸出方面,面向終態的監控平臺,需要根據監控的目標不斷的去回檢當前系統狀態,從而為面向終態執行決策的時候,提供部分的依據,因此模型管道的構建必不可少,這也是我們常說的異常檢測的功能,下圖為數據反饋圖。

在異常檢測方面,可以從告警分析和根因分析來落地。在告警分析方面,基于系統的面向終態需要實現,對告警的時間順序進行趨勢分析;對指標對比進行分析,降低指標預警的召回率;對已知的告警進行標記,輔助優化模型,間接提升指標預警的準確率。在根因分析方面,通過數據的下鉆和關聯數據的收斂,根據最終的影響因素來對算法分析出的主因進行判斷標記,通過主因判斷的結果符合度指標來進行算法調優。

       

在基于面向終態的監控平臺設計中,平臺應有如下分層。用戶體驗層;服務能力層;數據分析層;數據加工層;后臺管理層。

五、寫在最后

面向終態繼承了AIOps的理念,通過運用大量的聲明式api來提高無條件的極致用戶體驗,同時運用機器學習來加強了數據的輸出和變現能力,這種設計方式將技術進行反向解耦,在服務能力的范圍之內,將數據納入到用戶體驗中,提升數據的反饋能力,拓展了監控平臺的用戶范圍,更安全、穩定、高效、低成本的踐行高效運維理念,也解決了運維數據運營中的一系列問題。

——作者:顧黃亮

掃一掃關注我們
亚洲AV无码专区电影在线观看