獨家對話阿里雲函數計算負責人不瞋:你所不知道的 Serverless

Serverless 其實離我們並沒有那麼遙遠。

如果你是一名互聯網研發人員,那麼極有可能瞭解並應用過 Serverless 這套技術體系。縱觀 Serverless 過去十年,它其實因雲而生,也在同時改變雲的計算方式。如果套用技術成熟度曲線來描述的話,那麼它已經走過了萌芽期、認知破滅期,開始朝着成熟穩定的方向發展。未來,市場對 Serverless 的接受程度將越來越高。

不要驚訝,阿里雲團隊在真正開始構建 Serverless 產品體系的最開始的一兩年裏,也曾遭遇內部的一些爭議。而今,單從阿里集團內部的很多業務線來看,已經在朝着 Serverless 化的方向發展了。

日前,阿里雲憑藉函數計算產品能力全球第一的優勢,入選 Forrester 2021 年第一季度 FaaS 平臺評估報告,成爲比肩亞馬遜成爲全球前三的 FaaS 領導者。這也是首次有國內科技公司進入 FaaS 領導者象限。

在與雷鋒網的訪談中,阿里雲 Serverless 負責人不瞋闡釋了 Serverless 的演進歷程、引入 Serverless 面臨的難點與挑戰、以及有關雲原生的趨勢預判。

“一定要想明白做這件事的終局是什麼,包括產品體系的定位,對開發者、對服務商的價值等等這些問題。這要求我們不斷通過實踐和認識的深化,讓這些問題的回答能夠逐漸清晰起來。這也是我們這麼多年實踐積累的寶貴經驗。”不瞋指出。

儘管企業的實踐還存在種種疑惑和挑戰,但 Serverless 實際上離我們並沒有那麼遙遠。舉一個最近的例子,新冠疫情讓遠程辦公、在線教育、在線遊戲的應用需求短期內增加。業務規模的爆發式增長,對每一個需求的響應需要更加及時,這對應用架構的彈性,對底層計算的速度,對研發效率的提升等,都要求業務加速向新技術架構演進。

而不瞋的理想就是,幫助更廣泛的客戶實現向新技術架構的平滑遷移,讓 Serverless 滲透到所有的雲應用中。

不瞋作爲阿里雲 Serverless 產品體系的負責人,也是國內 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 的演進

一個新技術通常會經歷幾個階段:

  • 第一個階段,是因爲其巨大潛力引起廣泛關注的階段。
  • 第二階段,是認知破滅的階段,在這個階段由於產品初期本身能力不是很強健,或案例不全等因素,導致用戶在使用過程中往往會遇到挫敗感。
  • 第三個階段,是伴隨實踐的增加和產品能力本身的發展,又會逐步提升認知,進而進入一個穩健增長的階段。

需要明確的是,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 的顧慮

站在客戶層面,不同類型的客戶對引入第三方的 Serverless 技術其實會有不同層面的考慮。

對於超大型企業,比如 Facebook、字節跳動,企業本身就有非常強的基礎設施團隊,通常他們會選擇自己內部開發這方面技術。

還有一些企業,沒有采用 Serverless 並不是說他們對這個技術有什麼牴觸,而是當下的落地實踐或本身的工具鏈還無法做到完全消除供應商鎖定的問題,又或者是因爲工具鏈跟傳統開發太過割裂,企業自身無法同時維護兩套開發框架

這種情況下,用戶的系統架構一定會面臨一箇中間狀態:既有老的又有新的。如果整個遷移的過程不是那麼平滑的話,供應商的這部分優勢在客戶那裏是不存在的, 因爲老的系統實際是需要維護的。如此,對用戶的吸引力其實就沒有那麼大了。

阿里雲最近開源的 Serverless Devs 解決的就是這樣的問題。其定位是幫助用戶更簡單地開發和運維自己的 Serverless 化和容器化應用,提供應用全生命週期管理的能力。

本質上,Serverless 的環境是在遠端,跟用戶本地開發環境是天然割裂的,那麼在這個過程中,從調試、部署、發佈、監控等各個環節,Serverless Devs 都希望能爲用戶提供更好的體驗。但用戶可自由使用其中一個或幾個功能,不需要將已有的研發運維的流程完全遷移到我們定義的這套規範裏。

