37signals經(jīng)驗談:堆內(nèi)存和SSD做向上擴展也很不錯
譯文【51CTO精選譯文】本文是High Scalability作者Todd Hoff的一篇分享文章,對37signals最近分享的兩篇文章進行了摘要說明。37signals應該很多人都知道了,它是Ruby on Rails的發(fā)源地,Campfire等產(chǎn)品背后的公司。全文如下:
這年頭,IT業(yè)界出現(xiàn)了形形色色的架構概念,其中的兩大爭論是云計算與裸機之爭,以及內(nèi)存、磁盤與SSD之爭。37signals發(fā)表了兩篇頗有見地的文章,逆炒作周期(hype cycle)而行之,中心思想分別如下:
- 那些在每MB內(nèi)存賣1000美元的年代長大的技術人員很難適應將內(nèi)存幾乎視作免費的時代;
- 技術的進步正在促使人們將大量的優(yōu)化扔進被標注為“過早XX”的垃圾桶。
37signals在Basecamp的緩存層上僅僅花了1.2萬美元就買到了864GB內(nèi)存,這引起了一陣轟動。花的錢不多,但內(nèi)存容量很大,這是不是使基于內(nèi)存的架構更吸引人了?
隨后,37signals緊接著發(fā)表了另一篇發(fā)人深省的文章:《三年后,摩爾先生仍在讓我們寄希望于數(shù)據(jù)庫分片》。簡單來講就是說,向上擴展對他們是適用的。內(nèi)存變得越來越便宜,F(xiàn)usionIO變得越來越快,所以他們得以避免數(shù)據(jù)庫分片這樣的復雜架構問題。這是不是使基于SSD的架構更吸引人了?
StackExchange的情況也一樣,雖然使用不同的堆棧,但是核心概念和結果是大同小異的。你要明白,在面向事務的功能中,如果你的要求不像Google那么高,那么使用裸機、內(nèi)存和SSD實現(xiàn)向上擴展不失為一條出路。你覺得云計算和橫向擴展很牛,但這可能不過是一種思維反射而已。
幾點心得:
•SSD正在加快發(fā)展,也就是說Basecamp未來可能一直都不會需要進行分片。
•內(nèi)存在云端和VPS上仍然很貴。所以若想改用內(nèi)存架構,就要走裸機道路。一位好心的讀者留言分享了幾個數(shù)據(jù):彈性緩存差不多是每月2萬美元購買800GB內(nèi)存(12 X Quadruple Extra Large節(jié)點/68GB)。
•37signals將FusionIO用于其數(shù)據(jù)庫,但由于要將內(nèi)存安裝到三臺服務器上,所以使用內(nèi)存是成本更低的出路。
•BaseCamp的容量規(guī)劃問題相對容易預測,所以裸機的成本效率要比云計算高得多。如果你的服務跟Netflix一樣不好預測,那么相對應的取舍可能會不一樣。
•SSD的密度比內(nèi)存高,成本比內(nèi)存低,但是速度比內(nèi)存慢得多。內(nèi)存加快了讀寫速度,而SSD加快讀操作的效果勝過加快寫操作的效果。
•37signals通過在所有系統(tǒng)中添加冗余機制來處理故障。所有數(shù)據(jù)庫都有復制的副本。與備用服務器一樣,額外容量也得到了保留。到目前為止還沒有做跨地域冗余。
•數(shù)據(jù)結構更改是大多數(shù)關系數(shù)據(jù)庫存在的一個臭名昭著的瓶頸,它在SSD上倒是問題不大。用戶仍可以將大量的表緩存到內(nèi)存中。
相關鏈接:
- Google Groups討論帖:運行在內(nèi)存上的數(shù)據(jù)庫
- 三年后,摩爾先生仍讓我們寄希望于數(shù)據(jù)庫分片
原文: 37signals Still Happily Scaling on Moore RAM and SSDs
【編輯推薦】