近兩年來,無論從國內還是到國外,市場出現一種APM批判的論調,甚至有“傳統APM已經落后”的個別聲音出現。

可放眼望去,國外主流APM廠商如:DataDog、 Dynatrace、New Relic等市值卻在不斷創著新高,甚至連Splunk這種大廠也在發力布局APM。國內賽道玩家同樣深受資本市場的熱捧,融資額屢屢逆市創新高,可以說當之無愧為二級市場的弄潮兒。

如此現實與輿論的一冰一火的反差,到底是意味著這個行業將面臨的變革,還是僅僅只是業內人無處安放的焦慮?

細究之下,持這種看衰論調的人大多是用的一個依據——傳統的APM將不再適應云原生時代。

我們不妨順著這種思路來看一下,是不是如此。

新架構時代的確來了

之前很長一段時間里,對大多數公司而言云計算基本都停留在云資源層,而應用仍舊是傳統的單體架構。那些設計成能上天入地的功能被辛勤的研發轉化為成千上萬行的代碼,并犧牲睡眠時間和頭發數量來保證進度,著實另人震撼。直到某一天,客戶要求加個小功能模塊時,我們有幸能夠看到又一次堪比登月的工程重構。

做為公司的PM曾經是有理想有抱負的,“我曾經跨過山和大海, 也穿過人山人海”是經歷過歲月滄桑留下的自信。但是面對這不知道換了多少架構和研發才完成的堆積成山的里三層外三層的代碼堆,他們也不得不感慨:“誰能來救救我?”。

故事里通常都是這樣,該拯救世界的英雄出馬了,于是它真的來了。

微服務的出現可以說順應了這個時代,它通過分布式的組件即容器來封裝不同的功能并使用API通信,并能夠在與之前面向服務的架構保持一致的前提下提供代碼更新的靈活性,這怎么聽著都像是拯救蒼生來了。

這一項項的提升效果,誰能保證不心動?

  • 改善可擴展性
  • 提高生產力
  • 更快的定位問題
  • 提升系統的可用性
  • 最終提供最佳的用戶體驗

可是習慣理想主義的我們經常會這樣,解決一些問題的同時又會制造另外一些問題出來。換成這個架構我該咋管理呀?

面對困難,我們其實早就習慣性焦慮

微服務很好很強大,但是這背后卻帶來了前所未有的復雜性。你所拆散成的微服務它們必須相互通信,而且還要保證將延遲降到最低,當管理一個由微服務組成的應用程序時,你實際上在管理的是一個相互關聯的組件網絡,還真是應了那句話“前門拒虎,后門進狼”

從人類歷史看來,我們不擅長解決未知問題,甚至對未知有種本能的恐懼。大到國與國之間的外交,小到每個人的婚姻工作,仿佛不焦慮就對不起這個時代一樣,尤其是這兩年的疫情更是給了我們焦慮制造了快速發展的空間。

于是乎我們需要找個借口以避免顯示自己解決問題能力上的不足,既然云原生是大趨勢,那么凡是和它八字不合的東西統統可以說落后了,這樣事情就變得簡單了是吧?

以APM為例,反正APM發展了這些年也有一些積累的問題,應該也不算冤枉它,何況還有一批新興的廠商也迫切的希望在這里做些文章呢。于是,幾大罪狀幾乎板上釘釘。

APM的罪狀:

  • 非全量采集帶來的追蹤數據遺漏,不具備基礎資源的監控指標及系統日志的獲取能力
  • 基于批處理的分析模式不滿足快速定位要求
  • 專有探針模式難滿足定制化采集需求,并且數據格式難統一
  • 定價模式限制了用戶業務增長所需的必要的擴容
  • 難以和其它監控工具聯動提升可觀測性

確實不錯,至少是有理有據,而且都說到點子上了。結果自然也是成功的把自己的難題推給了別人,于是焦慮神奇的轉移了。

只有直面才能解決問題

既然罪狀有了,APM圈總得有個應對辦法吧,否則豈不是欺我無人么。于是一波聰明人聚到一起,思想的碰撞有了結果,靈光一現就是它:可觀測性。

