伯克利:serverless是下一代計算范式


摘要:Serverless技術正是雲廠商的基於規模經濟的一個選擇。

引子

剛過去的HC2020,華為面向多樣化算力的時代,發布了DC分布式計算的三個開發套件,其中一個是元戎組件。元戎是基於函數計算的分布式並行應用開發框架,希望能夠幫助開發者定義DC分布式計算的開發模式和運行模式。關於的這里的函數計算,不斷有同事詢問這個和Serverless的關系或者區別呢?

在公司不同的場景,推動serverless技術的使用也有兩年時間了,現在也是借這個引子,說說自己的理解。

1.Serverless的本質

Serverless當前相對比較正式的定義(CNCF白皮書)有幾個特征:是雲計算形態的進一步發展,相對於當前雲計算,它帶來兩個關鍵好處:NoOPS和Pay as You Run。現階段Serverless技術的實現形態,以AWS發布的Lambda為代表,其他還包括微軟Azure Function,谷歌Cloud Functions等。在2019年伯克利發布《Cloud Programming Simplified》展望中,把Serverless定義為雲計算的下一代計算范式。雲計算從微服務技術主導到Serverless技術的演進,我們看看雲計算的本質就可以比較好的理解這些技術背后的邏輯,也就能理解為什么伯克利繼成功斷言雲計算的興起之后,把目光聚焦在Serverless技術上呢?

圖1:當前serverless技術的階段和形態

1.1雲計算興起到雲原生生態的演進

雲計算的興起,在CPU硬件能力大力發展之后,得益於OS+ISV的軟件生態和虛擬化技術的成熟。雲計算巧妙地延續OS+ISV生態,把ISV可以無縫地遷移到雲上。雲vendor利用虛擬化技術,對客戶提供IAAS服務。滿足客戶:1、應用軟件運行條件沒有發生變化;2、不用維護物理主機,只需要關注應用軟件本身。

首先,從雲計算的服務形態來看,對於企業應用及其基礎設施,現在變成了用戶和基礎設施提供商兩個層次,如下圖所示。這個邏輯層次的划分很重要,在軟件生態中原來基礎設施平台和應用軟件都是由用戶自己管理和維護,這時出現了專業的平台提供者的角色,來提供基礎設施。

圖2:雲計算帶來基礎設施提供商的概念

其次,我們回到雲計算興起的過程,如圖三所示,雲Vendor利用虛擬化技術的成熟,沒有改變原來OS+ISV的生態玩法,對用戶提供IAAS服務,這樣用戶的軟件幾乎是無縫遷移到雲廠商的基礎設施之上的。這樣雲廠商快速地聚集了一些企業用戶上雲,在這個階段之后,雲廠商比如AWS快速創新,在IAAS服務之外,雲中間件,雲安全,第三方服務集成大量的雲上應用運行和業務邏輯服務。逐漸構建起雲原生生態所需要的生態環境。在這個第一階段之后,容器技術持續演進,雲原生的軟件生態開始形成,可以明顯地看到軟件生態的界面從GuestOS上升到容器的層次,應用軟件的部署也是由平台提供商來完成,用戶不用再關注基礎設施運行的操作系統是什么了。這個軟件棧中雲廠商即平台提供商cover的范圍又上升了一步,這個變化既是雲原生生態帶來的變化,又有雲廠商商業邏輯的需要在里面。

圖3:雲計算的產生和演進示意圖

為什么這么說呢?可以看下一節。

1.2雲計算的商業邏輯建立在規模經濟之上

當前雲計算集中在幾個雲廠商,而且成功的廠商都是在自有的消耗大量基礎設施的業務基礎之上,雲業務才逐漸擴大發展起來的,比如,AWS和阿里雲基於自有的電商服務平台。谷歌雲和Azure在分別找到自己的移動用戶服務和SAAS服務的規模運營之后,兩家也是逐漸占據市場份額。

觀察雲計算發展過程,我們可以說雲計算廠商遵循規模經濟的發展模式。結合規模經濟,有兩個重要的現象或者規律,了解這兩個現象,可以很好地幫助我們了解雲技術的演進方向。

首先,可以解釋為規模經濟性,簡單地說,隨着生產規模(雲計算)擴大,平均單位產出(服務收益)成本(基礎設施成本)趨於下降。英國的傑弗里·韋斯特研究城市的人口和產業的發展規律,總結為規模經濟體的產出呈超線性,而成本遵循亞線性規律,如下圖所示。

了解到這個現象,我們可以理解為什么雲廠商極力追求規模。AWS 2002年推出,持續推進雲服務,到2013年AWS發布財報,才進入規模經濟的盈利期。AWS現在每年投入100億美金的CAPS,持續構建雲規模,全球規模>500W台服務器。基於規模成本的優勢,構建了長期價值成本和技術生態驅動的良性循環,掌握了雲服務的定價策略,19年reInvent宣稱實現了70+次的降價正常,同時還能獲取雲計算業務20+%的營業利潤率。

圖4:雲計算遵循規模經濟性的現象

其次,可以解釋為規模的有效性。生產規模不斷擴大,當基礎設施單位成本降到最低時,達到最佳生產規模,如果生產技術沒有發生變革,這時再繼續擴大生產規模,平均單位產出成本轉而逐漸上升。當前進入規模效應良性循環的AWS,其capex/收入比基本保持在40-50%左右,雖然相對穩定,也需要尋求繼續成本下降的空間。

