當前,雲計算提供商已經提供了從開發者體驗到硬體的端到端解決方案:
假如雲計算提供商把精力集中在最底層,而其他(純軟體)提供商專注於上面的一層,又會如何呢?
我對雲計算提供商(AWS、Azure、GCP)有這樣以下預測:
- 雲計算提供商將越來越多地關注堆疊中的最底層;
- 基本上就是透過 API 來租用其資料中心的容量,其他純軟體提供商會在它上面構建資料庫、執行程式碼等。
五年後,你們可以來打我的臉。但是我認為 Redshift 的故事很好地解釋了這些觀點。
雲計算的發展
在 Redshift 誕生之前,Teradata 是這個市場的主要參與者 ,曾推出了 On-prem 。當時的初創公司拒絕 SQL,而使用 Hadoop SQL 也顯得有點笨拙。Redshift 是 AWS 提供的資料倉庫(也稱為 OLAP 資料庫)。資料庫管理系統提供商 ParAccel,透過 AWS 獲得技術授權,在 2012 年推出了 Redshift。
Redshift 是當時第一個執行在雲端的資料倉庫。Redshift 立即降低了小型公司進行資料分析的門檻。企業不必自己建立任何基礎設施或者整天編寫自定義的 MapReduce、重新載入 jobtracker。反而,企業可以在 AWS 中啟動一個 Redshift 叢集,為其提供大量的資料,然後再正常執行。
同樣在 2012 年,我在偶然與 Snowflake 創始人共進午餐,第二天就獲得了一個工作機會。當時的 Snowflake 還很小,但現在它已經是一家上市公司,市值超過 1000 億美元。總體來說,Snowflake 的產品與 Redshift 類似。
不過,Snowflake 和 Redshift 在架構上有一大差異。 Snowflake 很早就做了完全解耦。AWS 於 2016 年推出了基於 Presto 的 Athena,在 2017 年推出了 Redshift Spectrum,使用者可以透過 Redshift 查詢 S3 中的資料。Redshift 現在才釋出無伺服器產品,但他們可能早就該如此。
Redshift 剛釋出時確實帶來了很多好處。AWS 具有龐大的規模經濟,能夠控制底層資源(EC2),併為構建軟體做出更大的投資,他們甚至對 RedShift 開發進行補貼。
8 年後,事情發生了一些變化。Snowflake 的發展已經超過了 Redshift。
是什麼力量支援著像 Snowflake 這樣公司的發展?這對其他雲產品意味著什麼?有人認為,最底層的雲服務就是純粹的商品服務。所以,為了盈利至少需要做到以下一項:
- 在堆疊的高層賺錢。
- 在堆疊中使用較高的服務來鎖定客戶,再從堆疊的底層賺錢。
從歷史的角度來看,這些都有道理。但是,一些有趣的事情正在朝向另一個方向發展:
“頭部軟體”的競爭變得異常激烈。很多的創業公司在風投推動下追逐熱點,並且願意投入數十億美元用於軟體開發。雲計算提供商可能很樂意僅從最底層賺錢。利潤率並不會那麼糟糕,而且提供商的鎖定度仍然相當高。
初創公司紛紛湧入雲計算
從未有如此之多的公司尋求雲計算服務:
這期間發生了什麼呢?我認為至少有三種不同的因素:
- 大公司的激勵機制往往抑制了新想法的出現。與此同時,風險投資公司正將資金投入到該領域。假如你是個有抱負的人,你是去 AWS 工作,還是加入早期的初創公司,抑或自己創業?創新有望從大公司向初創公司轉移。
- 一家軟體提供商可以同時為所有的雲計算提供商開發。對於 Snowflake,我認為這確實是個好訊息,因為早期客戶很關心多雲。Snowflake 也擴大了市場規模,甚至超過了任何雲計算提供商。
- 許多成功的雲產品開始於內部服務。亞馬遜、谷歌和微軟等已經做了榜樣,他們在內部大規模測試後發現,這些工具非常適合其大型企業客戶。但另一方面,由於過於注重規模、可靠性和可配置性,開發者的體驗已成為攻擊媒介,尤其中端市場和小型企業可能更關心提高開發者的工作效率。Uber、Netflix 和 Airbnb 等規模稍大的公司都有團隊離職後,將內部工具商業化(通常是透過開源的中間步驟)。這些工具主觀上更傾向於關注開發者的體驗。
雲計算提供商們怎麼盈利
據報道,EC2 的利潤率在 50% 左右,而 AWS 整體利潤率在 60% 左右。這意味著,如果一個客戶每年要在 Redshift 上花費 100 萬美元,AWS 在付清 EC2 的運營成本和折舊費用之後的毛利潤約為 50~70 萬美元。但是,如果該客戶將 100 萬美元/年的預算給了 Snowflake,那麼最終會有約 40 萬美元迴轉到 AWS,因此 AWS 的毛利潤大約是 20 萬美元。
這似乎對 AWS 有點不好?這個還不能確定。根據財報,Snowflake 預計 2022 年的研發成本將佔公司收入的 20%,銷售和營銷成本則是 48%。那麼,以 100 萬美元的收入來計算,Snowflake 的成本是 70 萬美元。但也許 AWS 創造同樣的收入只需要 30~40 萬美元的成本。這樣似乎是合理的。
現在我想通了。AWS 面臨著同樣的情況,但是實際上卻將構建和銷售軟體的所有成本“轉嫁”給了 Snowflake 等企業。這對他們來說是一筆不錯的交易。
AWS 建立軟體服務的另一個原因是可以增加使用者粘性。Redshift 本身或許並不是一棵搖錢樹,但它減少了 EC2 上的流失率。
作為 CTO,我已經做雲遷移的六年中,我沒有考慮過這個問題。與大多數公司一樣,我的公司在工程師薪水上的花費比雲計算本身要多得多。將寶貴的時間用在雲計算遷移上是不值得的,除非雲計算開支成為毛利的重要組成部分,而這隻有少數公司可以做到。
企業不能隨便選擇一個雲計算提供商買下最便宜的資料庫,然後在上面執行。企業希望在相同的雲計算提供商和同一個數據中心中執行。Snowflake、Confluent 和 MongoDB(Atlas)的註冊流程中問了兩個問題:1. 你的雲計算提供商是哪家?2. 在哪個地區?請注意,第一個問題的選項只有 AWS、GCP 和 Azure。
雲遷移可能帶來的另一個問題:企業能省多少錢?我認為,價格戰從來都不重要,因為沒人願意開打。處在相當穩定的寡頭壟斷地位很舒適,如果我是雲計算提供商,也不會去改變現狀。
2030 年的雲計算
轉向雲計算的歷程,我們已經走了大約 10 年。雖然我們構建軟體的方式已經有所改變,但我認為現在仍處於起步階段。
重大變革通常分兩個階段發生。當一些新技術出現時,人們會用最簡單的方法來使用,讓它們保留現有世界的概念模型。當我們開始重新審視消費模式時,真正的轉變才會發生,因為新世界為創造價值開闢了道路。比如,蘋果公司開始在網上銷售音樂時,我們消費音樂的方式並未發生重大變化。但在像 Spotify 這樣的提供商意識到所有權不再重要的時候,真正的改變發生了。
從這個角度來看,過去的 10~15 年看起來有點像一種愚蠢的“提升和轉移”。我們只是把計算機放在雲端,這遠遠不夠。我們可以把注意力集中在構建應用程式程式碼上,而不是擔心底層的基礎設施。
大多數開發者都不與雲計算提供商進行互動,這一點我並不會感到意外。另外一個令人興奮的領域是事務型資料庫。但我認為即將到來的最大變化是,軟體提供商將會越來越多地執行客戶程式碼。
這個想法不新穎——2007 年 Heroku 釋出,2014 年 AWS Lambda 釋出。Kubernetes 在過去的幾年中一直很有意思,這仍然是一種必然的趨勢:走向一個完全“無伺服器”的世界。
現在,雲端中的計算機利用率低得離譜,我猜測 CPU 平均利用率大概只有 10%。有一種觀點認為雲計算提供商需要在雲上執行軟體,他們必須自己使用才能推進雲的採用。不過,他們已經有了一堆內部的東西可以交付。市場成熟後,他們可以講精力集中在自己優勢最大的領域。
一些預測
- 雲計算市場的收入將增長到每年 10000 億美元。這幾乎完全沒有爭議。
- 大多數工程師並不直接與雲計算提供商進行互動,而是透過這些提供商提供的服務進行互動。
- 資料庫市場(OLAP,OLTP,任何你能想到的)將由雲計算提供上主導,並且在底層完全抽象。
- 將有一些驚人的方式來解決目前阻礙無伺服器解決方案的開發者體驗問題。
- 初創公司和雲計算提供商之間會有很多合作。雲計算提供商可能會讓出一個領域,並試圖成為初創公司的首選合作伙伴。
- Kubernetes 只會被人們喜愛五年,正如 Hadoop 在 2009~2013 年一樣,但世界仍將繼續前進。
- 雲計算中的資源利用率將會大大提高,工程師們在資源分配和配置上所花費的時間會減少一個數量級。
- IBM 最終放棄“混合多雲”。
- YAML 會成為那些老去的開發者們酒桌上的話題。這個話題開始時,也意味著聚會該結束了。
作者介紹:
Erik Bernhardsson,Better 公司的前任首席技術官,目前正致力於資料領域的創業。編寫過很多程式碼,如開源專案 Luigi 和 Anyy。