以下是對雲供應商(AWS,Azure,GCP)的論斷:
- 雲供應商將越來越關注軟體棧中的最低層:透過API租賃其資料中心的算力。
- 其他純軟體提供商將在其上構建所有東西,包括資料庫、執行程式碼等等。
目前雲供應商提供從開發人員體驗到硬體的端到端解決方案:
如果雲供應商專注於最低層,而其他(純軟體)供應商專注於上面的層會怎麼樣呢?
五年後,請提出這個問題,讓我對自己被證明是錯的感到尷尬。但是接下來透過Redshift的故事可以很好地表明我的想法。
Redshift是AWS提供的一個數據倉庫(又稱為OLAP資料庫)。在Redshift之前是一個黑暗的時代, 這個時代主要的玩家是Teradata,它是一個線下部署的非雲產品。
創業公司覺得用SQL來搞資料倉庫不靠譜,而使用了Hadoop。SQL在當時是有點遜色的,原因在事後看來是很荒謬的。我很高興我們已經走出了這個時代。
總之,有一個名為ParAccel的公司搞了一個數據倉庫的軟體,獲得AWS授權,重新命名為Redshift,並在2012年在AWS推出。
Redshift在當時是第一個在雲中執行的資料倉庫。這是AWS的一個明智之舉,因為它降低了小公司開始做資料分析的門檻。你不需要自己建立任何基礎設施,也不需要整天寫自定義mapreduce和重新載入jobtracker。
你可以在AWS中啟動一個Redshift叢集,給它提供大量的資料,然後它就會開始工作。
Snowflake 是一個1000億美元以上的上市公司。該公司的整個產品是一個數據倉庫,看起來與Redshift相當相似。
AWS擁有巨大的規模經濟,控制著底層基礎(EC2),並且可以在構建軟體方面進行更大的投資。也許因為鎖定的價值,他們甚至可以補貼 Redshift 的開發,並透過其他產品彌補資金。不過,事情起了一些變化,Snowflake 的發展已經超過了 Redshift。
哪些力量有利於像Snowflake這樣的公司?這對其他雲產品意味著什麼?
最底層的雲服務是一種純粹的商品服務。因此,為了賺錢, 雲廠商至少需要做以下一項。
- 靠整個軟體服務棧的上層服務賺錢。
- 用軟體服務棧中上層服務來鎖定客戶,然後靠底層服務來賺錢。
我認為這些都是有道理的,至少從歷史上看是這樣,但也有一些有趣的趨勢在向另一個方向發展。
上層軟體的競爭正變得異常激烈。有這麼多的初創公司在做,在廉價的風險投資資金的推動下,願意在構建軟體上花費數十億美元。
雲計算供應商可能很高興只在最底層賺錢。利潤率並不差,而且供應商的鎖定度仍然很高。
初創企業正在向雲計算進發
從來沒有這麼多公司追求屬於雲供應商的服務:
這期間發生了什麼?可能是很多事情的匯合。我至少看到了三個不同的因素:
1、大公司的激勵措施導致很難提出新的瘋狂想法。與此同時,風險投資家正在向該細分市場注入資金。如果你是一個有抱負的人,你會去AWS工作嗎?還是你會加入早期初創公司,或者建立自己的初創公司?預計創新將從大公司轉向初創企業。
2、軟體供應商可以同時為所有云供應商構建。我認為這對Snowflake來說是一個真正的好處,因為他們的許多早期客戶都是關心多雲的銀行,它也擴大了市場規模,提升了雲供應商的影響力。
3、許多成功的雲產品最初都是內部服務。這是一個令人驚歎的產品來源,亞馬遜、谷歌和微軟已經進行了大規模測試,這些工具非常適合他們的大企業客戶。
但對規模、可靠性和可配置性的極度關注的另一面是,開發人員體驗已成為攻擊載體,特別是那些可能更關心提高開發人員生產力的中端市場和小客戶。像優步、Netflix和Airbnb這樣的稍大的公司有團隊離開去將內部工具商業化的歷史(通常透過開源的中間步驟)。在主觀上講,這些工具往往更注重開發人員體驗。
也許擁有最低層沒那麼糟糕?
假設客戶每年在Redshift上花費100萬美元。在支付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 會成為那些老去的開發者們酒桌上的話題。這個話題開始時,也意味著聚會該結束了。