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