今天這篇文章,我們來(lái)聊一個(gè)云計(jì)算領(lǐng)域的熱門(mén)概念——Serverless。
到底什么是Serverless? 英語(yǔ)好的童鞋,可能一眼就看出來(lái)了,Serverless是由Server和less兩個(gè)詞根組成的詞。從字面上理解,就是“無(wú)服務(wù)器”。
行業(yè)通常所說(shuō)的Serverless,主要是指“無(wú)服務(wù)器計(jì)算(Serverless Computing)”。
那么問(wèn)題來(lái)了,這年頭,就連小學(xué)生都知道,服務(wù)器是具有很強(qiáng)計(jì)算能力的計(jì)算機(jī),是我們現(xiàn)在最主要的計(jì)算工具。“無(wú)服務(wù)器計(jì)算”,如果不采用服務(wù)器,那該怎么算呢?
事實(shí)上,Serverless所謂的“無(wú)服務(wù)器計(jì)算”,并不是真的不需要服務(wù)器,而是說(shuō),對(duì)于用戶,服務(wù)器變得“不可見(jiàn)”了(或者說(shuō)“無(wú)感知”了)。
越說(shuō)越玄乎了,有木有?別急,還是讓我從頭開(kāi)始說(shuō)起吧——
█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ù))算力不足的問(wèn)題,專家們發(fā)明了網(wǎng)格計(jì)算這樣的分布式計(jì)算架構(gòu),取得了不錯(cuò)的效果。
說(shuō)白了,分布式計(jì)算,就是把一個(gè)巨大的計(jì)算任務(wù),分解為很多的小型計(jì)算任務(wù),交給不同的計(jì)算機(jī)分工完成,
?
再后來(lái),隨著芯片技術(shù)的進(jìn)步,計(jì)算機(jī)的體積變得越來(lái)越小,算力也變得越來(lái)越強(qiáng)勁。不久后,小型化的計(jì)算機(jī)出現(xiàn)了,也就是我們常說(shuō)的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ī)模變得越來(lái)越大。
互聯(lián)網(wǎng)的出現(xiàn),徹底改變了計(jì)算機(jī)服務(wù)用戶的方式。
此前,一個(gè)機(jī)房服務(wù)于一所學(xué)校、一家企業(yè)、一個(gè)政府部門(mén),現(xiàn)在,有了互聯(lián)網(wǎng),服務(wù)對(duì)象可以是全球用戶,規(guī)模大大增加了。
用戶規(guī)模增加,意味著對(duì)算力的需求也增加了。互聯(lián)網(wǎng)服務(wù)提供商,需要一種更強(qiáng)大、更便宜的算力,滿足用戶需求。
于是乎,就有了云計(jì)算。
很多人認(rèn)為,云計(jì)算就是一個(gè)超大號(hào)的機(jī)房,和以前的企業(yè)機(jī)房沒(méi)有區(qū)別,只不過(guò)服務(wù)器更多些。
這種觀點(diǎn)是不對(duì)的。
云計(jì)算的本質(zhì),不是算力資源的簡(jiǎn)單堆砌,而是池化——它將大量的零散算力資源(廉價(jià)的算力資源)進(jìn)行打包、匯聚,實(shí)現(xiàn)更高可靠性、更高性能、更低成本的算力。
具體來(lái)說(shuō),在云計(jì)算中,CPU、GPU、內(nèi)存、硬盤(pán)等計(jì)算資源被集合起來(lái),通過(guò)軟件的方式,組成一個(gè)虛擬的可無(wú)限擴(kuò)展的“算力資源池”。如果用戶有算力需求,“算力資源池”就會(huì)動(dòng)態(tài)地進(jìn)行算力資源的分配,構(gòu)建一個(gè)虛擬的“計(jì)算機(jī)”。用戶按需使用、付費(fèi),即可。
相比于用戶自購(gòu)設(shè)備、自建機(jī)房、自己運(yùn)維,云計(jì)算有明顯的成本優(yōu)勢(shì),可以節(jié)約大量資金和人力。
根據(jù)提供算力資源的層級(jí)不同,云計(jì)算通常也分為IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺(tái)即服務(wù))、SaaS(軟件即服務(wù))。如下圖所示:
那么,問(wèn)題又來(lái)了——云計(jì)算這種“租”的方式,是不是最終極的算力資源使用方式呢?我們作為用戶,使用算力,還能更簡(jiǎn)單一點(diǎn)嗎?
答案是肯定的。
不管是自建機(jī)房,還是云計(jì)算,用戶都需要和服務(wù)器打交道,和軟硬件環(huán)境打交道。這些都是工具和過(guò)程,而我們的最終目的是什么?是得到運(yùn)算結(jié)果。
?
那么,為了得到結(jié)果,我們是不是一定要關(guān)心環(huán)境的搭建過(guò)程?
不一定。既然環(huán)境可以租,那何不更徹底一點(diǎn),直接“租”服務(wù)呢?
舉例來(lái)說(shuō),如果把計(jì)算過(guò)程理解為炒菜。以前,我們?yōu)榱顺床耍枰约航▊€(gè)廚房,自己買鍋碗瓢盆、油鹽醬醋,自己親自炒菜。后來(lái),有了云計(jì)算,我們可以租個(gè)廚房,租工具,然后炒菜。現(xiàn)在,想要更簡(jiǎn)單的話,是不是可以直接叫外賣?
再例如,以前,我們上班通勤,是自己買車,自己開(kāi)車。然后,有了云計(jì)算,相當(dāng)于租車。現(xiàn)在,是不是可以直接打車?
說(shuō)白了,我們要的是計(jì)算服務(wù)和計(jì)算結(jié)果。計(jì)算環(huán)境(硬件),我們完全可以不去操心。
?
說(shuō)到這,我們的主角——Serverless,終于閃亮登場(chǎng)了。
對(duì)于Serverless,我們可以把它理解為一種架構(gòu),一種理念,甚至是一種思想。
Serverless的核心目的,就是在云計(jì)算的基礎(chǔ)上,再向前邁進(jìn)一步,徹底“包攬”所有的環(huán)境工作,直接提供計(jì)算服務(wù)。
在Serverless架構(gòu)下,開(kāi)發(fā)者只需編寫(xiě)代碼并上傳,云平臺(tái)就會(huì)自動(dòng)準(zhǔn)備好相應(yīng)的計(jì)算資源,完成運(yùn)算并輸出結(jié)果,從而大幅簡(jiǎn)化開(kāi)發(fā)運(yùn)維過(guò)程。
換句話說(shuō),用戶完全不用關(guān)心廚房,你把食材提供給Serverless平臺(tái),它負(fù)責(zé)把菜炒好,就這么簡(jiǎn)單。
█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í)”的顆粒度。
所謂函數(shù),就是提供輸入,計(jì)算輸出。
從層級(jí)上來(lái)看,Serverless在傳統(tǒng)云計(jì)算SaaS的Application(應(yīng)用)層級(jí)之上,又加了一層——function(函數(shù))。它的顆粒度更細(xì),可以更靈活地滿足用戶的算力需求。
?
按照CNCF對(duì)Serverless 的定義,Serverless架構(gòu)是采用FaaS(函數(shù)即服務(wù))和BaaS(后端服務(wù))服務(wù)來(lái)解決問(wèn)題的一種設(shè)計(jì)。
FaaS就是Function as a service(函數(shù)即服務(wù))。每一個(gè)函數(shù)都是一個(gè)服務(wù),函數(shù)可以由任何語(yǔ)言編寫(xiě),直接托管在云平臺(tái),以服務(wù)形式運(yùn)行,通過(guò)事件觸發(fā)。
BaaS則是Backend as a service(后端即服務(wù))。云平臺(tái)提供的后端組件整合,開(kāi)發(fā)者無(wú)需開(kāi)發(fā)和維護(hù)后端服務(wù),通過(guò)API/SDK的調(diào)用,便可獲得例如數(shù)據(jù)存儲(chǔ)、消息推送、賬號(hào)管理等能力。
Serverless = FaaS + BaaS
Serverless的背后,依然是虛擬機(jī)和容器。只不過(guò),服務(wù)器部署、runtime安裝、編譯等工作,都由Serverless計(jì)算平臺(tái)負(fù)責(zé)完成了。
對(duì)開(kāi)發(fā)人員來(lái)說(shuō),只需要維護(hù)源代碼和Serverless執(zhí)行環(huán)境的相關(guān)配置即可。這就叫“無(wú)服務(wù)器計(jì)算”。
Serverless架構(gòu)的最大優(yōu)勢(shì),顯然就是幫助用戶徹底擺脫了基礎(chǔ)設(shè)施管理這樣的“雜事”,更加專注于業(yè)務(wù)開(kāi)發(fā),從而提升了效率,降低了開(kāi)發(fā)和運(yùn)營(yíng)成本。
根據(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)”。不過(guò),當(dāng)時(shí)他們并沒(méi)有使用Serverless這個(gè)名詞。
后來(lái),到了2012年,Iron.io的副總裁Ken Form在文章“Why The Future of Software and Apps is Serverless”中,首次提出了Serverless,才宣告這個(gè)概念的正式誕生。
2014年11月,亞馬遜率先推出了真正意義上的第一款Serverless FaaS服務(wù)——Lambda。從此,各大廠商開(kāi)始跟進(jìn)。
2017年,Serverless開(kāi)始在國(guó)內(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í)期,剛好小程序開(kāi)始火爆。Serverless的靈活架構(gòu),非常適合小程序的開(kāi)發(fā)。于是,吸引了大量的開(kāi)發(fā)者們。
到了2019年,國(guó)內(nèi)廠商紛紛入局Serverless。如今,Serverless已經(jīng)成了各大云廠商的標(biāo)配,受到整個(gè)行業(yè)的熱捧。
█結(jié)語(yǔ)
隨著數(shù)字經(jīng)濟(jì)浪潮的蓬勃發(fā)展,以及各行各業(yè)數(shù)字化轉(zhuǎn)型的不斷推進(jìn),算力的價(jià)值正在持續(xù)提升。
在單純提升芯片算力方面,我們面臨越來(lái)越大的挑戰(zhàn)(摩爾定律逐漸失效)。在這種情況下,我們必須更多地考慮,該如何提升算力的使用效率。
作為一種靈活輕量化的新型算力架構(gòu),Serverless毫無(wú)疑問(wèn)是我們挖掘算力潛力、提升算力效率的一個(gè)重要手段。
客觀來(lái)說(shuō),目前的Serverless談不上完美。在實(shí)時(shí)性等方面,還存在一些不足。隨著時(shí)間的推移,這些問(wèn)題最終都會(huì)得到解決。
Serverless,將引領(lǐng)我們?nèi)孀呦蛩懔π聲r(shí)代。
審核編輯:劉清
-
gpu
+關(guān)注
關(guān)注
28文章
4735瀏覽量
128919 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9142瀏覽量
85384 -
SaaS
+關(guān)注
關(guān)注
1文章
363瀏覽量
36919
原文標(biāo)題:什么是 “無(wú)服務(wù)器計(jì)算” ?
文章出處:【微信號(hào):wuxian_shenhai,微信公眾號(hào):無(wú)線深海】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論