正如開爾文勛爵所言:“衡量的目的在于了解。”不過這項簡單的格言實現(xiàn)起來卻難度極高。其真實含義分為以下兩點。
第一層含義非常明確:我們無法在不加以衡量的情況下,對事物加以認知。舉例來說,如果大家希望快速了解應用程序的運作情況,那么必須選取幾項關鍵并加以追蹤。“良好的性能”意味著功能可在短時間內完成,而糟糕的性能則代表著功能要耗時極久才能實現(xiàn)。另一項重要指標在于,應用本身是否擁有“理想的性能”。例如,性能是否在不同負載條件下保持穩(wěn)定,或者在應用的不同組件之間保持穩(wěn)定?
而第二層含義則相對隱晦,但卻同樣重要:通過定義衡量標準,我們實際上也是在定義自身的知識界線。在應用環(huán)境當中,這可能并不是什么大問題;但云環(huán)境則提出了完全不同的挑戰(zhàn)。由于我們無法對環(huán)境加以全面控制,因此不能衡量一切將變得非??膳?。
當應用被遷移至云端
有鑒于此,當將服務遷移至云端時,大家必須切實利用衡量手段掌握用戶的使用體驗。如果做不到這一點,或者同時只能關注同一項指標,那么我們將很難做出正確的判斷。例如,在傳統(tǒng)Web應用環(huán)境當中,我們往往會將與頁面加載或者渲染速度指標視為其它組件的性能參照。例如,緩慢的頁面加載速度可能意味著數(shù)據庫后端存在故障或者承受的強度過大。
不過這種思考方式明顯有著自己的局限:其假定應用之間的連接并不存在問題。在內部運作的基礎設施當中,我們可以以此為前提進行排查——這種作法非常合理。但在云環(huán)境中,問題顯然沒那么單純。
云改變了一切
在云環(huán)境內,這種假設不再成立。我們的云服務供應商會隨時變更當前環(huán)境,且整個重新配置過程完全超出大家的控制范圍。服務本身就是我們付費所應得的范疇,再無其它。而如果想像內部基礎設施那么租賃完整的云資源,那么成本則會超出承受能力。
事實上,我們之所以將負載交由云環(huán)境打理,是因為其能夠提供傳統(tǒng)數(shù)據中心所無法企及的容量上限。這意味著底層基礎設施——包括服務運行所在的網絡、硬件乃至環(huán)境——始終作為變量存在。這當然不是壞事,但問題在于衡量眾多獨立變量會帶來巨大挑戰(zhàn)。幸運的是,云環(huán)境本身提供了一種能夠切實完成管理任務的辦法:
獲取數(shù)據:
大多數(shù)云服務提供單個指標或者查詢機制,即使您所選擇的供應商不提供相關方案,也可求助于其它廠商。每秒總線信息、存儲操作、計算資源使用量等等都能夠成為把握底層服務動態(tài)的線索。
處理數(shù)據:
一部分云服務會聚合數(shù)據并以易于使用的方式集中提供。大家可以借此隨時檢查數(shù)據流量,這也應當成為任何形式的云系統(tǒng)的必要配套方案。
數(shù)據可視化:
大多數(shù)數(shù)據聚合服務都提供多種可視化工具。運維人員可隨后借此討論并向管理層解釋當前運行狀況,并確保一切處于“基準”范圍內。只有把握住這種“正常”狀態(tài),異常問題才能被及時發(fā)現(xiàn)。
確保應用生成有價值數(shù)據:
應用日志通常分為兩種類型:全面調試與停止發(fā)報。確保應用能夠生成有價值且具備可操作性的指標。
不要僅依賴單一來源:
如果大家只使用當前云服務廠商提供的衡量指標,那么恐怕無法保證審計合格。正如良好的財務控制與審計是保障業(yè)務成功的關鍵,我們在技術層面需要采取同樣的心態(tài)。事實上,大家不妨以懷疑的態(tài)度審視一切,并在必要時求助于第三方廠商。
當然,云服務供應商本身往往是最先發(fā)現(xiàn)問題的一方。遇到這種情況,我們應當與外部監(jiān)控廠商交流問題,從而建立更可靠、更及時的衡量體系。