聊聊對APM的理解

本文主要從如下幾個列舉對APM的認識:數據庫

-什麼是APM工具瀏覽器

-爲何要用APM工具,APM工具的價值在哪裏;服務器

-什麼樣的APM工具適合於傳統金融業;網絡

-如何用好APM工具;架構

   -精準告警併發

   -深刻分析運維

   -可視化展現工具

-如何與傳統監控融合性能

-APM工具與大數據之間的探討學習

:文中APM的一些解釋來自互聯網運維大牛的乾貨,比較零散,不一一列舉出處。

 

 

一、什麼是APM工具,它的分類有哪些

APM,應用性能管理,經過對關鍵業務系統進行監測、告警與優化,不斷改善業務可靠性與穩定性,爲客戶提供良好的服務,提高核心競爭力。

最先的APM主要是網絡爲中心,對基礎設備的性能數據進行收集與加工,並提供給企業客戶,至關於提供一種過後數據的簡單處理與告警監控功能。隨着APM市場的發展,目前的APM工具在性能監控的基礎上有了進化,更加關注於運維數據分析,好比客戶端到端的體驗狀況怎麼樣?性能瓶頸在哪裏?並且當前的APM工具以數據分析爲中間實現了更好的可視化,更快更精準預警,更強的問題關聯定位等特性。

 

二、爲何要用APM工具,APM工具的價值在哪裏

咱們運維人員常常會遇到這樣一些場景:

-客戶投訴系統慢了或沒法訪問;

-看資源、查日誌、查數據庫;

-找開發、找客服、找業務、找客戶問狀況;

-偶發性?沒法定位或定位不許?應急方案?重啓試試?

……

上述場景在運維當中很廣泛,遇到上面的困難後每每會完善監控提升故障告警及時率,經過額外代碼開發量增長各類各樣的日誌格式,完善手冊、培訓、應急演練等等方式去提升故障應急處理能力。

APM的出現能夠改善上面提到的繁瑣的運維工做,提升應用運行質量:

於IT管理層:用戶體驗可量化,並創建以用戶體驗的考覈體系,並與同業的性能體驗比較能夠發現自身差距並進行優化,提高客戶滿意度;

於IT運維人員:實現了以應用運行狀況分析爲核心的運維,提升運維價值,對運維數據可視化,更快發現、更準肯定位、更精準的作出應急決策;

於業務:掌握用戶體驗關鍵業務的關係,提升業務決策。

 

 

三、什麼樣的APM工具適合於傳統金融業

根據應用性能監控的目標不一樣,APM工具主要能夠分爲2大類,一類是客戶端、一類是服務端:


 

如下是聽雲技術副總裁吳靜濤對上述幾類APM工做的定義:

1)客戶端類

主動模擬撥測:主動式監控,客戶端監控。主要經過覆蓋全面的監測網絡,部署自動化的監測工具。

頁面插入代碼:被動式、客戶端監控。主要經過在客戶端瀏覽器插入JavaScript代碼以採集最終用戶的性能體驗,W3C推出了Web性能API標準,如今已經能夠作大很是細粒度的監控。

客戶端插件採集:由於移動端應用有多種方式,原生應用、Hybrid App以及Web App,所以監控的方式也多樣化,有經過手機瀏覽器自動撥測、嵌入SDK、HTML5頁面內插件、JSBridge等方式。

2)服務端類

服務端旁路:部署定位後經過SPAN,TAP旁路應用訪問流量進行Sniffer,解析網絡報文後再進行各種TCP協議分析和性能採集(NPM)。它的優勢是非侵入式,對生產影響最小,缺點是難以適配多種協議,沒法定位到問題代碼等。

應用服務器端代理:經過在應用代碼中埋點來實現性能監控BCI(ByteCode Instrumentation)技術。優勢是可實現代碼級的監控,缺點是它是侵入式的,對性能有輕微影響。

 

對於傳統的金融企業,在系統性能分析與監控上咱們常常會面臨如下困難:

