阿里雲 APM 解決方案地圖

摘要: PM是近5年來伴隨著雲技術、微服務架構發展起來的一個新興監控領域。在國內外,無論是雲廠商(如AWS, Azure,等)還是獨立的公司(Dynatrace, Appdynamics,等),都有著非常優秀的APM產品。

APM 概述

APM 全稱是 Application Performance Management, 是指對應用程序的性能和可用性的監控管理。狹義上的APM單指應用程序的監控,如應用的各接口性能和錯誤監控,分佈式調用鏈路跟蹤,以及其他各類用於診斷(內存,線程等)的監控信息,等;廣義上的APM, 除了應用層的監控意外,還包括手機App端監控,頁面端監控,容器、服務器監控,以及其他平臺組件如中間件容器,數據庫等層面的監控。

APM是近5年來伴隨著雲技術、微服務架構發展起來的一個新興監控領域。在國內外,無論是雲廠商(如AWS, Azure,等)還是獨立的公司(Dynatrace, Appdynamics,等),都有著非常優秀的APM產品。

阿里雲作為國內最大,世界排名前三的雲廠商,其在APM領域也有很多優秀的產品提供,整個產品家族也比較全面。本文就以APM領域為例,給大家介紹一下阿里雲在該領域的各個產品。

雲時代應用架構簡介

雲時代典型的應用,如運行在阿里雲的應用,其架構如下圖所示。

阿里雲 APM 解決方案地圖

其中:

  • 應用一般對外提供兩種客戶端訪問模式:移動端App訪問,或基於瀏覽器的頁面訪問。客戶端的監控在APM領域又被成為UEM(User Experience Management),即用戶體驗管理。
  • 除了客戶端訪問意外,用戶一般還會部署相應的業務探針,通過API來直接誒測試服務性能或進行健康檢測。
  • 對客戶端直接提供服務的為後端應用服務程序。基於微服務的應用一般多個應用,分別運行在多個節點之上,應用和應用之間會有比較複雜的調用依賴關係。
  • 後端應用一般運行在容器裡,或者直接運行在(虛擬)操作系統之上,取決於用戶是否進一步使用容器技術來優化開發和運維。
  • 應用還會直接依賴各類的PaaS/SaaS雲服務,如OSS,OTS, MQ, RDS等,對應用提供響應平臺服務,簡化應用的運維成本。

阿里雲上APM領域各個產品最終目標是為了對以上各個組件進行有效監控。以下介紹對於各個組件,阿里雲提供的相應的APM產品。

阿里雲的APM解決方案地圖

基於今天的雲上的應用架構,阿里雲的APM解決方案地圖如下所示。

阿里雲 APM 解決方案地圖

其中:

  • PC/移動端頁面監控:該部分組件由業務實時監控的前端監控子產品來完成監控。前端監控原理是通過頁面的JS埋點,從頁面的調用次數和響應時間,API的調用時間和錯誤返回,以及頁面的JS錯誤監控三個方面來監控頁面的健康狀態。不僅如此,前端監控亦支持按維度來監控頁面狀態,包括地域維度,網絡運營商維度,瀏覽器種類和版本維度,等。
  • 移動端APP監控:由移動數據分析來完成監控。移動數據分析為開發者提供一站式數據化運營服務,包括通用的多維度用戶行為分析、數據開放並支持自定義分析、數據無縫對接其他數據應用產品,可幫助移動開發者實現基於大數據技術的精細化運營、提升產品質量和體驗、增強用戶黏性。
  • 關於探針/壓測部分:一般分為兩個部分。
  • 探針:通過外部的探針來撥測頁面的監控狀態。該部分可由雲監控的站點監控來實現。站點監控定位於互聯網網絡探測的監控產品,用於通過遍佈全國的互聯網終端節點,發送模擬真實用戶訪問的探測請求,監控全國各省市運營商網絡終端用戶到業務服務站點的訪問情況。
  • 壓測:通過模擬外部真實網絡環境下的用戶訪問,來對線上系統進行壓力測試。該部分功能可用性能測試來實現。該產品脫胎於基於服務阿里全生態多達4年以上的單鏈路/全鏈路壓測平臺,通過在邊緣計算節點部署壓測流量來模擬用戶真實流量。
  • 應用服務程序:由業務實時監控的應用監控來完成監控。應用監控前身是阿里的分佈式跟蹤系統-鷹眼。其原理是通過應用程序的探針埋點,對應用程序進行接口性能,鏈路追蹤,以及錯誤診斷三個方面監控。其中,應用監控通過探針,亦可捕獲容器和操作系統的性能和狀態,因此也可用於容器和操作系統的性能監控。
  • 操作系統:主要由雲監控的主機監控來實現。雲監控主機監控服務通過在服務器上安裝插件,為用戶提供服務器的系統監控服務。用戶可以使用主機監控服務進行服務器資源使用情況的查詢和排查故障時的監控數據查詢。服務器無論是阿里雲服務器 ECS,還是其他雲廠商的服務器或物理機,都可以使用主機監控服務。
  • 其他阿里雲PaaS、SaaS服務:包括RDS, OSS, MQ, 緩存,等。該類產品本身都會自帶監控,但是用戶亦可從業務實時監控和雲監控兩個產品作為監控入口進行監控。兩個產品的側重點各有不同,其中:
  • 業務實時監控主要從應用側的客戶端埋點著手來獲取外部服務數據,其獲取的性能數據為應用測真實狀態,服務調用時間不僅包含外部服務的服務端響應時間,還包括中間的網絡延遲等。
  • 雲監控主要從阿里雲服務側的性能數據打通來獲取外部服務數據,其獲取的性能數據為外部服務的服務端響應時間,其中並不包括中間的網絡延時,雖不能真實反應應用側的狀態,但可用於有效排除服務端的潛在問題。

關於業務監控

關於APM領域的一些場景,還有一件事情,就是業務層面的監控,簡稱業務監控。為什麼需要業務監控?

  1. 很多時候局部應用故障並不能直接反應對業務的影響,如某個重要級別的某些接口宕機,由於應用的一些熔斷或者緩存機制,可能並不會對業務收入(交易,下單,等)造成直接大的影響。因此,IT系統監控和故障定級往往並不依賴於單個系統故障,而需要以業務指標為準。
  2. 業務層面的監控更能輔助IT系統反過來進行優化業務。如針對某個IT電商的運行分析,通過業務監控分析賣家的地域、運營商分佈,以及賣家的動態庫存,暢銷類目實時統計,更能反過來幫助業務進行實時數據決策。

針對以上,阿里雲的幾款APM產品其實都不同程度支持業務層面的監控。其中:

  • 業務實時監控的自定義監控功能可通過用戶的應用日誌數據,頁面數據推送,甚至消息隊列等不同的數據源,通過實時計算預聚合將不同維度的數據存放在時序數據庫中,併為用戶提供交互大盤動態可視化和報警策略,已知的用戶場景包括航旅,電商,車聯網的各類業務。
  • 雲監控的日誌監控功能可通過對用戶的日誌服務中的日誌內容做統計,為用戶繪製出各類業務大盤。
  • 移動數據分析的業務數據分析可根據移動端的上報日誌統計移動端業務使用情況。

阿里雲APM解決方案地圖

以下表格對阿里雲APM解決方案進行總結。

阿里雲 APM 解決方案地圖


分享到:


相關文章: