結(jié)果的差異是如此的戲劇性,讓人很難相信這是同一個(gè)設(shè)備在進(jìn)行同一個(gè)測(cè)試。這是因?yàn)椴煌脑O(shè)備虛擬化的層不同,設(shè)備驅(qū)動(dòng)程序也就大不相同。單詞“不同”每次都以特別搞笑的方式出現(xiàn),卻造就了差異巨大的結(jié)果。
想想Lucene吧,這個(gè)常見(jiàn)的用于文本文件大集合索引的工具。在索引創(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)。
數(shù)據(jù)存儲(chǔ)
虛擬化影響作用巨大的地方是數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)庫(kù)強(qiáng)烈依賴(lài)磁盤(pán)驅(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)化的用于讀寫(xiě)數(shù)據(jù)的MongoDB,性能表現(xiàn)肯定優(yōu)于在企業(yè)自有設(shè)備上安裝的MongoDB?;萜赵坪蚏ackspace云則步調(diào)一致地提供MySQL服務(wù)。
許多企業(yè)嘗試用不同的數(shù)據(jù)庫(kù)技術(shù)做類(lèi)似的工作。他們減少虛擬化層并創(chuàng)建API,幫助客戶(hù)以比特而不是設(shè)備的方式購(gòu)買(mǎi)存儲(chǔ)量。他們相信基于高度優(yōu)化的運(yùn)營(yíng)系統(tǒng)肯定比客戶(hù)的正規(guī)機(jī)器性能優(yōu)越。
其他服務(wù)則強(qiáng)調(diào)不同的性能屬性。Amazon推出數(shù)據(jù)存儲(chǔ)解決方案的一攬子集合,他們打包比特?cái)?shù)據(jù)之后返還,但最有趣的云服務(wù)可能是Glacier,專(zhuān)為檢索時(shí)間可能達(dá)到“數(shù)小時(shí)“而設(shè)計(jì)的一種數(shù)據(jù)存儲(chǔ)服務(wù)。不是毫秒、不是秒,也不是分鐘–而是小時(shí)。
客戶(hù)當(dāng)然可以選擇另外一種設(shè)備并安裝最喜歡的存儲(chǔ)方案,但這樣托管的解決方案足以誘惑到為你做出決定。如果某家云平臺(tái)有你偏好的數(shù)據(jù)存儲(chǔ)層,你可以偶爾使用其他工具。
網(wǎng)絡(luò)選擇
另一個(gè)讓人困擾的主題是網(wǎng)絡(luò)。某些云–如戴爾云和SoftLayer云–提供連接到設(shè)備的私人網(wǎng)絡(luò)??蛻?hù)很容易創(chuàng)建一個(gè)只聽(tīng)取該私人網(wǎng)絡(luò)命令的數(shù)據(jù)庫(kù)設(shè)備,這也使數(shù)據(jù)庫(kù)能更安全地躲過(guò)來(lái)自公共網(wǎng)絡(luò)的攻擊。技術(shù)不夠完美因?yàn)樵频陌踩匀匀皇莻€(gè)“多云”的東西,但是個(gè)好的開(kāi)始。
其他一些供應(yīng)商提供了更多關(guān)于他們的云的一些詳盡的地理上的區(qū)別??蛻?hù)知道對(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)建一種專(zhuān)門(mén)針對(duì)客戶(hù)信息的蟑螂汽車(chē)旅館,數(shù)據(jù)存入但不希望輸出。如果創(chuàng)建一個(gè)巨大的處理數(shù)據(jù)的機(jī)器,就像來(lái)自“銀河系漫游指南”的來(lái)客,吸收大批量數(shù)據(jù)卻只提供一個(gè)數(shù)據(jù)作為答案,類(lèi)似的數(shù)據(jù)計(jì)劃頗具吸引力。
基礎(chǔ)知識(shí)之外
云最有趣的地方就是專(zhuān)門(mén)用途的設(shè)備。即便它們并不十分適用于當(dāng)前客戶(hù)常用的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)滿(mǎn)足狂熱的需求。他們協(xié)調(diào)基礎(chǔ)的運(yùn)營(yíng)系統(tǒng)、優(yōu)化JVM,性能更加卓越。Joyent聲稱(chēng)他們的設(shè)備速度比之前快3倍。真的嗎?這取決于你命令設(shè)備做些什么。如Amazon,在這部分,推出一種可以直接以Hadoop工作、幫助獲取備用機(jī)時(shí)間的云設(shè)備。
還有其他一些特征,于我而言最終無(wú)關(guān)緊要。有些云性能表現(xiàn)更優(yōu)異,更安全。最開(kāi)始它們吸引了我,但之后我就對(duì)此不再關(guān)注。了解設(shè)備的整體組裝益處多多,但多數(shù)開(kāi)發(fā)者需要侵入他們自己的統(tǒng)計(jì)數(shù)據(jù)以更清楚的了解設(shè)備組合的吞吐量??蛻?hù)需求可能變化無(wú)常,盡管如此,其他額外的性能特質(zhì)也許才是客戶(hù)需要的。
其他類(lèi)似的性能最后可能更加重要。云上的一些最新特征使自動(dòng)化設(shè)備大軍更方便,然后一點(diǎn)點(diǎn)的改變每一個(gè)設(shè)備的配置。Amazon云允許客戶(hù)以同樣的形象創(chuàng)建數(shù)百個(gè)新機(jī)器,然后配置信息,允許每臺(tái)設(shè)備自我修改,無(wú)需再單獨(dú)地登陸到每臺(tái)設(shè)備并配置相關(guān)信息。
類(lèi)似這種的性能的價(jià)值主要取決于運(yùn)行的工作類(lèi)型。如果你的設(shè)備僅用于統(tǒng)計(jì)數(shù)據(jù),各項(xiàng)特征間差異不大。但如果你想安裝和拆卸大型機(jī)組,自動(dòng)化配置的能力十分重要。對(duì)類(lèi)似這種的性能的更多支持的期望支配著人們的選擇,他們的工作是處理偶爾爆發(fā)的大數(shù)據(jù)。
最適合你的云
如果有一門(mén)可以展示以上所有的課程,那肯定是答案永遠(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í)開(kāi)放自由態(tài)度,允許客戶(hù)選擇其他不同的架構(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)真正完成。