為降本增效,促進(jìn)業(yè)務(wù)發(fā)展,實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型,越來越多的企業(yè)將業(yè)務(wù)遷移至云上。上云后,鑒于云環(huán)境內(nèi)網(wǎng)絡(luò)與業(yè)務(wù)架構(gòu)的模糊性,業(yè)務(wù)服務(wù)節(jié)點(diǎn)從傳統(tǒng)物理環(huán)境下的百級(jí)上升至萬(wàn)級(jí)甚至百萬(wàn)級(jí),運(yùn)維管理難度可想而知。同時(shí),隨著運(yùn)維管理規(guī)模的增加,業(yè)務(wù)系統(tǒng)的連續(xù)性必須保持穩(wěn)定,且強(qiáng)監(jiān)管需求不降反增,運(yùn)維人員的配置未能跟上業(yè)務(wù)上云的腳步,業(yè)務(wù)穩(wěn)定性難以保障。
無論是云環(huán)境還是傳統(tǒng)物理環(huán)境,保障業(yè)務(wù)連續(xù)性、可用性、穩(wěn)定性都是運(yùn)維的核心價(jià)值與意義。云時(shí)代,企業(yè)的IT環(huán)境變得異常復(fù)雜,從跨越物理環(huán)境與云環(huán)境到跨越公有云與私有云,盡管云供應(yīng)商可以為企業(yè)提供部分基礎(chǔ)設(shè)施的監(jiān)管與維護(hù),但仍需要運(yùn)維進(jìn)行業(yè)務(wù)系統(tǒng)監(jiān)控、業(yè)務(wù)故障恢復(fù)等性能管理工作。因此,構(gòu)建云中業(yè)務(wù)性能監(jiān)控體系,保障云中應(yīng)用可靠性與運(yùn)行質(zhì)量成為運(yùn)維部門的工作難點(diǎn)。
云中業(yè)務(wù)性能監(jiān)控,Agent VS網(wǎng)絡(luò)數(shù)據(jù)
目前,市場(chǎng)上主流的云應(yīng)用性能監(jiān)控方案主要基于兩種技術(shù)方式:一類是基于A云時(shí)代,企業(yè)的IT環(huán)境變得異常復(fù)雜,從跨越物理環(huán)境與云環(huán)境到跨越公有云與私有云,盡管云供應(yīng)商可以為企業(yè)提供部分基礎(chǔ)設(shè)施的監(jiān)管與維護(hù),但仍需要運(yùn)維進(jìn)行業(yè)務(wù)系統(tǒng)監(jiān)控、業(yè)務(wù)故障恢復(fù)等性能管理工作。因此,構(gòu)建云中業(yè)務(wù)性能監(jiān)控體系,保障云中應(yīng)用可靠性與運(yùn)行質(zhì)量成為運(yùn)維部門的工作難點(diǎn)。gent(即插碼)的技術(shù)實(shí)現(xiàn)形式,包括Skywalking、Jaeger、Zipkin等開源工具,以及一些商用軟件。目前官方有兩種部署方式:一是DaemonSet方式;二是Sidecar方式。Agent采用全自動(dòng)探針或者手動(dòng)探針對(duì)中間件、Open Tracing組件甚至是私有化組件進(jìn)行監(jiān)控,除部分軟件工具(Skywalking)使用字節(jié)流等方式外,均需要在服務(wù)器上進(jìn)行部署或者在代碼中嵌入SDK。在Agent之外,還有另一類基于網(wǎng)絡(luò)數(shù)據(jù)(網(wǎng)絡(luò)流量)的技術(shù)實(shí)現(xiàn)形式,通過采用VM微探針或虛擬探針的方式,同時(shí)兼容公有云與私有云,對(duì)容器內(nèi)的網(wǎng)絡(luò)流量實(shí)現(xiàn)無侵入的實(shí)時(shí)轉(zhuǎn)發(fā),實(shí)現(xiàn)低開銷、高性能的網(wǎng)絡(luò)流量捕獲,對(duì)云環(huán)境實(shí)現(xiàn)無感式監(jiān)控。
Agent,自下而上式的云中應(yīng)用性能監(jiān)控
基于Agent的技術(shù)方案主要監(jiān)測(cè)代碼間的調(diào)用關(guān)系與時(shí)延,可以看到代碼層面的應(yīng)用節(jié)點(diǎn),因此獲取的應(yīng)用指標(biāo)偏底層。在進(jìn)行業(yè)務(wù)性能監(jiān)控時(shí),試圖通過聚合值發(fā)現(xiàn)底層錯(cuò)誤或故障,將問題指標(biāo)在影響到上層應(yīng)用之前提前定位。但是,在實(shí)際操作中面臨兩大考驗(yàn):
云環(huán)境中,底層基礎(chǔ)設(shè)施與服務(wù)器之間存在異常分配,譬如資源共享不穩(wěn)定導(dǎo)致監(jiān)控服務(wù)器異常復(fù)雜等;
云環(huán)境中,一個(gè)應(yīng)用由多個(gè)組件構(gòu)成,需要監(jiān)控越來越多的模塊,在實(shí)際監(jiān)控場(chǎng)景中將這些信息關(guān)聯(lián)并找到根源非常困難。
此外,基于agent的分布式鏈路追蹤所調(diào)取的Metrics指標(biāo)也是基于服務(wù)器等底層架構(gòu),當(dāng)?shù)讓訑?shù)據(jù)產(chǎn)生異常告警時(shí),很難通過分析快速定位到受影響的業(yè)務(wù)應(yīng)用。
網(wǎng)絡(luò)數(shù)據(jù),自上而下式的云中應(yīng)用性能監(jiān)控
基于網(wǎng)絡(luò)數(shù)據(jù)的技術(shù)方案主要監(jiān)測(cè)業(yè)務(wù)的應(yīng)用節(jié)點(diǎn)與部分網(wǎng)絡(luò)節(jié)點(diǎn),可以看到業(yè)務(wù)的應(yīng)用層指標(biāo),譬如交易量、響應(yīng)率、成功率等,因此獲取的應(yīng)用指標(biāo)直接反映了業(yè)務(wù)的健康度。在進(jìn)行業(yè)務(wù)性能監(jiān)控時(shí),通過監(jiān)控上層聚合數(shù)據(jù),從頂層的業(yè)務(wù)問題出發(fā)深入鉆取底層指標(biāo)。該方式在實(shí)際操作中同樣面臨以下挑戰(zhàn):
為防止在系統(tǒng)層面出現(xiàn)問題進(jìn)而影響用戶體驗(yàn),分布式系統(tǒng)可能會(huì)內(nèi)置容錯(cuò)機(jī)制延時(shí)故障和錯(cuò)誤,因此需要通過技術(shù)手段實(shí)現(xiàn)智能化的故障定位,直接鎖定故障根因;
從發(fā)生故障到擴(kuò)散至整個(gè)系統(tǒng)可能會(huì)經(jīng)歷較長(zhǎng)的時(shí)間間隔,當(dāng)注意到上層故障時(shí)可能為時(shí)已晚,因此需要通過實(shí)時(shí)的監(jiān)測(cè)機(jī)制控制延遲。
即時(shí)的故障告警與定位對(duì)云中業(yè)務(wù)性能監(jiān)控十分重要。由于當(dāng)前云環(huán)境基本都采用微服務(wù)架構(gòu),當(dāng)眾多的微服務(wù)交織在一起時(shí),故障定位就變得棘手。因此,無論是基于Agent還是基于網(wǎng)絡(luò)數(shù)據(jù)的技術(shù)方案基本都采用分布式架構(gòu),通過對(duì)分布式調(diào)用鏈進(jìn)行追蹤,及時(shí)分析性能狀況,可以快速定位與解決故障。
分布式鏈路追蹤體系里有三個(gè)重要的概念,即Metrics、Tracing與Logging。Metrics即指標(biāo),主要反映組件實(shí)時(shí)狀況與健康度;Tracing即鏈路,反映單次請(qǐng)求范圍內(nèi)如何處理信息;Logging即日志,反映離散的事件或過程。在云性能監(jiān)控領(lǐng)域,tracing通常作為優(yōu)化系統(tǒng)、排查問題的高階方法,logging被視為排障的主要依據(jù)。由于agent是一個(gè)網(wǎng)絡(luò)守護(hù)進(jìn)程,監(jiān)聽通過UDP發(fā)送過來的spans并將其批量送給collector,因此基于Agent的監(jiān)控方案更偏向于通過Tracing的形式進(jìn)行鏈路追蹤,而基于網(wǎng)絡(luò)數(shù)據(jù)的監(jiān)控方案更偏向于通過Metrics進(jìn)行故障反饋;通過Tracing模式可以查找到鏈路上出現(xiàn)問題的環(huán)節(jié),通過查日志可以定位系統(tǒng)問題,并不意味著Metrcis監(jiān)控的有效程度最低。相反,實(shí)時(shí)的監(jiān)控機(jī)制、智能的告警配置同樣可以快速定位故障根因。
(Metrics、Tracing、Logging三者間的關(guān)系示意圖)
此外,由于底層應(yīng)用數(shù)據(jù)的告警量往往很大,且存在海量誤告等狀況,從底層應(yīng)用數(shù)據(jù)指標(biāo)推演受影響的業(yè)務(wù)難度極大,因此基于Agent的技術(shù)方案在進(jìn)行業(yè)務(wù)性能監(jiān)控時(shí),很難快速感知業(yè)務(wù)實(shí)時(shí)運(yùn)行過程中的異動(dòng);而上層應(yīng)用數(shù)據(jù)與業(yè)務(wù)應(yīng)用高度關(guān)聯(lián),譬如響應(yīng)率、及時(shí)率、成功率等指標(biāo)直接呈現(xiàn)業(yè)務(wù)運(yùn)行連續(xù)性,運(yùn)維人員可快速感知業(yè)務(wù)的實(shí)時(shí)運(yùn)行狀態(tài)。
基于網(wǎng)絡(luò)數(shù)據(jù)的性能監(jiān)控,白盒監(jiān)控與黑盒監(jiān)控雙管齊下
應(yīng)用性能監(jiān)控按照不同維度的應(yīng)用指標(biāo)與監(jiān)控意圖可以劃分為:白盒監(jiān)控與黑盒監(jiān)控。白盒監(jiān)控主要關(guān)注原因,通過暴露系統(tǒng)內(nèi)部的相關(guān)指標(biāo)了解系統(tǒng)內(nèi)部的實(shí)際運(yùn)行狀態(tài),自下而上式的監(jiān)控可以直接預(yù)判問題根因;而黑盒監(jiān)控主要關(guān)注現(xiàn)象,自上而下式的監(jiān)控在系統(tǒng)或者服務(wù)發(fā)生故障時(shí)快速告警,通知運(yùn)維人員進(jìn)行處理,及時(shí)排障。在以業(yè)務(wù)為核心的運(yùn)維體系架構(gòu)中,業(yè)務(wù)性能監(jiān)控更側(cè)重于黑盒監(jiān)控。
由于云環(huán)境應(yīng)用系統(tǒng)監(jiān)控的目標(biāo)是提供對(duì)復(fù)雜信息系統(tǒng)的全面監(jiān)控,反映云資源池的健康狀況與可用性,構(gòu)建一個(gè)可控、可預(yù)測(cè)的云環(huán)境,支持云業(yè)務(wù)安全、穩(wěn)定、高效、持續(xù)運(yùn)行。因此,為及時(shí)掌握系統(tǒng)資源現(xiàn)狀與運(yùn)行信息,業(yè)務(wù)性能監(jiān)控在做好黑盒監(jiān)控的基礎(chǔ)上,也需要具備白盒監(jiān)控的能力。
云計(jì)算通過云平臺(tái)與虛擬化技術(shù)實(shí)現(xiàn)資源池統(tǒng)一化管理,在支持自服務(wù)與資源彈性伸縮的同時(shí)也給云中的流量采集帶了新的挑戰(zhàn)。流量采集作為監(jiān)控的前提,與生產(chǎn)網(wǎng)絡(luò)一樣,其準(zhǔn)確性、穩(wěn)定性與可靠性直接影響黑、白盒監(jiān)控的分析結(jié)果:
在傳統(tǒng)網(wǎng)絡(luò)環(huán)境下,網(wǎng)絡(luò)流量采集主要通過交換機(jī)鏡像和分光器的方式進(jìn)行全量、實(shí)時(shí)、精準(zhǔn)的采集;在云環(huán)境下,同一物理機(jī)不同虛機(jī)之間的業(yè)務(wù)交互的東西流量不再經(jīng)過網(wǎng)絡(luò)物理交換機(jī),而將面臨虛機(jī)監(jiān)控的缺失;
云環(huán)境里計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等物理資源被池化和虛擬化,云中的虛機(jī)上下線、擴(kuò)容、遷移、切換等均需通過自動(dòng)化實(shí)現(xiàn),鏡像策略無法隨虛機(jī)的切換實(shí)現(xiàn)同步部署。
因此,基于云平臺(tái)的動(dòng)態(tài)性特點(diǎn),云環(huán)境下的流量采集勢(shì)必要突破傳統(tǒng)交換機(jī)鏡像的方式,通過靈活、自動(dòng)化采集和監(jiān)控部署,實(shí)現(xiàn)虛擬機(jī)間東西向流量的采集,并加強(qiáng)過載保護(hù)機(jī)制做到對(duì)服務(wù)器無感或最小感知。
基于網(wǎng)絡(luò)數(shù)據(jù)的業(yè)務(wù)性能監(jiān)控技術(shù)通過虛擬交換機(jī)利用微探針或SDN引流的方式,實(shí)現(xiàn)全流量、實(shí)時(shí)、精準(zhǔn)的跨多云網(wǎng)絡(luò)環(huán)境、多網(wǎng)絡(luò)區(qū)域的采集,通過自動(dòng)化部署、集中管控采集器,動(dòng)態(tài)感知云中流量資源和業(yè)務(wù)應(yīng)用資源的變更聯(lián)動(dòng),并通過云上、云下一體化的全鏈路監(jiān)控體系實(shí)現(xiàn)對(duì)業(yè)務(wù)應(yīng)用“黑盒監(jiān)控”,動(dòng)態(tài)感知交易量等業(yè)務(wù)指標(biāo)的異動(dòng);通過搭建智能化的故障告警與定位系統(tǒng),定位業(yè)務(wù)故障根因,實(shí)現(xiàn)應(yīng)用性能的“白盒監(jiān)控”。
天旦業(yè)務(wù)性能管理BPC基于網(wǎng)絡(luò)數(shù)據(jù),通過安全可靠的采集技術(shù)實(shí)現(xiàn)跨多云環(huán)境的流量采集,同時(shí)支持分布式架構(gòu)和集中管控,實(shí)現(xiàn)云上、云下一體化的全鏈路業(yè)務(wù)性能監(jiān)控,被客戶譽(yù)為“業(yè)務(wù)監(jiān)控狀態(tài)的第一感知源”。