百度 Serverless 函数计算引擎 EasyFaaS 正式开源
“2021年4月,百度函數(shù)計算引擎 EasyFaaS,正式開源!”
1.什么是 EasyFaaS?
EasyFaaS 是一個依賴輕、適配性強、資源占用少、無狀態(tài)且高性能的函數(shù)計算服務引擎。它有以下幾個特點:
- 依賴輕:EasyFaaS只依賴Linux內(nèi)核,不強制依賴Docker、Kubernetes等外部服務
- 適配性強:EasyFaaS可以運行在多種系統(tǒng)環(huán)境,包括Docker、Kubernetes及裸機等
- 資源占用少:模塊少,服務系統(tǒng)模塊占用更小
- 無狀態(tài):每個EasyFaaS Pod本身無狀態(tài)且內(nèi)部自治
- 高性能:調(diào)度鏈路更短,更小的系統(tǒng)開銷和更優(yōu)的性能
適用于以下場景:
私有化部署、邊緣計算、物聯(lián)網(wǎng)、CICD、數(shù)據(jù)和事件處理、多媒體處理、響應式對話、定時任務等場景。
2. EasyFaaS 能做什么?
隨著 Serverless 相關技術的發(fā)布,企業(yè)和開發(fā)者紛紛探索通過無服務器架構(gòu),在適合的場景取代傳統(tǒng)的后端服務架構(gòu),進一步為企業(yè)降本增效。
百度云原生 Serverless 計算團隊通過在邊緣計算場景、技能場景、小程序等一站式開發(fā)場景的探索,提煉出可供開發(fā)者快速搭建平臺的函數(shù)引擎 EasyFaaS,支持業(yè)內(nèi)愛好者共同建設。
EasyFaaS 的核心價值在于幫助開發(fā)者迅速搭建一套輕量級的函數(shù)計算平臺,其核心功能在于:
- 提供基于事件機制,按需彈性伸縮的計算能力
- 支持多種語言運行時,開發(fā)者只需使用適合的語言編寫自定義函數(shù),無需管理底層基礎設施
- 負責用戶容器的全生命周期管理
- 支持用戶配置函數(shù)的容器資源容量,提供動態(tài)的容器容量調(diào)度
- 支持同步和異步兩種調(diào)用模式,支持多種可擴展的事件觸發(fā)器
- 支持可自定義的函數(shù)管理服務
- 支持自定義語言運行時
- 支持多種運行平臺,包括Docker、Kubernetes及裸機等
3.EasyFaaS 技術架構(gòu)
EasyFaaS 以單 Pod為最小服務單位,每個Pod中包含3個容器,分別為 controller、funclet 和 runner-runtime。分別介紹如下:
1)controller 負責流量調(diào)度及容器池狀態(tài)管理:
- 實現(xiàn)容器調(diào)度功能;
- 支持配置函數(shù)級別的并發(fā);
- 支持容器狀態(tài)管理、按策略調(diào)度容器狀態(tài);
- 支持健康檢查,可以根據(jù)runtime的狀態(tài)決定colddown/reborn。
2)funclet 負責管理用戶工作容器,包括基礎容器資源及函數(shù)運行資源:
- 容器管理:實現(xiàn)容器的init/warmup/reset流程;
- 網(wǎng)絡管理:實現(xiàn)容器網(wǎng)絡相關功能,合理管理網(wǎng)絡資源;
- 掛載管理:實現(xiàn)用戶容器的動態(tài)掛載,并定期回收用戶容器的掛載目錄;
- 進程管理:需妥善管理用戶容器產(chǎn)生的子進程,處理異常退出的子進程;
- 資源容量管理:實現(xiàn)用戶工作容器的內(nèi)存資源動態(tài)調(diào)整。
3)runner-runtime僅為init容器,準備必要的資源后即退出。其中:
- runner負責管理用戶函數(shù)運行時;
- runtime支持各開發(fā)語言運行時;
目前該組件僅提供容器鏡像。
4. 使用指南
EasyFaaS 基于 Linux4.0 以上的內(nèi)核、提前建議安裝 docker 容器再繼續(xù)進行。
EasyFaaS 提供三種方式進行體驗:
方式 1:使用 all-in-one 方式運行
方式2:使用 docker-compose 運行(推薦有 docker-compose 經(jīng)驗的開發(fā)者采用)
方式3:編譯打包部署(推薦開發(fā)者采用此種方式體驗)
5. 未來規(guī)劃
EasyFaaS 目前主要針對函數(shù)服務的核心能力,完成了對于提供輕量級函數(shù)計算平臺常用的功能要素。
后續(xù)將會進一步聚焦在核心引擎能力的完善和性能的提升上,如對于加載性能、安全容器隔、日志處理等。接下下來我們還會更多的關注以 EasyFaaS 為引擎的周邊服務模塊的建設和開源,逐步完善產(chǎn)品級能力,為 Serverless 生態(tài)建設做出更大的貢獻。
6. 貢獻和反饋
項目開源地址
【Github地址】:
https://github.com/baidu/EasyFaaS
【Gitee地址】:
https://gitee.com/baidu/EasyFaaS
如果您有任何意見或問題都可以提issue到Github或Gitee,我們將及時為您解答。
如在使用中遇到問題,快速溝通,可微信掃描二維碼,加入EasyFaaS技術交流群,添加下列管理員微信,并備注“EasyFaaS”,管理員邀您入群:
總結(jié)
以上是生活随笔為你收集整理的百度 Serverless 函数计算引擎 EasyFaaS 正式开源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kubernetes入门——Kubern
- 下一篇: Kubernetes入门——Kubern