-規模愈來愈大,運維成本愈來愈大:咱們部署了大量應用系統,這些應用系統的架構每每是100個系統就有100個架構,涉及的開發團隊各異,咱們但願有一些更方便的方式進行系統性能分析與監控,好比不須要應用改造、有簡單的可視化配置、不影響現有系統的性能等;

-咱們有監控工具實現應用可用性的監控,但對於應用性能咱們運維能力很弱:咱們部署了大量從基礎設施、服務器硬件、系統服務、應用服務可用性的監控,可是對於應用在數據中心內運行獲得底快不快並不知情,更不用說客戶體驗方面的性能問題,咱們但願在應用性能監控方面能夠更快發現、更接近客戶體驗;

-運維的量在增長、人員在減小,咱們須要一個更加自動化的性能分析能力:以應用性能告警爲例,它應該包括從數據採集、分析、告警、輔助定位、應急等能力,這就須要咱們在應用性能分析過程當中須要有告警動態基限自動學習能力、自動告警、高度可視化、渠道節點關聯的能力,以此來提升運維人員的性能分析能力;

針對上述的問題,再看看上面提到的5個APM工具的比較:

-主動模擬撥測:適合於網絡問題的帶來的問題,是採用樣本監控分析的方式,更適合互聯網應用,是主動監控方式。

-頁面插入代碼:侵入式,須要在瀏覽器上嵌入代碼,是被動監控方式。

-客戶端插件採集:侵入式(須要開發部門配合),需在頁面代碼中插入插件,能夠實現代碼級的監控,效果依賴開發部門的支持。

-應用服務器端代理:侵入式,須要開發部門配合,能夠實現代碼級的監控,效果依賴開發部門的支持。

-服務端旁路:非侵入式,運維部門即可以推廣使用,能得到服務及應用、交易級別的監控;

 

綜上,基於傳統金融企業現存系統多,IT運維開發能力相對弱的現狀,服務端旁路的APM工具更適合優先引入解決企業應用系統的性能問題。

 

下面的議題主要從服務端旁路APM工具進行分析.

 

四、如何用好APM工具

在IT企業內部,咱們會發現有一些好的工具由於沒有用好而被廢棄,有些多是由於工具自己不知足預期需求,有些多是由於人員變更;有些則可能推廣使用慢致使技術過期;對於APM工具也一樣會有這樣的問題,那麼應該如何將APM工具使用好呢?

在講如何使用好APM工具前,我先簡單講講從IT運維向IT運營分析的轉型,即經過監控的分析,更快、更準確的發現問題;經過應用性能分析提早發現潛在問題,並提供可視化的分析工具下降故障定位時間、提高用戶體驗;經過大數據平臺提供更深刻的運維、業務數據分析,指導運維、業務的決策。基於IT運營分析的定位,APM工具的使用目標能夠考慮如下:

-整合一個可視化的應用性能面板,方便運維技術人員、運維管理人員、應用運營人員在任意時間看到應用性能狀況,包括:應用服務是否可用;應用交易量、成功率等維度指標是否正常;應用是否變慢等等;同時,應用性能面板還能監控到服務節點到節點之間的運行性能。

-以應用系統爲節點,將應用系統的運行狀況是否健康經過綜合的分析抽象出來,而不須要運維人員經過複雜的方式整合分析某個應用系統性能是否正常;

-對關鍵的渠道類應用系統的性能問題進行關聯配置,提供更快的告警,並提供問題定位的輔助手段,提升故障應急解決效率,實時的知道甚至預測什麼時候可能出現問題,在用戶尚未察覺前解決問題。若是作得更好的話,APM還能提供故障自愈的功能;

-提供多維、自定義的應用系統運行性能報表與實時交易級的數據監控,提供給不一樣層面的人員;

-爲大數據分析提供數據,不只從運維角度看數據,還要從業務角度看數據,經過APM工具將業務數據、性能信息進行整合,提供大數據平臺分析,進一步挖掘指導業務的數據;

 

