應用程式效能監控軟體之 應用實務分享 - fisc ·...
TRANSCRIPT
www.fisc.com.tw ■ 27
應用程式效能監控軟體之應用實務分享〡資訊分享
應用程式效能監控軟體之應用實務分享
黃文杰 / 財金資訊公司業務部品管測試組組長
一、 前言
網路時代的興起,應用程式儼然成為金
融服務業的核心命脈,無所謂營業時間,使用
者只要有 App、知道入口網站就可以在用戶端
完成自己的理財規劃、信用卡申請、保母費匯
款等。事實上,應用程式並非單獨存在,而是
有一大群幕後黑手在默默地支持,其中軟硬體
(以下簡稱節點 ) 有:VM OS、負載平衡設備
(Network Load Balance)、SAN Switch、防火牆
(F/W)、資料庫、磁碟等等,為能持續有效地服
務,節點的設計都已朝著服務不中斷的目標前
進,為確保服務品質及減少維運壓力,各節點
也各自發展出專屬的效能監控軟體,具全面規
劃及妥善的管理方式,藉此減輕技術人員負荷,
甚至使其高枕無憂。然而,由於前述高規格軟
硬體所堆砌的門檻 (不論技術或資金 ),不少企
業因而轉向使用雲端方案 (提供主機託管及效
能監控平台 ),例如:亞馬遜網路服務 (Amazon
Web Services,AWS)、Windows Azure、中華
電信、Acer eDC等託管公司,希望在這場服務、
軍備的競賽中,持續保有參賽權。
圖 1 2015年 Gartner就各品牌 APM之研究
28 ■ 財金資訊季刊 / No.87 / 2017.01
資訊分享〡應用程式效能監控軟體之應用實務分享
天下大勢分分合合,技術從不安逸於
現狀,依據國際研究機構 Gartner (以下稱
Gartner) 2015年研究顯示,應用程式效能監
控軟體 (Application Performance Monitoring/
Management,以下簡稱 APM 軟體 ) 市場
刻正處於戰國時代,有以應用程式類角度
切 入 的 APM 軟 體 ( 例 如:AppDynamic、
Dynatrace),也有作業系統層級的 APM軟體
(例如:IBM、Microsoft);另外,硬體廠商 (例
如:Riverbed) 的整合性監控工具也在其列 (如
圖 1所示 )。依據 Gartner分析,資訊系統效
能 (包含軟硬體 ) 評量是以使用者的真實感受
為主,本篇選擇最貼近使用者端的應用程式類
APM軟體與各位分享。
二、 效能監控
以信用卡交易流程為例,使用者於飯店用
餐後的付款授權交易,所牽涉的節點至少包
含:卡片、端末設備 (POS機 )、網路設備、
資料庫系統、作業系統、應用程式等 (如圖 2
所示 ),以下就各節點的效能監控摘要說明之。
圖 2 信用卡交易資訊流
(一 ) 網路
網路監控須能依據企業實際網路架構,經
由網路設備啟用封包收集,即可讓管理者掌握
每項應用程式的流量及封包 (有單一服務埠流
量的限制 );也可透過封包或流量協助界定當
時應用程式的行為是否合理,或是推論使用者
當時在系統上的操作情境。
(二 ) 資料庫系統
資料庫系統本身已具備相關的效能監控
機制,例如:Oracle Enterprise Manager 可
用以設定自我診斷機制 (Automatic Database
Diagnostic Monitoring,ADDM),可搭配 SQL
優化建議工具 (SQL Tuning Advisor,STA) 一
起使用;微軟的 SQL Server則可使用 SQL
Trace、SQL Profiler。實務上,企業往往存在
多種資料庫系統,其中有套裝軟體綁定的資料
庫系統,也有企業自行規劃建置的,若單靠個
別資料庫系統本身所提供之工具可能較不方
便,如擬簡化管理,也可評估透過第三方 (非
原廠 ) 工具管理異質資料庫。
(三 ) 作業系統
微軟之作業系統提供效能監視器或使用其
進階的 System Center,而 Linux類的 sysstat
www.fisc.com.tw ■ 29
應用程式效能監控軟體之應用實務分享〡資訊分享
套件中的 sar、iostat、mpstat等,皆歸屬於作
業系統層級的效能監控軟體,可協助建立各種
資 源 (CPU、RAM、Network、Datastore 等 )
的使用趨勢,進而適當調整資源之使用或進行
擴充。VM Host的 vFoglight則另外提供如:
CPU Reserved capacity、system heartbeat、
Storage I/O Control aggregated IOPS等較特
殊的系統資訊。IBM公司宣稱其可支援「關
鍵應用程式」的所有主要平台,包括:x86/
Microsoft、AIX/Linux 及大型主機環境。
(四 ) 應用程式
應用程式整體效能監控應涵蓋環境監控
(包含:電力、氣流、散熱等 )、資源監控,
本篇僅就資源監控部分進行探討。
以往透過在程式碼中安插旗幟找問題的
做法,隨著工具不斷進步而有所演進,APM
軟體必須能快速識別並找到問題,不僅只解
決問題,尚能藉由性能趨勢分析,有效降低
應用程式管理人員的負擔。歸納幾款市場上
較大品牌的 APM產品,所具備的特性有:1.
插件 (應用程式端的 Agent,並依此綁定授權
數 ),以對現有應用程式環境最小的影響方式
完成布建,並提供各系統間的拓樸圖。2. 支
援大部分流行的程式語言,例如:Java、.Net
等。3. 管控中心,負責收集所有插件回報之
資訊,匯總資訊後以數位儀表板方式呈現 (可
高度客製化 )。4. 額外負荷低,不同的 APM
產品其做法稍有差異,有些是所有交易全部
收集,有些則依統計的採樣 (sampling) 方式
實作。如採用全部交易都追蹤的 APM軟體,
則須特別注意該軟體是否帶來額外負荷,進
而影響監控之應用程式效能? 5. 整合多項資
源資訊後再統一呈現,可一併收集應用程式
所在主機 (VM Guest) 的系統資源、JVM或
是 .Net Framework的效能參數,以供整體評
估。
綜上可知,現在 APM軟體的發展趨勢已
非僅提供單一節點本身的效能監控,大部分
都已延伸到貼近用戶的體驗。上述各節點的
效能監控皆可依據系統的 SLA (Service Level
Agreement) 定義監控指標,具備告警功能,
可透過 EMail主動通知相關人員,並提供相關
管理性報表。
三、 應用實務
Garnter指出在 APM的評估指標中最重
要的一項為自動組態,其實也就是降低應用程
式加入 APM的門檻。本篇選用兩類以 Java
開發的獨立應用程式 (standalone)為例,一
為批次作業、另一以服務方式呈現。該服務以
TCP/IP Socket方式與國際組織介接,透過約
定規格執行訊息收送。恰巧這兩類應用與一般
APM軟體評估稍有差異,故以其與各位分享。
因非屬 APM軟體預設模式,所以必須以人工
調整偵測應用程式的入口 (與 HTTP/HTTPS
明顯不同 ),讓 APM軟體認識應用程式所定
義的交易 (一個請求 /一筆訊息 /一項批次作
業 ),才能執行後續的監控。
(一 ) 前置作業-安裝APM軟體及設置應用
程式監控
1. 安裝效能監控軟體
包括管控中心 (收集所有監控資料的存儲
中心 )、應用程式插件、APM用戶端軟體,受
監控之應用程式僅須增加 JVM特定參數即可。
30 ■ 財金資訊季刊 / No.87 / 2017.01
資訊分享〡應用程式效能監控軟體之應用實務分享
(二 ) 客製化設定應用程式入口-批次程式
批次作業,依據開發人員提供的程式入
口,將其設定為 Sensor後,再逐步觀察是否
可適用於所有批次作業。這部分可能涉及應用
程式的架構,納入所有必要監控的程式元件
後,即可設置出專屬的 Sensor。
以圖 3為例,程式啟動點為:tw.com.
fisc.batch.ExpFIABIN,將入口組態調整為:
tw.com.fisc.batch.*。以本次應用程式所在的
作業系統 (windows) 為例,批次作業設定於排
程作業,以 bat方式執行,當 bat中包含多個
獨立批次程式時,須注意是否具備足夠的授權
數 (licenses),以免無法呈現費工費時收集之
管控中心資料。
(三 ) 效能比對
可提供交易比較 (compare) 功能,分析程
式方法 (method) 在應用系統異動前後的效能
差異,應用時機包含應用程式變更、作業系統
更新、網路設備更新等 (如圖 4所示 )。
2. 批次模式,以 ant target呼叫使用為例:
P.32:「應用程式效能監控軟體之應用實務分享」
2. 批次模式
3. 服務模式
wrapper.java.additional.16= -agentpath:D:\dt62\agent\lib\dtagent.dll=name=CXXD_EDC3,server=10.201.199.79:9998
<property name="batch_jvmarg" value="-Xms1024m -agentpath:D:\dt620_agent\agent\lib\dtagent.dll=name=BATCH,server=10.201.199.79:9998"/> ... <target name="runExpPTOR"> <property name="log4j.configuration" value="${work.dir}/batch/ExpPTOR/log4j.xml"/> <java classname="tw.com.fisc.batch.ExpPTOR" fork="true"> <classpath> <pathelement location="${work.dir}/batch/ExpPTOR"/> <path refid="batch.classpath"/> <pathelement path="${java.class.path}"/> </classpath> <jvmarg line="${batch_jvmarg}"/> <arg value="${argv0} "/> <arg value="${argv1} "/> </java>
</target>
3. 服務模式 (以Java wrapper service將獨立的Java應用程式包裝為服務 ),額外增加以下設定:
P.32:「應用程式效能監控軟體之應用實務分享」
2. 批次模式
3. 服務模式
wrapper.java.additional.16= -agentpath:D:\dt62\agent\lib\dtagent.dll=name=CXXD_EDC3,server=10.201.199.79:9998
<property name="batch_jvmarg" value="-Xms1024m -agentpath:D:\dt620_agent\agent\lib\dtagent.dll=name=BATCH,server=10.201.199.79:9998"/> ... <target name="runExpPTOR"> <property name="log4j.configuration" value="${work.dir}/batch/ExpPTOR/log4j.xml"/> <java classname="tw.com.fisc.batch.ExpPTOR" fork="true"> <classpath> <pathelement location="${work.dir}/batch/ExpPTOR"/> <path refid="batch.classpath"/> <pathelement path="${java.class.path}"/> </classpath> <jvmarg line="${batch_jvmarg}"/> <arg value="${argv0} "/> <arg value="${argv1} "/> </java>
</target>
www.fisc.com.tw ■ 31
應用程式效能監控軟體之應用實務分享〡資訊分享
圖 3 自訂程式入口點及監控資料的呈現
圖 4 效能比對
32 ■ 財金資訊季刊 / No.87 / 2017.01
資訊分享〡應用程式效能監控軟體之應用實務分享
(四 ) 與開發工具 (IDE) 整合
APM用戶端軟體具備將交易匯出入的
功能 (離線瀏覽;若為營運環境,則須將敏
感性資料予以遮罩處理 ),不論與廠商或技
術單位均可直接以相同介面進行溝通討論並
解決問題。另外,當發現疑似效能議題的方
法 (method),可透過 APM用戶端軟體介面
的操作,直接檢視程式碼 (本機 IDE必須具
該 APM軟體的 plugin,參考圖 5)。對照以往
從應用程式日誌中搜尋關鍵資訊,緊接著追
蹤 (Trace) 這訊息可能出現的程式碼 (source
code),再撰寫簡單的測試情境驗證推論是否
正確,若資訊收集有瑕疵,這項作業流程即
來回重覆進行幾回 (debug)。相較之下,APM
軟體能有效縮短問題查找時間,對部署管理
(deployment management) 嚴格的單位而言,
其效益更顯著。
圖 5 程式碼追蹤
Gartner使用幾項指標評估 APM軟體應
當具備的能力,其中包含:問題偵測及快速反
應、協助應用程式除錯、業務衝擊分析、即時
邏輯拓樸 (包含應用服務及系統各伺服器層 )、
服務監控 (確認反應速度與正常運行時間是否
如預期 )、趨勢分析等六項指標。依據不同使
用者的應用程式效能監控需求,Gartner運用
不同的權重予以評量,如表 1所示:
www.fisc.com.tw ■ 33
應用程式效能監控軟體之應用實務分享〡資訊分享
維運 應用系統支援 應用系統開發
問題偵測及快速反應 30 20 10
協助應用程式除錯 0 30 50
業務衝擊分析 10 0 0
即時邏輯拓樸 10 40 30
服務監控 30 10 0
趨勢分析 20 0 10
表 1 應用程式效能監控關鍵能力
四、 結語
Bank 3.0提到的金融服務模式已被顛
覆,金融業服務歷來遭受挑戰,而新種業務又
如雨後春筍般蓬勃發展,如:第三方支付、
MPOS、O2O、海外金流等,企業究應跟進抑
或不跟進均陷入兩難。金融體系一向是提供穩
健、安全服務的模範生,處於這遍地烽火的時
刻與戰區,可能須儘速覓妥因應之道。而第三
方支付業者憑藉快速提供資訊服務攻城掠地,
戰無不勝,完全與小米雷軍的「天下武功,唯
快不破」不謀而合,致金融業備感威脅。能掌
握先機的人也只領先第一步,若擬持續保持領
先,其關鍵即在於 IT的應變速度。
Application Performance Monitoring/
Management (APM) 軟體事實上提供企業兩
方面的協助,其一是讓企業穩定持續提供服
務,並藉由觀察企業自訂之指標,瞭解現有業
務走向及未來趨勢發展,提供 IT或業務單位
預先因應之參考。另一方面則是後勤支援,備
有此項火力支援,繁複的問題查找節奏變得明
快,開發人員在工作崗位上更具生產力,也更
有成就感,妥善選擇一項 APM軟體或許是正
向改變的開始。
※參考文獻 /資料來源:1. 財金資訊季刊第 67期「網路監控之流量管理」。
2. 財金資訊季刊第 76期「電腦機房監控中心效能與管理」。
3. 財金資訊季刊第 83期「《Bank 3.0》及《Digital Bank》帶動金融創新」。
4. 資料庫效能監控系統的設計與實作,賴政賢,2012年,中華大學。
5. http://www.gartner.com/。6. http://devopssummit.ithome.com.tw/
index.html。7. h t t p : / / w w w . i t h o m e . c o m . t w /
node/75666。8. h t t p : / / w w w . i t h o m e . c o m . t w /
news/87144。