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