詳解Serverless架構(gòu)及應(yīng)用
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
一、直接使用物理設(shè)備:
開(kāi)發(fā)者將應(yīng)用程序開(kāi)發(fā)測(cè)試完畢后,直接將程序和相關(guān)軟件部署在物理設(shè)備上。服務(wù)器直接使用物理機(jī)。直接使用物理設(shè)備部署應(yīng)用程序不可避免地需要大量人工運(yùn)維和重復(fù)勞動(dòng)。比方說(shuō),用戶數(shù)量逐漸增長(zhǎng)時(shí),我們需要擴(kuò)容物理設(shè)備以應(yīng)對(duì)更高的網(wǎng)站訪問(wèn)壓力。
這時(shí)候我們需要購(gòu)置更多的物理服務(wù)器,并且搬運(yùn)到機(jī)房的對(duì)應(yīng)機(jī)架機(jī)柜中。然后,我們需要手動(dòng)為新購(gòu)置的物理服務(wù)器安裝各種運(yùn)行軟件,填寫(xiě)好配置文件,手動(dòng)部署啟動(dòng)好需要運(yùn)行的應(yīng)用程序。這些大量的重復(fù)運(yùn)維勞動(dòng)造成產(chǎn)品上線慢,迭代周期長(zhǎng)。其次,使用物理設(shè)備直接部署應(yīng)用程序?qū)?dǎo)致資源浪費(fèi)。如今的物理服務(wù)器的配置越來(lái)越強(qiáng)大,64核128G在今天看來(lái)也不過(guò)是普通配置。很難想象你買(mǎi)了一臺(tái)32核的物理機(jī),卻只想搭建個(gè)人博客。此外,電商行業(yè)經(jīng)常為了應(yīng)對(duì)促銷(xiāo)秒殺等活動(dòng)準(zhǔn)備大量的物理資源,然而在非促銷(xiāo)等流量低谷時(shí)段,大量物理資源處理閑置狀態(tài),不利于節(jié)約成本。
最后,為了解決資源浪費(fèi)的問(wèn)題,我們很容易想到,可以將多個(gè)應(yīng)用程序部署在同一臺(tái)服務(wù)器上來(lái)充分利用資源。但由此又導(dǎo)致了新的麻煩,不同的應(yīng)用程序經(jīng)常會(huì)搶占CPU,磁盤(pán)IO,內(nèi)存,難以做到隔離資源,各行其是,互不干擾。
二、IaaS托管硬件
虛擬化技術(shù)的成熟直接解決了上述直接使用物理設(shè)備的幾個(gè)痛點(diǎn)。
首先,使用IaaS平臺(tái),服務(wù)器由物理機(jī)變成了虛擬機(jī)。申請(qǐng)服務(wù)器資源僅需要調(diào)用IaaS平臺(tái)的API或者點(diǎn)擊控制臺(tái)頁(yè)面就可以輕松完成。CPU個(gè)數(shù),內(nèi)存大小,網(wǎng)絡(luò)帶寬,存儲(chǔ)磁盤(pán)大小都可以按需指定,隨心所欲。虛擬機(jī)被玩壞了也不需要重裝系統(tǒng)修復(fù),刪除重建新虛擬機(jī)即可。擴(kuò)容服務(wù)器不再需要大量的重復(fù)人工運(yùn)維勞動(dòng),加速了產(chǎn)品上線和迭代。
其次,使用IaaS平臺(tái)一定程度上減輕了資源浪費(fèi)。在IaaS平臺(tái)上很容易得申請(qǐng)和刪除虛擬機(jī),升降帶寬配置等操作,這樣當(dāng)業(yè)務(wù)低谷時(shí)段直接刪除多余的虛擬機(jī),降低帶寬購(gòu)買(mǎi)配額,就能節(jié)約不少成本。
最后,IaaS平臺(tái)解決了資源隔離的問(wèn)題。不同虛擬機(jī)之前有獨(dú)立CPU,內(nèi)存,磁盤(pán),網(wǎng)卡,不同虛擬機(jī)之前的程序不會(huì)進(jìn)行資源搶占。
然而,IaaS平臺(tái)僅僅為開(kāi)發(fā)者做好了硬件托管的工作。開(kāi)發(fā)者依然需要為虛擬機(jī)安裝操作系統(tǒng)和各種軟件,填寫(xiě)配置并部署應(yīng)用;依然需要關(guān)注服務(wù)器,帶寬,存儲(chǔ)等資源的使用量和擴(kuò)容縮容。此外,IaaS平臺(tái)沒(méi)有完全解決資源浪費(fèi)的問(wèn)題,實(shí)際上,大量虛擬機(jī)在日常運(yùn)行中依然存在超低負(fù)載運(yùn)行的情況。
三、 PaaS托管應(yīng)用
使用PaaS平臺(tái),開(kāi)發(fā)者無(wú)需關(guān)注服務(wù)器的申請(qǐng)采購(gòu)、系統(tǒng)安裝和資源容量。PaaS服務(wù)提供商為開(kāi)發(fā)者提供好了操作系統(tǒng)和開(kāi)發(fā)環(huán)境以及支持的SDK和API,還能自動(dòng)調(diào)整資源來(lái)幫助應(yīng)用服務(wù)更好的應(yīng)對(duì)突發(fā)流量。有了PaaS平臺(tái),開(kāi)發(fā)者僅僅需要把應(yīng)用開(kāi)發(fā)好,然后在PaaS平臺(tái)完成服務(wù)部署,應(yīng)用服務(wù)即可上線。
相比IaaS平臺(tái),PaaS平臺(tái)能更加精準(zhǔn)的為應(yīng)用程序所消耗的資源計(jì)費(fèi)。IaaS平臺(tái)僅僅依據(jù)用戶申請(qǐng)的資源量,如CPU核心數(shù),網(wǎng)絡(luò)帶寬來(lái)計(jì)費(fèi),而不關(guān)注用戶是否實(shí)際真正充分使用了其所申請(qǐng)到的資源。PaaS平臺(tái)則可以通過(guò)統(tǒng)計(jì)應(yīng)用程序所占用的CPU使用率和內(nèi)存使用率來(lái)做的更精準(zhǔn)的計(jì)費(fèi),甚至可以實(shí)現(xiàn)應(yīng)用層面的計(jì)費(fèi),比如服務(wù)響應(yīng)時(shí)間,或者應(yīng)用所消耗的事務(wù)。
什么是Serverless?
圖1:互聯(lián)網(wǎng)應(yīng)用傳統(tǒng)架構(gòu)的模型和Serverless架構(gòu)模型
Serverless指的是由開(kāi)發(fā)者實(shí)現(xiàn)的服務(wù)端邏輯運(yùn)行在無(wú)狀態(tài)的計(jì)算容器中,它由事件觸發(fā), 完全被第三方管理,其業(yè)務(wù)層面的狀態(tài)則被開(kāi)發(fā)者使用的數(shù)據(jù)庫(kù)和存儲(chǔ)資源所記錄。
以上圖1為例,圖中上半部分描述的是互聯(lián)網(wǎng)應(yīng)用傳統(tǒng)架構(gòu)的模型:用戶客戶端APP與部署在服務(wù)器端的常駐進(jìn)程通信,服務(wù)端進(jìn)程處理該應(yīng)用的大部分業(yè)務(wù)邏輯流程。下半部分則描述了Serverless架構(gòu)模型。與傳統(tǒng)架構(gòu)模型最大的不同在于,互聯(lián)網(wǎng)應(yīng)用的大部分業(yè)務(wù)邏輯流程被轉(zhuǎn)移到客戶端上,客戶端通過(guò)調(diào)用第三方服務(wù)接口來(lái)完成諸如登錄,鑒權(quán),讀取數(shù)據(jù)庫(kù)等通用業(yè)務(wù)場(chǎng)景;高度定制化的業(yè)務(wù)邏輯則通過(guò)調(diào)用第三方FaaS平臺(tái)執(zhí)行自定義代碼來(lái)完成。總體上看,Serverless架構(gòu)將傳統(tǒng)架構(gòu)中的服務(wù)器端的整串總體流程拆分成在客戶端上執(zhí)行一個(gè)個(gè)第三方服務(wù)調(diào)用或FaaS調(diào)用。
回顧之前所述,無(wú)論是直接使用物理服務(wù)器設(shè)備部署程序,還是基于IaaS平臺(tái)托管硬件,或者使用PaaS平臺(tái)托管應(yīng)用,開(kāi)發(fā)部署互聯(lián)網(wǎng)應(yīng)用都離不開(kāi)傳統(tǒng)的客戶端-服務(wù)器模式,即客戶端向服務(wù)端發(fā)送請(qǐng)求,服務(wù)器運(yùn)行處理各種業(yè)務(wù)邏輯,并響應(yīng)來(lái)自客戶端的請(qǐng)求。至于物理機(jī),IaaS乃至PaaS,歸根結(jié)底只是服務(wù)器程序的部署模式不同。
而在Serverless架構(gòu)中,軟件開(kāi)發(fā)者和運(yùn)維工程師們不在需要關(guān)心服務(wù)器的部署,架設(shè),伸縮,這些問(wèn)題交給云平臺(tái)商來(lái)解決,程序員們得以將精力投入用代碼來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯中,而不是管理服務(wù)器。Serverless并不意味著不再需要服務(wù)器了,只是服務(wù)器資源的申請(qǐng),使用,調(diào)度伸縮由云服務(wù)商自動(dòng)實(shí)現(xiàn),應(yīng)用開(kāi)發(fā)者無(wú)需關(guān)心。
Serverless如何工作?
以一個(gè)簡(jiǎn)單需求為例,論壇網(wǎng)站需要對(duì)用戶上傳的圖片生成一個(gè)縮略圖。
我們使用我們自研的通用計(jì)算(UGC)來(lái)實(shí)現(xiàn)該功能。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
詳解Serverless架構(gòu)及應(yīng)用下載
相關(guān)電子資料下載
- Serverless 冷啟動(dòng):如何讓函數(shù)計(jì)算更快更強(qiáng)? 96
- 華為云 FunctionGraph 函數(shù)工作流——?“Serverless“遇見(jiàn)”AI,釋放 AI 生產(chǎn)力 215
- 全域 Serverless 化,華為云引領(lǐng)下一代云計(jì)算新范式 192
- 體驗(yàn)華為云 Serverless?FunctionGraph,一分鐘上線應(yīng)用 194
- 體驗(yàn)華為云 Serverless?FunctionGraph,一分鐘上線應(yīng)用 137
- Serverless冷啟動(dòng):如何讓函數(shù)計(jì)算更快更強(qiáng)? 168
- 資源成本降低 70%!華為 MetaERP 資產(chǎn)核算的 Serverless 架構(gòu)實(shí)踐 184
- Luca Mezzalira:你真的為Serverless X AI做好準(zhǔn)備了嗎? 169
- Serverless計(jì)算產(chǎn)品為什么采用并發(fā)度作為擴(kuò)縮容? 570
- 華為云 Serverless 核心技術(shù)與最佳實(shí)踐 100