因為 37signals 陸陸續續把所有的服務從雲端搬回地端,DHH 從去年開始寫了一系列相關的文章,開頭應該是這篇:「Why we're leaving the cloud」。
最近的「Cloud exit pays off in performance too」這篇看到個有趣的東西,提到現在的硬體可以很大台,大到可以直接吃整個 Basecamp 服務:
In fact, given that each of our new Dell R7625s have 196 vCPUs, we could actually run the entire Basecamp Classic application, including databases and Redis, on a single such machine! That's just astounding.
其實這也提到了另外一個問題,就是他們的東西一直沒做大,然後也沒有遇到超大的 peak XD
雲端比地端貴是大家都知道的前提 (把網路設備以及 storage 也考慮進來,整體硬體攤提成本來說大概是 1/3~1/4,而頻寬成本會差更多),但即使團隊會管機房,還是會採用雲端的原因 (優點):
- 節省了採購的人力成本。
- 讓老闆對於「短時間需要大量的資源」心安。
前者是大家都比較清楚的,在地端如果臨時要一批資料庫等級的機器,通常機房不會有這種等級的機器,需要跟廠商借機器來用,而且裝機再怎麼快也是半天的時機,而雲端上面直接 console 點一點就解決了。
後者是突然爆紅的狀態,幾乎不會發生 (i.e. 做夢),但是會是跟老闆推銷雲端的重要說詞之一;而且就算發生了,常常還是會遇到程式寫的不夠好,無法 scale out 解決問題,甚至是無法 scale up 解決問題。
所以 37signals 把服務都搬回地端是個正確的決定沒錯,但他提到單機就可以解決所有問題,代表量沒大到需要把 sharding 拿出來,其實有點悲傷... XD