物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

越來越火的Serverless(無服務(wù)器計(jì)算),到底是個(gè)啥?

作者:小棗君
來源:鮮棗課堂
日期:2022-12-01 14:44:18
摘要:今天這篇文章,我們來聊一個(gè)云計(jì)算領(lǐng)域的熱門概念——Serverless。
關(guān)鍵詞:Serverless

今天這篇文章,我們來聊一個(gè)云計(jì)算領(lǐng)域的熱門概念——Serverless。

image.png

到底什么是Serverless?

英語好的童鞋,可能一眼就看出來了,Serverless是由Server和less兩個(gè)詞根組成的詞。從字面上理解,就是“無服務(wù)器”。

行業(yè)通常所說的Serverless,主要是指“無服務(wù)器計(jì)算(Serverless Computing)”。

那么問題來了,這年頭,就連小學(xué)生都知道,服務(wù)器是具有很強(qiáng)計(jì)算能力的計(jì)算機(jī),是我們現(xiàn)在最主要的計(jì)算工具?!盁o服務(wù)器計(jì)算”,如果不采用服務(wù)器,那該怎么算呢?

事實(shí)上,Serverless所謂的“無服務(wù)器計(jì)算”,并不是真的不需要服務(wù)器,而是說,對(duì)于用戶,服務(wù)器變得“不可見”了(或者說“無感知”了)。

越說越玄乎了,有木有?別急,還是讓我從頭開始說起吧——

Serverless的誕生背景

1946年2月,世界上第一臺(tái)數(shù)字式電子計(jì)算機(jī)ENIAC誕生,標(biāo)志著人類正式進(jìn)入了數(shù)字計(jì)算機(jī)時(shí)代。

早期的計(jì)算機(jī)都是大型機(jī),體積龐大,價(jià)格昂貴,但是,算力卻很弱。當(dāng)時(shí),這些機(jī)器只有很少的公司才能擁有,用于特定的計(jì)算目的。

到了1970-80年代,為了解決單點(diǎn)式計(jì)算(一臺(tái)大型機(jī),獨(dú)立完成全部的計(jì)算任務(wù))算力不足的問題,專家們發(fā)明了網(wǎng)格計(jì)算這樣的分布式計(jì)算架構(gòu),取得了不錯(cuò)的效果。

說白了,分布式計(jì)算,就是把一個(gè)巨大的計(jì)算任務(wù),分解為很多的小型計(jì)算任務(wù),交給不同的計(jì)算機(jī)分工完成,

image.png

再后來,隨著芯片技術(shù)的進(jìn)步,計(jì)算機(jī)的體積變得越來越小,算力也變得越來越強(qiáng)勁。不久后,小型化的計(jì)算機(jī)出現(xiàn)了,也就是我們常說的PC(Personal Computer,個(gè)人電腦)。

計(jì)算機(jī)制造和使用成本的不斷下降,加速自身的普及,也刺激了計(jì)算機(jī)網(wǎng)絡(luò)的出現(xiàn)與發(fā)展。從局域網(wǎng)到廣域網(wǎng),再到互聯(lián)網(wǎng),計(jì)算機(jī)網(wǎng)絡(luò)的規(guī)模變得越來越大。

互聯(lián)網(wǎng)的出現(xiàn),徹底改變了計(jì)算機(jī)服務(wù)用戶的方式。

此前,一個(gè)機(jī)房服務(wù)于一所學(xué)校、一家企業(yè)、一個(gè)政府部門,現(xiàn)在,有了互聯(lián)網(wǎng),服務(wù)對(duì)象可以是全球用戶,規(guī)模大大增加了。

用戶規(guī)模增加,意味著對(duì)算力的需求也增加了?;ヂ?lián)網(wǎng)服務(wù)提供商,需要一種更強(qiáng)大、更便宜的算力,滿足用戶需求。

于是乎,就有了云計(jì)算。

image.png

很多人認(rèn)為,云計(jì)算就是一個(gè)超大號(hào)的機(jī)房,和以前的企業(yè)機(jī)房沒有區(qū)別,只不過服務(wù)器更多些。

這種觀點(diǎn)是不對(duì)的。

云計(jì)算的本質(zhì),不是算力資源的簡單堆砌,而是池化——它將大量的零散算力資源(廉價(jià)的算力資源)進(jìn)行打包、匯聚,實(shí)現(xiàn)更高可靠性、更高性能、更低成本的算力。

具體來說,在云計(jì)算中,CPU、GPU、內(nèi)存、硬盤等計(jì)算資源被集合起來,通過軟件的方式,組成一個(gè)虛擬的可無限擴(kuò)展的“算力資源池”。如果用戶有算力需求,“算力資源池”就會(huì)動(dòng)態(tài)地進(jìn)行算力資源的分配,構(gòu)建一個(gè)虛擬的“計(jì)算機(jī)”。用戶按需使用、付費(fèi),即可。

