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