云原生應(yīng)用鏈路分析實(shí)踐,你學(xué)會(huì)了嗎?
?一、云上應(yīng)用現(xiàn)狀與挑戰(zhàn)
G行為深化“123+N”數(shù)字化發(fā)展體系,建設(shè)自主可控的全棧云平臺(tái),全面支持云原生、微服務(wù)和分布式等技術(shù)。然而由于在全棧云環(huán)境中因容器漂移、自動(dòng)擴(kuò)縮容使得應(yīng)用故障現(xiàn)場(chǎng)難以還原,同時(shí)微服務(wù)技術(shù)的應(yīng)用也使得云上應(yīng)用服務(wù)調(diào)用關(guān)系復(fù)雜,鏈路難以準(zhǔn)確梳理,故障發(fā)生時(shí)難以快速定位根因,給云上應(yīng)用系統(tǒng)運(yùn)維及故障排查帶來(lái)了挑戰(zhàn),為此如何有效實(shí)現(xiàn)云上應(yīng)用的可管理性和可觀測(cè)性是一個(gè)較為急迫的問(wèn)題。
面對(duì)上述問(wèn)題,G行構(gòu)建了云原生體系下鏈路分析體系(見(jiàn)圖1),基于Trace(調(diào)用鏈)、Metric(指標(biāo))、Log(日志),實(shí)現(xiàn)了從基礎(chǔ)架構(gòu)監(jiān)控(ITIM)、到網(wǎng)絡(luò)性能監(jiān)控(NPM)、應(yīng)用性能分析(APM)以及數(shù)字體驗(yàn)監(jiān)控(DEM)的全鏈路分析體系,提升云原生環(huán)境下的可觀測(cè)性,為數(shù)字化轉(zhuǎn)型保駕護(hù)航。
圖1 云原生體系下鏈路分析體系示意圖
二、云原生應(yīng)用性能全鏈路分析系統(tǒng)架構(gòu)
G行通過(guò)渠道應(yīng)用性能分析系統(tǒng)(CAPAS)對(duì)接全棧云上互聯(lián)網(wǎng)應(yīng)用,通過(guò)APM全棧探針的能力和平臺(tái)的數(shù)據(jù)分析能力,實(shí)現(xiàn)應(yīng)用性能評(píng)分、調(diào)用鏈路追蹤、代碼級(jí)故障定位以及關(guān)聯(lián)分析等能力,其主要技術(shù)架構(gòu)如下圖所示:
圖2 云原生應(yīng)用性能全鏈路分析平臺(tái)架構(gòu)
主要核心技術(shù)能力包括以下幾點(diǎn):
應(yīng)用評(píng)分
通過(guò)對(duì)應(yīng)用的Apdex評(píng)價(jià)、響應(yīng)速度及錯(cuò)誤率等關(guān)鍵性能指標(biāo)作為量化要素計(jì)算出應(yīng)用性能體驗(yàn)指標(biāo)的綜合評(píng)分,直觀展示當(dāng)前應(yīng)用系統(tǒng)的總體運(yùn)行態(tài)勢(shì)。
智能探針技術(shù)(Smart Agent)
全面兼容K8S同時(shí)支持Image等多種方式安裝,通過(guò)守護(hù)進(jìn)程對(duì)容器的調(diào)度情況進(jìn)行監(jiān)控,當(dāng)發(fā)現(xiàn)運(yùn)行環(huán)境中有需要被納管的容器對(duì)象生成時(shí),將自動(dòng)根據(jù)該容器環(huán)境適配對(duì)應(yīng)類型的探針,然后將匹配好的探針進(jìn)行自動(dòng)裝載和同步配置調(diào)整,實(shí)現(xiàn)探針的自動(dòng)發(fā)現(xiàn)、自動(dòng)注入、統(tǒng)一調(diào)度,實(shí)現(xiàn)了容器漂移或重啟時(shí)自適應(yīng)管控的能力。
自動(dòng)發(fā)現(xiàn)應(yīng)用調(diào)用鏈技術(shù)
利用字節(jié)碼注入,即當(dāng)調(diào)用了多個(gè)應(yīng)用組件時(shí),在調(diào)用第一個(gè)組件時(shí)會(huì)在第一個(gè)調(diào)用頭中加入TraceID,當(dāng)繼續(xù)調(diào)用其他組件時(shí)此TraceID會(huì)向下傳遞,通過(guò)傳遞的TraceID能夠自動(dòng)發(fā)現(xiàn)應(yīng)用組件調(diào)用的邏輯關(guān)系,基于有向無(wú)環(huán)圖(DAG)的原理,能夠自動(dòng)識(shí)別應(yīng)用在執(zhí)行的過(guò)程中涉及的軟硬件架構(gòu)和組件,并且可以描繪出應(yīng)用交互鏈中交易通訊的各個(gè)組件的訪問(wèn)路徑,最終形成應(yīng)用調(diào)用鏈,以實(shí)現(xiàn)對(duì)各復(fù)雜業(yè)務(wù)調(diào)用拓?fù)渥詣?dòng)發(fā)現(xiàn),解析應(yīng)用運(yùn)行狀態(tài)。
端到端全鏈路分析
客戶側(cè)通過(guò)主動(dòng)模擬監(jiān)控方式和JS/SDK注入方式,獲取用戶使用業(yè)務(wù)過(guò)程中的網(wǎng)絡(luò)請(qǐng)求性能數(shù)據(jù)、頁(yè)面加載性能數(shù)據(jù)及使用中遇到的慢卡頓崩潰等各類問(wèn)題,掌握用戶真實(shí)業(yè)務(wù)使用過(guò)程中的性能體驗(yàn)及問(wèn)題,實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)用戶體驗(yàn)監(jiān)控(DEM)。同時(shí)在容器云上進(jìn)行應(yīng)用服務(wù)性能采集和數(shù)據(jù)分析,前后端通過(guò)TraceID關(guān)聯(lián)分析的能力可以快速了解當(dāng)前系統(tǒng)的整體運(yùn)行狀態(tài),實(shí)現(xiàn)端到端打通,構(gòu)建從用戶到代碼的全鏈路分析能力(見(jiàn)圖3)。
圖3 應(yīng)用全鏈路分析
三、應(yīng)用實(shí)踐
目前G行渠道應(yīng)用性能分析系統(tǒng)已經(jīng)對(duì)接多個(gè)互聯(lián)網(wǎng)移動(dòng)移動(dòng)包括手機(jī)銀行、企業(yè)手機(jī)銀行,同時(shí)也對(duì)接企業(yè)網(wǎng)上銀行、個(gè)人網(wǎng)上銀行、微信銀行等WEB類系統(tǒng),在全棧云環(huán)境對(duì)接繳費(fèi)客戶端服務(wù)(見(jiàn)圖4),從開(kāi)發(fā)測(cè)試環(huán)境到生產(chǎn)運(yùn)行全方位服務(wù)相關(guān)系統(tǒng),實(shí)現(xiàn)相關(guān)業(yè)務(wù)系統(tǒng)的實(shí)時(shí)狀態(tài)展示以及問(wèn)題根因分析,提升業(yè)務(wù)系統(tǒng)非功能優(yōu)化能力,助力完善電子渠道應(yīng)用產(chǎn)品。
圖4 容器環(huán)境應(yīng)用運(yùn)行態(tài)勢(shì)
四、回顧與展望
通過(guò)體系建設(shè)構(gòu)建了應(yīng)用系統(tǒng)前后端的性能監(jiān)測(cè)與分析能力,全面兼容全棧云平臺(tái),實(shí)現(xiàn)對(duì)云原生應(yīng)用的Trace、Metric和Log數(shù)據(jù)的收集分析,并通過(guò)前后端關(guān)聯(lián)的方式,初步實(shí)現(xiàn)根因分析,掌握系統(tǒng)的運(yùn)行狀態(tài)。后續(xù)將在現(xiàn)有基礎(chǔ)上,進(jìn)一步實(shí)現(xiàn)以下目標(biāo):
基于G行全局跟蹤碼技術(shù),將進(jìn)一步將現(xiàn)有的TraceID作為銜接行內(nèi)行外系統(tǒng)的紐帶,實(shí)現(xiàn)從客戶側(cè),服務(wù)側(cè)乃至后臺(tái)業(yè)務(wù)系統(tǒng)的全鏈路跟蹤,實(shí)現(xiàn)從用戶操作到產(chǎn)品響應(yīng)的精細(xì)體驗(yàn)管理。
基于現(xiàn)有應(yīng)用指標(biāo)數(shù)據(jù),實(shí)現(xiàn)業(yè)務(wù)的商業(yè)洞察,了解用戶的使用流程和軌跡,從性能和收入角度綜合分析IT服務(wù)支撐效果和用戶使用習(xí)慣,真正從運(yùn)維入手,來(lái)促進(jìn)和提升業(yè)務(wù)運(yùn)營(yíng);
實(shí)現(xiàn)多維度數(shù)據(jù)的不斷積累,為全面的自動(dòng)化運(yùn)維奠定良好的數(shù)據(jù)基礎(chǔ)和實(shí)踐基礎(chǔ),構(gòu)建不同維度的AIOps落地場(chǎng)景,在奠定基礎(chǔ)的同時(shí)提升運(yùn)維及業(yè)務(wù)收益。