如何為自己的應(yīng)用挑選最合適的云平臺
譯文Amazon也許在速度與成本方面較Azure或者谷歌更具優(yōu)勢,但反之亦然——實(shí)際情況取決于我們的具體工作負(fù)載類型。
我們該如何為自己的應(yīng)用程序挑選最為合適的云平臺匹配選項?這個問題如今正困擾著越來越多的企業(yè)IT部門,而要找到確切答案亦絕非易事。一般來講,實(shí)際選擇取決于應(yīng)用程序當(dāng)中數(shù)據(jù)的敏感程度。但在其它情況下,公有與私有云間的考量亦非常重要。與此同時,業(yè)務(wù)目標(biāo)與速度或者價格是否需要做出針對性優(yōu)化也會極大影響最終決策。
當(dāng)然,性能與成本其實(shí)并不容易衡量,而且我們也沒辦法跨越不同云環(huán)境做出直觀比較。在今天的文章中,我們將共同利用CliQr測試方法幫助客戶做出考量,并從三大高人氣云選項——Amazon Web Services、微軟Azure以及谷歌Cloud Platform——與實(shí)例當(dāng)中找到最適合示例應(yīng)用程序集合的方案。
注意事項
作為一套企業(yè)級云管理平臺,CliQr CloudCenter的作用在于執(zhí)行以下一系列黑盒測試。下面將要提到的各款應(yīng)用程序都利用CliQr的應(yīng)用配置機(jī)制進(jìn)行建模,其會將多個應(yīng)用層通過單一恒定模式配置至不同云平臺之上。除了提供治理(即由誰負(fù)責(zé)將哪些應(yīng)用程序配置至何處)與計量(即具體實(shí)現(xiàn)成本)能力之外,CliQr CloudCenter當(dāng)中還包含有一項黑盒基準(zhǔn)測試功能,旨在將每款應(yīng)用部署至目標(biāo)云當(dāng)中、利用JMeter為其提供負(fù)載并針對此次測試中各待評估云的每小時使用成本繪制數(shù)據(jù)吞吐圖表(即每秒事務(wù)數(shù)量)。
這里得出的結(jié)果并不一定符合大家對于特定云方案的認(rèn)知。相反,這部分結(jié)果的存在意義在于回答“某應(yīng)用適合配合哪種云”這一問題。隨著時間推移,微小差別可能會給各應(yīng)用程序帶來巨大的后續(xù)影響,而且這里給出的結(jié)果不應(yīng)被直接套用到其它場景當(dāng)中。
應(yīng)用程序
在本系列測試當(dāng)中,將用到以下各應(yīng)用程序。
- Pet Clinic: 這款Spring框架Java示例應(yīng)用屬于一款三層Web應(yīng)用,利用單一Nginx虛擬機(jī)作為負(fù)載均衡器、兩套Tomcat虛擬機(jī)作為應(yīng)用程序服務(wù)器外加一套MySQL虛擬機(jī)作為數(shù)據(jù)庫。該應(yīng)用程序中的全部虛擬機(jī)都采用CentOS 6。其數(shù)據(jù)庫服務(wù)器接入一套2 GB塊存儲分卷。
- OpenCart: 這款高人氣開源LAMP堆棧存儲端軟件包利用單一Apache虛擬機(jī)作為Web服務(wù)器,同時配合一套MySQL虛擬機(jī)作為數(shù)據(jù)庫。兩套虛擬機(jī)皆配置為運(yùn)行Ubuntu 12.04。與Pet Clinic類似,該數(shù)據(jù)庫服務(wù)器接入一套2 GB塊存儲分卷。
- BlogEngine: 利用單一虛擬機(jī)實(shí)現(xiàn)這套利用IIS與微軟SQL Server構(gòu)建起的.Net博客平臺。
在這套組合當(dāng)中,我們已經(jīng)擁有了三款不同操作系統(tǒng)、三種不同編程語言以及三種不同應(yīng)用程序?qū)咏M合,這使得我們擁有更為寬泛的觀察視角。
實(shí)例類型
對不同云方案進(jìn)行基準(zhǔn)測試非常困難,因為我們很難對不同類型的實(shí)例進(jìn)行一對一直接比較。很明顯,任何針對實(shí)例類型組合的測試工作都會帶來具有一定爭議性的結(jié)論。在本次實(shí)驗中,我們使用以下配置。
供應(yīng)商實(shí)例CPU內(nèi)存
谷歌n1-standard-227.5
谷歌n1-standard-4415
谷歌n1-standard-8830
谷歌n1-standard-161660
Amazonm4.large28
Amazonm4.xlarge416
Amazonm4.2xlarge832
Amazonm4.4xlarge1664
微軟中型 (A2)23.5
微軟大型 (A3)47
微軟超大型 (A4)814
這里的目標(biāo)是比較不同云方案的CPU與內(nèi)存配置水平。其中谷歌與Amazon實(shí)例基本可以進(jìn)行一對一直接比較,而Azure實(shí)例類型則只與之對比CPU資源。
測試流程
在每一次測試當(dāng)中,CliQr基準(zhǔn)測試工具會將完整應(yīng)用程序部署至待測云環(huán)境當(dāng)中,創(chuàng)建一套額外的虛擬機(jī)以承載JMeter客戶端、執(zhí)行所交付之JMeter腳本、衡量事務(wù)吞吐能力,***關(guān)閉全部虛擬機(jī)。Pet Clinic當(dāng)中的JMeter腳本提供5000個事務(wù),OpenCart為6000個,BlogEngine則為7000個。
單一特定測試中的全部虛擬機(jī)都采用同樣的實(shí)例類型。舉例來說,面向Pet Clinic的谷歌n1-standard-4測試就需要利用n1-standard-4實(shí)例類型作為負(fù)載生成器、負(fù)載均衡器、兩套Tomcat服務(wù)器以及數(shù)據(jù)庫服務(wù)器。這種方式能夠簡化測試流程,但在真實(shí)世界的場景當(dāng)中,人們通常會在測試工作中通過排列方式對特定應(yīng)用層內(nèi)的實(shí)例規(guī)模區(qū)間者基準(zhǔn)衡量。
每項測試在同一周當(dāng)中的五天內(nèi)選擇一天進(jìn)行。以下圖表所示之結(jié)果代表著每組排列的平均事務(wù)吞吐能力。
Pet Clinic測試結(jié)果
隨著更多虛擬機(jī)加入到負(fù)載處理工作當(dāng)中,我們發(fā)現(xiàn)Pet Clinic的事務(wù)吞吐總量要高于我們示例中的其它測試應(yīng)用。在這些測試當(dāng)中,Amazon始終具備更出色的性能水平,谷歌次之,Azure排在***。而進(jìn)一步觀察相關(guān)數(shù)據(jù),可以看到Amazon在各個實(shí)例類型層級亦擁有更低廉的使用成本。
在Amazon測試結(jié)果中,哪種實(shí)例類型最適合承載我們構(gòu)建的應(yīng)用程序?這具體取決于業(yè)務(wù)優(yōu)先級決策,即以低成本為先還是以高速度為先。通過上圖可以清楚地看到,m4.xlarge實(shí)例類型的性能提升速度要低于與之對應(yīng)的成本提升速度。這意味著***性價比選項應(yīng)該是在m4.large與m4.xlarge之間(即Amazon的雙或者四CPU實(shí)例)。
OpenCart測試結(jié)果
大家可能還注意到,OpenCart測試產(chǎn)生的每秒事務(wù)數(shù)量要遠(yuǎn)低于Pet Clinic測試,這可能是因為前者的應(yīng)用程序架構(gòu)更為簡單。在立足于不同云環(huán)境進(jìn)行比較時,OpenCart結(jié)果更偏向于谷歌。這是否是因為雙層應(yīng)用程序?qū)W(wǎng)絡(luò)資源的需求更低,而Amazon的主要優(yōu)勢恰恰表現(xiàn)在網(wǎng)絡(luò)層面?又或者說,這是因為谷歌云更擅長承載PHP應(yīng)用程序,或者谷歌針對Ubuntu系統(tǒng)做出了精心調(diào)整?抑或是還有其它深層原因?我們恐怕還需要更為詳細(xì)的測試來揭曉這些答案,不過此次測試已經(jīng)證明不同應(yīng)用程序在不同云環(huán)境中會帶來極為顯著的運(yùn)行效果差異。
BlogEngine測試結(jié)果
BlogEngine的吞吐量與OpenCart測試基本相當(dāng),不過這項測試使用了微軟技術(shù)方案,因此不出所料Azure在測試Java與LAMP應(yīng)用時表現(xiàn)出一定優(yōu)勢。而***性價比平衡點(diǎn)基本介于四與八CPU配置之間,其中性能表現(xiàn)在超出四CPU配置后增幅趨于穩(wěn)定——我們在其它測試結(jié)果中看到了類似的情況。
總結(jié)陳詞
確定應(yīng)用程序更適合運(yùn)行在哪種云方案之上是一項非常復(fù)雜的任務(wù)。在這類測試工作當(dāng)中,我們發(fā)現(xiàn)黑盒測試能夠幫助大家對跨云與單一公有云內(nèi)不同實(shí)例類型的性能與成本做出有效比較。如果我們將VMware、OpenStack或者CloudStack等其它私有云實(shí)現(xiàn)方案納入進(jìn)來,則能夠勾勒出更為明確的性價比對照結(jié)論。除此之外,我們還可以進(jìn)一步擴(kuò)展所使用的監(jiān)測工具,例如Nagios、AppDynamics或者New Relic等等——它們能夠幫助我們了解Azure實(shí)例在低內(nèi)存容量情況下會帶來怎樣的運(yùn)行表現(xiàn)。
在公有云比照工作當(dāng)中,CliQr CloudCenter為黑盒測試方案開了個好頭。必須強(qiáng)調(diào)的是,每家企業(yè)都擁有著不同的關(guān)鍵性指標(biāo)作為優(yōu)化基礎(chǔ),而基準(zhǔn)測試工具則能夠幫助大家更好地以一對一方式獲取比較結(jié)論,從而帶來更為明智的業(yè)務(wù)決策。
原文標(biāo)題:How to choose the best cloud for your app
【51CTO.com獨(dú)家譯稿,合作站點(diǎn)轉(zhuǎn)載請注明來源】