對於上述的目標,建議採用如下方式用好工具:

1)精準告警

(1)應用可用性:以應用服務爲節點,判斷應用服務是否崩潰,實現了交易服務級的監控告警;

(2)應用間交易錯誤:對業務接口的致命異常報錯信息,以及異常總體信息進行彙總分析並進行告警;

(3)網絡請求響應時間:至少實現數據中心內部服務節點間的網絡請求響應耗時分析,對出現短板的節點性能問題進行告警;

(4)自動故障定位:經過對交易流的數據進行採集並關聯,自動判斷觸發告警的根源節點,並告警問題緣由;

(5)利用好動態告警閥值:根據歷史數據快速學習告警閥值,自動調整告警閥值在不一樣時間、不一樣接收者的設置;

(6)複合告警指標:設置更爲符合業務特色的告警指標;

   2)深刻分析

(1)一筆業務從開始到結束將通過多個節點,好比一筆秒殺業務緩慢,多是秒殺系統應用、數據庫、中間件的性能問題,也多是關聯繫統的性能問題,也多是資源、帶寬、運營商的問題。用好APM,就要將重要的渠道系統進行完整的配置,實現端到端交易追蹤,反映每一筆業務在各自應用服務節點中實際通過的路徑,各路徑所消耗時間、處理結果,運維人員能夠按需找到交易的處理狀況進而判斷交易問題出如今什麼地方;

(2)完成重要交易的配置整合後,須要結合分析策略,以及前面提到的精準告警結合起來,實現自動告警、問題定位的分析;

   3)可視化展現

 (1)工具的功能再強大,若是難上手的話將很容易被拋棄,因此須要針對不一樣的人員提供多維度的可視化信息展現,並溶合在平常運維工做過程當中;

(2)可視化的信息展現,包括報警信息的查看與處理、實時交易檢索與總體分析的報告、以及工具的後臺簡易的配置功能。

 

五、如何與傳統監控融合

APM不是萬能的。

傳統金融企業內部確定會有不少關於監控的工具,這些工具經過必定時間的積累,爲企業各類應用系統定製了監控指標及自動化監控解決方案,構成了企業IT運行狀況最重要的一面鏡子。

而APM工具每每是採用一種通用的方案進行開發,它更適用於一些監控、分析方案比較通用的運維場景,同時傳統監控工具在服務器、硬件、系統軟件等方面的數據採集也更優於APM工具。

因此APM工具是現有企業裏監控系統的一個補充,補充監控系統在應用業務級、客戶體驗、故障定位、性能運行狀況等方面的監控。另外,APM工具的成本也推薦主要用於重要的渠道類應用系統。

 

六、與大數據之間的探討

服務端旁路的APM工具中,每每能夠獲取如下信息:

-交易報文類的信息:返回碼、交易碼、操做碼、成功率、渠道標識、交易響應率、交易筆數、響應時間、流水號、金融交易裏的金額、帳戶等關鍵數據

-網絡通信信息:丟包、TCP重傳、帶寬、鏈接成功率

-系統軟件信息:數據庫、中間件使用響應、併發、鏈接數狀況

從上述獲取的數據來看,APM己經初步具有了向大數據提供數據來源的基礎,APM採集的這類數據相比應用日誌的數據有如下優點:

-採集數據的同時不影響應用系統性能

-採集的數據格式更爲統一規範

-採集的數據更快

這些數據能夠梳理應用架構、服務訪問關係、應用交易指標變化、交易追蹤等數據分析,將有助於IT運維向IT運營分析轉型。

但若是要讓APM工具爲大數據提供更多業務級的數據,以此爲業務分析支撐、風險控制等提供幫助,還須要APM工具更進一步,好比爲應用系統提供一些簡易的服務,讓應用系統更爲簡易的提供交易級的數據。

相關文章
相關標籤/搜索