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