王鑫
【摘要】? ? 本文借鑒業(yè)界互聯(lián)網(wǎng)公司在微服務(wù)、容器化監(jiān)控方面的先進(jìn)技術(shù)和經(jīng)驗(yàn),以服務(wù)視角設(shè)計(jì)了新一代云原生一體化運(yùn)維監(jiān)控系統(tǒng),并介紹了該系統(tǒng)在實(shí)際應(yīng)用中的價(jià)值成效,為傳統(tǒng)運(yùn)營(yíng)商運(yùn)維支撐管理體系轉(zhuǎn)型發(fā)展及創(chuàng)新實(shí)踐提供了借鑒。
【關(guān)鍵詞】? ? 云原生? ? 一體化? ? 運(yùn)維監(jiān)控? ? 運(yùn)營(yíng)商
一、云原生架構(gòu)面臨的挑戰(zhàn)
隨著運(yùn)營(yíng)商第三代業(yè)務(wù)支撐系統(tǒng)逐步向微服務(wù)化(云原生)架構(gòu)演進(jìn),運(yùn)營(yíng)商業(yè)務(wù)生產(chǎn)環(huán)境日益復(fù)雜、技術(shù)棧多、技術(shù)組件復(fù)雜、服務(wù)數(shù)量激增以及服務(wù)間的靈活調(diào)用,使得微服務(wù)架構(gòu)下的監(jiān)控運(yùn)維工作面臨“傳統(tǒng)手段不再適配”、“故障定界更加復(fù)雜”、“監(jiān)控?cái)?shù)據(jù)規(guī)模體量劇增”等挑戰(zhàn)。
1.1傳統(tǒng)監(jiān)控手段不再適配
容器化改造后,容器實(shí)例對(duì)象等基礎(chǔ)資源動(dòng)態(tài)可變,一般多副本pod實(shí)例發(fā)生故障時(shí)候會(huì)在其他節(jié)點(diǎn)上強(qiáng)制拉起。同時(shí),容器化應(yīng)用的變更、滾動(dòng)升級(jí),可能新增數(shù)百、數(shù)千個(gè)容器,并同時(shí)拉起,傳統(tǒng)人工方式配置及被動(dòng)發(fā)現(xiàn)監(jiān)控點(diǎn)無(wú)法應(yīng)對(duì)云資源動(dòng)態(tài)變化的監(jiān)控場(chǎng)景。
1.2故障定界更加復(fù)雜
微服務(wù)改造后,服務(wù)數(shù)量激增且服務(wù)間調(diào)用關(guān)系錯(cuò)蹤復(fù)雜,在整個(gè)服務(wù)鏈條中,如果有任何一個(gè)服務(wù)節(jié)點(diǎn)出現(xiàn)了延遲或問(wèn)題會(huì)使得影響整體服務(wù),傳統(tǒng)黑盒監(jiān)控手段無(wú)法排查鏈條中具體哪個(gè)服務(wù)節(jié)點(diǎn)出現(xiàn)問(wèn)題。
1.3監(jiān)控?cái)?shù)據(jù)規(guī)模體量劇增
業(yè)務(wù)快速發(fā)展,各上層業(yè)務(wù)應(yīng)用持續(xù)快速構(gòu)建,使得監(jiān)控?cái)?shù)據(jù)爆炸式增長(zhǎng),傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)難以支撐海量監(jiān)控?cái)?shù)據(jù)的實(shí)時(shí)讀寫(xiě),運(yùn)維人員無(wú)法快速處理系統(tǒng)異常。
針對(duì)以上痛點(diǎn)問(wèn)題,本文借鑒業(yè)界互聯(lián)網(wǎng)公司在微服務(wù)、容器化監(jiān)控方面的先進(jìn)技術(shù)和經(jīng)驗(yàn),將運(yùn)維監(jiān)控視角由“傳統(tǒng)的分層+機(jī)器為中心”轉(zhuǎn)變?yōu)椤耙苑?wù)為中心”,設(shè)計(jì)并搭建了新一代云原生一體化運(yùn)維監(jiān)控系統(tǒng)(Bomc),保障了系統(tǒng)穩(wěn)定,提升了監(jiān)控運(yùn)維效率。
二、新一代云原生一體化運(yùn)維監(jiān)控系統(tǒng)設(shè)計(jì)
2.1開(kāi)源技術(shù)選型
2.1.1容器技術(shù)
容器技術(shù)可以理解為輕量級(jí)的虛擬化技術(shù),但容器不等同于虛擬機(jī),兩者之間有著本質(zhì)的差別。相比虛擬機(jī)技術(shù),容器并沒(méi)有虛擬化整個(gè)操作系統(tǒng),而是在不同的虛擬化環(huán)境間共用同一個(gè)操作系統(tǒng)的內(nèi)核,通過(guò)內(nèi)核和相關(guān)工具集提供的功能,實(shí)現(xiàn)資源的隔離,包括:CPU、內(nèi)存資源的隔離;磁盤(pán)I/O的隔離;網(wǎng)絡(luò)的隔離;用戶(hù)的隔離。本文設(shè)計(jì)的一體化運(yùn)維監(jiān)控系統(tǒng)使用的容器技術(shù)方案是Docker項(xiàng)目,Docker項(xiàng)目擁有標(biāo)準(zhǔn)化的鏡像機(jī)制、完善的API,和成熟的社區(qū)支持,是目前最為成熟穩(wěn)定的容器技術(shù)產(chǎn)品。
2.1.2微鏡像技術(shù)
容器是一個(gè)運(yùn)行時(shí)環(huán)境,容器得以運(yùn)行的基礎(chǔ)是容器鏡像。微鏡像,是指由本文設(shè)計(jì)的監(jiān)控系統(tǒng)構(gòu)建出來(lái)的鏡像,其體積很小,相比市面上動(dòng)輒上GB的容器鏡像,本監(jiān)控系統(tǒng)的基礎(chǔ)鏡像平均在300MB左右。通過(guò)對(duì)鏡像尺寸的不斷壓縮和裁剪,可以在項(xiàng)目中減少不必要的網(wǎng)絡(luò)與存儲(chǔ)開(kāi)銷(xiāo),使得獲取鏡像的過(guò)程更加的方便、快捷,業(yè)務(wù)程序的更新也更加迅捷,大大有利于項(xiàng)目進(jìn)度的快速推進(jìn)。
2.2 技術(shù)方案
2.2.1基礎(chǔ)平臺(tái)設(shè)計(jì)
1.一鍵部署。1)平臺(tái)本身的一鍵部署。運(yùn)營(yíng)商業(yè)務(wù)的承載平臺(tái)擁有專(zhuān)業(yè)而強(qiáng)大的功能,其部署也較為復(fù)雜,通常需要專(zhuān)業(yè)技術(shù)人員親臨現(xiàn)場(chǎng)部署,或項(xiàng)目參與人員花大量時(shí)間進(jìn)行學(xué)習(xí),這就間接提高了項(xiàng)目的成本。一體化平臺(tái)在進(jìn)行安裝時(shí)僅需執(zhí)行一條命令,之后的過(guò)程自動(dòng)化進(jìn)行,且無(wú)需依賴(lài)任何特定的網(wǎng)絡(luò)環(huán)境,同時(shí)對(duì)進(jìn)行部署的技術(shù)人員幾乎沒(méi)有技術(shù)要求,大大縮短了部署周期。2)業(yè)務(wù)程序的一鍵部署。一體化平臺(tái)在項(xiàng)目的開(kāi)發(fā)、部署、測(cè)試、上線等環(huán)節(jié),采用了持續(xù)集成的方式?;贒ocker項(xiàng)目的容器技術(shù),一體化平臺(tái)在進(jìn)行產(chǎn)品發(fā)布的時(shí)候,保證了產(chǎn)品程序依賴(lài)的獨(dú)立性和完整性。在建立標(biāo)準(zhǔn)產(chǎn)品容器鏡像的基礎(chǔ)上,僅需在一體化平臺(tái)上拖拽拓?fù)鋱D標(biāo),便可一鍵部署業(yè)務(wù)程序。
2.多層監(jiān)控。一體化平臺(tái)可對(duì)項(xiàng)目中的基礎(chǔ)硬件設(shè)施、通用組件和項(xiàng)目業(yè)務(wù)進(jìn)行統(tǒng)一的多層監(jiān)控。1)基礎(chǔ)硬件設(shè)施。通過(guò)對(duì)基礎(chǔ)硬件設(shè)施的抽象,可對(duì)傳統(tǒng)的物理服務(wù)器、虛擬服務(wù)器、網(wǎng)絡(luò)設(shè)備、存儲(chǔ)設(shè)備等硬件進(jìn)行統(tǒng)一監(jiān)控,通過(guò)代理程序(Agent),或者使用標(biāo)準(zhǔn)的SNMP等協(xié)議,可以便捷地獲取硬件的性能信息,并通過(guò)直觀的圖形化方式展現(xiàn)給運(yùn)維管理人員。2)通用組件。一體化平臺(tái)對(duì)運(yùn)營(yíng)商業(yè)務(wù)平臺(tái)使用的通用組件進(jìn)行了深入的研究,以獲取其準(zhǔn)確的、能夠反映組件運(yùn)行狀態(tài)的性能指標(biāo),通過(guò)一體化平臺(tái)對(duì)組件性能指標(biāo)數(shù)據(jù)的采集和展示,可以客觀有效地反映出組件的運(yùn)行狀態(tài),有效地協(xié)助運(yùn)維人員定位和分析問(wèn)題。3)項(xiàng)目業(yè)務(wù)。在傳統(tǒng)運(yùn)營(yíng)商項(xiàng)目中,項(xiàng)目業(yè)務(wù)的監(jiān)控是一個(gè)難點(diǎn),往往需要編寫(xiě)額外的獨(dú)立腳本或程序進(jìn)行業(yè)務(wù)數(shù)據(jù)的獲取,而一體化平臺(tái)很巧妙地結(jié)合容器技術(shù)和日志清洗功能,將項(xiàng)目業(yè)務(wù)產(chǎn)生的監(jiān)控日志直接采集到一體化平臺(tái)內(nèi)部,并提供統(tǒng)一的監(jiān)控展示。
3.高效運(yùn)維。本文設(shè)計(jì)的一體化運(yùn)維監(jiān)控系統(tǒng)支持告警通知和通知方式相分離:這使得一個(gè)告警來(lái)源可以觸發(fā)多種通知方式,如短信、郵件、日志等(短信接口視項(xiàng)目的不同須定制開(kāi)發(fā)),告警的時(shí)效得到進(jìn)一步保障;支持實(shí)現(xiàn)彈性擴(kuò)容的自動(dòng)化操作、云資源的整合,以及故障處理的記錄。
2.2.2創(chuàng)新能力設(shè)計(jì)
本文基于運(yùn)維數(shù)據(jù),引入相關(guān)性計(jì)算、知識(shí)圖譜等AI技術(shù),挖掘分析歷史性能、告警、調(diào)用鏈等運(yùn)維數(shù)據(jù),構(gòu)建機(jī)器指標(biāo)分層定界、業(yè)務(wù)指標(biāo)多維分析、云原生故障分析樹(shù)等云原生排障能力,綜合應(yīng)用,輔助實(shí)現(xiàn)云原生架構(gòu)下的故障快速定界。
1.構(gòu)建運(yùn)維知識(shí)圖譜,排障基礎(chǔ)支撐。基于圖數(shù)據(jù)庫(kù),構(gòu)建運(yùn)維知識(shí)圖譜,系統(tǒng)動(dòng)態(tài)畫(huà)像。以應(yīng)用為核心,動(dòng)態(tài)串聯(lián)基礎(chǔ)設(shè)施和上層應(yīng)用,實(shí)時(shí)呈現(xiàn)系統(tǒng)中的實(shí)體、關(guān)系和屬性。構(gòu)建中臺(tái)化應(yīng)用的動(dòng)態(tài)監(jiān)控、故障排查等運(yùn)維場(chǎng)景的基礎(chǔ)能力。
2.機(jī)器指標(biāo)分層定界分析,系統(tǒng)故障分層定界。業(yè)務(wù)出現(xiàn)故障時(shí),應(yīng)用智能算法基于業(yè)務(wù)所依賴(lài)的各集群、模塊和服務(wù)器的監(jiān)控?cái)?shù)據(jù)自動(dòng)快速進(jìn)行故障定位。通過(guò)對(duì)比監(jiān)控?cái)?shù)據(jù)在業(yè)務(wù)故障時(shí)間點(diǎn)前后相關(guān)機(jī)器指標(biāo)的異常程度,并依據(jù)異常程度進(jìn)行聚類(lèi)排序展示,輔助快速確定故障排障方向。
3.業(yè)務(wù)明細(xì)多維定位,業(yè)務(wù)應(yīng)用異常定界?;诠收蠘I(yè)務(wù)系統(tǒng)異常時(shí)間段的大量交易明細(xì),分多種維度(或組合維度)進(jìn)行統(tǒng)計(jì)分析,根據(jù)維度組合告警前后的指標(biāo)劣化程度進(jìn)行排序展示,最終確定異常維度組合, 解決多維度或復(fù)雜組合維度下人工分析定位效率低的問(wèn)題。
4.構(gòu)建故障分析樹(shù),進(jìn)行故障溯源定位。依據(jù)云原生運(yùn)維圖譜相關(guān)實(shí)體的屬性信息關(guān)聯(lián)故障時(shí)間段系統(tǒng)的異常信息,動(dòng)態(tài)生成故障排障分析樹(shù),并依據(jù)故障傳播圖拓?fù)浣Y(jié)構(gòu)及權(quán)值信息計(jì)算節(jié)點(diǎn)的根因概率并給出TOP根源推薦,輔助運(yùn)維人員實(shí)現(xiàn)復(fù)雜調(diào)用及依賴(lài)關(guān)系下故障的快速定位排查。
三、應(yīng)用場(chǎng)景及成效
本文設(shè)計(jì)的一體化運(yùn)維監(jiān)控系統(tǒng)應(yīng)用成效主要體現(xiàn)在以下三個(gè)方面:
運(yùn)維效率提升方面:云原生架構(gòu)下,MTTR降低50%;隱患發(fā)現(xiàn)提前25分鐘,感知類(lèi)故障降低31%;故障定位定界效率提升43%。
保障服務(wù)質(zhì)量方面:智能運(yùn)維提升系統(tǒng)運(yùn)行穩(wěn)定性,改善一線支撐感知,有效提升內(nèi)外部客戶(hù)滿(mǎn)意度。
降低運(yùn)維成本方面:通過(guò)生產(chǎn)系統(tǒng)的故障智能定界,每年節(jié)約各類(lèi)工作量約8人月,按照代維成本1.8萬(wàn)元/人月計(jì)算,全年節(jié)約約8*1.8*12=172萬(wàn)元。
具體項(xiàng)目應(yīng)用方面:
1. CRM容器化揚(yáng)州中心、無(wú)錫中心基礎(chǔ)設(shè)施監(jiān)控。實(shí)現(xiàn)CRM系統(tǒng)揚(yáng)州中心、無(wú)錫中心2個(gè)資源池,180節(jié)點(diǎn)(宿主機(jī)),142個(gè)Kubernetes組件,101個(gè)應(yīng)用、2525個(gè)Pod的動(dòng)態(tài)發(fā)現(xiàn)和監(jiān)控點(diǎn)自動(dòng)配置及健康度、運(yùn)行狀態(tài)、資源使用情況等的監(jiān)控。實(shí)現(xiàn)按照應(yīng)用、實(shí)例、命名空間多維度的查詢(xún)分析每個(gè)資源池中各容器化應(yīng)用的資源使用情況,能夠按照應(yīng)用、實(shí)例維度展示計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)的綜合指標(biāo)。
2.實(shí)現(xiàn)容器化營(yíng)業(yè)廳零售系統(tǒng)應(yīng)用性能及服務(wù)調(diào)用追蹤分析。完成營(yíng)業(yè)廳零售系統(tǒng)會(huì)員管理、門(mén)店管理、優(yōu)惠券管理、訂單管理等5個(gè)核心模塊部署,涉及26個(gè)應(yīng)用Pod,每天近583萬(wàn)次服務(wù)調(diào)用中各服務(wù)請(qǐng)求總數(shù)、請(qǐng)求處理時(shí)延、請(qǐng)求結(jié)果(成功、失?。┙y(tǒng)計(jì)、調(diào)用結(jié)果(成功、失敗)統(tǒng)計(jì)的監(jiān)控,并提供了提供豐富的應(yīng)用性能展示及性能問(wèn)題定位功能,包括應(yīng)用服務(wù)拓?fù)?,服?wù)間的調(diào)用關(guān)系、響應(yīng)時(shí)間、吞吐量和狀態(tài)的展示,慢響應(yīng)和錯(cuò)誤明細(xì)的查詢(xún),方便運(yùn)維人員定位應(yīng)用性能瓶頸。
參? 考? 文? 獻(xiàn)
[1]李濟(jì)偉.基于大數(shù)據(jù)平臺(tái)的自動(dòng)化運(yùn)維及監(jiān)控技術(shù)研究[J].科技創(chuàng)新與應(yīng)用,2021(11):152-154.
[2]馬雄.基于微服務(wù)架構(gòu)的系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[D].南京郵電大學(xué).
[3]張鼎超,等.面向高性能計(jì)算環(huán)境的微服務(wù)運(yùn)維平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2020,37(S2):190-192.
[4]薛龍,等.面向云原生的智能運(yùn)維架構(gòu)和關(guān)鍵技術(shù)[J].電信科學(xué), 2020,36(12):105-122.
中國(guó)新通信2021年24期