文 / 英大泰和財產保險股份有限公司 劉峰耀 張國慶 張凱男
隨著保險科技的快速發展,基於微服務的分散式構架不斷創新,虛擬化資料中心以及雲計算等部署方式不斷湧現,創新式保險業務流程不斷增多,保險核心系統管理的複雜度呈現指數級增加的態勢,即使是最優秀的軟體構架師都很難完全把握他們應用是如何執行的。因此,充分利用先進科技建設專業的應用監控平臺,建立生產系統的故障發現與IT運維預警機制,制定系統故障預測與故障預防的方案,提高對生產系統故障的及時發現和預測管控能力,對保證資訊系統穩定執行和業務持續發展具有重大意義。
應用監控工具技術選型目前,市場上主流的應用監控工具,以監控資料獲取方式的不同,大致分3類。
首先,Agent代理方式(SDK)。根據所監控系統的作業系統、開發環境及軟體版本等因素,開發對應的Agent版本,透過相應API呼叫進行資料採集和監控。該方式可以深入底層執行程式碼,有效收集全面的J2EE效能資料,缺點是對系統性能有影響,在特殊環境下需要對軟體本身的呼叫方法進行改造;需要適配應用伺服器版本和環境,屬於緊耦合關係,版本管理複雜;SDK方式無法面向業務交易進行監控,只能看到應用報頭,無法實現業務層面端到端全鏈路監控和單筆交易追蹤。
其次,基於日誌分析。透過收集和分析交易流水日誌,對系統交易進行效能分析。該方式對日誌的資料欄位可定製化強,無需使用複雜的解碼技術。缺點是對於不同裝置、不同格式的日誌做正規化處理難度較大,一般需要對已經上線系統進行改造,工作量大,專案週期長;佔用生產系統的計算、磁碟IO和網路資源,和業務系統是緊耦合關係;監控力度越細,對生產系統和分析系統的壓力就越大;日誌生成的時效性略差。
第三,基於網路報文分析。基於網路SPAN流量映象的方式,從旁路映象獲取每筆交易的網路通訊原始報文,透過資料包解碼技術,得到全量的業務交易資料,實現對業務交易效能的準實時監控。該方式透過旁路映象獲取資料,對系統本身的執行沒有影響,同時網路報文的時效性高,可以保障準實時的監控效果;支援網路資料包的回溯分析;快速進行端到端的業務路徑的梳理,在業務路徑上進行交易的路徑追蹤檢視。缺點是無法對不對外發包的資料進行分析,對於應用系統本身程式碼質量和效能不能做細粒度監控,適用在關鍵的核心業務系統和對穩定性要求高的環境。
考慮到金融領域審慎性決策和穩定性管理的要求,在技術選型過程中,重點考慮瞭如下選型原則:一是不對所監控系統做大的系統性改造,能夠對公司新老架構應用系統進行統一的監控;二是儘量不過多佔用所監控系統執行資源,不對系統執行效能造成影響;三是能夠對交易鏈路實現端到端的全流程閉環監控,展示交易關鍵路徑的效能情況;四是能夠提前預測系統性能瓶頸,提前進行系統性能最佳化,能夠實時進行故障預警,實現故障的快速定位和交易流程的多維度分析。
透過對比不同監控平臺實現方式,根據確定的技術選型原則,確定選用網路流量映象的方式,構建本專案的應用效能監控平臺。
功能需求分析根據對專案整體需求的分析,確定保險應用效能監控平臺主要包括6類功能需求。平臺整體結構功能如圖1所示。
圖1 保險應用效能監控平臺結構功能圖
監控檢視:包括宏觀檢視、全景檢視和雲檢視。宏觀檢視實時展示業務系統健康指數,為運維團隊及管理層提供宏觀的頂層檢視,透過簡單直觀的介面展示每個應用系統的執行狀態;全景檢視實現端到端的業務流拓撲,極大地提高了定位業務的時效及準確度,可以捕捉和分析業務請求在系統內部各節點之間的全部傳輸過程,對每一筆業務進行端到端追蹤,將業務路徑全面視覺化展示;雲檢視實現縮略型的業務流拓撲,能夠將幾個節點重新規劃成一個邏輯系統,對這些邏輯系統間的整體交易或者網路情況有所瞭解。
儀表盤:可以提供多種儀表盤模板,支援曲線圖、柱狀圖、餅圖等常見圖表,並且支援拖拽和鑽取功能,能夠將指定業務透過儀表盤進行實時情況展示。
業務流設定包括業務聚合和業務智慧發現。交易聚合功能,能夠從後臺實現無序、有序的多個業務步驟的合成,或者非同步資料構成的同一筆業務,運維人員從監控平臺監控到的交易數與實際發生的交易數一致,實現準確的交易數統計;業務智慧發現透過對網路資料包的深度解碼,自動發現網路中各節點的服務關係,透過設定唯一標識ID,對業務流程進行自動生成及追蹤,實現高效的運維管理。
一體化監控包括交易監控、效能監控和智慧告警。交易監控實現對重要型別交易資料的實時監控和展示;效能監控使用大資料技術記錄使用者請求在業務系統內部的每一步處理過程的效能指標,實現精細地單筆應用效能實時監控;智慧告警可以針對業務路徑設定告警,既可以人工確定預警閥值實現特徵類告警,也可以透過機器學習規則實現基於基線的告警。
體驗指數:透過統計使用者訪問系統的響應時間分佈情況,計算出該業務系統使用者訪問體驗的流暢程度,該指數越高代表訪問的整體情況越流暢,反之則越差;自動基於源IP地址,統計來自各區域的請求的使用者體驗指數,透過地圖展示各區域用於體驗指數差異。
監控報表:可以實現多維度統計分析應用監控的指標資料,實現對主要應用系統、重要系統、關鍵業務的報表展示,關鍵指標可以根據使用者自定義生成日、周、月、季、年等維度報表。
平臺架構設計1.系統架構設計原則
在進行應用效能監控平臺的整體設計時,充分考慮適應金融保險領域IT架構規劃,應用當前流行、成熟技術,平臺易於擴充套件和維護,主要包括以下5方面:首先,開放式系統,採用SOA的架構設計思想,以服務為導向,結合模組化結構,引數化設計,交易模板定製技術,層次清晰,封裝性好,便於系統功能的擴充,維護靈活。其次,採用成熟的中介軟體技術,確保交易的穩定性、完整性,提高系統整體處理能力和動態伸縮能力。第三,採用平臺開發技術,保證系統穩定、靈活,便於擴充套件,易於維護。第四,系統具備較高的可靠性和可用性,支援24×7小時不間斷執行;資料儲存採用冗餘備份技術;應用系統具備良好的資料備份和資料恢復功能;系統具備高效的處理能力,滿足各種技術指標要求;具有高效的聯機處理能力和併發處理能力;系統能夠與硬體同步升級,當硬體能力提升時,系統能夠線性地提升處理能力;具備良好的可擴充套件能力和可維護性。第五,系統具備良好的應用層次結構,快速響應業務請求;按應用封裝,便於系統的組裝。
2.應用架構
業務效能監控平臺採用B/S架構,前端基於HTML5技術開發,底層基於大資料平臺實現,主要包括展現層、服務層、業務邏輯層、引擎層、大資料平臺層等五個層次,詳見圖2。
圖2 應用效能監控平臺應用架構圖
大資料平臺層:獲取旁路網路映象流量、自運維資料和外部介面資料,透過對原始資料進行格式化操作,包括資料解析、打標籤、完成資料的整合,系統採用Flume實時傳輸引擎,把資料傳輸到ES實時資料庫,對於靜態配置資料,存入到MongoDB當中,方便後續查詢資料。
引擎層:構建基於搜尋引擎、分析引擎、規則引擎、計算引擎完成對資料的處理,最終實現資料的統計計算。
業務邏輯層:提供系統的基本功能,直觀展現業務監控資料,實現運維的動態感知,重點包括:業務牆、交易監控、應用效能、儀表盤和視覺化分析等,提供給運維人員透過前端頁面直接使用。
服務層:提供基於REST協議ES的資料介面給第三方系統,用於監控資料和使用者告警資料的三方傳輸。
展現層:基於HTML5技術開發,實現運維人員前端操作的所有功能。
3.技術架構
監控平臺採用模組化、松耦合的技術架構設計思路,主要分為資料採集(解碼探針)、資料處理(Manager分析引擎)和資料儲存(SearchEngine搜尋引擎)3大模組。解碼探針是整個系統最重要的部分,負責將接入的網路流量資料進行解碼分析,同時按一定的規則生成結構化的資料,供後臺儲存分析;分析引擎平臺把結構化分析好的資料記錄存入搜尋引擎(SearchEngine),並根據系統的配置要求,進行資料的基線、告警、統計等計算;SearchEngine搜尋引擎技術是目前主流的大資料儲存技術,這種技術在架構上,可以快速橫向擴充套件node節點。在技術實現上選擇了ElasticSearch開源框架作為大資料平臺,透過shard+replica的資料分片複製技術,實現分散式部署叢集,極大提供可擴充套件性和搜尋速度。
應用效能監控平臺實現保險應用效能監控平臺的實現需要充分掌握保險領域概念和流程,明確保險核心業務系統規模、應用架構、資料流向和部署架構等,規劃出所要監控應用系統的宏觀檢視和全景檢視,透過宏觀檢視,掌握核心業務系統全面執行情況;透過全景檢視,捕捉和分析保險業務請求在系統內部各節點之間的全部傳輸過程,實現保險業務流的端到端監控。透過交易量、成功率、響應率、響應時間這四類關鍵效能指標,進而實時評估每個系統的健康情況,進行告警資訊生成和提示。
同時,應用監控平臺的實現,關鍵是針對不同網路流量資料的解碼過程,因此,本節也重點對解碼探針的實現邏輯進行了描述。
1.宏觀監控檢視
保險業務的核心流程包括投承保流程和理賠服務流程,限於篇幅關係,本節只展示了這兩個流程涉及應用系統的宏觀監控檢視,圖3是保險主要業務系統宏觀監控檢視。該宏觀檢視重點監控了保險公司核心業務主系統之間的呼叫關係,直觀展示了從前端使用者到應用中後臺服務之間的層級呼叫邏輯,透過所監控的關鍵效能指標,實時展示出保險公司主要業務系統的執行情況。
圖3 保險主要業務系統宏觀監控檢視
2.投保全景檢視
全景檢視重點監控重點業務流程各節點之間的執行情況,本節重點展示車險投保流程的全景檢視,該檢視展示了車險保單從訂單錄入、訂單儲存、提交核保……到生成保單、列印保單的全鏈路監控節點,直觀展示了車險展業流程的系統健康度。
3.解碼探針邏輯實現
解碼探針根據不同的業務資料報文格式選擇不同的報文解碼器進行解碼,如當前比較常見的XML解碼器和JSON解碼器,在一些場合,比如和銀行或監管機構的互動資料的報文,會用到定長解碼器。
於資料包來說,從應用層來看,分為Header(包頭)和Payload(包體),Payload往往存在業務資訊,如XML協議,Payload就是XML格式的規則,透過正則表示式匹配出指定檔案的關鍵字,轉換成格式文字資料,從而實現解碼的過程。
結 語基於大資料的保險業務效能監控平臺的應用,使公司業務系統的異常管理由被動變為主動;實現了全景式的業務監控視覺化能力;並具備了智慧化異常告警及分析能力;實現了快速異常定位及回溯查詢,提高了使用者的體驗,保障了業務連續性。隨著國家大資料戰略的提出以及企業大資料分析能力的提高,應用監控平臺已經不僅僅是作為運維監控使用,它同時也具備業務運營資料的分析能力。因此,下一步,我們將透過分析保險實時交易資料,實現業務運營資料的態勢感知,指導企業的運營決策,助力保險企業實現做大、做強、健康發展的戰略目標。