云點(diǎn)評(píng):深入分析八大公共云服務(wù)
從Amazon到Windows Azure,IaaS云在性能表現(xiàn)、復(fù)雜性和速度上存在著巨大差異。
云上的信息總是相當(dāng)簡(jiǎn)單:交出你的擔(dān)憂,IT管理人員和我們會(huì)幫你解決一切。忘掉撥皮抽骨般地安裝服務(wù)器和需要雙擊的引擎?zhèn)浞莅桑瑒e再擔(dān)心成千上萬(wàn)的東西會(huì)出錯(cuò)了。你只需向我們提供信用卡號(hào)和你的數(shù)據(jù),我們就能為你完成后續(xù)所有事情。
在過(guò)去的幾個(gè)月里,我都一直活在夢(mèng)里,那里我建造了一個(gè)遍及全球的龐大計(jì)算機(jī)王國(guó)。無(wú)處不在的設(shè)備將我的數(shù)據(jù)處理成極小的微小字位,然后又把他們處理成更多的數(shù)字。個(gè)人網(wǎng)絡(luò)在不同的設(shè)備間傳輸我那些零散的秘密信息以便其他人能夠處理數(shù)據(jù)并將其改造為漂亮的圖片。確實(shí),我的臺(tái)式機(jī)實(shí)在有點(diǎn)老舊而且本該可以使用更多的內(nèi)存條,但是我用瀏覽器創(chuàng)造了一支全球機(jī)器軍隊(duì),我能像“幻想曲”中的魔法師學(xué)徒那樣輕松自如地操縱他們。
好消息就是,與學(xué)徒不同,當(dāng)我讓這些機(jī)器離開,他們就能或多或少地消失。這就是云的妙處!當(dāng)你需要的時(shí)候,你就去購(gòu)買你需要的東西。哦!使用微軟Windows Azure Cloud存儲(chǔ)那一點(diǎn)點(diǎn)的數(shù)據(jù)字符串,我們需要掏一筆不定的經(jīng)常性費(fèi)用,不過(guò)還好技術(shù)支持已經(jīng)在調(diào)查如何消除這筆費(fèi)用,我希望速度能快一點(diǎn)。每次當(dāng)我看到幾便士的費(fèi)用單出現(xiàn)在我的信用卡賬單上時(shí),總會(huì)讓我想起這些數(shù)據(jù)字符串。
然后其他設(shè)備來(lái)了,隨之而來(lái)的是以美分計(jì)價(jià)的小筆費(fèi)用。大多數(shù)的幾元店巧妙地重新命名以適應(yīng)那些售價(jià)低于5美元的物品,但在云上,很有可能買設(shè)備就像買便宜的便士糖??傆腥嗽撟屵@些老式的設(shè)備廠商和廠商宣傳重新煥發(fā)生機(jī)。
關(guān)鍵不同
當(dāng)完成對(duì)所有的云的調(diào)查后,最驚人的發(fā)現(xiàn)就是云世界是如此顯著地變化多端。那些認(rèn)為云設(shè)施僅僅只是商品的人那就大錯(cuò)特錯(cuò)了。市場(chǎng)團(tuán)隊(duì)堅(jiān)持認(rèn)為云能讓我們?cè)陔娔X和存儲(chǔ)設(shè)備間轉(zhuǎn)換自如,就像可隨意替換的樂(lè)高積木那般方便,但這觀點(diǎn)不完全正確。所有的供應(yīng)商都試圖通過(guò)提供略有不同、略微優(yōu)秀的東西讓他們的產(chǎn)品和服務(wù)與眾不同。有時(shí)候你需要花點(diǎn)時(shí)間來(lái)正確找到不同產(chǎn)品間的不同之處,但對(duì)于付出大量工作努力的任何人而言,變更總是至關(guān)重要。
差異性總是伴隨著運(yùn)營(yíng)系統(tǒng)而產(chǎn)生。我們很容易認(rèn)為什么都是Linux因?yàn)長(zhǎng)inux無(wú)處不在,但那無(wú)視了在配給物上的對(duì)比。盡管諸如Ubuntu這樣的標(biāo)準(zhǔn)發(fā)行版本隨處可見,企業(yè)依然用細(xì)微或不那么細(xì)微的技術(shù)增強(qiáng)創(chuàng)造了他們自己的企業(yè)版本。舉例來(lái)說(shuō),Amazon Web Services(AWS,Amazon網(wǎng)頁(yè)服務(wù))和Google Compute Engine(GCE,谷歌計(jì)算引擎),二者都有他們專用于云的Linux系統(tǒng)。Rackspace使用者可以在一批免費(fèi)版本中選擇,也可以每月支付一定費(fèi)用購(gòu)買紅帽軟件的企業(yè)級(jí)Linux。
Linux不是唯一選擇。許多云系統(tǒng)可以使用Microsoft Windows系統(tǒng),但需要額外付費(fèi)。不過(guò)如果你采用微軟Windows Azure和戴爾云應(yīng)用,你就無(wú)需支付額外費(fèi)用,他們希望通過(guò)服務(wù)吸引微軟商店以便幫助他們更便捷地將越來(lái)越多的計(jì)算遷移至云上。穩(wěn)定地把錢花在了微軟技術(shù)的任何公司可以很順暢地使用微軟Windows Azure。還有一家Joyent Cloud,他們的特色是提高效率后的開放源代碼,稱作SmartOS(智能操作系統(tǒng))。
更深層次的差異性表現(xiàn)在視覺上。雖然所有這些設(shè)備從購(gòu)買Intel處理器到將其放到你的機(jī)架上都幾乎毫無(wú)區(qū)別,但事實(shí)是他們是大量的多心刀片機(jī)切割而成的虛擬機(jī)以方便使用。你無(wú)需在自己的地盤上租用一個(gè)單獨(dú)的設(shè)備--你只需注冊(cè)登記一組設(shè)備(中的一個(gè))或者按時(shí)間分?jǐn)偸褂谩?span style="background-color: rgb(250, 252, 241); font-family: 宋體; font-size: 12px; line-height: 18px;">#p#
基準(zhǔn)設(shè)備
當(dāng)你開始計(jì)時(shí)后,刀片機(jī)之間的不同之處就快速顯露出來(lái)。企業(yè)為了幫助我們,創(chuàng)造了衡量CPU性能的計(jì)量單位,但那些只是非常粗略的指標(biāo)。通過(guò)DaCapo收集的Java路徑,一種超級(jí)優(yōu)秀的Java應(yīng)用測(cè)試方法,我把電腦放到我那個(gè)龐大的計(jì)算機(jī)王國(guó)。DaCapo為這些測(cè)試配備了多種多樣的測(cè)試內(nèi)容,如在Java中作圖、啟動(dòng)Tomcat服務(wù)器等。由于每種標(biāo)準(zhǔn)都能對(duì)設(shè)備施加不同的壓力,不使用Java的人也能對(duì)不同設(shè)備的性能有一個(gè)全面而廣泛的認(rèn)知。

