把一個應(yīng)用遷往云計算并不是簡單地僅僅生成一個機器鏡像而已。一次云計算遷移可能會危及數(shù)據(jù)中心設(shè)施,而數(shù)據(jù)中心設(shè)施是支持應(yīng)用完整性、性能、安全性以及合規(guī)性的基礎(chǔ)。雖然這些因素都是非常重要的,但是任何一個應(yīng)用的首要關(guān)鍵就在于它是否能夠滿足業(yè)務(wù)需求,而其運行性能則是確定這一點的重中之重。
應(yīng)用性能管理(APM)不僅是一個措施集,它也是一個工具包——這也是用戶體驗質(zhì)量(QoE)中最為關(guān)鍵的要素之一。要么把當(dāng)前APM實踐轉(zhuǎn)移至云計算,要么用與云計算友好等價的方法取代目前的做法,這是至關(guān)重要的。
傳統(tǒng)APM是通過以下一種或多種方法來注重應(yīng)用并實現(xiàn)性能提升的:
• 流量壓縮以提高有效吞吐量;
• 在接入訪問端,按時間或性能關(guān)鍵的流量進行優(yōu)先級排序;
• 對傳輸控制協(xié)議進行專門更換,以便于更好地應(yīng)對丟包問題;
• 通過網(wǎng)絡(luò)實現(xiàn)多路平行通路,以提高有效帶寬;
• 跨多個服務(wù)器的流量負載平衡。
一般來說,所有這些方法都可以在連接的兩端——用戶端和服務(wù)器端——通過使用一個設(shè)施或軟件代理來實現(xiàn)。但是,當(dāng)服務(wù)器端遷移至云計算時,這樣的實施方法就可能存在問題了,尤其是在它涉及網(wǎng)絡(luò)設(shè)施的情況下。云計算運營商很少會允許用戶在他們的數(shù)據(jù)中心內(nèi)安裝設(shè)備,即便有時他們允許用戶這么做了,應(yīng)用在云計算虛擬機中的分布也會讓應(yīng)用遠離其加速設(shè)施。
這個問題的解決方案就是使用APM軟件工具而不是硬件。為了更有效地解決這個問題,APM工具必須以網(wǎng)絡(luò)中間件的形式存在于應(yīng)用的機器鏡像中。如有需要,在服務(wù)器端基于軟件的代理仍可與設(shè)備配對,這樣的組合將至少能夠支持目前APM措施中的部分功能。
在云計算應(yīng)用性能中的頑固瓶頸問題
負載平衡也帶來了具體問題,不僅是因為云計算供應(yīng)商網(wǎng)絡(luò)不再接受外部設(shè)施,而且是因為在云計算中多個應(yīng)用實例可能并不駐留在同一個數(shù)據(jù)中心內(nèi)。DNS有基于軟件、分布式負載平衡的機制,但是這可能需要針對應(yīng)用對它們稍作調(diào)整以便于讓應(yīng)用能夠正常運行。
下一步就是解決云計算外出現(xiàn)的網(wǎng)絡(luò)性能問題了。云計算供應(yīng)商通常都是通過互聯(lián)網(wǎng)連接至用戶并提供最佳服務(wù)的。當(dāng)企業(yè)需要更高性能時,他們就必須使用虛擬專用網(wǎng)絡(luò)(VPN),而且也并不是所有的云計算供應(yīng)商都會允許用戶通過VPN連接訪問他們的云計算的。即便供應(yīng)商支持VPN接入訪問,但是網(wǎng)絡(luò)運營商所提供的VPN服務(wù)也有可能存在限制,而且使用VPN也會對云計算功能造成影響,例如托管點到地理區(qū)域的分派。云計算規(guī)劃師必須非常清楚每一家潛在云計算服務(wù)供應(yīng)商所提供的每一個VPN選項,并應(yīng)試圖找出其協(xié)議的壽命。
云計算中的性能管理可能還需要提供未能在數(shù)據(jù)中心內(nèi)時刻待命可用的選項。大約三分之一的云計算規(guī)劃師都傾向于使用“云計算爆發(fā)”的方法把工作負載從數(shù)據(jù)中心遷往云計算,從而應(yīng)對工作負載突增的特殊情況。很多本地的云計算應(yīng)用已經(jīng)擁有了“水平擴展”的功能或者自動實例化應(yīng)用新副本的功能以增加用戶數(shù)量或服務(wù)交易的數(shù)量。真正的挑戰(zhàn)在于這種規(guī)模擴展需要規(guī)劃師進行精心規(guī)劃,并且有可能需要對應(yīng)用本身進行變動。
為了進一步了解水平擴展的優(yōu)點和需求,可以先構(gòu)建一個簡單的工作流程圖來說明應(yīng)用是如何服務(wù)特定用戶或交易的。在很多情況下,它會需要通過一個網(wǎng)絡(luò)服務(wù)器、一個應(yīng)用服務(wù)器和一個數(shù)據(jù)庫服務(wù)器。經(jīng)過對當(dāng)前性能的分析,你將會知道,究竟這些環(huán)節(jié)中的哪些因素才是真正的性能瓶頸。如果一個特定應(yīng)用在網(wǎng)絡(luò)服務(wù)器上使用了80%的處理資源,而用戶通過產(chǎn)品目錄進行解析,那么復(fù)制網(wǎng)絡(luò)服務(wù)器(以及目錄)將對應(yīng)用的性能造成較為明顯的影響。如果這里只使用了20%的時間,而提供更多網(wǎng)絡(luò)服務(wù)器副本并沒有辦法實質(zhì)性地提高性能,那么這就意味著性能瓶頸問題應(yīng)該是由其他因素造成的。
數(shù)據(jù)庫訪問通常會造成新的云計算瓶頸,這是因為企業(yè)用戶往往并不愿意為網(wǎng)絡(luò)接入訪問和云計算存儲買單,而且他們也不愿意承擔(dān)把關(guān)鍵應(yīng)用數(shù)據(jù)遷往云計算的相關(guān)安全性和合規(guī)性風(fēng)險。在這種情況下,一些云計算應(yīng)用就必須通過網(wǎng)絡(luò)從企業(yè)內(nèi)部往外拉數(shù)據(jù)。在云計算爆發(fā)的情況下,這幾乎總是需要的,因為企業(yè)的主要數(shù)據(jù)都保存在應(yīng)用所運行的數(shù)據(jù)中心內(nèi)。
創(chuàng)建一個高效的數(shù)據(jù)通路是非常關(guān)鍵的,而這可能也意味著在云計算和數(shù)據(jù)中心之間的數(shù)據(jù)庫連接上增加APM措施。問題在于壓縮總是會增加延遲時間,而對于某些數(shù)據(jù)訪問策略來說,這就如同低容量問題一樣糟糕。最好的辦法就是根據(jù)接收服務(wù)請求的數(shù)據(jù)服務(wù)器的實際使用情況而不是塊級I/O命令進行規(guī)劃。這將減少數(shù)據(jù)量,并降低跨接口移動單個記錄所造成的累積延遲時間。請求/結(jié)果交換也不是延遲敏感的,因此你可以針對應(yīng)用-數(shù)據(jù)庫連接增加壓縮以及其他的APM功能以提高性能。