愛生活,愛編碼,微信搜一搜【架構技術專欄】關注這個喜歡分享的地方。
本文 架構技術專欄 已收錄,有各類視頻、資料以及技術文章。
APM (Application Performance Management) 即應用性能管理(應用性能監控)git
APM主要是針對企業 關鍵業務的IT應用性能和用戶體驗的監測、優化,提升企業IT應用的可靠性和質量。
旨在確保最終用戶得到高質量的體驗,下降IT總擁有成本(TCO)數據庫
TCO (Total Cost of Ownership ),即總擁有成本,包括產品採購到後期使用、維護的成本。 這是一種公司常常採用的技術評價標準。後端
目前市面的系統基本都是參考 Google 的 Dapper(大規模分佈式系統的跟蹤系統)來作的。
跟蹤業務請求的處理過程,完成對應用系統在先後端處理、服務端調用的性能消耗跟蹤,提供可視化的界面來展現對跟蹤數據的分析。
經過匯聚業務系統各處理環節的實時數據,分析業務系統各事務處理的交易路徑和處理時間,實現對應用的全鏈路性能監測。瀏覽器
APM工具與傳統的性能監控工具的區別在於,不只僅提供一些零散的資源監控點和指標,其主要關注在系統內部執行、系統間調用的性能瓶頸分析,這樣更有利於定位到問題的具體緣由。
APM致力於檢測和診斷應用性能問題,從而能提供應用預期的服務水平。微信
目前APM的發展主要經歷了前面的三個階段:
第一階段:以網絡監控基礎設施爲主,主要監控主機 的CPU 使用率、I/O、內存資源、網速等,主要以各種網絡管理系統(NMS)和各類系統監控工具爲表明。網絡
第二階段:以監控各類基礎組件爲主,隨着互聯網的快速發展,爲了下降應用開發難度,各類基礎組件(如數據庫、中間件等)開始大量涌現,因此這個時期應用性能管理主要是監控和管理各類基礎組件的性能。架構
第三階段:以監控應用自己的性能爲主, IT 運維管理的複雜度開始出現爆炸性的增加,應用性能管理的重點也開始聚焦於應用自己的性能與管理上。app
第四節階段屬於正在發展的階段:
雲計算方興未艾,而DevOps以及微服務的興起對傳統APM產生了很大的衝擊,傳統廠商也在作一些革新,也作一些微服務方面的嘗試和雲計算方面的嘗試。
隨着Machine Learning、AI的技術的興起,對定位故障、定位問題,也會起到一些幫助,基於大數據的分析的手段也會有一些幫助,目前市場上正在初步嘗試階段。運維
2016年Gartner對APM的定義分爲三個維度機器學習
DevOps(Development和Operations的組合詞)是一種重視「軟件開發人員(Dev)」和「IT運維技術人員(Ops)」之間溝通合做的文化、運動或慣例。
DevOps能夠簡潔的理解爲「開發團隊與運營團隊之間更具協做性、更高效的關係」。
是兩個相關趨勢碰撞中出現的新術語
更多信息見:https://zh.wikipedia.org/wiki...
在應用服務各節點相互調用的時候,從中記錄並傳遞一個應用級別的標記,這個標記能夠用來關聯各個服務節點之間的關係。
好比兩個應用服務節點之間使用 HTTP 做爲傳輸協議的話,那麼這些標記就會被加入到 HTTP 頭中。
可見如何傳遞這些標記是與應用服務節點之間使用的通信協議有關的,經常使用的協議就相對容易加入這些內容,一些按需定製的可能就相對困難些,這一點也直接決定了實現分佈式追蹤系統的難度。
隨着公司業務的與日俱增,各個系統也愈來愈複雜,服務間的調用,服務的依賴,以及分析服務的性能問題也越棘手,所以引入服務追蹤系統尤其重要。
現有的APM,基本都是參考Google的Dapper的體系來作的。經過跟蹤請求的處理過程,來對應用系統在先後端處理、服務端調用的性能消耗進行跟蹤(每一個請求的完整調用鏈路,收集調用鏈路上每一個服務的性能數據),方便工程師可以快速定位問題。
總的來講,一個優秀的APM系統應該知足如下五個條件
愛生活,愛編碼,微信搜一搜【架構技術專欄】關注這個喜歡分享的地方。
本文 架構技術專欄 已收錄,有各類視頻、資料以及技術文章。