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