当我们在聊 Serverless 时你应该知道这些 | CSDN博文精选
戳藍字“CSDN云計算”關(guān)注我們哦!
作者 |?楊澤強(竹澗)
轉(zhuǎn)自 | CSDN企業(yè)博客
責編 | 阿禿
說起當前最火的技術(shù),除了最新的區(qū)塊鏈、AI,還有一個不得不提的概念是 Serverless。Serverless 作為一種新型的互聯(lián)網(wǎng)架構(gòu),直接或間接推動了云計算的發(fā)展,從 AWS Lambda 到阿里云函數(shù)計算,Serverless 一路高歌,同時基于 Serverless 的輕量計算開始登錄云計算的舞臺,本文將從兩個部分展開:
介紹 Serverless 的概念,歷史及其現(xiàn)狀與未來的思考;
Serverless Container 的概念及現(xiàn)狀。
一、聊聊 Serverless
Serverless 無服務(wù)器架構(gòu)是基于互聯(lián)網(wǎng)的系統(tǒng),其中應(yīng)用開發(fā)不使用常規(guī)的服務(wù)進程。相反,它們僅依賴于第三方服務(wù)(例如 AWS Lambda 服務(wù)),客戶端邏輯和服務(wù)托管遠程過程調(diào)用的組合。
AWS Lambda 作為 Serverless 最早的框架產(chǎn)品,在 2014 年由亞馬遜推出,但最早的 Serverless 概念并不是由亞馬遜提出,下面我們來簡單聊聊 Serverless 的歷史。
Serverless 歷史
發(fā)軔之始
2012 年云基礎(chǔ)設(shè)施服務(wù)提供商 Iron.io 的副總裁 Ken 提出軟件的未來 ,首次提出來 Serverless 概念, 以下是原文的一段摘錄:
Even with the rise of cloud computing, the world still revolves around servers. That won’t last, though. Cloud apps are moving into a serverless world, and that will bring big implications for the creation and distribution of software and applications.
初出茅廬
AWS Lambda 產(chǎn)品的發(fā)布可以認為是 Serverless 的里程碑,在此之前 Serverless 幾乎是停留在概念期,直到 14 年 Lambda 發(fā)布,讓“Serverless”提高到一個全新的層面,為云中運行的應(yīng)用程序提供了一種全新的系統(tǒng)體系架構(gòu),Serverless 開始正式走向云計算的舞臺。
嶄露頭角
在 AWS 發(fā)布 Lambda 之后,眾多 IaaS 及 Pass 廠商爭相入市,Google Cloud Functions, Azure Funcions, IBM OpenWhisk,阿里云函數(shù)計算,短短數(shù)年時間 Serverless 產(chǎn)品已遍地開花。
未來已來
隨著容器技術(shù)、IoT、5G、區(qū)塊鏈等技術(shù)的快速發(fā)展, 技術(shù)上對去中心化,輕量虛擬化,細粒度計算等技術(shù)需求愈發(fā)強烈,而 Serverless 必將借勢迅速發(fā)展,未來 Serverless 將在云計算的舞臺上大放異彩!
二、云計算發(fā)展看 Serverless
首先,拋一個總結(jié)性觀點:云計算的發(fā)展從IaaS、PaaS、SaaS,到最新的 BaaS、FasS,在這個趨勢中 serverless (去服務(wù)器化)越來越明顯,而 Serveless 的完善帶給云計算將會是一次完美進化!
眾所周知,云計算經(jīng)歷了從 IDC -> IaaS -> PaaS -> Serverless/FaaS 的發(fā)展歷程,下面對這些概念做一些基本介紹。
IaaS
IaaS(Infrastructure as a Service) 基礎(chǔ)設(shè)施即服務(wù),服務(wù)商提供底層/物理層基礎(chǔ)設(shè)施資源(服務(wù)器,數(shù)據(jù)中心,環(huán)境控制,電源,服務(wù)器機房),用戶需要通過 IaaS 提供的服務(wù)平臺購買虛擬資源,選擇操作系統(tǒng)、安裝軟件、部署程序、監(jiān)控應(yīng)用。
目前知名的 IaaS 平臺有 AWS、Azure、Google Cloud Plantform、阿里云以及開源的 OpenStack 等。
PaaS
PaaS (Platform as a Service) 平臺即服務(wù),服務(wù)商提供基礎(chǔ)設(shè)施底層服務(wù),提供操作系統(tǒng)(Windows,Linux)、數(shù)據(jù)庫服務(wù)器、Web 服務(wù)器、負載均衡器和其他中間件,相對于 IaaS 客戶僅僅需要自己控制上層的應(yīng)用程序部署與應(yīng)用托管的環(huán)境。
目前知名的 PaaS 平臺有 Amazon Elastic Beanstalk,Azure,Google App Engine,VMware Cloud Foundry 等。
SaaS
SaaS (Software as a Service) 軟件即服務(wù), 服務(wù)商提供基于軟件的解決方案,如 OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud 等,客戶不需考慮任何形式的專業(yè)技術(shù)知識,只需要通過服務(wù)商平臺獲取軟件使用即可。
BaaS
BaaS (Backend as a Service) 后端即服務(wù),服務(wù)商為客戶(開發(fā)者)提供整合云后端的服務(wù),如提供文件存儲、數(shù)據(jù)存儲、推送服務(wù)、身份驗證服務(wù)等功能,以幫助開發(fā)者快速開發(fā)應(yīng)用。
FaaS
FaaS (Function as a Service) 函數(shù)即服務(wù),服務(wù)商提供一個平臺,允許客戶開發(fā)、運行和管理應(yīng)用程序功能,而無需構(gòu)建和維護基礎(chǔ)架構(gòu)。按照此模型構(gòu)建應(yīng)用程序是實現(xiàn)“無服務(wù)器”體系結(jié)構(gòu)的一種方式,通常在構(gòu)建微服務(wù)應(yīng)用程序時使用。
IaaS、PaaS、FaaS 對比
舉個例子,比如小明想開一個水果店:
IDC:如果蓋房子,裝修、上架水果這些工作都是小明自己來做;
IaaS:如果小明房子是租的,裝修、上架水果是自己做;
PaaS: 如果小明房子是租的,可是房子已經(jīng)裝修好了,但是上架水果要自己來做;
FaaS:如果有一個商家提供裝修好的水果店,小明只負責把水果送過來,其余上架工作都由商家來做。
總結(jié)
從 IDC → IaaS,用戶不用關(guān)注真實的物理資源。
從 IaaS → PaaS,用戶不再關(guān)注操作系統(tǒng),數(shù)據(jù)庫,中間件等基礎(chǔ)軟件。
從 PaaS → BaaS/FaaS, 用戶可以很少甚至不用關(guān)注 backend,app 可以簡化為一個單頁面程序。
可以說,Serverless 是云計算發(fā)展到一定階段的必然產(chǎn)物,云計算作為普惠科技,發(fā)展到最后一定是綠色科技(最大程度利用資源,減少空閑資源浪費)、大眾科技(成本低,包括學習成本及使用成本)的產(chǎn)品,而 Serverless 將很好的詮釋這些!
三、Serverless/FaaS 模型
Serverless 是基于事件驅(qū)動的編程范型,其底層的計算平臺一般為輕量計算,比如容器計算 Docker。
針對該模型本文不再贅述, 下面以 AWS Lambda 及阿里云函數(shù)計算為例,簡單介紹該模型。
AWS Lambda
大致流程如下:
UI 驅(qū)動,通過模擬鼠標點擊觸發(fā)事件;
當觸發(fā)事件增多時,lambda 實例自動擴容;
當觸發(fā)事件減少時,lambda 實例自動縮容。
阿里云函數(shù)計算
流程大致如下:
UI/Event/Message Driven 觸發(fā)事件;
用戶 Function 會 package 為一個 docker 鏡像;
事件調(diào)度系統(tǒng)配合 Docker 集群運行 Docker 容器來執(zhí)行 Function 。
四、Serverless 價值與影響
低成本
運營成本,Serverless 將用戶的服務(wù)器、數(shù)據(jù)庫、中間件委托于 BaaS/FaaS,用戶將不再參與基礎(chǔ)設(shè)施及軟件的維護,尤其在大規(guī)模的集群運營上成本大幅度降低;
開發(fā)成本,對比 IaaS 或者 PaaS 平臺的服務(wù)器或者操作系統(tǒng),Serverless 的架構(gòu)中,用戶操作的是服務(wù)化的組件比如存儲服務(wù),授權(quán)服務(wù)等,可以縮短開發(fā)周期,降低開發(fā)難度。
真正的按需計費
Serverless/FaaS 區(qū)別于 IaaS/PaaS 預先分配計算資源的計費方式,其計費方式通常是按請求次數(shù)及運行時間,一方面可以最大程度利用資源,另一方面真正的按需計費降低用戶的資源成本。
高擴展
Serverless 架構(gòu)一個顯而易見的優(yōu)點即“橫向擴展是完全自動的、有彈性的、且由服務(wù)提供者所管理”。
“綠色”計算
據(jù)統(tǒng)計,商業(yè)和企業(yè)數(shù)據(jù)中心的典型服務(wù)器僅提供 5%~15% 的平均最大處理能力的輸出,本質(zhì)上這是對社會資源的一種浪費。而在 Serverless 架構(gòu)下,提供商將提供更細力度的計算能力,最大限度滿足實時需求,資源利用率將大幅度提升,可以認為相對 IaaS 與 PaaS,Serverless/FaaS 是一種 “綠色” 計算。
NoOps
運維的發(fā)展經(jīng)歷了人肉運維、自動化運維、DevOps、AiOps 等,而 Serverless 帶來一種新的運維模式,這種模式下用戶需要管理的只有 Code 可以認為 NoOps。
五、Serverless 應(yīng)用場景
1、事件驅(qū)動以及響應(yīng)式架構(gòu)
IoT 物聯(lián)網(wǎng)場景中低頻請求
請求對及時響應(yīng)需求不夠
固定時間觸發(fā)計算資源利用低的業(yè)務(wù)
2、流量突發(fā)場景
比如短時間大流量視頻轉(zhuǎn)碼
短周期內(nèi)的流量峰值
3、跨云與混合云場
4、邊緣計算
5、其它 ...
六、Serverless 未來的一些思考
細粒度的計算資源
目前主流的 Serverless/FaaS 技術(shù)底層的計算環(huán)境通常是容器比如 Docker,容器技術(shù)是一種比硬件虛擬化更輕量的實現(xiàn),用戶可以在虛擬機上運行大量的容器,可以更大程度的利用計算資源。
而Serverless 的需求可能是更細粒度的計算資源,比如最近華為發(fā)布的 CCI 產(chǎn)品容器的規(guī)格已經(jīng)支持千分之一核,相信千分之一核只是開始,未來 Serverless 在細粒度資源使用上將發(fā)揮無限可能。
統(tǒng)一的容器調(diào)度模型
從當前 Serverless/FaaS 及容器生態(tài)的發(fā)展來看,容器基本都是運行在云主機之上比如 aws 的 ec2,阿里云的 ecs。
由于云廠商實現(xiàn)方式及不同產(chǎn)品的差異性,容器的調(diào)度框架選擇不盡相同,比如有的廠商其 Serverless 產(chǎn)品是基于 Kubernetes 管理云主機集群進行容器編排及調(diào)度(比如華為的 CCI),而有的產(chǎn)品如阿里云的函數(shù)計算產(chǎn)品是基于自研的 Agent 進行容器調(diào)度。那么為什么沒有一種產(chǎn)品可以為不同的 Serverless 服務(wù)提供通用的容器調(diào)度能力呢?
生態(tài)圈多樣化
Serverless 的發(fā)展必然會帶動其周邊生態(tài)的完善,比如 BaaS 及 FaaS 產(chǎn)品的形態(tài)將多樣化輸出,舉個例子:
Serverless 架構(gòu)下用戶的 Code 是沒有服務(wù)端的,而這些服務(wù)將由云廠商以 BaaS 的服務(wù)形態(tài)提供,隨著 Serverless 的發(fā)展,必然會催生多樣化的 BaaS 服務(wù)。
產(chǎn)品抽象輸出
Serverless 是云計算普惠科技的重磅技術(shù)!Serverless 的出現(xiàn)將開發(fā)者從復雜的硬件及軟件環(huán)境中解脫出來,未來可以想象 Serverless 的產(chǎn)品將會以更加簡單的方式呈現(xiàn)給用戶。舉個例子:大家熟知的樂高積木,不同的小零件按照不同的方式組裝,最終得到的作品是多樣化的。
而 Serverless 天生具備這種優(yōu)勢,可以想象如果 Function 以服務(wù)化的方式抽象,開發(fā)者開發(fā)一個 Cloud App 需要做的事情就是在無數(shù)的 Function 里面挑選自己需要的“積木”,然后通過一種可視化的工具進行"積木"組合!
七、Serverless Container
前文講了一些 Serverless 生態(tài)的概念及現(xiàn)狀,從當前主流的 Serverless/FaaS 框架,如 AWS Lambda、IBM OpenWhisk、Iron.io、阿里云函數(shù)計算分析來看,其底層的計算資源通常是 Docker 容器。可以認為 Serverless 構(gòu)建于容器 (Docker) 之上!
什么是 Serverless Container
Serverless Container(無服務(wù)器容器),意味著用戶不再需要關(guān)注容器集群和服務(wù)器,只需關(guān)注 Docker 容器或者 Docker Image 即可。
通過分析業(yè)界主流的的 Serverless Container 產(chǎn)品如 AWS Fargate, Azure ACI, 華為 CCI,可以看出:
Serverless Container 提供了更為簡單的體驗,用戶不再需要理解容器編排技術(shù)如 K8s,Swarm;
Serverless Container 提供了更細粒度的的能力,比如微核粒度的 CPU 資源和 MB 粒度的內(nèi)存資源;
Serverless Container 提供了將容器作為基礎(chǔ)計算單元的思路。
Serverless Container VS Kubernets
Kuberntes (K8s) 是谷歌開源的容器管理系統(tǒng),類似的產(chǎn)品還有 Docker Swarm、Apache Mesos。這些優(yōu)秀的集群管理系統(tǒng),尤其是 K8s 已經(jīng)在生成得到了充分驗證,從使用角度來說,K8s 需要用戶具備容器及容器編排、集群管理等多方面的專業(yè)知識,而 Serverless Container 對用戶屏蔽了容器集群管理,用戶使用起來將更簡單!
結(jié)論:Serverless Container 在容器產(chǎn)品形態(tài)上是高于 Kubernetes 的,事實上大部分的 Serverless Container 產(chǎn)品都基于或者兼容 Kubernetes。
Serverless Container VS Serverless/FaaS
根據(jù)上文的分析:
Serverless Container 對用戶提供的是一種容器計算資源,用戶不需要關(guān)心容器集群,只需要定制 vCpu、mem 及 Docker Image;
Serverless/FaaS 提供的是一種服務(wù)化的計算能力,用戶同樣不用關(guān)心計算集群,只需指定 vCpu,mem 及 Code。
結(jié)論:FaaS 及 Serverless Container 的底層計算資源都是 Docker 容器!
掃描下方二維碼,查看原博主精彩分享???
福利掃描添加小編微信,備注“姓名+公司職位”,入駐【CSDN博客】,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
推薦閱讀:
- 【建議收藏】數(shù)據(jù)中心服務(wù)器基礎(chǔ)知識大全
- 博文強識|支付寶 App 是如何建設(shè)移動 DevOps 的?
在辦公室裝警報、參加楊超越編程大賽——“開發(fā)者之友”聲網(wǎng)Agora團隊是怎樣煉成的?
- 大規(guī)模1.4億中文知識圖譜數(shù)據(jù),我把它開源了
巨頭垂涎卻不能染指,loT 數(shù)據(jù)庫風口已至
“國家隊”入局! 中移動、銀聯(lián)等宣布區(qū)塊鏈服務(wù)網(wǎng)絡(luò)(BSN)正式內(nèi)測!
總結(jié)
以上是生活随笔為你收集整理的当我们在聊 Serverless 时你应该知道这些 | CSDN博文精选的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: boost::container模块实现
- 下一篇: 国内首款全国产固态硬盘控制芯片发布