這個看似神秘的“可觀測性”其實并不復雜,它定義使用新的方法來提高對應用程序的性能的洞察能力,目前主要提供三類的數據:指標(Metrics)、追蹤(Traces)、日志(Logs)。

是不是很熟悉?沒錯,這不就是市面上多如牛毛的廠商一直在各自做的事情么?原來是眾人獨自闖江湖,現在需要變成有幫派了,不管是直覺還是幻覺都在告訴所有人,這對大家來說是件好事。

于是,APM就理所應當的需要修煉進化了,所謂“兵來將擋,水來土掩”也是屢試不爽的高招。

· 全量采集與數據整合
針對應用本身的性能監控,應提供全量Trace數據的采集能力,并能夠支持標準化指標體系,提供對基礎資源監控指標及日志的整合能力。

· 加強AI能力
通過機器學習/AI技術使用更高效的數據分析流程和算法模型來分析APM及其它數據的結果,以提供比人工監控更快的發現和解決問題的能力。

· 支持定制探針或兼容開源探針
客戶能夠對現有探針進行定制,或是客戶自己遵循開源協議(如:OpenTracing)開發的探針,甚至現有的開源平臺探針,如:SkyWalking、Pinpoint等。

· 針對微服務的新的定價方式
不再局限于探針數量的定制模式,提供更加靈活且高性價比的方案,如:按采集數據量計費、按采集時長計費等。

· 與企業現有IT系統的有效對接
對夠對接已有監控系統如:基礎資源監控、日志監控、網絡流量分析,實現統一的監控平臺。
與CMDB、ITSM、CMP系統對接的能力,提供從資源到應用的全維度管理視角的數據。
結合自動化工具,實現應用級的自動化運維能力。

總結起來其實就一句話:超越監控,向可觀測性邁進。

知而不行是未知,善始才能善終

莎翁說過“一千個人眼中有一千個哈姆雷特”,即便是在這個行業里沉浸多年的人也未必看得通透。放眼整個APM江湖:有的人換了賽道不再說自己是這行了,有的人拉了關系來證明自己骨子里的基因已經變了,還有的人直接從之前的賣藝不賣身改成賣身不賣藝了。不可謂不是風起云涌,暗藏危機。

所以,豪言壯語的口號顯得不那么重要了,重要的是能不能做到。“未有知而不行者,知而不行,只是未知”,陽明先生幾百年前就給出過答案。對于一個行業來說這是一個蛻變的過程,會有人抵觸改變,似乎改變總是伴隨著推倒重來,這的確不夠理性。

機遇和挑戰并存的才是理性的市場,歷史淘汰的始終都是不適應改變的人。改變本身并不可怕,可怕的是你根本不知道該怎么改變。“千招會不如一招絕,樣樣通等于樣樣松”,這在江湖里至少一直算是個至理名言,可以共勉。

謹以此文獻給那些在自己行業里一直專注的人,因為他們始終相信“堅持初心,方得始終”。無論我們說什么,APM市場依舊在那里,或衰或榮并不由個人意愿決定。

  • 微服務治理平臺是一種用于管理和監控微服務架構的平臺,擁有一系列功能,可以提供更高的靈活性、可擴展性和可維護性。其主要作用就行幫助開發人員更好地管理和監控微服務,使其更加穩定和可靠。那么,常見的微服務治理平臺解決方案?有哪些呢?

    2023-09-18

  • java有著非常多的優勢,例如:可跨平臺、穩定性高、安全等都是它具有的優勢,這些優勢也深受廣大java程序愛好者的喜歡,但java應用程序也有它不好的地方,例如:大量數據處理等,都影響應用程序的性能和穩定性,因此,apm監控java應用對于我們來說是非常重要的。

    2023-09-15

  • 一體化運維技術是指將企業、政府或機構內部的各類系統、軟件和設備整合到一個統一平臺上,通過對這些數據進行收集、分析和處理,實現對這些系統、軟件和設備的全方面管控。北京基調網絡指出,一體化運維技術可以幫助企業、政府和機構提高系統運行效率、降低維護成本、優化服務水平,因此其需求日益增長。

    2023-04-21