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