過去一年的重大升級

2020 年,疫情的背景下,其實也是阿里雲 Serverless 技術升級的關鍵一年。這一年裏,團隊做了很多大的升級,包括:

  • 架構層面,已經升級到神龍裸金屬服務器+袋鼠安全容器的下一代架構。好處是能夠帶來非常高的計算密度,進一步提升彈性能力和性能。
  • 緩存方面,發佈容器鏡像加速技術,能夠讓GB級別的容器鏡像非常快地實現秒級啓動。目前已經演進到了下一代,通過阿里內部大規模業務場景進行打磨。
  • 運行時方面,去年阿里雲重寫整個語言運行時,使得更具有可擴展性,啓動速度更快。

總結起來,兩方面因素推動阿里雲Serverless在過去一年做出重大技術升級:

一是來自用戶本身的訴求。比如在教育場景中,老師對開課這件事是有時效性要求的,這就要求後臺能夠短時間內啓動可能數千個實例進行響應。

二是來自內部對產品效能的要求。對於雲服務商而言,Serverless 最核心的一個定位,是能夠將雲上資源更好地利用起來。整個計算架構確實需要通過新的虛擬化技術、容器技術,同時跟新的硬件結合起來,從而提供一個非常細粒度的、啓動非常快、非常彈性的計算模型。這也是爲什麼我們要進行架構升級,從原來的虛擬機架構演進到神龍裸金屬服務器+袋鼠安全容器的架構,將對整體產品的發展產生一個核心推力。

攻克下一城

阿里雲採用“三位一體”的策略打造整個 Serverless 產品矩陣——自身實踐-開源-商業化。即通過集團內部超大規模、超複雜的業務場景來錘鍊技術,將技術不斷打磨產品化,然後對雲上客戶提供商業化服務,在這個過程中,還會將一些技術、工具進行開源,遵循開源開放的標準,跟開源生態融合。

只有對客戶的業務產生價值和幫助,客戶纔會認可 Serverless。

短期來看,無論是業務規模,還是產品、技術層面,阿里雲 Serverless 都在以非常穩健地方式按照自身的節奏向前演進。

  • 一是業務規模會更大,預計每年會有三倍以上的增長。
  • 二是產品層面,以客戶爲中心,解決用戶痛點仍然是首要的。今年將在產品細節體驗上繼續補強,在工具鏈、可觀測性等方面爲用戶提供更好的體驗。
  • 三是技術層面,包括計算、網絡、緩存、運行時等核心部分,繼續夯實技術細節,實現極致性能。

雲時代的新機遇

在應用場景上來看,Serverless 不再僅僅是小程序,還有電商大促、音視頻轉碼、AI 算法服務、遊戲應用包分發、文件實時處理、物聯網數據處理、微服務等場景。

Serverless 將繼續和容器、微服務等生態融合,降低開發者使用 Serverless 技術的門檻,反過來也將促進傳統應用的雲原生化。

Serverless 另一個核心要素是“被集成”,被集成的對象有兩類:

  • 一類跟一方雲服務進行接入,阿里雲函數計算已被 30 多個一方雲服務產品集成。
  • 第二類是通過 EventBridge 事件總線和三方生態被集成。例如和釘釘等 SaaS 應用集成。釘釘的業務中常常需要以簡潔、輕量的方式完成用戶的定製化需求,這和 Serverless 的應用形態是高度匹配的。

今天,我們可以非常明確地看到,整個雲的未來一定是 Serverless 形態的。阿里雲內部對這個也沒有爭議,因爲這麼多年來,整個產品體系就是朝着 Serverless 方向發展的。

不是因爲有了 Serverless 計算,雲才向 Serverless 演進。恰恰相反,因爲雲的產品體系已經向 Serverless 演進,才催生了 Serverless 計算。單純的 Serverless 計算並不能實現很多功能,前提一定是跟其他雲服務及其生態配合,才能體現出其自身的優勢。

無論是工業界還是學術界,都已經認可這樣一個趨勢。

作者 | 楊麗

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章