如何為自己的應(yīng)用挑選最合適的云平臺(tái)

責(zé)任編輯:editor005

作者:核子可樂編譯

2016-02-29 13:56:49

摘自:51CTO

Amazon也許在速度與成本方面較Azure或者谷歌更具優(yōu)勢(shì),但反之亦然——實(shí)際情況取決于我們的具體工作負(fù)載類型。在這套組合當(dāng)中,我們已經(jīng)擁有了三款不同操作系統(tǒng)、三種不同編程語言以及三種不同應(yīng)用程序?qū)咏M合,這使得我們擁有更為寬泛的觀察視角。

Amazon也許在速度與成本方面較Azure或者谷歌更具優(yōu)勢(shì),但反之亦然——實(shí)際情況取決于我們的具體工作負(fù)載類型。

我們?cè)撊绾螢樽约旱膽?yīng)用程序挑選最為合適的云平臺(tái)匹配選項(xiàng)?這個(gè)問題如今正困擾著越來越多的企業(yè)IT部門,而要找到確切答案亦絕非易事。一般來講,實(shí)際選擇取決于應(yīng)用程序當(dāng)中數(shù)據(jù)的敏感程度。但在其它情況下,公有與私有云間的考量亦非常重要。與此同時(shí),業(yè)務(wù)目標(biāo)與速度或者價(jià)格是否需要做出針對(duì)性優(yōu)化也會(huì)極大影響最終決策。

當(dāng)然,性能與成本其實(shí)并不容易衡量,而且我們也沒辦法跨越不同云環(huán)境做出直觀比較。在今天的文章中,我們將共同利用CliQr測(cè)試方法幫助客戶做出考量,并從三大高人氣云選項(xiàng)——Amazon Web Services、微軟Azure以及谷歌Cloud Platform——與實(shí)例當(dāng)中找到最適合示例應(yīng)用程序集合的方案。

注意事項(xiàng)

作為一套企業(yè)級(jí)云管理平臺(tái),CliQr CloudCenter的作用在于執(zhí)行以下一系列黑盒測(cè)試。下面將要提到的各款應(yīng)用程序都利用CliQr的應(yīng)用配置機(jī)制進(jìn)行建模,其會(huì)將多個(gè)應(yīng)用層通過單一恒定模式配置至不同云平臺(tái)之上。除了提供治理(即由誰負(fù)責(zé)將哪些應(yīng)用程序配置至何處)與計(jì)量(即具體實(shí)現(xiàn)成本)能力之外,CliQr CloudCenter當(dāng)中還包含有一項(xiàng)黑盒基準(zhǔn)測(cè)試功能,旨在將每款應(yīng)用部署至目標(biāo)云當(dāng)中、利用JMeter為其提供負(fù)載并針對(duì)此次測(cè)試中各待評(píng)估云的每小時(shí)使用成本繪制數(shù)據(jù)吞吐圖表(即每秒事務(wù)數(shù)量)。

這里得出的結(jié)果并不一定符合大家對(duì)于特定云方案的認(rèn)知。相反,這部分結(jié)果的存在意義在于回答“某應(yīng)用適合配合哪種云”這一問題。隨著時(shí)間推移,微小差別可能會(huì)給各應(yīng)用程序帶來巨大的后續(xù)影響,而且這里給出的結(jié)果不應(yīng)被直接套用到其它場(chǎng)景當(dāng)中。

應(yīng)用程序

在本系列測(cè)試當(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塊存儲(chǔ)分卷。

OpenCart: 這款高人氣開源LAMP堆棧存儲(chǔ)端軟件包利用單一Apache虛擬機(jī)作為Web服務(wù)器,同時(shí)配合一套MySQL虛擬機(jī)作為數(shù)據(jù)庫。兩套虛擬機(jī)皆配置為運(yùn)行Ubuntu 12.04。與Pet Clinic類似,該數(shù)據(jù)庫服務(wù)器接入一套2 GB塊存儲(chǔ)分卷。

BlogEngine: 利用單一虛擬機(jī)實(shí)現(xiàn)這套利用IIS與微軟SQL Server構(gòu)建起的.Net博客平臺(tái)。

在這套組合當(dāng)中,我們已經(jīng)擁有了三款不同操作系統(tǒng)、三種不同編程語言以及三種不同應(yīng)用程序?qū)咏M合,這使得我們擁有更為寬泛的觀察視角。

實(shí)例類型

對(duì)不同云方案進(jìn)行基準(zhǔn)測(cè)試非常困難,因?yàn)槲覀兒茈y對(duì)不同類型的實(shí)例進(jìn)行一對(duì)一直接比較。很明顯,任何針對(duì)實(shí)例類型組合的測(cè)試工作都會(huì)帶來具有一定爭(zhēng)議性的結(jié)論。在本次實(shí)驗(yàn)中,我們使用以下配置。

供應(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)行一對(duì)一直接比較,而Azure實(shí)例類型則只與之對(duì)比CPU資源。

測(cè)試流程

在每一次測(cè)試當(dāng)中,CliQr基準(zhǔn)測(cè)試工具會(huì)將完整應(yīng)用程序部署至待測(cè)云環(huán)境當(dāng)中,創(chuàng)建一套額外的虛擬機(jī)以承載JMeter客戶端、執(zhí)行所交付之JMeter腳本、衡量事務(wù)吞吐能力,最后關(guān)閉全部虛擬機(jī)。Pet Clinic當(dāng)中的JMeter腳本提供5000個(gè)事務(wù),OpenCart為6000個(gè),BlogEngine則為7000個(gè)。

