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