0
作者 | 楊麗
出品 | 雷鋒網(wǎng)產(chǎn)業(yè)組
如果你是一名互聯(lián)網(wǎng)研發(fā)人員,那么極有可能了解并應用過Serverless這套技術體系。縱觀Serverless過去十年,它其實因云而生,也在同時改變云的計算方式。如果套用技術成熟度曲線來描述的話,那么它已經(jīng)走過了萌芽期、認知破滅期,開始朝著成熟穩(wěn)定的方向發(fā)展。未來,市場對Serverless的接受程度將越來越高。
不要驚訝,阿里云團隊在真正開始構(gòu)建Serverless產(chǎn)品體系的最開始的一兩年里,也曾遭遇內(nèi)部的一些爭議。而今,單從阿里集團內(nèi)部的很多業(yè)務線來看,已經(jīng)在朝著Serverless化的方向發(fā)展了。
日前,阿里云憑借函數(shù)計算產(chǎn)品能力全球第一的優(yōu)勢,入選Forrester 2021年第一季度FaaS平臺評估報告,成為比肩亞馬遜成為全球前三的FaaS領導者。這也是首次有國內(nèi)科技公司進入FaaS領導者象限。
在與雷鋒網(wǎng)的訪談中,阿里云Serverless負責人不瞋闡釋了Serverless的演進歷程、引入Serverless面臨的難點與挑戰(zhàn)、以及有關云原生的趨勢預判。
“一定要想明白做這件事的終局是什么,包括產(chǎn)品體系的定位,對開發(fā)者、對服務商的價值等等這些問題。這要求我們不斷通過實踐和認識的深化,讓這些問題的回答能夠逐漸清晰起來。這也是我們這么多年實踐積累的寶貴經(jīng)驗?!辈徊_指出。
盡管企業(yè)的實踐還存在種種疑惑和挑戰(zhàn),但Serverless實際上離我們并沒有那么遙遠。舉一個最近的例子,新冠疫情讓遠程辦公、在線教育、在線游戲的應用需求短期內(nèi)增加。業(yè)務規(guī)模的爆發(fā)式增長,對每一個需求的響應需要更加及時,這對應用架構(gòu)的彈性,對底層計算的速度,對研發(fā)效率的提升等,都要求業(yè)務加速向新技術架構(gòu)演進。
而不瞋的理想就是,幫助更廣泛的客戶實現(xiàn)向新技術架構(gòu)的平滑遷移,讓Serverless滲透到所有的云應用中。
不瞋作為阿里云Serverless產(chǎn)品體系的負責人,也是國內(nèi)Serverless的早期實踐者。以下將呈現(xiàn)是對這次訪談的完整總結(jié)。
一、Serverless的定義
在討論之前,我們先明確 Serverless 的定義,確保大家對 Serverless 的認知是一致的。
現(xiàn)在Serverless越來越熱,無論是工業(yè)界還是學術界,都將 Serverless 視為云計算發(fā)展的下一階段。Serverless 有很多種表述,其中伯克利大學的定義相對嚴謹一些。
(注:2019年2月,加州大學伯克利分校發(fā)表的《Cloud Programming Simplified: A Berkerley View on Serverless Computing》論文,曾在業(yè)界引發(fā)諸多討論和關注。)
大致來講,Serverless實際對應的是一整套的產(chǎn)品體系,而不是單獨一兩個產(chǎn)品;同時,這些產(chǎn)品/服務之間還具備以下特征:服務之間彼此配合、全托管、用戶通過API調(diào)用就可完成整個功能或應用的開發(fā)而無需關注底層基礎設施。
這套產(chǎn)品體系目前可分為兩類:一類是計算,即FaaS(Function as a Service);還有一類是BaaS(Backend as a Service),比如消息中間件、對象存儲,都可以看做是Serverless化的BaaS服務。
二、Serverless的演進
一個新技術通常會經(jīng)歷幾個階段:第一個階段是因為其巨大潛力引起廣泛關注的階段;第二階段,是認知破滅的階段,在這個階段由于產(chǎn)品初期本身能力不是很強健,或案例不全等因素,導致用戶在使用過程中往往會遇到挫敗感;第三個階段,是伴隨實踐的增加和產(chǎn)品能力本身的發(fā)展,又會逐步提升認知,進而進入一個穩(wěn)健增長的階段。
需要明確的是,Serverless并不是一個非常新的技術。像阿里云的OSS、AWS的S3對象存儲,它們都是最早發(fā)布的產(chǎn)品之一,一開始其實就是Serverless的形態(tài)。
但業(yè)界從Serverless的認知,確實是因AWS的Lambda帶起來的,2014年AWS推出了Lambda。
2017年到2019年上半年,這段時間,業(yè)界對Serverless的討論很多同時又有很多困擾,不知道如何落地,或者用了之后才突然覺得跟自己想象的不太一樣。
國內(nèi)外技術發(fā)展保持著相似的節(jié)奏,國外相對來講更快一些。從去年開始,國內(nèi)也開始進入到了穩(wěn)定發(fā)展的階段?,F(xiàn)在國際上主流云供應商提供的新功能或新產(chǎn)品,80%以上都是Serverless的形態(tài)。
阿里云從2017年開始打造Serverless,并于當年正式啟動商業(yè)化。
目前在阿里集團內(nèi)部已經(jīng)開始落地Serverless了,例如飛豬、淘寶、高德等等。在企業(yè)賦能方面,尤其是疫情之后,能夠看到用戶對Serverless的認知比之前確實深入了許多,在很多場景下,切換到Serverless架構(gòu)確實能夠為用戶帶來明顯的收益,用戶也認可這項技術。
舉一項數(shù)據(jù)來看,目前阿里云Serverless已經(jīng)服務了上萬家付費客戶,擁有100+的典型案例,函數(shù)日調(diào)用量超過120億次、函數(shù)總量達到100萬。
三、新舊觀念的轉(zhuǎn)變
對于阿里云自身而言,在最開始構(gòu)建Serverless之初,其實最大的挑戰(zhàn)不僅僅是技術層面的,更多的還有觀念上的不對稱。
首先,Serverless本身的形態(tài)跟以往的計算形態(tài)差異比較大,整個研發(fā)和運維的體系跟傳統(tǒng)應用是割裂的。如果開發(fā)Serverless應用,其研發(fā)運維的流程和工具跟虛擬化(VM)或容器化的方式不太一樣,很多用戶會擔心供應商鎖定(lock-in)的問題,不太希望自身的技術棧跟某個供應商綁定。
其次,AWS的Lambda最開始做了一個榜樣,但它也實際也只適合于AWS的產(chǎn)品體系,如果放在其他的產(chǎn)品體系里會面臨非常大的挑戰(zhàn),不易于被用戶接受,且限制條件也很多,應用場景也有限。這就要求在技術層面,包括資源調(diào)度、安全隔離、多租戶管理、流控等方面有很高要求,做起來非常辛苦。因為在此之前沒有一個產(chǎn)品的計算形態(tài)是如此細粒度、動態(tài)的使用資源。
這種挑戰(zhàn),一開始即便在阿里內(nèi)部,也曾面臨過許多爭議。
我們這么多年實踐積累的寶貴經(jīng)驗是:一定要想明白做這件事的終局是什么,包括在產(chǎn)品體系中的定位,對開發(fā)者、對云服務商的價值等等這些問題。這要求我們不斷通過實踐和認識的深化,讓這些問題的回答能夠逐漸清晰起來。
四、引入Serverless的顧慮
站在客戶層面,不同類型的客戶對引入第三方的Serverless技術其實會有不同層面的考慮。
對于超大型企業(yè),比如Facebook、字節(jié)跳動,企業(yè)本身就有非常強的基礎設施團隊,通常他們會選擇自己內(nèi)部開發(fā)這方面技術。
還有一些企業(yè),沒有采用Serverless并不是說他們對這個技術有什么抵觸,而是當下的落地實踐或本身的工具鏈還無法做到完全消除供應商鎖定的問題,又或者是因為工具鏈跟傳統(tǒng)開發(fā)太過割裂,企業(yè)自身無法同時維護兩套開發(fā)框架。
這種情況下,用戶的系統(tǒng)架構(gòu)一定會面臨一個中間狀態(tài):既有老的又有新的。如果整個遷移的過程不是那么平滑的話,供應商的這部分優(yōu)勢在客戶那里是不存在的, 因為老的系統(tǒng)實際是需要維護的。如此,對用戶的吸引力其實就沒有那么大了。
阿里云最近開源的Serverless Devs解決的就是這樣的問題。其定位是幫助用戶更簡單地開發(fā)和運維自己的Serverless化和容器化應用,提供應用全生命周期管理的能力。
本質(zhì)上,Serverless的環(huán)境是在遠端,跟用戶本地開發(fā)環(huán)境是天然割裂的,那么在這個過程中,從調(diào)試、部署、發(fā)布、監(jiān)控等各個環(huán)節(jié),Serverless Devs都希望能為用戶提供更好的體驗。但用戶可自由使用其中一個或幾個功能,不需要將已有的研發(fā)運維的流程完全遷移到我們定義的這套規(guī)范里。
五、過去一年的重大升級
2020年,疫情的背景下,其實也是阿里云Serverless技術升級的關鍵一年。這一年里,團隊做了很多大的升級,包括:
架構(gòu)層面,已經(jīng)升級到神龍裸金屬服務器+袋鼠安全容器的下一代架構(gòu)。好處是能夠帶來非常高的計算密度,進一步提升彈性能力和性能。
緩存方面,發(fā)布容器鏡像加速技術,能夠讓GB級別的容器鏡像非??斓貙崿F(xiàn)秒級啟動。目前已經(jīng)演進到了下一代,通過阿里內(nèi)部大規(guī)模業(yè)務場景進行打磨。
運行時方面,去年阿里云重寫整個語言運行時,使得更具有可擴展性,啟動速度更快。
阿里云函數(shù)計算全景圖
總結(jié)起來,兩方面因素推動阿里云Serverless在過去一年做出重大技術升級:
一是來自用戶本身的訴求。比如在教育場景中,老師對開課這件事是有時效性要求的,這就要求后臺能夠短時間內(nèi)啟動可能數(shù)千個實例進行響應。
二是來自內(nèi)部對產(chǎn)品效能的要求。對于云服務商而言,Serverless最核心的一個定位,是能夠?qū)⒃粕腺Y源更好地利用起來。整個計算架構(gòu)確實需要通過新的虛擬化技術、容器技術,同時跟新的硬件結(jié)合起來,從而提供一個非常細粒度的、啟動非常快、非常彈性的計算模型。這也是為什么我們要進行架構(gòu)升級,從原來的虛擬機架構(gòu)演進到神龍裸金屬服務器+袋鼠安全容器的架構(gòu),將對整體產(chǎn)品的發(fā)展產(chǎn)生一個核心推力。
六、攻克下一城
阿里云采用“三位一體”的策略打造整個 Serverless 產(chǎn)品矩陣——自身實踐-開源-商業(yè)化。即通過集團內(nèi)部超大規(guī)模、超復雜的業(yè)務場景來錘煉技術,將技術不斷打磨產(chǎn)品化,然后對云上客戶提供商業(yè)化服務,在這個過程中,還會將一些技術、工具進行開源,遵循開源開放的標準,跟開源生態(tài)融合。
只有對客戶的業(yè)務產(chǎn)生價值和幫助,客戶才會認可Serverless。
短期來看,無論是業(yè)務規(guī)模,還是產(chǎn)品、技術層面,阿里云Serverless都在以非常穩(wěn)健地方式按照自身的節(jié)奏向前演進。
一是業(yè)務規(guī)模會更大,預計每年會有三倍以上的增長;
二是產(chǎn)品層面,以客戶為中心,解決用戶痛點仍然是首要的。今年將在產(chǎn)品細節(jié)體驗上繼續(xù)補強,在工具鏈、可觀測性等方面為用戶提供更好的體驗;
三是技術層面,包括計算、網(wǎng)絡、緩存、運行時等核心部分,繼續(xù)夯實技術細節(jié),實現(xiàn)極致性能。
七、云時代下的新機遇
在應用場景上來看,Serverless不再僅僅是小程序,還有電商大促、音視頻轉(zhuǎn)碼、AI算法服務、游戲應用包分發(fā)、文件實時處理、物聯(lián)網(wǎng)數(shù)據(jù)處理、微服務等場景。
Serverless將繼續(xù)和容器、微服務等生態(tài)融合,降低開發(fā)者使用Serverless技術的門檻,反過來也將促進傳統(tǒng)應用的云原生化。
Serverless另一個核心要素是“被集成”,被集成的對象有兩類:
一類跟一方云服務進行接入,阿里云函數(shù)計算已被30多個一方云服務產(chǎn)品集成;
第二類是通過 EventBridge 事件總線和三方生態(tài)被集成。例如和釘釘?shù)萐aaS應用集成。釘釘?shù)臉I(yè)務中常常需要以簡潔、輕量的方式完成用戶的定制化需求,這和Serverless的應用形態(tài)是高度匹配的。
不瞋,阿里云Serverless負責人
今天,我們可以非常明確地看到,整個云的未來一定是Serverless形態(tài)的。阿里云內(nèi)部對這個也沒有爭議,因為這么多年來,整個產(chǎn)品體系就是朝著Serverless方向發(fā)展的。
不是因為有了Serverless計算,云才向Serverless演進。恰恰相反,因為云的產(chǎn)品體系已經(jīng)向Serverless 演進,才催生了 Serverless 計算。單純的Serverless計算并不能實現(xiàn)很多功能,前提一定是跟其他云服務及其生態(tài)配合,才能體現(xiàn)出其自身的優(yōu)勢。
無論是工業(yè)界還是學術界,都已經(jīng)認可這樣一個趨勢 。(雷鋒網(wǎng))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。