相比于用戶自購設(shè)備、自建機(jī)房、自己運(yùn)維,云計(jì)算有明顯的成本優(yōu)勢(shì),可以節(jié)約大量資金和人力。

根據(jù)提供算力資源的層級(jí)不同,云計(jì)算通常也分為IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺(tái)即服務(wù))、SaaS(軟件即服務(wù))。如下圖所示:

image.png

那么,問題又來了——云計(jì)算這種“租”的方式,是不是最終極的算力資源使用方式呢?我們作為用戶,使用算力,還能更簡單一點(diǎn)嗎?

答案是肯定的。

不管是自建機(jī)房,還是云計(jì)算,用戶都需要和服務(wù)器打交道,和軟硬件環(huán)境打交道。這些都是工具和過程,而我們的最終目的是什么?是得到運(yùn)算結(jié)果。

image.png

那么,為了得到結(jié)果,我們是不是一定要關(guān)心環(huán)境的搭建過程?

不一定。既然環(huán)境可以租,那何不更徹底一點(diǎn),直接“租”服務(wù)呢?

舉例來說,如果把計(jì)算過程理解為炒菜。以前,我們?yōu)榱顺床?,需要自己建個(gè)廚房,自己買鍋碗瓢盆、油鹽醬醋,自己親自炒菜。后來,有了云計(jì)算,我們可以租個(gè)廚房,租工具,然后炒菜。現(xiàn)在,想要更簡單的話,是不是可以直接叫外賣?

再例如,以前,我們上班通勤,是自己買車,自己開車。然后,有了云計(jì)算,相當(dāng)于租車?,F(xiàn)在,是不是可以直接打車?

說白了,我們要的是計(jì)算服務(wù)和計(jì)算結(jié)果。計(jì)算環(huán)境(硬件),我們完全可以不去操心。

image.png

說到這,我們的主角——Serverless,終于閃亮登場了。

對(duì)于Serverless,我們可以把它理解為一種架構(gòu),一種理念,甚至是一種思想。

Serverless的核心目的,就是在云計(jì)算的基礎(chǔ)上,再向前邁進(jìn)一步,徹底“包攬”所有的環(huán)境工作,直接提供計(jì)算服務(wù)。

在Serverless架構(gòu)下,開發(fā)者只需編寫代碼并上傳,云平臺(tái)就會(huì)自動(dòng)準(zhǔn)備好相應(yīng)的計(jì)算資源,完成運(yùn)算并輸出結(jié)果,從而大幅簡化開發(fā)運(yùn)維過程。

換句話說,用戶完全不用關(guān)心廚房,你把食材提供給Serverless平臺(tái),它負(fù)責(zé)把菜炒好,就這么簡單。

Serverless的特點(diǎn)

Serverless是云計(jì)算的進(jìn)一步延伸,所以,它繼承了云計(jì)算的最大特點(diǎn)——按需彈性伸縮、按需付費(fèi)。

現(xiàn)在的互聯(lián)網(wǎng)服務(wù),基本上都是采用微服務(wù)架構(gòu)。也就是把一整套服務(wù),拆分為多個(gè)細(xì)分服務(wù),由不同的服務(wù)器完成運(yùn)算。

Serverless的特點(diǎn)是,這個(gè)服務(wù)足夠“細(xì)小”,變成了“函數(shù)級(jí)”的顆粒度。

image.png

所謂函數(shù),就是提供輸入,計(jì)算輸出。

從層級(jí)上來看,Serverless在傳統(tǒng)云計(jì)算SaaS的Application(應(yīng)用)層級(jí)之上,又加了一層——function(函數(shù))。它的顆粒度更細(xì),可以更靈活地滿足用戶的算力需求。

image.png

按照CNCF對(duì)Serverless 的定義,Serverless架構(gòu)是采用FaaS(函數(shù)即服務(wù))和BaaS(后端服務(wù))服務(wù)來解決問題的一種設(shè)計(jì)。

FaaS就是Function as a service(函數(shù)即服務(wù))。每一個(gè)函數(shù)都是一個(gè)服務(wù),函數(shù)可以由任何語言編寫,直接托管在云平臺(tái),以服務(wù)形式運(yùn)行,通過事件觸發(fā)。

BaaS則是Backend as a service(后端即服務(wù))。云平臺(tái)提供的后端組件整合,開發(fā)者無需開發(fā)和維護(hù)后端服務(wù),通過API/SDK的調(diào)用,便可獲得例如數(shù)據(jù)存儲(chǔ)、消息推送、賬號(hào)管理等能力。

Serverless = FaaS + BaaS