圖5:規模經濟LAC曲線

而同時,當前雲廠商主體服務IAAS,為租戶提供虛擬機資源,都遇到了資源利用率低的問題,包括CPU利用率和內存利用率。業內數據:雲廠商提供的數據中心,CPU資源利用率不高於20-30%。租戶購買固定VCPU和內存配置的虛擬機,雲廠商實際在平台使用的是裝箱算法,按照租戶的需求,裝配到數據中心的空余空間中去。租戶按照其業務峰值購買了資源,在這種情況下,大量租戶資源長時間處於業務非峰值態,雲廠商對於資源利用率這個問題基本都是無能為力。而同時,雲廠商自運營的業務,通過不同業務的混部,SLA的調度等技術,比如谷歌很早就已經宣稱Brog的改進版可以在數據中心獲得90%的CPU資源利用率。這樣一個現狀,也是雲廠商不約而同地提出共享計算實例的原因,比如AWS T實例等。通過用戶SLA策略,在用戶知情的情況下,獲得對VCPU的共享的控制權,實現高CPU利用率。

回到前面我們提到用戶和平台提供商兩個角度。首先,雲廠商希望能夠獲得更多的對資源的控制權,讓超大規模的雲計算繼續享有規模的經濟性,能夠做到單位資源成本繼續下降。其次,租戶擔一方面心其業務運行的平穩性,另一方面也希望能夠更加聚焦業務本身。所以我們可以理解了雲計算技術的方向:雲廠商管理的軟件棧層次肯定會越來越高,雲計算技術必須能夠解決用戶業務的彈性和高可擴展。雲廠商獲得應用運行資源的最大控制權,追求高資源利用率和低成本,租戶獲得業務SLA保證的應用。

Serverless技術正是雲廠商的基於規模經濟的一個選擇。

1.3 Serverless技術是匹配雲原生規模經濟的選擇

如圖3所示,Serverless在容器Runtime之后,進一步實現計算抽象,雲廠商負責管理的軟件棧進一步提升到Runtime。這里筆者把函數計算和Serverless技術分開。函數計算是一種計算范式的抽象,把計算抽象進一步為兩個層次,函數(代碼邏輯)和函數運行時(函數運行需要的資源,庫等),即

函數計算= 函數+函數運行時

Serverless計算也是利用函數計算上述的抽象,在雲原生生態下,進一步讓用戶聚焦到業務代碼邏輯,直接使用雲廠商提供的Runtime,相比容器,雲廠商管理的軟件棧又提升了一個層次。筆者把Serverless技術歸到雲原生的技術,因為serverless為租戶提供服務,必須依賴雲廠商提供的大量后台的服務及其運行時,即

Serverless= FaaS+BaaS

函數計算這個層次的抽閑,借助於終端用戶或IOT等事件型的應用,將代碼和其運行時分離,雲廠商提供函數代碼的運行時及其物理資源。如下圖所示,平台提供商獲得了軟件棧最大可控制的范圍,而用戶只需要關注其代碼。因此,函數粒度的應用,讓平台提供商獲得了最大的技術空間,基於這個空間,讓雲計算的規模成本進一步得到下降,所以Serverless技術是雲廠商必選的選擇項。

圖6:Serverless使平台提供商獲得軟件棧中最大的可控制技術空間

然而,在當前階段的Serverless,適用范圍還主要是事件式,短時間任務型的應用。用戶編寫任務的函數,在執行時間,資源上有一個約束。平台提供商基於此獲得最大的調度權限,所以提供了按次收費,按需收費的定價策略。在海量終端的服務驅動的場景獲得很好的應用,充分發揮了serverless按需彈性,按需計費的好處。顯然這樣的應用范圍,是不足以滿足雲廠商的期待的。所以從Serverless= FaaS+BaaS,另外一個BaaS方面,雲廠商要推動serverless計算的快速演進。

Serverless 官方定義中從用戶角度看到的兩個關鍵特征NoOPS和Pay as You Run。符合這兩個特征的形態也是Serverless技術,所以Serverless技術又比函數計算概念廣泛,不一定非得基於函數計算的抽象,只要能為用戶提供NoOPS和Pay as You Run的業務也就可以歸到Serverless技術中去。所以雲廠商不斷的推進兩件事情。

一件事情是把BaaS serverless化,這個我們都已經看到了,雲DB,雲存儲的serverless產品都已經推出。還有一件事情,雲廠商需要推動現在的應用serverless化,即當前用戶繼續關於自己應用服務及其runtime,但是服務的autoscaling,並行化模板都由雲廠商來提供。這一點谷歌的產品策略中可以清晰地看到這一點。

谷歌對於Serverless兩條明確的技術線:一是cloudRun產品,基於K8S容器平台演進的Serverless平台,相當於Serverless的應用平台,推動已有的微服務化應用演進到serverless化;二是移動應用的CloudFunction+MBaaS的產品。兩條技術線推動Serverless技術演進。AWS當然也不會落后,雖然AWS沒有想谷歌一樣的運行時平台的強大生態控制權,但是AWS也直接提供AutoScaling、ASM等服務指導應用服務Serverless化。

基於上述我們對serverless技術背后的商業邏輯,所以它成為了雲廠商的必選,也是伯克利斷言serverless是雲時代下一代計算范式的底氣所在。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM