Ruby on RAIls 之父David Heinemeier Hansson(以下簡稱“DHH”)向來立場鮮明,言辭激進,其發(fā)言屢屢引起爭議。
日前,DHH發(fā)布的一篇題為《我們的云退出已經(jīng)節(jié)省了100萬美元/年》的文章,再次點燃了技術論壇上的一把火。
1、當“上云”變成坑,不如果斷“下云”
今年6月,DHH就高調(diào)宣布“我們已經(jīng)離開云了”。
這里的“我們”指的是Basecamp團隊。
Basecamp是37signals公司旗下的一款基于云服務的項目管理軟件,上云已有十多年之久。而Basecamp在2020年推出的電子郵箱服務HEY也一直在云端運行。作為Basecamp & HEY 的聯(lián)合創(chuàng)始人,DHH在去年十月發(fā)布了“下云”宣言。
作為資深云用戶,Basecamp嘗試過亞馬遜云、谷歌云,使用過裸虛擬機、Kube.NETes,稱得上體驗過云的大部分功能。但他們最終得出的結論是:
“對于像我們這樣增長穩(wěn)定的中型公司來說,租用IT基礎設施大致上是一筆糟糕的交易。在降低復雜性等方面的承諾從未實現(xiàn)。所以我們計劃離開。”
不過DHH并未全盤否定云的作用。在他看來,有兩種情況,云是更適宜的選擇。
其一,當你的應用程序非常簡單且流量很低時,可以使用完全托管的服務來減少復雜性。其二,當你的負載波動非常不規(guī)律時,誰都無法預判到底是需要10臺服務器還是100臺服務器的情況下,上云就是更好的選擇。
但對Basecamp來說,這兩種情況都不適用。在DHH看來,如果繼續(xù)堅持在云端運行,不但不能發(fā)揮云服務的優(yōu)勢,而且還要為某些微小的可能性付出近乎荒謬的溢價。
“就像你明明沒有住在地震帶的附近,但你花了近四分之一的房價去買了抗震保險。”正如DHH的描述,為某些可能性去花費大的代價,固然不能全盤否定,但總體上還是得不償失、浪費資源。
以電子郵件服務HEY為例。DHH提到,他們每年為此向亞馬遜的數(shù)據(jù)庫(RDS)和搜索(ES)服務支付50多萬美元。“你知道在每年50萬美元的預算下,可以買多少臺超級強大的服務器嗎?”
此外,對于某些認為“云能簡化運維,更節(jié)省人力”的說法,DHH也直接否定了。
“任何認為在云端運行像HEY或Basecamp這樣的大型服務很‘簡單’的人,都是紙上談兵。總的來說,我還沒有聽說過像我們這樣規(guī)模的組織,僅僅因為遷移到云端,就能實質(zhì)性地大幅縮減運維團隊。”
2、每月的云支出:從18萬美元下降到8萬美元
具體到執(zhí)行云退出策略時,總有人說:上云容易下云難。
但在DHH的表述中,這句話對于Basecamp似乎也不適用。
“因為我們花了好幾年才進入云端,所以我原本以為,我們也要花好幾年才能出來。但是,所有將我們的應用程序容器化并為云做準備的工作實際上使退出變得相對容易。經(jīng)過六個月的努力,它完成了。”
從云中退出只是策略,能看到實際支出的下降才能證明策略的有效性。在今年6月官宣正式回歸本地后,云退出后的效果也逐漸展露。
“我們的云支出(sans-S3)已經(jīng)下降了60%。從每月18萬美元下降至不到8萬美元。按年計算,這是整整100萬美元的結余。另外,剩余的支出在今年余下的時間里逐漸減少之前,我們在9月份還會迎來另一個大幅下降。”
當然,為了回到本地,Basecamp不得不另外花費50萬美元采購了新的服務器來取代云租賃。
DHH認為:“雖然額外的服務器會帶來一些額外的成本,但在整體計劃中,這些成本都是微不足道的(例如,運維團隊保持不變)。通過節(jié)余和支出的基本對比,還可以看到,我們在不到6個月的時間里,就可以用每個月省下來的錢來買大宗設備了。”
更重要的是,DHH并不認為Basecamp的案例是個例。如今,云退出后實際產(chǎn)生的效果似乎也印證了他早前的警告——
首先,在企業(yè)生命周期的早期,云計算對企業(yè)來說是有一席之地的,這樣的花費要么微不足道,要么24個月后它們將不復存在的風險很高。
然后,要小心,不要把那些奢侈的云積分當成禮物。這往往是一個鉤子,如果你過多地將自己與他們的專有托管服務或無服務器產(chǎn)品捆綁在一起,一旦賬單開始飆升,你將很難逃脫。
再者,有些公司的負載波動很大,這種情況下云租賃是有意義的。但如果一年中,你只有三天要用到犁,那么把它放在谷倉的363天就是沒有意義的。
最后,大多數(shù)老牌公司應該考慮一下所謂上云熱潮。哪些是實際起效的,哪些是營銷夸大的。因為實踐中,云計算可能并不如你預期的那樣可以削減復雜性,而且溢價有時也很嚴重。
3、當我們考慮云時,我們到底在考慮什么?
關于DHH主張的云退出策略,有人支持,也有人反感。
Reddit論壇上,有技術人員認為,云的最大優(yōu)勢是其實不在于節(jié)省成本,而在于以下四點:
1、靈活性。如果采用云服務,就不可能出現(xiàn)“我們剛剛訂購了大量昂貴的服務器,然后才意識到我們的應用程序無法在它們上面運行”。
2、責任下放。如果備份不起作用,那么你可以起訴云提供商。“在我的公司,托管數(shù)據(jù)庫占所有云成本的一半以上,但沒有人質(zhì)疑這一點,因為我們意識到自托管的風險。”
3、易于使用。每個云提供商都為不同的用例提供了許多解決方案,并且所有這些系統(tǒng)都相互集成。這樣可以節(jié)省大量時間。
4、安全和保障。許多公司陷入了困境,因為他們的機房被毀、被淹或遭到其他什么意外。使用云服務時,這種可能性要小得多。
也有人認為,上云還是下云,有時并不是單純的技術架構的問題。
“我還沒看到有人提過使用云架構的明顯問題,但它與使用其他服務的問題相同。服務提供商可以在‘鎖定’足夠多的人之后提高價格。這意味著從非云過渡到云,可能會帶來短期成本的下降,以季度或年度為單位看收益的人也許會覺得不錯,但長期來看,一切都可能搞砸。”
還有人覺得,如果公司對于自身定位,還有長遠發(fā)展沒有明晰的認知,那么對于云的選擇也將曖昧不清。
“我想大多數(shù)人都知道,這通常是一種成本效益分析,你需要更少的人來構建云基礎設施,有能力在很少的交付時間內(nèi)大規(guī)模擴展,并獲得許多可以以低成本試用的功能。對于使用特定技術的可預測的工作負載來說,使用本地是更好的,而且更便宜。但關鍵在于,許多公司不知道他們想要什么,也不知道X年后他們會是什么樣子。”
放眼當下,云計算發(fā)展至今,關于上云益處的聲音被廣泛傳播,但事實上,云環(huán)境并不一定是運行所有應用程序的最佳場所。當云托管不符合預期時,考慮云退出也是一種選擇。但是否真的要實施云退出,對于下云的復雜性是否有準備,以及什么樣的云策略才是真正符合企業(yè)長期發(fā)展利益的,都需要審慎考量。