■ 李耀宗
關于大數據方法是否與應用性能管理(APM)有關,目前仍存在某些爭論。一些專家表示,即使沒有大數據方法,復雜的分析和采樣數據也足以應對監測和診斷。
作為一名APM從業者,我對上述觀點難以茍同。APM不僅具備監測與警報功能,還可幫助用戶了解和提升應用性能。大數據方法提供的完整且正確的數據和分析功能可以幫助我們不斷提升應用性能。
大數據的主要作用是幫助我們在無需提出假設,設計采樣策略,并通過實驗來測試一組理論的情況下獲得直接信息。我們通過大數據方法來了解問題的全貌,并由此得到完整且正確的分析數據,消除了這一過程中的采樣或選擇偏差。
以下是用大數據方法提高應用問題平均修復時間(MTTR)的主要方法。值得注意的是,能減少MTTR是企業采購應用性能監測解決方案的主要動因。
一些性能問題經常干擾應用的運行。大數據方法則可幫助IT人員更有效地分解和克服長尾問題。
大數據使性能分析不再“模棱兩可”。在缺乏精確數據的情況下,性能分析會引發猜測并產生誤導。所以,學會剔除不相干因素也同樣重要。在進行分析時,IT團隊經常會在沒有詳細取證的情況下試圖使用既有知識,比如“我們上次遇到的性能問題是關于日志代碼的”并頻繁導致方向性錯誤。但有了大數據,我們就可以很快知道“這不是日志代碼問題”,因為在沒有記錄日志代碼的前提下我們捕獲了所有內容,不必在此浪費時間和精力。
間歇性性能問題通常是最難診斷的,原因如下:
1.難以發現問題根源;
2.沒有故障回溯功能;
3.缺少發現問題的機會;
4.在這些長期存在的問題中,其環境也在發生變化。
大數據方法則可幫助IT人員快速診斷問題。大數據方法無需預先了解故障情況,因為診斷數據已被全面記錄在案。同樣,無論問題何時發生以及環境如何變化,取證數據都隨時可用。
大數據方法在診斷云,虛擬化或容器化環境中的問題時非常有效。在這些短暫的應用環境中,應用基礎設施不斷變化,導致觸發/采樣方法在組件生效和失效時丟失狀態變化。
了解用戶群體對于了解全球性能趨勢信息非常重要,但若不完全了解步驟,有時則會導致嚴重的性能問題。單個用戶操作可能會導致整個應用出現性能問題。大數據方法則可以確保所有取證數據均可用于還原“事故現場”。
取證探查是APM大數據的優勢之一,我們甚至可以發現一些以前未被發現的問題!
通常,豐富的歷史交易細節或高分辨率環境數據會揭示完全無法預見的行為及用戶如何使用或破壞應用的極端狀況。我總能聽到這樣的話:“它不應該這樣做”,但事實卻并非如此。
不僅能利用大數據進行監測和診斷,還能有條不紊的減少性能膨脹。深度性能數據的可用性使我們能夠專注于持續提升性能。
應用會隨著新功能的發布而不斷變化,并導致技術和性能問題不斷積累。隨著時間的推移,一個性能良好的應用也開始變慢。大數據則有助于了解哪些應用組件占用了大量時間,并將主要精力用于優化性能。
企業永遠不會在完全隔離的情況下設計,構建或運行應用。而某些情況下,不同應用可能會共享系統、網絡或基礎設施。在其他情況下,應用可能會共享通用函數庫,數據或API。共享組件或資源雖然有許多好處,但也會常常導致性能問題影響多個應用。
大數據方法能幫助應用支持團隊在整個應用環境中發現性能問題及其運行模式,而不僅僅是單個應用組件。一旦在單個應用中發現問題,大數據分析方法就會幫助查找具有相同問題或存在風險的其他應用。
當關鍵應用出現性能問題時,其原因可能是質保測試未通過或生產環境大不如前。我們迅速動員“猛虎團隊”分析問題并提出建議。筆者發現分流工作能否成功在很大程度上取決于取證數據的質量。缺乏證據會使團隊分裂。需要對多種可能的原因進行研究。另一方面,完整且準確的取證數據消除了模棱兩可的情況,有利于凝聚團隊,更快的找到解決方案。
“猛虎團隊”絕不會說“我們只需要最少的細節來尋找根本原因!”
總體而言,大數據不僅有用,且當涉及APM時還十分必要。采樣并不能為您提供發現和解決動態復合應用環境中問題所需的完整性和數據深度。