十萬服務器秒級管控 騰訊云如何將AIOps用于日常管理?互聯網+
織云一體化運維解決方案 除了上述數據銀行的大數據智能監控系統,騰訊織云 CMDB將所有運維對象與業務模型建立關聯關系,以及該運維對象產生的監控數據在運維監控體系的作用。
接收程序員的 8 點技術早餐
1 編者按
AIOps,是指基于算法的 IT運維(Algorithmic IT Operations),由 Gartner定義的新類別,源自業界之前所說的 ITOA(IT Operations and Analytics)。我們已經到達了這樣的一個時代,數據科學和算法正在被用于自動化傳統的 IT運維任務和流程。算法被集成到工具里,幫助企業進一步簡化運維工作,把人們從耗時又容易出錯的流程中解放出來。
在過去的幾年間,Docker、OpenStack、Puppet 等新技術不斷涌現和流行,以及 CI/CD、DevOps 等理念的落地生根,利用智能化運維手段幫助提升了運維的效率,減少因人工和流程操作而引起的運維故障成為企業破局自動化運維束縛的最佳途徑,“AIOps”(Algorithmic IT Operations)由此應運而生。
騰訊云基于海量的網絡業務,在互聯網門戶時代、WEB2.0時代、移動互聯網時代的歷史變遷當中,歷經不同形態產品的技術挑戰,逐步積累沉淀了一套成熟的智能運維體系和運維策略,實現了超過 20萬臺的設備規模的秒級管控。
本文將結合騰訊云織云體系的構建歷程,詳細講解騰訊云是如何通過整合數據的智能存儲和分析,對 IT系統中各個環節的問題進行快速定位、故障排除和預測,為其他企業的 AIOps落地實踐提供一些方法、思路和解決方案。
2 騰訊云自動化運維體系及其構建思路
騰訊云的智能化運維體系并非是一蹴而就,AIOps 涉及的技術,從 AI 的角度,主要包括機器學習算法,以及大數據相關的技術,從 Ops 的角度,主要是運維自動化與運維監控的相關技術。因此,AIOps 一定是建立在高度完善的運維自動化基礎之上的,只有 AI 沒有 Ops,談不上 AIOps。在談 AIOps之前,我們先來看看騰訊云自動化運維體系的整體運維框架。
運維對象識別
構建面向業務價值的運維體系,首先要做的一點便是識別運維對象,為了更好的對運維對象進行分類管理,騰訊云將運維對象按架構分層,劃分為網絡、設備、系統、組件、業務、用戶六大層。
(圖 運維對象的層次劃分)
如圖為運維對象的層次劃分結構,從下往上看,最底層為網絡資源層,這一層主要包括資源監控、云端資源、交換機和負載均衡;其上是設備資源層,主要負責主機監控、運營狀態監控與資源池管理,再上層為系統資源層,這里面主要是用戶 /密碼管理、系統初始化、OS/內核以及基礎的 agent;業務層和資源層之間劃分了 API接口層、邏輯層以及數據層,主要做組件的選型、監控、包管理、配置管理;業務層包含業務架構、分布、容災和監控;最上層是用戶端適配,包括手機型號、調度方法和監控等模塊,層級化的抽象管理能夠讓硬件運維對象和應用運維對象更清晰化。
(圖 運維對象模型)
不同的運維對象下均包含配置屬性、業務屬性、監控屬性、工具關聯屬性,各屬性隨著運維對象的生命周期各階段的變化而發生變化。
CMDB配置管理
通過對運維對象的識別、抽象、標準化、配置化之后,CMDB能夠更便捷地將運維對象的記錄、消費、更新等動作模型化,從而構建起運維的線上經驗庫,讓運維的操作模式統一。騰訊織云 CMDB將所有運維對象與業務模型建立關聯關系,為運維對象之間的關聯分析提供了數據支撐。
(圖 織云 CMDB模型)
圖上為騰訊織云 CMDB管理模型,分為標準模型和自定義邏輯 CI,標準模型里面包含業務樹、服務器、網絡設置、IDC、專線 /出口以及應用程序等模塊,主要做基礎的數據庫配置管理;自義邏輯 CI提供標準組件 CI以及用戶自定義 CI,用戶可根據業務需求進行自定義參數設置。
運維對象管理
運維對象抽象化、配置化、模型化后,在設計 CMDB時,還需要解決一個非常重要的場景:讓 CMDB的數據與運維工具、監控系統以及生產環境保持一致性,這一點決定了 CMDB應用是否真正便捷。
(圖 運維對象生命周期管理)
在一致性環境保障方面,織云給出的解決方案是,從運維對象的全生命周期開始納管,在入庫、初始化、變更、運營、下線等運維生命周期的不同階段,提供標準的工具或流程來完成該階段需要的運維操作。同時,通過控制 CMDB數據的讀寫場景,保證 CMDB與生產環境的數據一致性,讓運維平臺的操作可追溯、可審計,此時,運維變更操作與監控告警之間的聯動便有了數據基礎。
(圖 運維管控操作的抽象)
有了強大的 CMDB配置數據的支撐,緊接著是運維工具對運維對象的管理操作,織云對所有的運維管控操作都抽象為“資源 -傳輸 -執行”的過程,并以此設計出織云工具平臺。
織云工具平臺將運維的原子操作工具化,并提供如版本化、權限化、定時任務、關聯運維對象等不同管理緯度的支持。通過對原子工具的編排,實現工具與工具之間的串行調用,以支持復雜運維場景下的多個工具執行。
(圖 場景化工具鏈與工具編排)
運維 PaaS的標準化與多樣化
運維自動化在織云平臺的解決方案中,被抽象為以 CMDB為核心數據基礎,以工具鏈為場景驅動的解決方案。對于運維過程中常見的發布、變更、批量操作的場景,通過對工具的編排,將頻繁的運維操作轉換成場景化的工具鏈,從而實現運維操作的統一化與標準化,以及基于規則的運維自動化。
這樣不僅能降低運維操作對運維經驗的依賴,通過工具鏈的規范化也能極大降低運維操作風險。并且織云提供抽象的原子工具與腳手架,讓運維可以靈活組裝出各自企業的標準化工具與流程,從千人一面的 PaaS能力,支撐千人千面的業務運維場景。
(圖 千人一面的運維 PaaS方案)
3 織云立體化監控方案
運維在騰訊云被稱為技術運營,顧名思義除了維護的工作之外,運維團隊還承擔著技術數據的使用與挖掘的職責。而技術數據最直接的使用場景,便是對業務質量的監控和告警。騰訊云將運維當中業務質量的保障定義分成三緯度:
監控——覆蓋率、狀態反饋、指標度量。監控要做到 360度無死角,業務出現了什么問題都能發現,有了監控的反饋,可以看到實時監控的狀態,同時,當指標發生變化的時候也需要看到一些反饋。告警——時效性、準確性、觸及率。業務越來越復雜,層次越來越多,每一個監控點都會產生數據指標、狀態異常,會收到越來越多的告警。未看到或者看到未處理都需要承擔責任,因為收到的并非都是誤告警。最重要還要有觸及率,告警由誰發布與處理?運營——RCA、事件管理、統計報表與考核。問題再三出現、必須從根源優化。通過事件管理機制保證 RCA可以落地,最后通過報表和考核去給運維賦予權利推動相關優化活動的開展,包括架構和代碼的優化等等。
(圖 質量保障的三個緯度)
按照 CMDB管理運維對象的思路,在質量保障場景,構建立體化的監控體系需要明確各個架構層級中被監控的運維對象,以及該運維對象產生的監控數據在運維監控體系的作用。在分布式服務、高可用架構等技術作用下,業務架構日益完善,對運維監控而言,要“全、準、快”實現發現異常、分析異常、定位異常的能力,就必須有序的使用監控數據。
在建設監控能力時,織云監控系統將監控指標劃分成兩大類:
低層次指標。公共的、基礎設施等在業務邏輯之下的指標稱之為低層次的指標,網絡、硬件、虛擬化等。高層次指標。高層次的指標要能更直接的反饋業務可用性的情況,如成功率、延時、請求率等。如果一個公司用低層次指標來代替高層次的指標的作用,那么質量管理容易變得復雜而混亂。因此,在規劃監控處理或者優化監控策略時,織云監控體系盡量將低層次的指標交給自動化工具或用高層次指標收斂掉。而在度量業務質量時,多以高層次的指標來衡量,提升指標告警與業務質量的關聯性。因為高層次指標往往是最核心最需要被關注的,也最能反饋業務可用性。
(圖 織云立體化監控體系)
高層次的指標,要能夠實時反饋業務的真實狀況。在海量規模的業務運維場景下,只需觀測到整個集群的運維狀況而不必深入單機層面,這就是面向業務的運維思路與傳統的運維思路的最顯著差異。
織云的立體化監控體系,通過統一的監控告警平臺,提供各層級監控能力,結合 CMDB中運維對象的關聯關系,以面向業務的視角,將低層次的指標收斂為高層次的指標,實現用技術運營數據的價值挖掘。
4 騰訊云基于 AIOps的探索實踐
在構建了高效的自動化運維體系后,騰訊云開始探索 AI技術在運維領域的落地實踐。使用 AIOps的技術來解決具體的運維難題,首先需要了解 AI的工作機制,AI最為人熟知的就是可以從大量的輸入中,總結出能準確預測結果的規律或模型(算法)。通過這些規律或算法,可以利用 AI技術來預測一些運維當中的數值型模型、布爾型模型、概率型模型,從而精簡運維流程,提高運維效率。
顯而易見,AI技術在運維領域的應用,首要的條件是海量的數據可供機器來學習(有監督或無監督學習),以便于找到數據的規律或模型。
構建數據統一管理平臺
騰訊云在實施 AIOps過程中,由于立體化監控體系中各監控系統的建設周期不同,各業務與監控對象的數據格式不一,不同的運維監控數據獨立存在于各個監控系統中,造成嚴重的數據孤島。因此,在將機器學習和訓練模型運用到織云系統之前,騰訊云首先構建了一套行之有效的運維數據治理方案——織云運維數據銀行。
下圖為織云數據銀行架構圖,異構數據源通過數據銀行的接入服務進入消息列隊,在流處理平臺進行數據的統計、翻譯、計算等操作,在這個過程中如果發現異常則通過告警策略分發至統一告警平臺進行告警處理。
(圖 織云數據銀行平臺)
織云的運維數據銀行提供了將運維數據集中化收集和處理的平臺化能力,為異構的運維監控數據,提供了通用的流式數據處理分析方案,如正則解析、數據翻譯、數據統計、數值計算等數據處理邏輯。考慮到平臺對不同數據源的兼容性,數據銀行同時提供了直接接入自定義插件的靈活能力。
針對運維常見的基于時間序列的數據模型,數據銀行內嵌如 OLAP多維數據下鉆分析、高斯分布分析、聚類分析、GBDT等數據價值挖掘的能力,豐富運維團隊對監控數據的分析手段。在數據銀行平臺的支持下,騰訊云運維團隊實現了海量的監控數據集中存儲與分析。
Monitor時序數據智能監控系統
大量的監控數據經常會遇到諸如誤告警、閥值配置難等問題,通過學習經典 AI算法,我們發現要處理好時序數據,讓監控系統能精準的檢測異常,必須要解決一些監控數據問題,如非正態分布的數據、縱向周期波動的數據等,因為它們對時間序列數據的異常檢測的準確性造成了強烈干擾,騰訊織云 Monitor系統為此而生。
Monitor是騰訊云基于時序數據的智能監控系統,通過對 200萬 /分的時序數據的反復訓練,織云 Monitor找到了一個有效的算法組合方案,利用統計算法(3-Sigma)+無監督算法(孤立森林),快速在海量的監控數據中找出正樣本,通過有監督學習的方法,對樣本數據進行人工打標注。
(圖 時間序列異常檢測的技術框架)
上圖為時間序列異常檢測的技術框架,作為時間序列的異常檢測模型,整體框架分成三大板塊,第一個是離線訓練板塊,第二個是在線預測板塊,第三個是 AB test調優板塊。
在離線板塊,統計判別和無監督算法輸出疑似異常,然后人工進行審核,加入正負樣本庫,通過提取時間序列的特征,加入有監督算法進行離線訓練并且輸出模型;在線板塊,通過加載離線訓練好的模型,并且使用有監督學習算法進行實時預測,就是判斷正負樣本。這里,我們也會進行人工校正的過程,把誤告的樣本加入樣本庫;AB test模塊是作為調優的工具,一旦有某個流量的模型效果好,就會全網發布,實時預測。織云 monitor利用人工標識出的結果和計算出的特征訓練模型,通過模型判定快速識別時序數據的異常,實現了對大量的監控指標無閥值的秒級監控能力,適用于數據量級大、監控曲線各異、數據政府樣板不平衡的場景。
織云一體化運維解決方案
除了上述數據銀行的大數據智能監控系統,騰訊云在 AIOps上的運維實踐還有很多,包括使用決策樹算法來嘗試解決告警根因分析的場景問題,使用 Apriori算法或 FP-Growth算法來嘗試解決告警收斂的問題,使用 NLP來解決快速發現用戶投訴的問題,使用強化學習來嘗試解決應用性能參數調優的問題……由于篇幅有限,本文不在此一一詳述。
(圖 織云一體化運維解決方案)
總的來說,海量業務的運維場景下,AIOps技術能夠讓監控數據更精準的發現和定位問題,并結合自動化運維的能力,提供無人運維的高效解決方案。騰訊云的 AIOps落地實踐,堅持以業務驅動為原則,基于不同場景下的運維訴求,通過智能化的手段,完成海量網絡架構的智能監控與處理。
5 織云 AIOps解決方案落地應用
除了對自身海量業務的支持,騰訊云以開放和互助的心態,基于多年的網絡體系運維經驗,向業界輸出一套完整的智能運維方法論、技術體系和數據模型,通過這些工具和思路,企業可以基于自身業務特點和訴求,構建一套行之有效的 AIOps體系。本文以某金融企業為例,簡單講述騰訊織云解決方案在企業智能化運維改造方面的落地實踐,希望為大家提供參考借鑒。
企業運維痛點
金融企業采用的 IT資源管理系統多數較為原始,如使用原始的 Excel管理數據、業務側缺乏統一的規劃與管理等,隨著資本市場的興起與繁榮,舊的 IT基礎設施和設計理念已遠遠不足以支撐企業海量的用戶交易與結算服務監控,企業亟需一種高效的、智能的運維手段提升整體運營效率。
采用原始的 EXCEL管理,該方式主要帶給客戶如下弊端:無法直觀且有效的反映出每一個具化的資源對象的生命周期與運營狀態原始數據的修改完全依賴人工觸發修改,數據的有效性與準確性難于保證,同時帶來較繁瑣的數據核查工作IT資源的整體與局部利用率未能清晰的展示出,IT資源成本一直居高不下IAAS層的服務器、網絡設備、缺乏有效的統一監控、告警與自動化能力的支撐;1000+ 服務器利用率的度量與監控交換機、路由器等網絡設備的運營質量與容量全球化業務環境與運營支撐環境的網絡專線與公網出口的納管、流量分析、監控等;用于業務支撐的眾多的外網域名的服務質量度量;私有云與公有云的統一運維管理業務側的運維缺乏有效的管理與規劃。織云系統智能化運維解決方案
根據該企業的痛點和訴求,騰訊云規劃并建立起整體 IT運營生態,采用領先的 AIOps理念,通過替換原有資源管理方式、細化監控對象數據粒度、捕獲網絡內的相關信息、度量域名的公網訪問質量、劃分三級功能模塊所屬信息等手段,完成了該交易所的業務功能模塊梳理,建立起完善的權限管控機制,標準化應用服務版本管理和運維操作規范。 具體落地思路如下:
1、用 CMDB替換原始的 Excel管理資源
EXCEL管理資源方式不僅效率底下,且無法直觀、有效反映出每一個具化的資源對象的生命周期與運營狀態。騰訊云通過先配置在納管的理念將資源統一管理,每種資源具有自己的可度量可運營的管理模型。
CMDB中統一描述對象的類別、數量、關系 (對象與對象間的關系)、狀態等,并且通過與監控平臺實時聯動保障了每個對象的服務質量的可控與可度量。
通過該管理模型,實現硬件與業務的關聯,并將配置信息運用在多樣化的運維場景。如運維可以清晰的獲知某臺物理服務器,資源存放在某個 IDC中、存放在該 IDC的某個機架上、接入在某臺交換機上的某個端口上、在業務規劃態該服務器分配給某個業務、在業務運營態該服務器的實際負載是多少、觸發服務器告警的條件是什么等資源的具體信息。
2、細化監控對象的數據粒度
對于金融企業的服務器與網絡設備資源,織云基于服務器的 agent數據上報、網絡設備的 SNMP與 syslog分析等,精準的度量出每一個資源對象的狀態、負載、服務質量等數據。例如對于交易所的網絡設備監控,細化如下三個維度:
網絡設備的物理端口的監控與告警;網絡設備的邏輯端口 (物理端口的邏輯組合)的監控與告警;網絡設備的 syslog(設備運行日志)的監控與告警;網絡設備的監控與業務、主機的監控關聯。3、基于 Xflow協議捕獲網絡會話信息
對于金融企業的網絡出口與網絡專線資源,織云基于設備廠商的 Xflow協議可以捕獲到網絡內的相關會話信息 (ip+端口維度),并對于每個會話進行量化的分析與展示,幫助交易所解決運維高頻場景的問題包括:
某條專線當前利用率多少?在已經使用的流量中,具體是那個業務或者那個 ip使用了多少帶寬資源?這些所消耗的帶寬是基于什么協議與方向?專線的丟包率與時延是怎么樣的?專線下聯的服務器與業務是哪些?4、度量域名的公網訪問質量
對于金融企業眾多的業務支撐域名,織云通過分布在全國各地域不同運營商處 170個撥測點的實時撥測,精準的度量出域名的公網訪問質量。
5、劃分三級功能模塊所屬信息
結合騰訊內部運維最佳實踐,聚焦三級功能模塊所屬設備、包、任務、監控等信息,最佳效率提升運維管理。如從業務模塊的視角出發度量與管理資源、權限及動作。
6、業務指標的智能監控
為了保障業務的質量,運維需要對業務、應用程序和基礎設施等進行監控和度量,其中涉及的指標量巨大,利用閥值管理指標的傳統監控方法需要大量人工操作。針對監控涉及眾多指標的運維場景,織云提供了更智能的解決方案:
動態閥值替代靜態閥值告警數據的智能收斂告警數據的關聯分析告警數據聯動運維工作完成故障自愈數據的 AI有監督模型訓練方案通過系列實戰落地改造,織云系統幫助該集團基于自身訴求,建立了覆蓋硬件性能、專線 /出口、專線、域名流量分析的 IAAS層健康監控等適合業務發展的完善的金融 DevOps運維體系,從而推進了整個業務的運營監控質量,提升企業 IT運營對于業務促進的整體效果。
作者介紹
梁定安(大梁),騰訊 SNG運維技術總監,騰訊云織云產品負責人,騰訊云布道師、復旦大學客座 DevOps講師。多年運維、運營開發和 DevOps的工作經驗,曾負責 Qzone、相冊等 SNG社交平臺類業務的運維規劃與管理,經歷了 SNG運維標準化、自動化、智能化建設的全程。目前正致力于騰訊云企業級運維方案織云的產品化工作,積極探索新技術在運維領域的應用,為行業輸出自動化與智能化的運維能力。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。