?作者 | 云昭
“離開云計算”,自去年10月下旬提出這個打算后,DHH一直在馬不停蹄地實現這個目標。
近日,他發布一條博文,給出了更具體的目標:入秋前就可實現“云退出”目標。根據初步計算,這樣的話,五年內節省大約700萬美元的服務器費用,而且運維團隊的規模也不會有太大變化。
一、裸機:一年只需12萬
如此豪情源自于這樣一個契機:DHH所在的公司37signals在與一家企業Kubernetes供應商商進行了一次短暫的迂回之后,他們開始自己構建的工具,并在幾周前成功地將第一個小型應用程序移出了云計算。
粗略的計算是這樣的:2022年,我們在云上花費了320萬美元。其中不到一百萬是在S3中存儲8 PB的文件,并在多個地區完全復制。因此,其他一切都需要花費約230萬美元:應用服務器、緩存服務器、數據庫服務器、搜索服務器等。這是我們計劃在2023年將預算歸零的部分。然后我們將擔心2024年從S3退出8PB。
經過深思熟慮、多次基準測試,加上對AMD新的Zen4芯片與第4代NVMe驅動器的結合表現出的驚人速度,可以說,DHH表示,公司差不多準備好向Dell下訂單了,大約60萬美元。
目前仍在精確調整所需的配置,但最終會在每個數據中心訂購8臺運行雙64核CPU的機器(每臺機器總共256個vCPU。此外,還需要為兩個數據中心,分別添加大約2000 vCPU,因此將會有4000 vCPU用于性能和冗余。
在云時代,花60萬美元購買一堆硬件可能聽起來很不值,甚至有些吃虧。但如果你在保守的五年內分期償還,每年只需12萬美元!而且,DHH補充道,別忘了這些機器中有很多即便七年以后也能繼續運行。
二、機架安裝也很省
當然,光服務器還不夠,服務器只是盒子。它們還必須連接到電源和帶寬。目前DHH的做法是,通過Deft,每月在兩個數據中心之間的八個專用機架上花費約6萬美元。同時,公司還特意調配了多余的空間,這樣我們就可以在現有機架中安裝所有這些新服務器,而不需要更多空間或電源。因此,這方面算下來,支出會保持在每年72萬美元左右。
整體算下來,每年需要花費總計84萬美元。帶寬、功率,還有攤銷計劃為五年的服務器。相比之下,37Signals在云計算的開銷則近三倍,為230萬美元。
而且,這樣做的好處在于,公司將擁有更快的硬件、更多的內核、更便宜的NVMe存儲,以及以極低的成本進行擴展的空間(只要每個DC仍能容納四個機架)。
任何具有穩定工作負載的中等規模SaaS企業和更高級別的企業,DHH建議需要將云服務器的租賃費用,和自己購買服務器的方案進行比較,如果沒有做考量,那將會犯嚴重的財務錯誤。“我建議你先給戴爾打電話,然后再給Deft打電話。獲取一些真實世界的數字,做決定吧!”DHH如是說。
三、被證偽的質疑
有人質疑DHH這種將硬件成本和托管硬件的成本進行比較的做法。
這是一個奇怪的數學:將硬件成本與托管硬件成本進行比較。“我不是云供應商的托兒,但230萬美元不僅僅是‘帶寬、功率和裸機’。您可以獲得身份訪問管理、用戶控制臺、CLI、免費Terraform插件(開發和維護成本不低)、計費報告、靈活分配現貨實例以應對峰值(系統從不面臨峰值嗎?)以及其他許多功能。”
具體展開,例如,如何確保從這些裸機訪問遠程S3服務器?如果您計劃托管S3集群,那么這不在84萬美元的賬單中。
另一個例子,DHH另一篇博文《Why we're leaving the cloud》中提到使用AWS關系數據庫(RDS)和ES。托管數據庫是一回事;操作數據庫則是另一回事,而且更昂貴。他是否將備份文件存儲在/tmp fyles系統的tarball中?如果沒有,誰開發和維護該解決方案?
他不可能沒有考慮過應對這一現實,或者他認為平臺的“創建和運營”成本將低于150萬美元/年。(經筆者查證:事實是,其實有關存儲這塊的費用,HDD已經考慮在內了,繼續沿用云托管存儲方案。)
當然,公有云自然也會有好處,一位朋友說出了數據中心被不可抗力毀于一旦的故事。
“在我工作的一個地方,我們的辦公室數據中心遭到雷擊。至少可以說是一團糟。而上云則不同。大約4年前,當Azure出現問題時,美國西南部數據中心(US Southwest data center)將Azure的其余部分帶走,而它在崩潰時,我們沒有丟失任何數據,也不必進行消防演習來修復任何問題。”
另一方面,如果停機時間不是非常關鍵,并且不需要擴展和其他云功能,那么自托管成本可能會低得多。
四、三點啟發
每次有人發布這些關于離開云后節省了多少成本的信息時,他們無外乎采取這些措施:
要么使用不利用任何云平臺功能的系統設計。
要么將自行管理的工資、停機、機會成本,而且將復雜性和開發之間的摩擦視為免費的,因為很難量化所有這些信息。
但此次云賬單爆表到下云的實踐之所以得到圈內關注,帶來了三點啟發。
1.云暴露的問題
云彈性擴展有些不給力。假設一個“吃瓜”事故突然發生,突然有500萬人想立即訪問網站,云的擴展速度會非常緩慢。在真實的突然高負載場景中,規模擴大簡直像一個謊言。
一位評論者提到自己公司使用的K8s集群,需要很長時間來擴展可用的節點數量,即EC2實例。它們的運行開銷大約為10個空閑節點(并且總是會少一個CPU,或者少1GB RAM……),但一旦它們滿了,例如,當一個很高的負載進入時,則需要2-5分鐘才能擴展。
這位吐槽說:“我真的不知道什么是好云了。它的規模不快,安裝不容易,也不便宜。你唯一能節省的就是購買硬件等前期費用。”
正如另一位在擴展方面感到頭疼的朋友所言,在不同的現場活動中,云廠商要么為不同的客戶機重新分配能力不足的服務器,要么在活動中達到上限并失敗,這是一個持續存在的問題。
再一個就是服務態度問題。“當活動產生故障向客服反饋后,他們的結論是,不是配置問題,也不是擴展問題,而是客戶端的問題,他們太頻繁發出請求了~”
2.私有云的實踐參考
關于Hey的下云遷移、可能節省的成本以及可能產生的額外成本,有很多討論。我認為這可能是一個很好的長期案例研究,相信對于云原生的落地,未來如何根據公司實際情況進行取舍,有了更進一步的實踐參考。
因為巨頭總是少數的,大多數公司可能會考慮在這兩個領域進行投資——購買裸機以獲得固定負載,然后使用云來實現可變負載和冗余。
當然,并不是所有的私有云都能省錢。一位人士指出,我們嘗試使用自己的私有云。這不值得。當我研究AWS生態系統時,我發現保留一些基礎設施并采用混合模式是我公司的最佳解決方案。比如,在云中歸檔內容更輕松些,同時減少了本地服務器的維護時間。尤其是當一個舊的基礎設施到處運行RAID6時。
也有這樣一種觀點,雖然AWS、Azure等云服務解決方案并不完美,但專業化之所以有效,是因為大規模的系統往往更便宜。
3.價值主張的探討
有人士分析,DHH還沒有將在這個項目上浪費的人力資源計算在內,其實這個項目所占用的資源本可以用來構建更實際的差異化功能。
但反駁者則認為,這一點有些避重就輕,因為這種觀點忽略了勞動力資本的價值。如果他們把這些錢花在了改善公司的勞動環境和待遇上,而不是為了一個沒有明顯更好的服務水平的云廠商而燒掉這些錢,那么即便他們為內部積累豐富經驗而燒掉了700萬美元或更多,也是一個合理的價值主張。為一項專項服務而付費,還是為提升內部經驗和能力買單,你說哪個劃算??