結(jié)果的差異是如此的戲劇性,讓人很難相信這是同一個(gè)設(shè)備在進(jìn)行同一個(gè)測(cè)試。這是因?yàn)椴煌脑O(shè)備虛擬化的層不同,設(shè)備驅(qū)動(dòng)程序也就大不相同。單詞“不同”每次都以特別搞笑的方式出現(xiàn),卻造就了差異巨大的結(jié)果。
想想Lucene吧,這個(gè)常見的用于文本文件大集合索引的工具。在索引創(chuàng)建測(cè)試中,基礎(chǔ)的SoftLayer設(shè)備可以很輕易地達(dá)到Amazon基本速度的兩倍還多。但索引創(chuàng)建完成后,SoftLayer搜索該索引的速度只比Amazon快30%多一點(diǎn)點(diǎn)。
不同設(shè)備在同一個(gè)云中的表現(xiàn)結(jié)果同樣也能讓人震驚。比如說(shuō)谷歌,提供了大量的不盡如你意的設(shè)備。高CPU設(shè)備的速度竟然與絕大多數(shù)標(biāo)準(zhǔn)的設(shè)備大略相同,最快也快不了多少。在Tomcat模擬實(shí)驗(yàn)中,Google下的設(shè)備跑出了兩倍的速度。令人費(fèi)解的是,在Avrora標(biāo)準(zhǔn)測(cè)試中,其速度比標(biāo)準(zhǔn)設(shè)備慢3倍之多。
在關(guān)于谷歌設(shè)備的測(cè)試中,舊的經(jīng)驗(yàn)法則總是真實(shí)的,但可能不是你所期待的真實(shí)。他們當(dāng)然也經(jīng)常出錯(cuò),增加CPU可以幫助多線程的某些測(cè)試,不過(guò)偶爾速度會(huì)減慢;增加內(nèi)存條也常常能起作用但不是每次都行。所有這些明顯的修復(fù)對(duì)測(cè)試速度中的變化更加困惑,大部分的測(cè)試容易在同一時(shí)段內(nèi)重復(fù),但一些(如XALAN解析器)變化巨大。
以上這些意味著你需要充分的知識(shí)和大量的實(shí)驗(yàn)來(lái)決定這個(gè)基本問(wèn)題:設(shè)備價(jià)值多少?當(dāng)賬單到期時(shí),我們就該考慮用這些基礎(chǔ)標(biāo)準(zhǔn)來(lái)衡量(設(shè)備)了。如果是創(chuàng)建Lucene索引而非只是搜索索引,那么很顯然SoftLayer更有價(jià)值。這種差異表明,如果我們想要最大化我們的收益,那么盡可能擴(kuò)大設(shè)備測(cè)試時(shí)間是十分必要的。你沒(méi)法想當(dāng)然地認(rèn)為每小時(shí)3美分的云設(shè)備一定比每小時(shí)4美分的設(shè)備更劃得來(lái)。#p#
數(shù)據(jù)存儲(chǔ)
虛擬化影響作用巨大的地方是數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)庫(kù)強(qiáng)烈依賴磁盤驅(qū)動(dòng)器的輸入輸出信號(hào)速度,虛擬化的一點(diǎn)點(diǎn)額外增加都能降低該速度。某些云不會(huì)對(duì)此有太多表示因?yàn)樗麄兇蟾耪J(rèn)為所有人都希望使用他們自己的數(shù)據(jù)庫(kù)設(shè)備。
有些云平臺(tái)則提供以字節(jié)計(jì)費(fèi)的特殊數(shù)據(jù)存儲(chǔ)服務(wù)。比如SoftLayer,向那些單獨(dú)的設(shè)備提供特別優(yōu)化的用于讀寫數(shù)據(jù)的MongoDB,性能表現(xiàn)肯定優(yōu)于在企業(yè)自有設(shè)備上安裝的MongoDB?;萜赵坪蚏ackspace云則步調(diào)一致地提供MySQL服務(wù)。
許多企業(yè)嘗試用不同的數(shù)據(jù)庫(kù)技術(shù)做類似的工作。他們減少虛擬化層并創(chuàng)建API,幫助客戶以比特而不是設(shè)備的方式購(gòu)買存儲(chǔ)量。他們相信基于高度優(yōu)化的運(yùn)營(yíng)系統(tǒng)肯定比客戶的正規(guī)機(jī)器性能優(yōu)越。
其他服務(wù)則強(qiáng)調(diào)不同的性能屬性。Amazon推出數(shù)據(jù)存儲(chǔ)解決方案的一攬子集合,他們打包比特?cái)?shù)據(jù)之后返還,但最有趣的云服務(wù)可能是Glacier,專為檢索時(shí)間可能達(dá)到“數(shù)小時(shí)“而設(shè)計(jì)的一種數(shù)據(jù)存儲(chǔ)服務(wù)。不是毫秒、不是秒,也不是分鐘--而是小時(shí)。
客戶當(dāng)然可以選擇另外一種設(shè)備并安裝最喜歡的存儲(chǔ)方案,但這樣托管的解決方案足以誘惑到為你做出決定。如果某家云平臺(tái)有你偏好的數(shù)據(jù)存儲(chǔ)層,你可以偶爾使用其他工具。
網(wǎng)絡(luò)選擇
另一個(gè)讓人困擾的主題是網(wǎng)絡(luò)。某些云--如戴爾云和SoftLayer云--提供連接到設(shè)備的私人網(wǎng)絡(luò)。客戶很容易創(chuàng)建一個(gè)只聽取該私人網(wǎng)絡(luò)命令的數(shù)據(jù)庫(kù)設(shè)備,這也使數(shù)據(jù)庫(kù)能更安全地躲過(guò)來(lái)自公共網(wǎng)絡(luò)的攻擊。技術(shù)不夠完美因?yàn)樵频陌踩匀匀皇莻€(gè)“多云”的東西,但是個(gè)好的開始。
其他一些供應(yīng)商提供了更多關(guān)于他們的云的一些詳盡的地理上的區(qū)別。客戶知道對(duì)自己的設(shè)備放在哪里,方便決定將數(shù)據(jù)存儲(chǔ)在什么地方。尤其有些多疑的企業(yè)人員,他們管理著特別重要的數(shù)據(jù)。他們可以創(chuàng)建一個(gè)龐大的設(shè)備帝國(guó),將數(shù)據(jù)備份存儲(chǔ)在不同地點(diǎn),以更好地抵御風(fēng)暴、火災(zāi)及其他洪澇災(zāi)害。比如谷歌公司對(duì)不同數(shù)據(jù)中心的帶寬成本十分清楚,因此,數(shù)據(jù)在不同帶寬間傳輸?shù)某杀緝r(jià)格高出在同一數(shù)據(jù)中心傳輸?shù)膬r(jià)格。
帶寬計(jì)量有可能造成混亂。例如戴爾云,不收取傳入流量的任何費(fèi)用,簡(jiǎn)化測(cè)量與核算,而創(chuàng)建一種專門針對(duì)客戶信息的蟑螂汽車旅館,數(shù)據(jù)存入但不希望輸出。如果創(chuàng)建一個(gè)巨大的處理數(shù)據(jù)的機(jī)器,就像來(lái)自“銀河系漫游指南”的來(lái)客,吸收大批量數(shù)據(jù)卻只提供一個(gè)數(shù)據(jù)作為答案,類似的數(shù)據(jù)計(jì)劃頗具吸引力。 #p#
基礎(chǔ)知識(shí)之外
云最有趣的地方就是專門用途的設(shè)備。即便它們并不十分適用于當(dāng)前客戶常用的PHP碼,它們也可以更便捷地處理未來(lái)挑戰(zhàn)。如Amazon,有一組顯卡(GPU)用于任何你夢(mèng)想和使用的算法,執(zhí)行簡(jiǎn)單易操作。物理學(xué)家、生物學(xué)家以及計(jì)算機(jī)科學(xué)家都已經(jīng)改變算法,在這批顯卡上運(yùn)行。這僅僅只是云讓我們更方便地嘗試新架構(gòu)的一個(gè)例子。
這些特殊的計(jì)算機(jī)裝置也不是任何時(shí)候都需要特殊的硬件設(shè)備。好多云--包括Amazon、Joyent、Windows Azure等--提供特別的Hadoop設(shè)備來(lái)滿足狂熱的需求。他們協(xié)調(diào)基礎(chǔ)的運(yùn)營(yíng)系統(tǒng)、優(yōu)化JVM,性能更加卓越。Joyent聲稱他們的設(shè)備速度比之前快3倍。真的嗎?這取決于你命令設(shè)備做些什么。如Amazon,在這部分,推出一種可以直接以Hadoop工作、幫助獲取備用機(jī)時(shí)間的云設(shè)備。
還有其他一些特征,于我而言最終無(wú)關(guān)緊要。有些云性能表現(xiàn)更優(yōu)異,更安全。最開始它們吸引了我,但之后我就對(duì)此不再關(guān)注。了解設(shè)備的整體組裝益處多多,但多數(shù)開發(fā)者需要侵入他們自己的統(tǒng)計(jì)數(shù)據(jù)以更清楚的了解設(shè)備組合的吞吐量??蛻粜枨罂赡茏兓療o(wú)常,盡管如此,其他額外的性能特質(zhì)也許才是客戶需要的。
其他類似的性能最后可能更加重要。云上的一些最新特征使自動(dòng)化設(shè)備大軍更方便,然后一點(diǎn)點(diǎn)的改變每一個(gè)設(shè)備的配置。Amazon云允許客戶以同樣的形象創(chuàng)建數(shù)百個(gè)新機(jī)器,然后配置信息,允許每臺(tái)設(shè)備自我修改,無(wú)需再單獨(dú)地登陸到每臺(tái)設(shè)備并配置相關(guān)信息。
類似這種的性能的價(jià)值主要取決于運(yùn)行的工作類型。如果你的設(shè)備僅用于統(tǒng)計(jì)數(shù)據(jù),各項(xiàng)特征間差異不大。但如果你想安裝和拆卸大型機(jī)組,自動(dòng)化配置的能力十分重要。對(duì)類似這種的性能的更多支持的期望支配著人們的選擇,他們的工作是處理偶爾爆發(fā)的大數(shù)據(jù)。
最適合你的云
如果有一門可以展示以上所有的課程,那肯定是答案永遠(yuǎn)不會(huì)被削減,毫無(wú)水分。你最便宜的設(shè)備,對(duì)我而言可能不是最便宜;你的最佳帶寬成本計(jì)劃也許對(duì)我來(lái)說(shuō)有些昂貴;基礎(chǔ)標(biāo)準(zhǔn)隨著數(shù)據(jù)存儲(chǔ)的價(jià)格而變化。在做出決定前,我們都是被系統(tǒng)逼迫著耗時(shí)耗力處理數(shù)據(jù)、運(yùn)行測(cè)試。
這部分很有趣。云可能看起來(lái)像可以解決一串服務(wù)器上運(yùn)行的所有復(fù)雜問(wèn)題,但提供商要做的是解決讓人困擾的所有難題,同時(shí)開放自由態(tài)度,允許客戶選擇其他不同的架構(gòu)設(shè)施。由于我們無(wú)需對(duì)備份生成件和機(jī)架容量產(chǎn)生過(guò)多擔(dān)心,企業(yè)選擇正變得越來(lái)越透明,也越來(lái)越便捷。在花費(fèi)數(shù)月時(shí)間在我那龐大的機(jī)器王國(guó)之后,我也僅僅只是意識(shí)到我還沒(méi)真正完成。