微服務及AI等新技術直擊APM商業核心
前言
和國內市場正處在培養、教育階段不同,海外APM市場相對成熟,APM廠商眾多,它們一般分為兩大陣營:
- 傳統 APM 廠商,包括 CA,IBM,HP,Riverbed,BMC,Oracle,Microsoft 等等。
- 新興 APM 廠商,主要是指三家:AppDynamics,Dynatrace 和 New Relic。
傳統APM廠商很多都有十幾年的技術積累,很多從基于中間件和大型機的產品發展過來,APM套裝產品已經非常穩定,在執行力和創新能力上會顯得慢一些;而新興的三家APM廠商每年會快速迭代自己的產品,繼續在APM領域深耕。本文分享一下筆者觀察到的海外2016年在APM領域的一些新變化。
從技術運維到商業核心業務
在過去的幾年,APM 廠商主要把重心放在 IT 和技術運維上,包括服務器端和客戶端的性能監控、可視化和系統優化等等,同時監控的指標和IT系統也緊密相關。在2016年,一個很顯著的特征是新興的 APM 廠商逐漸從技術運維向商業核心業務拓展。2015年底,New Relic 把分析云整合進網頁端、手機端和后端的各個產品線;在2016年11月,New Relic 又推出了 Digital Intelligence 平臺,旨在用云平臺幫助商業用戶更快的解決問題,提供更優的客戶體驗和帶來更好的商業價值。AppDynamics 在2015年12月更新了整個分析產品線,重點放在幫助企業在數據化的轉變階段成功;2016年11月 AppDynamics 更是直接推出了 Business iQ 平臺,從名字就不難看出其在商業相關的核心業務上發展的決心,該平臺將性能平臺和商業平臺結合到了一起,為數字化的企業提供實時的商業智能。
其實這個轉變是一個非常自然的過程。在過去的幾年各個 APM 廠商紛紛都將重心放在完善監控的產品線上,包括手機端(iOS,Android),瀏覽器端,服務器端(Java,.Net,Python,C++,PHP等多語言)、數據庫端(SQL、NoSQL)、網絡端(NPM)和基礎設施端(infrastructure)等等,試圖打造一個統一的性能監控平臺。在這個過程中,各廠商積累了大量的在不同產品線打點和提供代碼級監控的能力,并且實時處理、過濾和分析這些海量數據的技術。很自然的這些技術和數據不只在 IT 性能監控上可以利用,對于 IT 分析甚至整個商業業務都能發揮出極大的作用。所以,APM 里常說的健康狀況不僅僅局限于 IT 系統的健康狀況,甚至可以延伸至企業整個商業系統和生態環境的健康狀況。我們注意到這個轉變分為兩個階段,第一個階段是從單獨的 APM 到 IT 管理和分析(IOTM/ITOA)的過度,第二階段是利用 APM 的技術和數據到商業智能、分析的拓展。
舉個例子來說,除了 APM 常見的系統指標外,商業系統里常見的 KPI 和企業的財務、銷售、客服等指標都可以被監控,并實時提供企業運行的健康狀況。和企業息息相關的指標,例如、成單率、轉換率、廣告點擊率等等以及它們的相關數據都能被提取和分析,同時它們反映了該數字系統和企業的商業效率。另外一方面,系統性能指標和商業指標還能有效地結合在一起,兩者疊加提供更大的價值。比如一個電商網站,在完成訂單的網頁不能正常訪問或者速度很慢的情況下,應用性能指標可以有效的發現軟件系統和代碼中的具體問題,商業指標可以精確定量的讓商業決策者了解該事故具體給企業帶來了多大的影響,損失了多少訂單收入和降低了多少轉化率等等。通過應用性能和商業兩個不同的視角可以更全面、具體的了解分析數字軟件系統,同時也將 APM 產品推廣給了更多了受眾群,包括企業決策人等等。將 APM 從技術、IT運維拓展到商業核心業務,大大增強了 APM 產品的商業價值和應用面,使 APM 不僅僅限定于企業的運維團隊,這也不難理解為什么在2016年新興的 APM 廠商紛紛將重心放在了這個方向上。
商業分析、機器學習和人工智能
伴隨著 APM 業務線拓展的同時,2016年另外一個顯著的特點是對人工智能和機器學習的強調。我們首先從權威分析機構對 APM 的理解來看:
- Gartner 在 APM Magic Quadrant(魔力象限)里將 Application Analytics(應用分析)列為APM 最重要且必要的三個維度之一,并對機器學習、統計推理等方法有了顯示的要求。
- Gartner 在2016年 APM 核心能力(Critical Capabilities)報告中列舉了六大APM核心能力,其中一半和智能相關,包括商業分析(Business Analysis)、異常檢測(Anomaly Detection)和工作量分配(Workload Planning)。
- Forrester 在2016年第三季度的 APM 報告中,反復強調了隨著應用和技術的復雜度增加,智能自動化系統和機器學習的引入將大大降低錯誤和人工手動操作的錯誤。
人工智能在 APM 領域的興起主要因為以下三個變化:
- 人力成本的提高:隨著運維的專業化,運維人才和資深SRE往往變的更難獲得。同時,人員的增長往往很難跟上企業業務線的增長,這樣導致了團隊組建和維護的成本不可小視。
- 復雜度的提升:越來越多的企業IT系統和應用引用了多種技術體系和框架,一個軟件系統從以前的單機版發展到大集群、云服務的模式,隨著微服務的興起,這樣的趨勢越來越明顯。對這樣復雜的IT應用系統的管理、監控和修復的復雜度在近幾年大大增加。
- 數據量的增加:由于APM數據多數由機器自動生成,數據量不可避免的隨著企業的業務增長呈指數級的增長。在海量數據面前,傳統的手動監控、診斷和分析已逐漸不適用,企業迫切需要有(半)自動化的解決方案可以智能的解決大量手動的重復勞動,并能從海量數據里挖掘有價值的信息。
在 APM 領域應用機器學習要解決的一個先決條件是大數據的能力,其中包括打通各個產品線和數據源,存儲、提取和處理大規模數據的能力等等。目前各 APM 廠商在人工智能領域還處于嘗試和探索階段。主要利用人工智能和機器學習解決的用例包括以下方向:
- 商業智能(Business Intelligence)
- 異常檢測(Anomaly Detection)
- 歸因分析(Correlation & Root Cause Analysis)
- 智能警報(Intelligent Alerting)
- 未來預測(Forecasting & Prediction)
- 能力分配(Capacity Planning)
- 數據概要(Data Summarization)
- 自動化(Automation)
- 主動監控(Proactive Monitoring)
- 等等
私有部署 v.s SaaS
私有部署(on-prem)還是SaaS模式在2B的企業中是個永恒的話題。從新興的三家APM產商來看,他們的切入點也各有不同:
- AppDynamics 采用私有部署和 SaaS 都提供的方式,從構架和產品設計上就考慮了兩種模式并行的方式,同時保證私有部署和 SaaS 模式提供完全一致的功能,并允許客戶在兩種模式間切換。
- Dynatrace 則是最初只提供私有部署的方式,并從2014年開始內部孵化了一個完全基于云的 APM 產品,并命名為 Ruxit。在2016年一個新的變化是 Dynatrace 將 Ruxit 改名為 Dynatrace SaaS,一方面表明了其對云產品的重視程度,另外將其正名使 Ruxit 成為官方正統的 SaaS 解決方案,并使其享有母公司的品牌。但值得注意的是 Dynatrace SaaS 云產品和私有部署產品采用了不同的框架和技術,所以它們的功能并不完全一致,各有其突出的地方。
- 和前面兩家不同的地方是,New Relic 則 all in cloud,從建立公司之初到現在都是徹底的 SaaS 模式,所有客戶都必須在其云上。這樣的優勢是所有客戶使用同一套標準化的產品,客戶的維護和硬件成本都很低,同時能享用最新的功能。劣勢是潛在的安全因素,同時它不能支持對私有部署有強需求的大客戶,包括政府、銀行、保險公司等等。
不難看出,AppDynamics 和 Dynatrace 都有私有部署的模式,滿足那些對安全和隱私有需求的大客戶,同時它們提供 SaaS 的云服務應對逐漸增加的公有云服務需求,特別是 Dynatrace 今年正式將孵化的 SaaS 產品確立為主產品線,甚至在市場里首推其 SaaS 服務。另外一方面,New Relic 繼續 SaaS only的模式,因為其服務的客戶以中小企業為主(SMB),往往這些企業對私有部署的需求不強,但這在一定程度上限制了它們獲取部分大企業客戶的能力,這很自然延伸到我想說的下一個話題,是做中小微企業(SMB)還是大客戶(Enterprise)。
中小微企業 v.s 大客戶
傳統的APM廠商和部分新興 APM 廠商(AppDynamics,Dynatrace)都主要將重心放在大客戶上,盡管它們各自有面向中小企業的免費版產品。New Relic 則是另辟蹊徑一直將重心放在中小微企業上,從開發者切入,采用 land-and-expand 的銷售模式。2016年一個比較值得關注的特點是 New Relic 加大了在大客戶銷售上的投入,從其招聘信息不難看出其在各個區域開始增加大客戶的銷售團隊,并將客戶范圍鎖定在世界五百強。在今后的幾年,幾家 APM 產商的目標客戶將會有越來越多的重疊,唯有提升產品的質量才能立足于市場,這對廣大的 APM 用戶來說確實是件好事。
廣義的終端用戶
傳統上來說 APM 廠商重點關注的對象是服務器端的程序和軟件框架。近幾年隨著業務的拓展,各家分別將監控延伸到了前端,包括基于 iOS 和 Android 的 APM SDK 和基于瀏覽器和各種前端框架的 JS 腳本。在后端來看,數據庫端和硬件構架端的監控也融入到了 APM 體系。所以,終端用戶(End User)的定義不僅僅限于最初的應用程序,而是擴展到了廣義的終端用戶的概念。
從2016年起值得留意的是物聯網(IoT)的興起。越來越多的企業將連通互聯網的設備接入企業內部和外部,同時它們產生了大量分布式的數據流。對這些新型且復雜的數據的處理、管理和監控對 APM 產品提出了新的挑戰。在物聯網的角度來看,根據實時數據提供有效且可靠的解決方案是必不可少的,已經有越來越多的 APM 廠商在廣義的終端用戶,尤其是物聯網領域加大了投入。
分布式和微服務的興起
近幾年微服務(Micro-Service)的概念越來越深入人心,從前幾年僅僅在測試環境中使用逐漸過渡到現在越來越多的企業在真實的生產環境中應用微服務技術。各種容器技術的發展也使微服務變的更容易和更可靠。明顯能看出,企業的軟件系統不斷的復雜化和動態化促成了微服務的興起,同時 APM 廠商也迅速跟進。AppDynamics 于2016年8月正式推出 Micro-Services iQ 產品線,用智能引擎幫助企業用戶管理和監控復雜和大規模的微服務體系結構。New Relic 在2016年11月擴展了其監控功能至容器和微服務環境,幫助用戶發現微服務中的性能影響因素。
微服務和容器技術在2016年發展迅速,同時筆者認為會在2017年達到企業級的成熟狀態并且被更多客戶所接受且使用在實際生產環境中。微服務的廣泛應用將產生非常大量動態的實時數據,對APM收集和分析數據產生了極大挑戰,并迫使 APM 更依賴于智能的解決方案。另外,微服務的實例(instance)可以動態調整,其生命周期和傳統的軟件架構不同,對應用和系統架構的依賴關系都帶來了新的挑戰。
微服務帶來的另外一個特點是對分布式的 debugging,profiling 和追蹤的要求大大提高。導致性能下降和軟件事故的潛在可能原因很多,傳統的 APM 解決方案不能很好的確認和隔離出錯的根源,這在微服務的框架下顯得更加的突出。如何能追蹤信息鏈路和系統構架拓撲上導致性能問題并自動隔離成為了各 APM 廠商積極解決的問題之一。
來自:http://www.infoq.com/cn/articles/2016-review-apm-micros-ai