前端業務越來越豐富,底層架構越來越複雜,計算資源越來越多元化,單一的APM産品如何支撐建構雲上應用的完整監控體系,保障平台的穩定性?近期在深圳舉行的阿裡雲APM城市技術行活動給出了答案。
近日,主題為“應用全鍊路性能和診斷最佳實踐”的阿裡雲APM城市技術行深圳站的活動在空體新媒體實驗室舉辦,集結了應用高可用服務AHAS、性能監控ARMS和性能測試PTS的阿裡雲全域APM解決方案集中亮相。該活動吸引了近300位開發者和使用者,大家共同交流雲時代應用架構下在業務的高可用、全鍊路監控和雲壓測等方面的實踐和探索。

“阿裡巴巴中間件”公衆号背景回複“APM深圳行”,擷取部分嘉賓分享PPT
APM 全稱是Application Performance Management, 指的是對應用程式的性能和可用性的監控管理,是近5年來伴随着雲技術、微服務架構發展起來的一個新興監控領域,包括手機公共網絡端的站點監控、App端監控和頁面端監控,使用者網絡端的應用服務程式、容器層的主機和作業系統層的監控,以及PaaS/SaaS端的服務監控,包括對象存儲、緩存、資料庫和消息等。阿裡雲作為國内最大的雲計算廠商,覆寫了APM領域的全系列監控産品,并配備了先進的3D監控大屏,極大的降低了使用者的運維複雜度。本文将為您全面回顧此次活動分享中的精彩内容。
從應用性能管理到應用高可用
西傑,阿裡巴巴中間件産品專家
多年來從事應用性能管理和應用高可用性保障方向的工作,目前負責應用高可用服務的産品建構和使用者體驗優化。
如今,開發并上線一款應用十分友善。因為雲計算提供了從最基礎的計算資源如伺服器網絡、資料庫服務、中間件PaaS平台到各種應用支撐的雲管理服務,同時開源社群的迅猛發展也提供了從資料庫、緩存到應用全生命流程中各種必須的元件,是以越來越多的應用開發者可以把精力放在業務創新上。
雖然從想法到實作的路徑越來越短,但是應用建構完後,如何保障應用的高可用面将面臨兩個新的挑戰:
挑戰一:應用所依賴的大量的IaaS、PaaS、Cloud API和開源元件增加了應用的複雜度
阿裡雲應用高可用服務AHAS,針對雲原生應用架構複雜、變化快的特點,推出了架構感覺的功能子產品,通過采集和分析作業系統及第三方标準接口,捕捉程序級的調用關系,并使用特征庫算法識别程序所使用的技術元件,最後在伺服器、容器和程序這三個次元上以可視化的方式展示雲端的應用架構。
實作步驟非常簡單,在控制台進行RAM授權後,安裝探針便可實作架構感覺的功能,若進一步安裝Java agent(可選),還可以對應用架構中的Java應用進行動态增強,提供接口級别的性能名額和限流降級能力。
挑戰二:應用被拆分為多個微服務時帶來的服務之間的網絡,服務強弱依賴,服務雪崩的新問題
此類新問題來源複雜、定位困難,通常需要結合應用高可用測評和防護兩方面一同來應對。阿裡雲應用高可用服務AHAS,支援根據架構感覺子產品捕捉到的架構資料主動制造故障,檢驗應用系統及其各元件在故障下的可用性表現,進而驗證應用系統的高可用能力,提前暴露故障隐患,以便針對性地應對風險。
同時,AHAS提供限流和降級的功能,通過實時監控架構的QPS(Queries per Second,每秒查詢數)、線程數、響應時間、異常數等名額,并有選擇地截斷對這些架構的通路,進而保護應用的可用性。此外,利用 AHAS 提供的 SDK,您還可以采取更細粒度的代碼級流控降級防護措施。
阿裡分布式應用的全鍊路監控解決之道
伏羿,阿裡巴巴中間件産品專家
阿裡巴巴中間件雲産品ARMS及ACM負責人,在企業級網際網路架構和産品方面深耕多年,在微服務性能優化方面有着豐富的經驗。
随着越來越多的企業開始将服務往公共雲上遷移,對于雲上應用性能監控的需求也越來越多。為了保證雲上業務運作穩定,通常需要通過應用監控、前端監控和自定義監控等次元來建構立體化的監控體系。
應用監控
阿裡雲性能監控ARMS,基于分布式調用追蹤的能力,結合本地調用堆棧、慢調用線程剖析和全息排查功能,解決了新業務上線時的bug頻發問題、壓力測試過程中的頻繁出現滿調用的問題和業務日常支援過程中各類問題排查的需求。同時,提供了針對各類PaaS接口的分析診斷,讓各類PaaS內建無後顧之憂,并支援對應用性能監控的統計。
無需修改任何代碼,隻需要在 Java 應用的啟動腳本中挂載一個探針,就可以對Java 應用實作全方位監控。
前端監控:
使用者通路我們的業務時,整個通路過程大緻可以分為三個階段:頁面生産時(Server 端狀态)、頁面加載時和頁面運作。業務監控并無法解決使用者通路頁面時,因營運商網絡、使用者所使用的作業系統和浏覽器導緻的使用者體驗問題,此時,前端監控應運而生。
前端監控關注頁面性能、頁面穩定性和服務調用成功率。阿裡雲ARMS前端監控功能從業務視角出發,統計對業務影響最大的性能名額,并從技術視角出發,挖掘出哪個環節導緻性能慢,圍繞性能、地理和終端分布,來監控前端的性能問題。頁面穩定性則對頁面出錯率排名和詳情,以及錯誤聚類排行和詳情多JS Error進行多元度管理。此外,阿裡雲ARMS從前端到後端進行全鍊路追蹤,以提高服務調用率。
前不久,我們推出了ARMS的兩大新功能,3D 拓撲監控大圖,以及将前端的Session ID和後端的API進行關聯的功能,極大的提高了使用者的監控體驗,并提升了複雜監控問題的定位和診斷效率。此外,阿裡雲ARMS價格為同類競品價格不到十分之一,可有效降低使用者在建構雲上立體式監控體系的成本。
阿裡雲進階體驗設計師舒石示範3D大屏
PTS在雲壓測上的探索和實踐
牛兔,阿裡巴巴中間件産品經理
負責釘釘、手淘等業務的高可用、穩定性工作,以及手機淘寶的内容不PaaS平台的産品設計和落地。目前主要負責阿裡雲性能測試PTS的産品設計和營運工作。
阿裡雲性能測試PTS,孵化自阿裡全鍊路壓測平台。有别于傳統工具的繁複,PTS以網際網路化的互動為基礎,同時在産品的功能設計上更面向分布式和雲化,适合更多使用者的技術背景,同時更适合目前的主流技術架構,與阿裡雲生态緊密結合提供監控、定位等更多的價值。
以PTS+ARMS的經典組合為例,解決了原本在性能容量評估、性能瓶頸診斷和應用錯誤診斷方面的瓶頸。
性能容量評估
根據木桶原理,容量最小的系統也就是木桶最短的闆決定了站點的能力。使用者需要做的是識别短闆,通過調整長短闆之間的機器配比達到拉平系統水位的目的,那麼即使是同樣數量的機器也可以提供更大的業務吞吐量,甚至不用額外擴容。
通過PTS內建雲監控和ARMS監控,不僅可以準确判斷特定配置下的系統性能容量瓶頸,同時還能定位性能基線的配置短闆,如系統性能、資料庫瓶頸、代碼問題等。
性能瓶頸診斷
除了調整容量配比,PTS +ARMS還可以通過探測和識别系統瓶頸點,以提高站點性能的方式,進一步提升同樣機器數量情況下的整體容量水位。
借助PTS對cookie的友好支援,整個鍊路都可以通過PTS配置出對應的壓力測試流量,并借助ARMS進行監控,進而觀察、分析性能瓶頸。
此外,使用者還可以通過PTS發現接口調用性能瓶頸拐點,一鍵跳轉到ARMS中,并基于具體線程刨息,發現具體代碼棧内的性能瓶頸拐點,進而為優化代碼性能,提供代碼棧級别的證據。
應用錯誤診斷
診斷應用錯誤是企業級網際網路應用正式上線前的另一大場景。這類錯誤雖然一般不會直接影響調用耗時進而造成性能瓶頸,但是仍然會由于業務錯誤引發糟糕的使用者體驗。ARMS的經典組合,可以在壓力增加時,有效發現以上的各類錯誤。
此外,基于PTS的施壓側監控和多元度監控特性,還可以通過ARMS內建關聯到具體的錯誤異常詳情,定位到具體錯誤抛出的詳細代碼,進而以指數級别提高壓測場景下的接口錯誤診斷效率。
據悉,深圳是阿裡雲APM城市技術行繼北京站之後的第二站,未來還将在上海、成都、杭州等多個城市舉辦。
歡迎加入企業級網際網路架構交流釘釘群,群号:21704851
-> 歡迎關注“阿裡巴巴中間件”,加入中間件開發者群,與技術同行。