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