Serverless的背后,依然是虛擬機(jī)和容器。只不過,服務(wù)器部署、runtime安裝、編譯等工作,都由Serverless計(jì)算平臺(tái)負(fù)責(zé)完成了。對(duì)開發(fā)人員來說,只需要維護(hù)源代碼和Serverless執(zhí)行環(huán)境的相關(guān)配置即可。這就叫“無服務(wù)器計(jì)算”。

Serverless架構(gòu)的最大優(yōu)勢(shì),顯然就是幫助用戶徹底擺脫了基礎(chǔ)設(shè)施管理這樣的“雜事”,更加專注于業(yè)務(wù)開發(fā),從而提升了效率,降低了開發(fā)和運(yùn)營成本。

根據(jù)業(yè)界的統(tǒng)計(jì),在商業(yè)和企業(yè)數(shù)據(jù)中心里的典型服務(wù)器,日常僅僅只提供了5%~15%的平均最大處理能力的輸出。這是一種算力資源的巨大浪費(fèi)。

Serverless的出現(xiàn),可以讓用戶按照實(shí)際算力使用量進(jìn)行付費(fèi),屬于真正的“精確計(jì)費(fèi)”。

換言之,用戶的每一分錢,都花在了刀刃上。

Serverless的發(fā)展歷程

世界上第一個(gè)Serverless平臺(tái),是2006年發(fā)布的Zimki。這個(gè)平臺(tái)提供服務(wù)端JavaScript應(yīng)用,支持“按照實(shí)際調(diào)用付費(fèi)”。不過,當(dāng)時(shí)他們并沒有使用Serverless這個(gè)名詞。

后來,到了2012年,Iron.io的副總裁Ken Form在文章“Why The Future of Software and Apps is Serverless”中,首次提出了Serverless,才宣告這個(gè)概念的正式誕生。

2014年11月,亞馬遜率先推出了真正意義上的第一款Serverless FaaS服務(wù)——Lambda。從此,各大廠商開始跟進(jìn)。

2017年,Serverless開始在國內(nèi)落地。這一年,阿里云和騰訊云先后推出了自己的 Serverless平臺(tái)。阿里云的Serverless平臺(tái),被直接命名為函數(shù)計(jì)算(FC,F(xiàn)unction Compute)。

一年后的2018年,阿里云推出Serverless容器服務(wù)ASK和Serverless應(yīng)用引擎SAE。

那一時(shí)期,剛好小程序開始火爆。Serverless的靈活架構(gòu),非常適合小程序的開發(fā)。于是,吸引了大量的開發(fā)者們。

到了2019年,國內(nèi)廠商紛紛入局Serverless。如今,Serverless已經(jīng)成了各大云廠商的標(biāo)配,受到整個(gè)行業(yè)的熱捧。

本月初,2022·云棲大會(huì)上,阿里云智能總裁張建鋒表示,以云為核心的新型計(jì)算體系正在形成,軟件研發(fā)范式正在發(fā)生新的變革,Serverless是其中最重要的趨勢(shì)之一。

image.png

他認(rèn)為,Serverless讓云計(jì)算從一種資源真正變成一種能力,未來云將全面Serverless化,更加接近“電網(wǎng)”模式,按計(jì)算的調(diào)用次數(shù)付費(fèi)。

目前,阿里云已經(jīng)擁有超過20款Serverless產(chǎn)品,包括函數(shù)計(jì)算FC、Serverless 應(yīng)用引擎SAE、Serverless容器服務(wù)ASK、PolarDB數(shù)據(jù)庫、AnalyticDB數(shù)倉等。其中函數(shù)計(jì)算日調(diào)用次數(shù)超過200億次,整體規(guī)模位居國內(nèi)首位。

前面小棗君也提到,Serverless并不是沒有服務(wù)器的計(jì)算,而是將算力環(huán)境和資源進(jìn)行了“隱藏”,讓用戶不可見,無需操心。事實(shí)上,Serverless不僅需要算力資源,而且對(duì)算力資源的要求比以往更高。

以阿里云為例。他們之所以能夠做Serverless平臺(tái),就是因?yàn)楸澈笥兴拇蠛诵募夹g(shù)的支撐。這四大核心技術(shù),分別是:神龍計(jì)算平臺(tái)、袋鼠沙箱容器、盤古存儲(chǔ)平臺(tái)和洛神網(wǎng)絡(luò)平臺(tái)。

在算力芯片上,阿里云今年6月新推出的一款云數(shù)據(jù)中心專用處理器 CIPU(Cloud Infrastructure Processing Unit),也非常擅長對(duì)數(shù)據(jù)中心的計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)資源進(jìn)行管理和加速,幫助進(jìn)一步提升Serverless平臺(tái)的性能。

