OpenFaaS是一個構(gòu)建無服務(wù)器功能的框架,它擁有對指標的第一個類支持。任何流程都可以打包為一個功能,使你能夠使用一系列web事件,而無需重復的樣板化編碼。
亮點
·通過UI入口和單擊安裝輕松使用
·為Linux或Windows的任何語言編寫函數(shù),以docker/oci圖像格式編寫包
·便攜式——在現(xiàn)有的硬件或公共/私有云上運行——Kubernetes或Docker集群
·用于模板和定義函數(shù)的YAML格式的CLI
·Auto-scales隨著需求的增加
OpenFaaS概述
監(jiān)督功能
通過添加功能監(jiān)視程序(一個小型的Golang HTTP服務(wù)器),您可以將任何Docker映像都添加到一個無服務(wù)器函數(shù)中。
函數(shù)監(jiān)視程序是入口點,允許通過STDIN將HTTP請求轉(zhuǎn)發(fā)到目標進程。通過將應(yīng)用程序?qū)懭隨TDOUT,將響應(yīng)發(fā)送回調(diào)用方。
網(wǎng)關(guān)
API網(wǎng)關(guān)為您的函數(shù)提供了一個外部路由,并通過Prometheus收集云的原生數(shù)據(jù)。
您的API網(wǎng)關(guān)將根據(jù)需求來擴展功能,通過更改Docker Swarm或Kubernetes API中的服務(wù)副本數(shù)。
UI允許您在瀏覽器中調(diào)用函數(shù),并根據(jù)需要創(chuàng)建新的函數(shù)。
CLI
Docker容器中的任何容器或流程都可以是FaaS中的一個無服務(wù)器功能。通過使用FaaS CLI,您可以部署您的函數(shù),或者從諸如Node.js或Python這樣的模板中快速創(chuàng)建新的函數(shù)。
CLI演練
讓我們快速查看一個示例函數(shù)urlping,它連接到一個遠程web服務(wù)器,并從響應(yīng)返回HTTP代碼。它是用Python編寫的。
handler.py
安裝faas-cli,也可以在brew中使用
克隆來自Github的樣例和模板:
在YAML中定義您的函數(shù),或者通過API網(wǎng)關(guān)的UI進行部署。
示例函數(shù)YAML文件-urlping.yaml
在./sample/url ping中使用Python處理程序構(gòu)建一個Docker映像
將新映像部署到在YAML文件中定義的網(wǎng)關(guān)。
如果您的網(wǎng)關(guān)是遠程或多主機集群的一部分,您還可以使用CLI將您的映像推送到遠程注冊中心或使用faas-CLI-action push的中心
使用URL https://cli.openfaas.com=200來測試該函數(shù)
在Github庫中,可以使用一系列編程語言提供樣例函數(shù)。