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