讓我們把目光從整個社會的大范疇聚焦到一個企業(yè),信息技術(shù)的發(fā)展已經(jīng)到了一個極制。7×24的全天候訪問,跨越軟硬件平臺的無限可擴(kuò)展性,簡單、一致的用戶自助服務(wù)界面…諸如此類的苛刻要求,都是為了滿足業(yè)務(wù)部門“更快、更高、更強(qiáng)”的要求而制定的。然而,在信息系統(tǒng)滿足了上述的種種要求之后,其自身的結(jié)構(gòu)也變得異常的復(fù)雜。在一個典型的企業(yè)應(yīng)用環(huán)境中,從后臺的硬件存儲開始,往往要通過數(shù)據(jù)庫、應(yīng)用服務(wù)器、Web服務(wù)器和客戶端應(yīng)用幾個技術(shù)層次來實(shí)現(xiàn)業(yè)務(wù)操作,其中還會由若干承擔(dān)具體任務(wù)的中間件產(chǎn)品和技術(shù)擴(kuò)展,來提供諸如均衡負(fù)載、高可用性、可伸縮性等企業(yè)計(jì)算所必須具備的功能。下面的圖示反應(yīng)了這類企業(yè)的基本技術(shù)構(gòu)成元素和層次:
如此復(fù)雜和功能強(qiáng)大的信息系統(tǒng)為企業(yè)業(yè)務(wù)目標(biāo)的實(shí)現(xiàn)提供了技術(shù)上的保障,然而,這還不足以實(shí)現(xiàn)提高生產(chǎn)力的最終目標(biāo)。一個企業(yè)應(yīng)用的評估標(biāo)準(zhǔn)應(yīng)該有兩個,一個是可實(shí)現(xiàn)性,一個是運(yùn)行效率。對于前者,我們通過基礎(chǔ)架構(gòu)和技術(shù)組件來達(dá)成,而后者,傳統(tǒng)的實(shí)現(xiàn)方法是通過專門的維護(hù)團(tuán)隊(duì)來保證的。對單一類型的應(yīng)用而言,“效率”,也就是“性能”,通過這種方式,是能夠得到保證的。無論是數(shù)據(jù)庫,還是應(yīng)用服務(wù)器,乃至在更加復(fù)雜的定制應(yīng)用和打包應(yīng)用領(lǐng)域,都有廠商或者集成商的專業(yè)技術(shù)人員來為之提供支持服務(wù)。對于用戶而言,無論是依靠廠商的服務(wù),還是自己擁有的系統(tǒng)維護(hù)團(tuán)隊(duì),對于單一類型的應(yīng)用系統(tǒng)尚且能夠確保性能,盡管,隨著特定技術(shù)之間的交叉、融合,只單純掌握一種技能的人員,已經(jīng)越來越難以應(yīng)付系統(tǒng)性能所提出的挑戰(zhàn)。
在進(jìn)入21世紀(jì)之后,隨著Web技術(shù)成為數(shù)據(jù)展現(xiàn)和操作訪問的事實(shí)標(biāo)準(zhǔn),企業(yè)利用這個平臺,將原來分散的子系統(tǒng)進(jìn)行著整合。盡管應(yīng)用整合可以通過多種手段來實(shí)現(xiàn),但J2EE的出現(xiàn),由于其天生具備良好的開放型和可擴(kuò)展性,使之在應(yīng)用整合和開發(fā)的過程中發(fā)揮了愈來愈顯著的優(yōu)勢。
采用J2EE技術(shù)部署基于Web的應(yīng)用,已經(jīng)顯著改變了服務(wù)的基本經(jīng)濟(jì)原則、競爭力和用戶界面。基于Web的應(yīng)用迅速代替成本更高的“人員協(xié)助”傳統(tǒng)服務(wù)。這種新一代應(yīng)用為企業(yè)提供了獨(dú)一無二的機(jī)會,使之能夠利用傳統(tǒng)系統(tǒng),在多個服務(wù)“層”之間分配應(yīng)用,充分利用新計(jì)算技術(shù)的優(yōu)勢。雖然這些基于Web的應(yīng)用為公司提供了無與倫比的靈活性,但更加復(fù)雜的應(yīng)用卻使所在的基礎(chǔ)設(shè)施面臨不斷的改變和超高的負(fù)載,應(yīng)用性能的下降所導(dǎo)致的不良用戶體驗(yàn),反而降低了客戶的滿意率和忠誠度。
當(dāng)今的用戶都期望能在世界各地隨時(shí)訪問網(wǎng)站。如果應(yīng)用的用戶發(fā)現(xiàn)屏幕底部的藍(lán)色進(jìn)度條從左到右前行的速度過慢,他們就會離開該網(wǎng)站,而且通常不會再次訪問。同樣,如果服務(wù)水平?jīng)]有達(dá)到期望值,現(xiàn)有客戶端通常會重新使用陳舊的、高成本的舊用應(yīng)用來處理業(yè)務(wù),或者開始關(guān)注其他供應(yīng)商或服務(wù)。從而,企業(yè)的管理者認(rèn)識到,由于目前業(yè)務(wù)對于信息系統(tǒng)的依賴性,如果不能遏制應(yīng)用性能下降導(dǎo)致的客戶流失,如果不能克服復(fù)雜性所導(dǎo)致的遲緩的故障排查,對于J2EE在內(nèi)的新技術(shù)的使用都會適得其反,導(dǎo)致業(yè)務(wù)的下滑。
方法論和解決方案
在這種情況下,一種對于應(yīng)用性能進(jìn)行監(jiān)控、報(bào)告、分析、改進(jìn)以及趨勢預(yù)測的技術(shù)應(yīng)運(yùn)而生,我們把這類技術(shù)成為應(yīng)用性能管理(Application Performance Management)。它具有以下幾個鮮明的技術(shù)特色:
1.APM著眼的是應(yīng)用系統(tǒng)整體的性能管理,而非僅僅針對某個技術(shù)層次的“煙囪式”的解決方案。
從性能指標(biāo)的檢測開始,APM就是以最終用戶的響應(yīng)時(shí)間為主要的衡量標(biāo)準(zhǔn),在第一時(shí)間將問題定位于某個技術(shù)層次;在問題得到修改之后,它也會從應(yīng)用整體響應(yīng)時(shí)間的角度,測量改進(jìn)之后的性能。
2.APM的視野不僅足夠?qū)拸V,而且足夠深入。
對于每個技術(shù)層次,APM都能夠溯本求源,準(zhǔn)確定位導(dǎo)致性能下降的根本問題。而且,它提供專家級的建議,通過最佳實(shí)踐幫助使用者盡快進(jìn)行修復(fù)。
3.APM考察應(yīng)用系統(tǒng)的性能依據(jù),來自于用戶的真實(shí)操作數(shù)據(jù)。
同比傳統(tǒng)性能調(diào)優(yōu)工具使用的模擬數(shù)據(jù),APM才能夠收集到用戶實(shí)際的體驗(yàn),將使用習(xí)慣、業(yè)務(wù)波動和技術(shù)指標(biāo)綜合考慮。顯而易見,這種數(shù)據(jù)只能來自于生產(chǎn)環(huán)境,而APM依靠其對于應(yīng)用超低的負(fù)載,能夠?qū)嵤?×24的長期監(jiān)控,是那些產(chǎn)生高額負(fù)載的性能調(diào)整工具所不能比擬的。
4.APM擁有專門的數(shù)據(jù)存儲。
APM將采集的數(shù)據(jù)經(jīng)分析之后存放起來,而非在考察之后就拋棄,或者僅僅保留短時(shí)間的性能數(shù)據(jù)。只有這樣,使用者才能夠通過對于長時(shí)間的歷史記錄的分析得到結(jié)論,從而了解:過去曾經(jīng)發(fā)生過什么,現(xiàn)在正在發(fā)生什么,以及今后即將發(fā)生什么。這就使得,APM不僅僅是一個在性能問題出現(xiàn)后進(jìn)行補(bǔ)救的工具,而且能夠?yàn)橄到y(tǒng)的維護(hù)團(tuán)隊(duì)提供預(yù)警信息,在性能問題真正開始影響用戶的使用之前,就將其改正,保證為用戶提供一個性能可靠,堅(jiān)如磐石的應(yīng)用系統(tǒng)。
VERITAS i3 for J2EE就是一種典型的APM解決方案,它基于一種旨在便捷地對應(yīng)用性能問題提供快速隔離、分析、糾正和校驗(yàn)的方法論,由以下5個階段構(gòu)成:
以上的五個步驟依照以下順序執(zhí)行:
通過以上的描述我們能夠看到,VERITAS i3 for J2EE是一個集成的應(yīng)用性能管理解決方案,它專注于確定用戶體驗(yàn)和服務(wù)水平。
它能夠識別端到端的資源占用情況,從瀏覽器開始、跨越J2EE應(yīng)用服務(wù)器,通過數(shù)據(jù)庫一直到物理存儲器的監(jiān)控和檢測應(yīng)用性能情況,以用戶響應(yīng)時(shí)間為統(tǒng)一的標(biāo)準(zhǔn)來衡量各個技術(shù)層面的性能。這種方式,避免了負(fù)責(zé)各個技術(shù)層面的廠商和技術(shù)人員相互推卸責(zé)任,大大提高了隔離問題的速度。
在確定問題之后,深度鉆取的能力又向使用者提供了專家級的修改建議,協(xié)助快速修改問題。所以,我們可以看到,VERITAS i3 for J2EE的視野足夠?qū)拸V,它覆蓋企業(yè)應(yīng)用的廣泛領(lǐng)域;而且深入得足夠徹底,它可以從代碼,甚至物理存儲得角度來進(jìn)行性能的管理。
VERITAS i3 的產(chǎn)品組成分為Insight、Indepth和Inform三個部分。這些產(chǎn)品無縫集成,共同關(guān)注關(guān)鍵應(yīng)用組件?D?D這樣就提供了一個完整的端到端性能管理解決方案。此外,VERITAS i3的每一個組件都能作為一種獨(dú)立產(chǎn)品單獨(dú)運(yùn)行,以滿足特殊環(huán)境和應(yīng)用的需求。下圖說明了VERITAS i3的體系結(jié)構(gòu)組件。
Insight ??“什么原因?qū)е逻\(yùn)行緩慢?”
當(dāng)前的應(yīng)用利用了多層體系結(jié)構(gòu),以提供多功能性,但這些體系結(jié)構(gòu)卻使我們很難確定性能降低的原因。Insight帶有TotalCorrelation™,能夠測量所有體系結(jié)構(gòu)層(從URL到SQL)的響應(yīng)時(shí)間,并將響應(yīng)時(shí)間按層分段,從而確定“什么原因?qū)е逻\(yùn)行緩慢?”。
Indepth ??“應(yīng)該怎樣進(jìn)行修復(fù)?”
在整個IT基礎(chǔ)設(shè)施上,全天候地捕捉關(guān)鍵性能指標(biāo)(KPI),確保無論何時(shí)開始出現(xiàn)性能降低,都能識別出問題。然后利用SmarTune™,鉆取到部件級技術(shù),如Web服務(wù)器、應(yīng)用服務(wù)器、中間件、數(shù)據(jù)庫以及存儲器等,以自動確定最終的問題根源,生成專家調(diào)節(jié)建議。Indepth可識別“為什么”產(chǎn)生問題,以及“如何”修復(fù)問題。
Inform ??“現(xiàn)在是否存在性能問題?過去有沒有?未來會不會有?”
了解應(yīng)該“何時(shí)”專注于性能問題,與“如何”修復(fù)問題同樣重要。如果沒有掌握趨勢、基線、期望值和告警,則很難有效管理應(yīng)用性能。即使發(fā)生最輕微的性能降低,Inform 也能發(fā)出及時(shí)通知,從而提供最充裕的時(shí)間,便于用戶使用SmarTune提供的調(diào)節(jié)建議。無論通知的原因是無法達(dá)到服務(wù)水平,或是性能標(biāo)準(zhǔn)開始降低,用戶都能及時(shí)收到信息。
VERITAS i3 包括VERITAS Performance
Warehouse,該產(chǎn)品為相關(guān)端到端的數(shù)據(jù)歷史提供通用庫,從而實(shí)現(xiàn)趨勢分析和特定時(shí)間性能審查。該庫能夠?qū)С鰯?shù)據(jù),供其它分析工具使用,也能導(dǎo)入應(yīng)該包含在一些分析報(bào)告中的測量標(biāo)準(zhǔn)。
例如,假設(shè)您面對一個企業(yè)級Web應(yīng)用,其中包括Web服務(wù)器、J2EE應(yīng)用服務(wù)器、Tuxedo以及Oracle 數(shù)據(jù)庫,您應(yīng)該選擇VERITAS i3 for J2EE 解決方案對其實(shí)現(xiàn)性能管理。其包括所有必需的功能,可以查看實(shí)際的用戶響應(yīng)時(shí)間,分析端到端的資源占用情況,提供對Web服務(wù)器、J2EE服務(wù)器、Tuxedo服務(wù)器和數(shù)據(jù)庫的統(tǒng)計(jì)指標(biāo)。您將能夠鉆取到Java方法調(diào)用,了解JVM中具體設(shè)置對于的性能的影響;能夠鉆取到Oracle數(shù)據(jù)庫中,了解SQL語句的使用情況,檢測數(shù)據(jù)庫對象的運(yùn)行效率;最終清除應(yīng)用組件之間的沖突,保證高效率的應(yīng)用性能。
VERITAS i3 for J2EE關(guān)注應(yīng)用的整個生命周期
VERITAS i3 for J2EE不僅著眼于生產(chǎn)系統(tǒng),并且能夠服務(wù)于開發(fā)、質(zhì)量保證部門:
在開發(fā)環(huán)境中,該解決方案能為我們測試系統(tǒng)和了解性能提供極大的幫助,在設(shè)計(jì)和體系結(jié)構(gòu)問題在生產(chǎn)系統(tǒng)中影響到終端用戶之前,提早捕捉這些問題。SmarTuneTM 提供的全面數(shù)據(jù)捕捉和自動分析功能,有助于應(yīng)用工程師有效地確定開發(fā)工作的優(yōu)先級;
在質(zhì)量保證、測試過程中,VERITAS i3 for J2EE提供了統(tǒng)一的測量標(biāo)準(zhǔn),并且憑借獨(dú)特的自動記錄功能,質(zhì)量保證和開發(fā)部門能夠?qū)⒋罅坑涗洷4嬖谖臋n中;
總結(jié)
今天,IT 企業(yè)面臨的挑戰(zhàn)是:滿足終端用戶不斷增長的高性能需求。事實(shí)證明,在服務(wù)、內(nèi)部生產(chǎn)力和創(chuàng)收之間,存在著直接關(guān)系。VERITAS 提供了業(yè)務(wù)性能管理解決方案,以應(yīng)對這些挑戰(zhàn),這些解決方案能夠協(xié)助企業(yè)確定造成性能問題的原因,以及性能問題給整個系統(tǒng)造成的影響。
VERITAS i3 for J2EE 不僅能夠應(yīng)對這些挑戰(zhàn),還簡化了基于Web的企業(yè)應(yīng)用的開發(fā)和部署過程。使用VERITAS i3 for J2EE ,有助于企業(yè)管理和提高為終端用戶提供的服務(wù)水平,控制成本,最大限度地優(yōu)化運(yùn)營投資的效率,從而為基于Web的應(yīng)用性能管理設(shè)立了全新的里程碑。
案例
兩年前,英國電信的互聯(lián)網(wǎng)業(yè)務(wù)部門開發(fā)了一款全新的尖端網(wǎng)絡(luò)中心系統(tǒng)稱之為BT Openworld,用以提高ISP的性能和可用性,改進(jìn)客戶體驗(yàn)。這款網(wǎng)絡(luò)中心系統(tǒng)用于客戶訂購、設(shè)備和自我維護(hù),它基于分布式J2EE體系結(jié)構(gòu),使用BEA Weblogic應(yīng)用服務(wù)器和中間件Tuxedo,系統(tǒng)使用Oracel數(shù)據(jù)庫,橫跨多臺Sun Unix服務(wù)器,并連接到遠(yuǎn)程數(shù)據(jù)庫和訂單處理系統(tǒng),以進(jìn)行客戶管理和寬帶設(shè)置。
“如同一輛汽車,您被告知它的速度是120英里/小時(shí),但事實(shí)上只達(dá)到80英里/小時(shí)。儀表板沒有顯示問題可能出在何處,沒有加速的油門,也沒有懂得這臺發(fā)動機(jī)的機(jī)修工?!?負(fù)責(zé)系統(tǒng)運(yùn)行維護(hù)的經(jīng)理Neal Kelshaw這樣形容Openworld面臨的性能管理挑戰(zhàn)。
“要調(diào)整這樣的訂單系統(tǒng),必須在容量資金限制與提供客戶事務(wù)處理之間達(dá)到平衡,并且達(dá)到要求的吞吐量,” Kelshaw說,“這些因素通常會對系統(tǒng)設(shè)計(jì)提出一些相互沖突的要求,我們并不知道,體系結(jié)構(gòu)如何為通用組件分配系統(tǒng)資源,也不知道系統(tǒng)會對接口負(fù)載作出怎樣的反應(yīng)。這些因素會對系統(tǒng)性能產(chǎn)生一些混合影響,使我們處于兩難選擇的境地。我們的目標(biāo)是讓所有組件協(xié)調(diào)運(yùn)行?!?BR>
我們的團(tuán)隊(duì)認(rèn)識到,系統(tǒng)并沒有達(dá)到最佳運(yùn)行狀態(tài),客戶訂單經(jīng)常不能在協(xié)議規(guī)定的交付時(shí)間執(zhí)行,而且需要不斷對系統(tǒng)進(jìn)行人工調(diào)節(jié),負(fù)責(zé)處理訂單流程的人員還要負(fù)責(zé)不斷的以手工方式,進(jìn)行系統(tǒng)調(diào)優(yōu)、打補(bǔ)丁和風(fēng)險(xiǎn)管理?!拔覀儞?dān)心這會危及客戶滿意度和我們的收入,” Kelshaw接著說,“在這次價(jià)格調(diào)整前,訂單量的變化幅度比現(xiàn)在要小。
在價(jià)格調(diào)整后的六個月時(shí)間內(nèi),開發(fā)人員推出了超過60種補(bǔ)丁程序。每次發(fā)布產(chǎn)品或訂單量發(fā)生變化時(shí),都需要推出補(bǔ)丁。而且這些補(bǔ)丁也只能應(yīng)對性地調(diào)節(jié)系統(tǒng)。我們不知道應(yīng)該查看什么參數(shù),也不知道它們?nèi)绾谓换プ饔?,形成我們主動管理平臺利用率和容量所需要的規(guī)則。而在這樣一個支持英國電信關(guān)鍵計(jì)劃的高銷售量的環(huán)境中,這是支持訂單管理系統(tǒng)的關(guān)鍵。如果拿汽車來打比方,我們無法達(dá)到最高速度,每次當(dāng)我們要行駛更遠(yuǎn)的路程時(shí),都必須把車開回車庫,進(jìn)行全面的故障檢修。我們想知道的第一件事就是:客戶對這個系統(tǒng)的體驗(yàn)如何,而不想查看大量的容量統(tǒng)計(jì)。這一工作完成后,我們得知平臺的規(guī)模是適宜的。我們必須調(diào)節(jié)系統(tǒng),以達(dá)到要求的吞吐量,這樣會導(dǎo)致性能降低,客戶無法使用注冊流程。
使用Mercury Topaz事物處理監(jiān)控解決方案,我們確定了性能瓶頸問題,并且發(fā)現(xiàn)達(dá)到吞吐量對后端流程的影響。一項(xiàng)新技術(shù)向我們證明,我們關(guān)注的系統(tǒng)的規(guī)模是適宜的,我們的知識缺陷在于組件監(jiān)控方面,我們不知道導(dǎo)致訂單處理流程不可用的問題的真正根源?!?BR>
在對所有的領(lǐng)先應(yīng)用性能管理供應(yīng)商進(jìn)行嚴(yán)格審查后,英國電信互聯(lián)網(wǎng)業(yè)務(wù)部門最終選擇了VERITAS 軟件公司。“VERITAS i3能夠百分之百地滿足FRI文檔的需要,”他說,“我們在其他項(xiàng)目中使用VERITAS軟件的成功經(jīng)驗(yàn),加上軟件的易用性,以及它與我們的eHub體系結(jié)構(gòu)和操作系統(tǒng)的無縫集成,使它成為我們的理想之選?!?BR>
由于時(shí)間緊迫,英國電信直接將VERITAS i3應(yīng)用到實(shí)際生產(chǎn)環(huán)境中,所有工作都在幾小時(shí)內(nèi)完成。一小時(shí)后,VERITAS i3能夠全面概括出eHub系統(tǒng)的組件,并指出導(dǎo)致響應(yīng)時(shí)間延長的一個組件。
“在VERITAS i3完全投入使用的第一天,它就找出了問題的確切原因:設(shè)備數(shù)據(jù)庫中存在一個Oracle性能問題,影響與遠(yuǎn)程數(shù)據(jù)庫連接的Tuxedo聯(lián)接。該問題影響了eHub的容錯性能,導(dǎo)致訂單排隊(duì)的失敗。我們及時(shí)解決了該問題,這應(yīng)該歸功于VERITAS i3。在此之前,我們只能看到前端出現(xiàn)的癥狀,而沒有找到問題的真正根源。 ”
使用VERITAS i3,英國電信現(xiàn)在能夠預(yù)先檢測、查找、關(guān)注、改進(jìn)和校驗(yàn)性能問題,避免它影響服務(wù)水平。通過跟蹤特定應(yīng)用環(huán)境的關(guān)鍵性能指標(biāo),VERITAS i3簡化了查找和修復(fù)性能問題的復(fù)雜流程。該軟件還為英國電信提供了組件度量標(biāo)準(zhǔn)和計(jì)數(shù)器,用于主動評估和管理系統(tǒng)配置,在高容量的、不斷變化的訂單系統(tǒng)中維持服務(wù)質(zhì)量。這些度量標(biāo)準(zhǔn)還可用于精確調(diào)節(jié)應(yīng)用,加快事務(wù)處理和響應(yīng)。這就使應(yīng)用基礎(chǔ)設(shè)施能以最高效率運(yùn)行,并且意味著Kelshaw和他的團(tuán)隊(duì)可以降低故障成本、容量和支持成本,改進(jìn)客戶體驗(yàn),而不再受到配置不當(dāng)?shù)幕A(chǔ)設(shè)施的困擾。
“VERITAS i3為BT Openworld帶來了諸多好處,” Kelshaw說,“首先,最重要的是它可以縮短解決eHub性能問題的時(shí)間,我們估計(jì)英國電信每年可以節(jié)省50萬英鎊的支持成本和訂單收入損失風(fēng)險(xiǎn);其次,它使我們能夠根據(jù)預(yù)期的訂單量來調(diào)節(jié)系統(tǒng),確定訂單量對體系結(jié)構(gòu)的影響。然后,我們就能夠在發(fā)生任何故障之前,主動優(yōu)先完成組件的更換和升級,并且有效地管理容量;再次,VERITAS i3加速了客戶體驗(yàn),確保了客戶對BT品牌的忠誠度;第四,它為我們提供了強(qiáng)大的、精確的事件記錄,可用于直接與外部供應(yīng)商確認(rèn)問題,并能有效地向上跟蹤在其他地方發(fā)現(xiàn)的癥狀。據(jù)我所知,在現(xiàn)代的分布式J2EE基礎(chǔ)設(shè)施中,還沒有其他任何產(chǎn)品能夠?qū)崿F(xiàn)這一點(diǎn)?!?BR>
讓我們再次回到本文開始時(shí)的汽車類比,下次當(dāng)英國電信的汽車速度減慢,VERITAS i3就能立即確定發(fā)動機(jī)的哪個部位出現(xiàn)了故障,確保配備機(jī)修工排除故障,維持發(fā)動機(jī)的完全功率。此外,VERITAS i3不斷進(jìn)行性能監(jiān)測,可在性能缺陷出現(xiàn)前進(jìn)行預(yù)測,并在故障發(fā)生前立即進(jìn)行修復(fù)。