做者 | 楊麗
來源 | 雷鋒網(ID:leiphone-sz)算法
Serverless 其實離咱們並無那麼遙遠。小程序
若是你是一名互聯網研發人員,那麼極有可能瞭解並應用過 Serverless 這套技術體系。縱觀 Serverless 過去十年,它其實因雲而生,也在同時改變雲的計算方式。若是套用技術成熟度曲線來描述的話,那麼它已經走過了萌芽期、認知破滅期,開始朝着成熟穩定的方向發展。將來,市場對 Serverless 的接受程度將愈來愈高。緩存
不要驚訝,阿里雲團隊在真正開始構建 Serverless 產品體系的最開始的一兩年裏,也曾遭遇內部的一些爭議。而今,單從阿里集團內部的不少業務線來看,已經在朝着 Serverless 化的方向發展了。安全
日前,阿里雲憑藉函數計算產品能力全球第一的優點,入選 Forrester 2021 年第一季度 FaaS 平臺評估報告,成爲比肩亞馬遜成爲全球前三的 FaaS 領導者。這也是首次有國內科技公司進入 FaaS 領導者象限。服務器
在與雷鋒網的訪談中,阿里雲 Serverless 負責人不瞋闡釋了 Serverless 的演進歷程、引入 Serverless 面臨的難點與挑戰、以及有關雲原生的趨勢預判。網絡
「必定要想明白作這件事的終局是什麼,包括產品體系的定位,對開發者、對服務商的價值等等這些問題。這要求咱們不斷經過實踐和認識的深化,讓這些問題的回答可以逐漸清晰起來。這也是咱們這麼多年實踐積累的寶貴經驗。」不瞋指出。架構
儘管企業的實踐還存在種種疑惑和挑戰,但 Serverless 實際上離咱們並無那麼遙遠。舉一個最近的例子,新冠疫情讓遠程辦公、在線教育、在線遊戲的應用需求短時間內增長。業務規模的爆發式增加,對每個需求的響應須要更加及時,這對應用架構的彈性,對底層計算的速度,對研發效率的提高等,都要求業務加速向新技術架構演進。框架
而不瞋的理想就是,幫助更普遍的客戶實現向新技術架構的平滑遷移,讓 Serverless ***到全部的雲應用中。less
不瞋做爲阿里雲 Serverless 產品體系的負責人,也是國內 Serverless 的早期實踐者。如下將呈現是對此次訪談的完整總結。運維
在討論以前,咱們先明確 Serverless 的定義,確保你們對 Serverless 的認知是一致的。
如今 Serverless 愈來愈熱,不管是工業界仍是學術界,都將 Serverless 視爲雲計算髮展的下一階段。Serverless 有不少種表述,其中伯克利大學的定義相對嚴謹一些。
注:2019 年 2 月,加州大學伯克利分校發表的《Cloud Programming Simplified: A Berkerley View on Serverless Computing》論文,曾在業界引起諸多討論和關注。
大體來說,Serverless 實際對應的是一整套的產品體系,而不是單獨一兩個產品;同時,這些產品/服務之間還具有如下特徵:服務之間彼此配合、全託管、用戶經過 API 調用就可完成整個功能或應用的開發而無需關注底層基礎設施。
這套產品體系目前可分爲兩類:一類是計算,即 FaaS(Function as a Service);還有一類是 BaaS(Backend as a Service),好比消息中間件、對象存儲,均可以看作是 Serverless 化的 BaaS 服務。
一個新技術一般會經歷幾個階段:
須要明確的是,Serverless 並非一個很是新的技術。像阿里雲的 OSS、AWS 的 S3 對象存儲,它們都是最先發布的產品之一,一開始其實就是 Serverless 的形態。
但業界對 Serverless 的認知,確實是因 AWS 的 Lambda 帶起來的,2014 年 AWS 推出了 Lambda。
2017 年到 2019 年上半年,這段時間,業界對 Serverless 的討論不少同時又有不少困擾,不知道如何落地,或者用了以後才忽然以爲跟本身想象的不太同樣。
國內外技術發展保持着類似的節奏,國外相對來說更快一些。從去年開始,國內也開始進入到了穩定發展的階段。如今國際上主流雲供應商提供的新功能或新產品,80% 以上都是 Serverless 的形態。
阿里雲從 2017 年開始打造 Serverless,並於當年正式啓動商業化。
目前在阿里集團內部已經開始落地 Serverless 了,例如飛豬、淘寶、高德等等。在企業賦能方面,尤爲是疫情以後,可以看到用戶對 Serverless 的認知比以前確實深刻了許多,在不少場景下,切換到 Serverless 架構確實可以爲用戶帶來明顯的收益,用戶也承認這項技術。
舉一項數據來看,目前阿里雲 Serverless 已經服務了上萬家付費客戶,擁有 100+ 的典型案例,函很多天調用量超過 120 億次、函數總量達到 100 萬。
對於阿里雲自身而言,在最開始構建 Serverless 之初,其實最大的挑戰不只僅是技術層面的,更多的還有觀念上的不對稱。
首先,Serverless 自己的形態跟以往的計算形態差別比較大,整個研發和運維的體系跟傳統應用是割裂的。若是開發 Serverless 應用,其研發運維的流程和工具跟虛擬化(VM)或容器化的方式不太同樣,不少用戶會擔憂供應商鎖定(lock-in)的問題,不太但願自身的技術棧跟某個供應商綁定。
其次,AWS 的 Lambda 最開始作了一個榜樣,但它也實際也只適合於 AWS 的產品體系,若是放在其餘的產品體系裏會面臨很是大的挑戰,不易於被用戶接受,且限制條件也不少,應用場景也有限。這就要求在技術層面,包括資源調度、安全隔離、多租戶管理、流控等方面有很高要求,作起來很是辛苦。由於在此以前沒有一個產品的計算形態是如此細粒度、動態的使用資源。
這種挑戰,一開始即使在阿里內部,也曾面臨過許多爭議。
咱們這麼多年實踐積累的寶貴經驗是:必定要想明白作這件事的終局是什麼,包括在產品體系中的定位,對開發者、對雲服務商的價值等等這些問題。這要求咱們不斷經過實踐和認識的深化,讓這些問題的回答可以逐漸清晰起來。
站在客戶層面,不一樣類型的客戶對引入第三方的 Serverless 技術其實會有不一樣層面的考慮。
對於超大型企業,好比 Facebook、字節跳動,企業自己就有很是強的基礎設施團隊,一般他們會選擇本身內部開發這方面技術。
還有一些企業,沒有采用 Serverless 並非說他們對這個技術有什麼抵觸,而是當下的落地實踐或自己的工具鏈還沒法作到徹底消除供應商鎖定的問題,又或者是由於工具鏈跟傳統開發太過割裂,企業自身沒法同時維護兩套開發框架。
這種狀況下,用戶的系統架構必定會面臨一箇中間狀態:既有老的又有新的。若是整個遷移的過程不是那麼平滑的話,供應商的這部分優點在客戶那裏是不存在的, 由於老的系統實際是須要維護的。如此,對用戶的吸引力其實就沒有那麼大了。
阿里雲最近開源的 Serverless Devs 解決的就是這樣的問題。其定位是幫助用戶更簡單地開發和運維本身的 Serverless 化和容器化應用,提供應用全生命週期管理的能力。
本質上,Serverless 的環境是在遠端,跟用戶本地開發環境是自然割裂的,那麼在這個過程當中,從調試、部署、發佈、監控等各個環節,Serverless Devs 都但願能爲用戶提供更好的體驗。但用戶可自由使用其中一個或幾個功能,不須要將已有的研發運維的流程徹底遷移到咱們定義的這套規範裏。
2020 年,疫情的背景下,其實也是阿里雲 Serverless 技術升級的關鍵一年。這一年裏,團隊作了不少大的升級,包括:
阿里雲函數計算全景圖
總結起來,兩方面因素推進阿里雲Serverless在過去一年作出重大技術升級:
一是來自用戶自己的訴求。好比在教育場景中,老師對開課這件事是有時效性要求的,這就要求後臺可以短期內啓動可能數千個實例進行響應。
二是來自內部對產品效能的要求。對於雲服務商而言,Serverless 最核心的一個定位,是可以將雲上資源更好地利用起來。整個計算架構確實須要經過新的虛擬化技術、容器技術,同時跟新的硬件結合起來,從而提供一個很是細粒度的、啓動很是快、很是彈性的計算模型。這也是爲何咱們要進行架構升級,從原來的虛擬機架構演進到神龍裸金屬服務器+袋鼠安全容器的架構,將對總體產品的發展產生一個核心推力。
阿里雲採用「三位一體」的策略打造整個 Serverless 產品矩陣——自身實踐-開源-商業化。即經過集團內部超大規模、超複雜的業務場景來錘鍊技術,將技術不斷打磨產品化,而後對雲上客戶提供商業化服務,在這個過程當中,還會將一些技術、工具進行開源,遵循開源開放的標準,跟開源生態融合。
只有對客戶的業務產生價值和幫助,客戶纔會承認 Serverless。
短時間來看,不管是業務規模,仍是產品、技術層面,阿里雲 Serverless 都在以很是穩健地方式按照自身的節奏向前演進。
在應用場景上來看,Serverless 再也不僅僅是小程序,還有電商大促、音視頻轉碼、AI 算法服務、遊戲應用包分發、文件實時處理、物聯網數據處理、微服務等場景。
Serverless 將繼續和容器、微服務等生態融合,下降開發者使用 Serverless 技術的門檻,反過來也將促進傳統應用的雲原生化。
Serverless 另外一個核心要素是「被集成」,被集成的對象有兩類:
不瞋,阿里雲 Serverless 負責人
今天,咱們能夠很是明確地看到,整個雲的將來必定是 Serverless 形態的。阿里雲內部對這個也沒有爭議,由於這麼多年來,整個產品體系就是朝着 Serverless 方向發展的。
不是由於有了 Serverless 計算,雲才向 Serverless 演進。偏偏相反,由於雲的產品體系已經向 Serverless 演進,才催生了 Serverless 計算。單純的 Serverless 計算並不能實現不少功能,前提必定是跟其餘雲服務及其生態配合,才能體現出其自身的優點。
不管是工業界仍是學術界,都已經承認這樣一個趨勢。