认识与设计Serverless(二)
一、設(shè)計(jì)Serverless的功能模塊
第一節(jié)講了Serverless一些概念與特性,廢話居多,概念的東西了解過(guò)后要有設(shè)計(jì)與構(gòu)思,才能學(xué)到精髓,一個(gè)Serverless平臺(tái)的形成,涉及到很多模塊的架構(gòu)與搭建,是需要精兵的開發(fā)團(tuán)隊(duì)才能完成的工作,一個(gè)Serverless開發(fā)平臺(tái)涉及的功能模塊,大概如下圖設(shè)計(jì)
二、Serverless流程架構(gòu)設(shè)計(jì)
Serverless平臺(tái)函數(shù)的運(yùn)行,需要依賴于第三方平臺(tái)管理的服務(wù)器以及運(yùn)行時(shí)需要的眾多能實(shí)時(shí)拉取的容器,所以成本是比較高的,財(cái)力人力物力兼具的大公司,如下展示的是具備以上能力的團(tuán)隊(duì)可以考慮的Serverless平臺(tái)架構(gòu)方案,以及不具備以上能力時(shí)的窮逼架構(gòu)設(shè)計(jì)。
土豪版:
用戶將開發(fā)完成的函數(shù)在IDE中保存,代碼被存入S3中,用戶對(duì)函數(shù)發(fā)起請(qǐng)求時(shí),將請(qǐng)求路由至Serverless管理器中,根據(jù)請(qǐng)求的函數(shù)從S3中拉取代碼,同時(shí)拉取一個(gè)容器,部署代碼,制作鏡像,之后啟動(dòng)容器和運(yùn)行函數(shù),在此過(guò)程中,一個(gè)函數(shù)對(duì)應(yīng)的部署到一個(gè)容器中,容器有冷啟動(dòng)和熱啟動(dòng)時(shí)間,在經(jīng)過(guò)冷啟動(dòng)后,熱啟動(dòng)的時(shí)間對(duì)請(qǐng)求的消耗是能夠接受的,但需要有專業(yè)的容器管理團(tuán)隊(duì)支持。
窮逼版:該方案可以擺脫對(duì)容器的依賴,最大化的節(jié)約成本,首先在一個(gè)VM中部署多個(gè)容器,并將容器的IP和端口分配給用戶,用戶開發(fā)完代碼后將代碼保存在S3,并生成代碼對(duì)應(yīng)的uuid,之后發(fā)布函數(shù),發(fā)布的時(shí)候,會(huì)將uuid和對(duì)應(yīng)的發(fā)布的函數(shù)請(qǐng)求url維護(hù)在一個(gè)路由配置中,同時(shí)根據(jù)事先分配給用戶的IP和PORT將函數(shù)發(fā)布到對(duì)應(yīng)的Runtime(以Restful的形式暴露),當(dāng)用戶請(qǐng)求時(shí),首先根據(jù)請(qǐng)求的url在路由配置中找到代碼的uuid,之后經(jīng)過(guò)網(wǎng)關(guān)路由到對(duì)應(yīng)的Runtime,Runtime有個(gè)前攔截,將傳遞過(guò)來(lái)的uuid在S3中找到對(duì)應(yīng)的代碼,利用虛擬的代碼執(zhí)行器運(yùn)行代碼,并將獲得的結(jié)果返回。
轉(zhuǎn)載于:https://www.cnblogs.com/jiyukai/p/9440133.html
總結(jié)
以上是生活随笔為你收集整理的认识与设计Serverless(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: os模块:与操作系统交互的一个接口
- 下一篇: fedora 使用 vnc 远程 fed