Serverless的落地案例

接下來,我們不妨通過幾個(gè)案例,詳細(xì)看看阿里云Serverless平臺(tái)究竟是如何提升算力效率的。

阿里巴巴每年的雙11促銷,是行業(yè)公認(rèn)的算力極限挑戰(zhàn)。海量用戶、高并發(fā),對(duì)系統(tǒng)的處理能力有著極高的要求。

2020 年天貓雙 11,阿里云實(shí)現(xiàn)了國內(nèi)首例Serverless在核心業(yè)務(wù)場景下的大規(guī)模落地,扛住了全球最大規(guī)模的流量洪峰,創(chuàng)造了Serverless落地應(yīng)用的里程碑。

今年天貓雙 11,阿里云Serverless支撐業(yè)務(wù)場景更多,范圍更廣。阿里云函數(shù)計(jì)算(FC)與集團(tuán)內(nèi)的運(yùn)維體系全面實(shí)現(xiàn)標(biāo)準(zhǔn)化對(duì)接,打通了研發(fā)的最后一公里,首次實(shí)現(xiàn)了業(yè)務(wù)全鏈路“FaaS+BaaS”的Serverless體系化研發(fā),覆蓋淘特、淘系、阿里媽媽、1688、高德、飛豬等業(yè)務(wù)場景。

根據(jù)數(shù)據(jù)統(tǒng)計(jì),支撐場景數(shù)量同比增加2倍,峰值流量總數(shù)同比增加3倍,實(shí)現(xiàn)了百萬QPS的突破,人效提升40%。

image.png

再來看看外部用戶。

網(wǎng)易云音樂,是阿里云Serverless產(chǎn)品的重要客戶之一。

他們的產(chǎn)品背后,有非常多的算法服務(wù)支撐,比如多種碼率的音頻轉(zhuǎn)碼、聽歌識(shí)曲中應(yīng)用的音頻指紋生成和識(shí)別、副歌檢測、小語種音譯歌詞等等。

這些任務(wù)的資源需求和執(zhí)行時(shí)間變化很大,需要使用C++、Python等多種語言實(shí)現(xiàn),對(duì)算力的彈性要求非常大。

早期的時(shí)候,網(wǎng)易自建了一個(gè)算法服務(wù)平臺(tái),進(jìn)行應(yīng)對(duì)。但隨著業(yè)務(wù)增長,以及算法復(fù)雜度的不斷增加,基礎(chǔ)設(shè)施管理的負(fù)擔(dān)越來越大,嚴(yán)重影響了工作效率。

引入阿里云Serverless平臺(tái)之后,網(wǎng)易的算法計(jì)算需求得到了很好的滿足。網(wǎng)易在函數(shù)計(jì)算上高峰期一天處理超過2000萬個(gè)任務(wù),算法應(yīng)用到業(yè)務(wù)10倍速的提升,稀疏調(diào)用的算法成本大幅縮減。

同樣的效率提升,還發(fā)生在南瓜電影、越光醫(yī)療、世紀(jì)華聯(lián)、江娛互動(dòng)等企業(yè)身上。他們都是阿里云Serverless平臺(tái)的用戶。

image.png

2021年3月,阿里云函數(shù)計(jì)算憑借在產(chǎn)品能力、安全性、戰(zhàn)略愿景和市場規(guī)模等方面的優(yōu)勢(shì)脫穎而出,在19個(gè)評(píng)估項(xiàng)目中,拿到了8項(xiàng)滿分和12項(xiàng)最高分,進(jìn)入了FaaS領(lǐng)導(dǎo)者象限(綜合產(chǎn)品能力位列全球第一,戰(zhàn)略愿景全球第二)。這是首次有中國云廠商進(jìn)入Forrester FaaS領(lǐng)導(dǎo)者象限。

結(jié)語

隨著數(shù)字經(jīng)濟(jì)浪潮的蓬勃發(fā)展,以及各行各業(yè)數(shù)字化轉(zhuǎn)型的不斷推進(jìn),算力的價(jià)值正在持續(xù)提升。

在單純提升芯片算力方面,我們面臨越來越大的挑戰(zhàn)(摩爾定律逐漸失效)。在這種情況下,我們必須更多地考慮,該如何提升算力的使用效率。

作為一種靈活輕量化的新型算力架構(gòu),Serverless毫無疑問是我們挖掘算力潛力、提升算力效率的一個(gè)重要手段。

客觀來說,目前的Serverless談不上完美。在實(shí)時(shí)性等方面,還存在一些不足。小棗君相信,隨著時(shí)間的推移,這些問題最終都會(huì)得到解決。

Serverless,將引領(lǐng)我們?nèi)孀呦蛩懔π聲r(shí)代。

人物訪談