天天看點

阿裡雲 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 解決方案地圖

誠邀您關注阿裡中間件微信公衆号!

我們懂您的胃口:定期分享最前沿技術幹貨!

我們懂您的喜好:大量精品大會、沙龍、比賽為您量身定做!

我們懂您的情調:海量驚喜獎品随時放送!

你還不來加入我們嗎?就現在!最in的程式圈子,由您創造!