單一特定測(cè)試中的全部虛擬機(jī)都采用同樣的實(shí)例類型。舉例來說,面向Pet Clinic的谷歌n1-standard-4測(cè)試就需要利用n1-standard-4實(shí)例類型作為負(fù)載生成器、負(fù)載均衡器、兩套Tomcat服務(wù)器以及數(shù)據(jù)庫服務(wù)器。這種方式能夠簡(jiǎn)化測(cè)試流程,但在真實(shí)世界的場(chǎng)景當(dāng)中,人們通常會(huì)在測(cè)試工作中通過排列方式對(duì)特定應(yīng)用層內(nèi)的實(shí)例規(guī)模區(qū)間者基準(zhǔn)衡量。

每項(xiàng)測(cè)試在同一周當(dāng)中的五天內(nèi)選擇一天進(jìn)行。以下圖表所示之結(jié)果代表著每組排列的平均事務(wù)吞吐能力。

Pet Clinic測(cè)試結(jié)果

隨著更多虛擬機(jī)加入到負(fù)載處理工作當(dāng)中,我們發(fā)現(xiàn)Pet Clinic的事務(wù)吞吐總量要高于我們示例中的其它測(cè)試應(yīng)用。在這些測(cè)試當(dāng)中,Amazon始終具備更出色的性能水平,谷歌次之,Azure排在最后。而進(jìn)一步觀察相關(guān)數(shù)據(jù),可以看到Amazon在各個(gè)實(shí)例類型層級(jí)亦擁有更低廉的使用成本。

在Amazon測(cè)試結(jié)果中,哪種實(shí)例類型最適合承載我們構(gòu)建的應(yīng)用程序?這具體取決于業(yè)務(wù)優(yōu)先級(jí)決策,即以低成本為先還是以高速度為先。通過上圖可以清楚地看到,m4.xlarge實(shí)例類型的性能提升速度要低于與之對(duì)應(yīng)的成本提升速度。這意味著最佳性價(jià)比選項(xiàng)應(yīng)該是在m4.large與m4.xlarge之間(即Amazon的雙或者四CPU實(shí)例)。

OpenCart測(cè)試結(jié)果

大家可能還注意到,OpenCart測(cè)試產(chǎn)生的每秒事務(wù)數(shù)量要遠(yuǎn)低于Pet Clinic測(cè)試,這可能是因?yàn)榍罢叩膽?yīng)用程序架構(gòu)更為簡(jiǎn)單。在立足于不同云環(huán)境進(jìn)行比較時(shí),OpenCart結(jié)果更偏向于谷歌。這是否是因?yàn)殡p層應(yīng)用程序?qū)W(wǎng)絡(luò)資源的需求更低,而Amazon的主要優(yōu)勢(shì)恰恰表現(xiàn)在網(wǎng)絡(luò)層面?又或者說,這是因?yàn)楣雀柙聘瞄L(zhǎng)承載PHP應(yīng)用程序,或者谷歌針對(duì)Ubuntu系統(tǒng)做出了精心調(diào)整?抑或是還有其它深層原因?我們恐怕還需要更為詳細(xì)的測(cè)試來揭曉這些答案,不過此次測(cè)試已經(jīng)證明不同應(yīng)用程序在不同云環(huán)境中會(huì)帶來極為顯著的運(yùn)行效果差異。

  BlogEngine測(cè)試結(jié)果

BlogEngine的吞吐量與OpenCart測(cè)試基本相當(dāng),不過這項(xiàng)測(cè)試使用了微軟技術(shù)方案,因此不出所料Azure在測(cè)試Java與LAMP應(yīng)用時(shí)表現(xiàn)出一定優(yōu)勢(shì)。而最佳性價(jià)比平衡點(diǎn)基本介于四與八CPU配置之間,其中性能表現(xiàn)在超出四CPU配置后增幅趨于穩(wěn)定——我們?cè)谄渌鼫y(cè)試結(jié)果中看到了類似的情況。

  總結(jié)陳詞

確定應(yīng)用程序更適合運(yùn)行在哪種云方案之上是一項(xiàng)非常復(fù)雜的任務(wù)。在這類測(cè)試工作當(dāng)中,我們發(fā)現(xiàn)黑盒測(cè)試能夠幫助大家對(duì)跨云與單一公有云內(nèi)不同實(shí)例類型的性能與成本做出有效比較。如果我們將VMware、OpenStack或者CloudStack等其它私有云實(shí)現(xiàn)方案納入進(jìn)來,則能夠勾勒出更為明確的性價(jià)比對(duì)照結(jié)論。除此之外,我們還可以進(jìn)一步擴(kuò)展所使用的監(jiān)測(cè)工具,例如Nagios、AppDynamics或者New Relic等等——它們能夠幫助我們了解Azure實(shí)例在低內(nèi)存容量情況下會(huì)帶來怎樣的運(yùn)行表現(xiàn)。

在公有云比照工作當(dāng)中,CliQr CloudCenter為黑盒測(cè)試方案開了個(gè)好頭。必須強(qiáng)調(diào)的是,每家企業(yè)都擁有著不同的關(guān)鍵性指標(biāo)作為優(yōu)化基礎(chǔ),而基準(zhǔn)測(cè)試工具則能夠幫助大家更好地以一對(duì)一方式獲取比較結(jié)論,從而帶來更為明智的業(yè)務(wù)決策。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)