今天這篇文章,我們來聊一個云計算領域的熱門概念——Serverless。
到底什么是Serverless? 英語好的童鞋,可能一眼就看出來了,Serverless是由Server和less兩個詞根組成的詞。從字面上理解,就是“無服務器”。
行業通常所說的Serverless,主要是指“無服務器計算(Serverless Computing)”。
那么問題來了,這年頭,就連小學生都知道,服務器是具有很強計算能力的計算機,是我們現在最主要的計算工具。“無服務器計算”,如果不采用服務器,那該怎么算呢?
事實上,Serverless所謂的“無服務器計算”,并不是真的不需要服務器,而是說,對于用戶,服務器變得“不可見”了(或者說“無感知”了)。
越說越玄乎了,有木有?別急,還是讓我從頭開始說起吧——
█Serverless的誕生背景
1946年2月,世界上第一臺數字式電子計算機ENIAC誕生,標志著人類正式進入了數字計算機時代。
早期的計算機都是大型機,體積龐大,價格昂貴,但是,算力卻很弱。當時,這些機器只有很少的公司才能擁有,用于特定的計算目的。
到了1970-80年代,為了解決單點式計算(一臺大型機,獨立完成全部的計算任務)算力不足的問題,專家們發明了網格計算這樣的分布式計算架構,取得了不錯的效果。
說白了,分布式計算,就是把一個巨大的計算任務,分解為很多的小型計算任務,交給不同的計算機分工完成,
?
再后來,隨著芯片技術的進步,計算機的體積變得越來越小,算力也變得越來越強勁。不久后,小型化的計算機出現了,也就是我們常說的PC(Personal Computer,個人電腦)。
計算機制造和使用成本的不斷下降,加速自身的普及,也刺激了計算機網絡的出現與發展。從局域網到廣域網,再到互聯網,計算機網絡的規模變得越來越大。
互聯網的出現,徹底改變了計算機服務用戶的方式。
此前,一個機房服務于一所學校、一家企業、一個政府部門,現在,有了互聯網,服務對象可以是全球用戶,規模大大增加了。
用戶規模增加,意味著對算力的需求也增加了。互聯網服務提供商,需要一種更強大、更便宜的算力,滿足用戶需求。
于是乎,就有了云計算。
很多人認為,云計算就是一個超大號的機房,和以前的企業機房沒有區別,只不過服務器更多些。
這種觀點是不對的。
云計算的本質,不是算力資源的簡單堆砌,而是池化——它將大量的零散算力資源(廉價的算力資源)進行打包、匯聚,實現更高可靠性、更高性能、更低成本的算力。
具體來說,在云計算中,CPU、GPU、內存、硬盤等計算資源被集合起來,通過軟件的方式,組成一個虛擬的可無限擴展的“算力資源池”。如果用戶有算力需求,“算力資源池”就會動態地進行算力資源的分配,構建一個虛擬的“計算機”。用戶按需使用、付費,即可。
相比于用戶自購設備、自建機房、自己運維,云計算有明顯的成本優勢,可以節約大量資金和人力。
根據提供算力資源的層級不同,云計算通常也分為IaaS(基礎設施即服務)、PaaS(平臺即服務)、SaaS(軟件即服務)。如下圖所示:
那么,問題又來了——云計算這種“租”的方式,是不是最終極的算力資源使用方式呢?我們作為用戶,使用算力,還能更簡單一點嗎?
答案是肯定的。
不管是自建機房,還是云計算,用戶都需要和服務器打交道,和軟硬件環境打交道。這些都是工具和過程,而我們的最終目的是什么?是得到運算結果。
?
那么,為了得到結果,我們是不是一定要關心環境的搭建過程?
不一定。既然環境可以租,那何不更徹底一點,直接“租”服務呢?
舉例來說,如果把計算過程理解為炒菜。以前,我們為了炒菜,需要自己建個廚房,自己買鍋碗瓢盆、油鹽醬醋,自己親自炒菜。后來,有了云計算,我們可以租個廚房,租工具,然后炒菜。現在,想要更簡單的話,是不是可以直接叫外賣?
再例如,以前,我們上班通勤,是自己買車,自己開車。然后,有了云計算,相當于租車。現在,是不是可以直接打車?
說白了,我們要的是計算服務和計算結果。計算環境(硬件),我們完全可以不去操心。
?
說到這,我們的主角——Serverless,終于閃亮登場了。
對于Serverless,我們可以把它理解為一種架構,一種理念,甚至是一種思想。
Serverless的核心目的,就是在云計算的基礎上,再向前邁進一步,徹底“包攬”所有的環境工作,直接提供計算服務。
在Serverless架構下,開發者只需編寫代碼并上傳,云平臺就會自動準備好相應的計算資源,完成運算并輸出結果,從而大幅簡化開發運維過程。
換句話說,用戶完全不用關心廚房,你把食材提供給Serverless平臺,它負責把菜炒好,就這么簡單。
█Serverless的特點
Serverless是云計算的進一步延伸,所以,它繼承了云計算的最大特點——按需彈性伸縮、按需付費。 現在的互聯網服務,基本上都是采用微服務架構。也就是把一整套服務,拆分為多個細分服務,由不同的服務器完成運算。
Serverless的特點是,這個服務足夠“細小”,變成了“函數級”的顆粒度。
所謂函數,就是提供輸入,計算輸出。
從層級上來看,Serverless在傳統云計算SaaS的Application(應用)層級之上,又加了一層——function(函數)。它的顆粒度更細,可以更靈活地滿足用戶的算力需求。
?
按照CNCF對Serverless 的定義,Serverless架構是采用FaaS(函數即服務)和BaaS(后端服務)服務來解決問題的一種設計。
FaaS就是Function as a service(函數即服務)。每一個函數都是一個服務,函數可以由任何語言編寫,直接托管在云平臺,以服務形式運行,通過事件觸發。
BaaS則是Backend as a service(后端即服務)。云平臺提供的后端組件整合,開發者無需開發和維護后端服務,通過API/SDK的調用,便可獲得例如數據存儲、消息推送、賬號管理等能力。
Serverless = FaaS + BaaS
Serverless的背后,依然是虛擬機和容器。只不過,服務器部署、runtime安裝、編譯等工作,都由Serverless計算平臺負責完成了。
對開發人員來說,只需要維護源代碼和Serverless執行環境的相關配置即可。這就叫“無服務器計算”。
Serverless架構的最大優勢,顯然就是幫助用戶徹底擺脫了基礎設施管理這樣的“雜事”,更加專注于業務開發,從而提升了效率,降低了開發和運營成本。
根據業界的統計,在商業和企業數據中心里的典型服務器,日常僅僅只提供了5%~15%的平均最大處理能力的輸出。這是一種算力資源的巨大浪費。
Serverless的出現,可以讓用戶按照實際算力使用量進行付費,屬于真正的“精確計費”。 換言之,用戶的每一分錢,都花在了刀刃上。
█Serverless的發展歷程
世界上第一個Serverless平臺,是2006年發布的Zimki。這個平臺提供服務端JavaScript應用,支持“按照實際調用付費”。不過,當時他們并沒有使用Serverless這個名詞。
后來,到了2012年,Iron.io的副總裁Ken Form在文章“Why The Future of Software and Apps is Serverless”中,首次提出了Serverless,才宣告這個概念的正式誕生。
2014年11月,亞馬遜率先推出了真正意義上的第一款Serverless FaaS服務——Lambda。從此,各大廠商開始跟進。
2017年,Serverless開始在國內落地。這一年,阿里云和騰訊云先后推出了自己的 Serverless平臺。阿里云的Serverless平臺,被直接命名為函數計算(FC,Function Compute)。
一年后的2018年,阿里云推出Serverless容器服務ASK和Serverless應用引擎SAE。
那一時期,剛好小程序開始火爆。Serverless的靈活架構,非常適合小程序的開發。于是,吸引了大量的開發者們。
到了2019年,國內廠商紛紛入局Serverless。如今,Serverless已經成了各大云廠商的標配,受到整個行業的熱捧。
█結語
隨著數字經濟浪潮的蓬勃發展,以及各行各業數字化轉型的不斷推進,算力的價值正在持續提升。
在單純提升芯片算力方面,我們面臨越來越大的挑戰(摩爾定律逐漸失效)。在這種情況下,我們必須更多地考慮,該如何提升算力的使用效率。
作為一種靈活輕量化的新型算力架構,Serverless毫無疑問是我們挖掘算力潛力、提升算力效率的一個重要手段。
客觀來說,目前的Serverless談不上完美。在實時性等方面,還存在一些不足。隨著時間的推移,這些問題最終都會得到解決。
Serverless,將引領我們全面走向算力新時代。
審核編輯:劉清
-
gpu
+關注
關注
28文章
4768瀏覽量
129337 -
服務器
+關注
關注
12文章
9295瀏覽量
86032 -
SaaS
+關注
關注
1文章
363瀏覽量
37023
原文標題:什么是 “無服務器計算” ?
文章出處:【微信號:wuxian_shenhai,微信公眾號:無線深海】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論