由“監(jiān)控”發(fā)展而來APM,已經(jīng)演變成跨越許多不同的計算平臺上的管理應(yīng)用程序性能的概念。高效的開發(fā)運維能夠?qū)崿F(xiàn)部署更快速、出現(xiàn)問題更少,正因如此,Google、Amazon、Netflix、Facebook以及無數(shù)初創(chuàng)公司熱衷此道,而性能監(jiān)測更是其關(guān)鍵之一。應(yīng)用性能管理工具可以在整個應(yīng)用開發(fā)生命周期針對性能提供深入分析,還能促進開發(fā)、測試與運維部門之間的協(xié)作,跟蹤自動化測試的性能并進行分析,識別異常和性能問題。
圖1 Dynatrace大中華區(qū)技術(shù)總監(jiān)Wilson Lai
Wilson Lai(如圖1所示)是Dynatrace的大中華區(qū)技術(shù)總監(jiān),從業(yè)二十余年以來,經(jīng)歷了從桌面到移動端的演變,以及從開發(fā)、測試到運維完整的應(yīng)用開發(fā)生命周期。在高效開發(fā)運維興起的今天,Wilson是如何看待APM?通過數(shù)字化性能管理手段了解每一個用戶的需求和感受,并作出分析決策,幫助企業(yè)提升用戶體驗,從而實現(xiàn)應(yīng)對移動互聯(lián)網(wǎng)下的機遇與挑戰(zhàn),CSDN對他進行了專訪。
CSDN:請簡單介紹一下您以及您所在的APM領(lǐng)域。
Wilson Lai:大家好,我是Wilson Lai,我的從業(yè)經(jīng)歷非常簡單,過去二十幾年都是在美國的軟件廠商工作,從一個PC級的數(shù)據(jù)庫廠商到Compuware,即Dynatrace的前身,先后負(fù)責(zé)開發(fā)工具、測試、APM,從開發(fā)、測試到運維,與整個應(yīng)用開發(fā)流程很匹配。
目前,我在Dynatrace公司負(fù)責(zé)技術(shù)性以及整個大中華區(qū)的售前工作,幫助潛在客戶去了解他們自身對于APM的需求并提供相應(yīng)的解決方案。除此之外,也會幫助一些用戶計劃他們整個APM的流程。APM對于整個企業(yè)來講,是一個非常漫長的過程,不同的企業(yè)有著不同的要求,Dynatrace會基于自身的經(jīng)驗以及企業(yè)需求來幫其規(guī)劃APM(如圖2所示)。
圖2 Dynatrace工作原理
應(yīng)用性能在幾年前比較集中在監(jiān)控方面,而APM是近五年才開始起步,增長速度越來越快,市場的機會也越來越大,主要有以下幾方面原因。
真正的監(jiān)控:過去,許多企業(yè)只專注于基礎(chǔ)平臺與設(shè)備,集中做網(wǎng)絡(luò)監(jiān)控、服務(wù)器監(jiān)控。在平臺建好后,下一步就是應(yīng)用。所有的企業(yè)業(yè)務(wù)都與應(yīng)用掛鉤,網(wǎng)購、金融等服務(wù)的背后都是一大堆的應(yīng)用。因此,真正的監(jiān)控并不是純粹從基礎(chǔ)設(shè)備開始,而是來自應(yīng)用的部分。
用戶體驗:許多人對APM的理解僅限于應(yīng)用性能的監(jiān)控或管理,但這個性能有著廣義的含義。為什么我們要提供一些應(yīng)用去服務(wù)用戶?APM除了速度之外,用戶體驗也是很重要的版塊。
性能與業(yè)務(wù)的掛鉤:無論系統(tǒng)跑得快或慢,只要對整個業(yè)務(wù)沒有影響的話,可能不會太被關(guān)注。所以,在整個APM領(lǐng)域,另一部分就是怎么把性能和業(yè)務(wù)掛鉤,這也是一個很重要的議題。
完整的APM解決方案:在中國我們也看到,這幾年有許多本土的APM廠商興起,但卻存在一個問題,就是大部分只集中在APM的一兩個層面上,并不能為用戶提供完整的解決方案,因為APM本身就是一個非常廣泛的存在,包含主動監(jiān)控、被動監(jiān)控、探針等方式,沒有一個單一的方案可以解決所有問題。從這個角度來講,一個完整的APM方案提供商,必須能夠完備地提供滿足用戶需求的不同組合。
數(shù)據(jù)互聯(lián):將這些數(shù)據(jù)進行整合也很重要。
CSDN:從您的角度講,APM應(yīng)用性能管理能夠為企業(yè)和開發(fā)人員帶來什么樣的好處?
Wilson Lai:從單一角度來講,APM是一個可視化的工具與平臺,它可以告訴用戶整個系統(tǒng)的所有情況。說得再詳細(xì)一些,從開發(fā)、測試到運維,有著不同的參與部門。APM的目的是為了提高整體的效率、質(zhì)量和性能,但每個團隊關(guān)心的地方并不一樣。舉個例子,運維希望主動發(fā)現(xiàn)問題,并快速定位故障。他們不會關(guān)心怎么去修改代碼,而是要在短的時間內(nèi)將系統(tǒng)恢復(fù),提供服務(wù)給用戶。但開發(fā)者則可能需要查看代碼級的問題,并收集相關(guān)信息。同時,測試對于APM也是有要求的。測試部門是一個很重要的把關(guān),在進行壓力測試、功能測試等時,為了確保效率,盡快解決問題,就需要APM提供一些豐富的指標(biāo)。
雖然APM技術(shù)性很強,但其實應(yīng)用開發(fā)的整個生命周期都與之緊密相連。從業(yè)務(wù)需求發(fā)起,透過開發(fā)構(gòu)建應(yīng)用,測試過關(guān)就走到了運維,但運維不是終點,還有一個關(guān)鍵就是:我推出一項服務(wù),這個服務(wù)是不是有人在用?是不是可用?哪個部分在用?這些數(shù)據(jù)也要收集回來,這就是APM可以提供的部分,覆蓋了整個移動開發(fā)的生命周期。
CSDN:那么,Dynatrace在整個應(yīng)用開發(fā)的生命周期中,具體提供了哪些服務(wù)?
Wilson Lai:這可以分幾個角度來看。首先,從開發(fā)人員角度,他們主要關(guān)心如何提高開發(fā)效率、進入生產(chǎn)環(huán)境能否快速解決出現(xiàn)的問題以及定位問題時能否提升效率等。在開發(fā)過程中,會進行功能測試,但功能測試存在一個問題,常常會每天持續(xù)地整合,早上開發(fā)、晚上測試、第二天看結(jié)果,只知道通不通過,而無法深究其原因,這就集中在一個指標(biāo)上,就是功能。
在進行測試時,如果測試人員能夠多收集一些指標(biāo),就能更早判斷應(yīng)用的質(zhì)量。對此,我們會有一些傳統(tǒng)的想法,例如,在整個開發(fā)過程中,先將功能做好,優(yōu)化應(yīng)用,然后測試,后再上線。就與小朋友學(xué)習(xí)一樣,老師會講每天都要看書溫習(xí)功課,而不要臨時抱佛腳,在考試前一兩天才溫習(xí)。
每天做測試,可以大程度降低風(fēng)險,因為在產(chǎn)品上線的后幾天根本無暇應(yīng)付。開發(fā)也是同樣的道理,前面的功能做得很好,要到后面發(fā)現(xiàn)性能有問題時才進行修改,已經(jīng)對先前的代碼造成影響。糟糕的還有另外一種情況,就是整個開發(fā)過程與預(yù)期相比有所延長,要是再壓縮測試,勢必會造成測試效果不好而倉促上市的局面。
現(xiàn)在有一個比較好的方法就是,在測試過程中將其他性能指標(biāo)拿出來,好能自動化做一些管理。這樣即使在功能上出問題時,進行修改也不會影響其他性能指標(biāo),能夠讓開發(fā)者很放心地將應(yīng)用推到測試環(huán)境中。
另外,在進行測試時,盡量將所有問題都找出來,當(dāng)然這只是理想狀態(tài),測試人員無法將發(fā)現(xiàn)所有Bug,有時甚至?xí)霈F(xiàn)一些無法預(yù)期的問題。因此,問題定位顯得尤為重要。好的情況是,在生產(chǎn)環(huán)境收集不同狀況,出現(xiàn)問題的話,直接進行數(shù)據(jù)分析,這也是APM能提供給開發(fā)人員的一些好處,對于快速解決產(chǎn)品出現(xiàn)的質(zhì)量問題是非常有幫助的。
CSDN:是自動收集問題直接上報?
Wilson Lai:對的。收集、上報,好能很深入地定位到代碼級的信息,這樣就不會重現(xiàn)問題。如果相關(guān)信息都有的話,就能夠很快判別這究是怎么回事兒?錯誤在哪個點?后,開發(fā)人員再自己確定解決的方法。
CSDN:這個從技術(shù)層面來講,具體是通過哪些技術(shù)手段來實現(xiàn)的?
Wilson Lai:剛才講的有一點趨向于應(yīng)用監(jiān)控,舉個例子,基于當(dāng)下主流平臺,許多APM廠商都會通過一個標(biāo)準(zhǔn)的界面去搜集一些性能數(shù)據(jù)與指標(biāo),界面是標(biāo)準(zhǔn)的,而收集的東西也基本類似。Dynatrace有些做法不一樣,在做整個產(chǎn)品的天就考慮到兩個重點,,它必須要在有很大壓力的環(huán)境下可以不對應(yīng)用產(chǎn)生影響,即主要在開銷上,在考慮一個產(chǎn)品時,要將其影響降到低。因為一般來講,在監(jiān)控應(yīng)用時會有一些工具,但開銷很大,不可能將它放在生產(chǎn)環(huán)境中。
圖3 交易節(jié)點剖析
第二,許多應(yīng)用都采用分布式系統(tǒng),完成一個交易會有著很多節(jié)點(如圖3所示)。而APM廠商在分析這個問題時,就不可以把那些不動的節(jié)點拆開看,而應(yīng)該單一去看。到目前為止,市場上所有的應(yīng)用監(jiān)控廠商,都是個別節(jié)點收集數(shù)據(jù)。沒有APM,開發(fā)人員就需要瀏覽Log,看日志痛苦的莫過于像大海撈針一樣去查詢數(shù)據(jù),更痛苦的是每一個服務(wù)器都有日志,這就表示,要從不相連的“海”里抽出數(shù)據(jù),還需有人手將它串起來,這是非常浪費時間的過程,會嚴(yán)重影響到開發(fā)人員的效率。
而Dynatrace的優(yōu)勢之一就是跨節(jié)點,可以做到自動追蹤節(jié)點的交易,開發(fā)者無需對應(yīng)用進行任何改動,就可以把所有節(jié)點的內(nèi)容統(tǒng)一放在一個界面上,這樣用戶就可以查看到整個交易。
圖4 Dynatrace可視化界面匯總
此外,在呈現(xiàn)時,每一個點的所有信息都已經(jīng)匯到界面中(如圖4所示),偶爾看個日志信息,就不用到文檔、系統(tǒng)中搜索查詢,只需右擊即可選擇進入相應(yīng)界面或顯示內(nèi)容。而為了讓開發(fā)者在定位到問題時能夠快速進行代碼修改,Dynatrace還整合了一些現(xiàn)有的開發(fā)工具,通過已有的專利技術(shù)(如圖5所示),可以直接實現(xiàn)第三方集成,并實現(xiàn)相應(yīng)的功能與效果,比如,PureStack便揭示了基礎(chǔ)設(shè)施健康對應(yīng)用性能和終用戶體驗的影響。
圖5 Dynatrace專利的PurePath與PureStack技術(shù)
CSDN:您認(rèn)為目前國內(nèi)APM處于一個什么樣的現(xiàn)狀?相較于國外APM而言有哪些優(yōu)勢與不足?
Wilson Lai:國內(nèi)外廠商有一個很明確的地方就是,從技術(shù)層面來講,都集中在整個APM范圍的其中一兩塊,沒有一家是每一個技術(shù)都有,只會解決用戶的某一些問題。而對于企業(yè)來講,它的應(yīng)用是林林總總的,而非單一的一兩類App,如果再擴容的話,可能就需要幾個廠商的方案,在整合與管理中勢必會產(chǎn)生一些問題。這是目前我們看到的大的問題,往后怎樣還有待考察。
而相比之下,其實國外APM相對好一點,因為起步比較早,技術(shù)比較成熟,客戶也更為廣泛,所以相對穩(wěn)定。中國也算起步,越來越多的廠商加入進來。幾年內(nèi)正是廠商興起的階段,未來則會發(fā)生整合、并購等類似于生態(tài)環(huán)境的改變。
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個個人學(xué)習(xí)交流的平臺,網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對此聲明的最終解釋權(quán)。