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 来测试该函数
在Github库中,可以使用一系列编程语言提供样例函数。