简化Kubernetes上的无服务器函数开发
OpenFaaS是一个轻量级开源平台,专注于简化Kubernetes环境中的函数即服务(FaaS)部署 。它支持多语言开发,提供自动扩缩容和性能指标,并以直观的界面和快速部署流程著称。除开源版本外,OpenFaaS还提供增强功能和专业支持的商业版本。
OpenFaaS® 让开发者能够轻松地将事件驱动的函数和微服务部署到 Kubernetes,无需重复编写模板代码。只需将您的代码或现有二进制文件打包到兼容 OCI 的镜像中,即可获得具有自动扩展和指标的高度可扩展的端点。
亮点
想深入了解 OpenFaaS?
概念架构和技术栈,更多详细信息请参阅文档
您可以使用 faas-cli
和内置模板生成新函数,或在容器中使用适用于 Windows 或 Linux 的任何二进制文件。
官方模板适用于许多流行语言,并可通过 Dockerfile 轻松扩展。
Node.js (node12
) 示例:
"use strict" module.exports = async (event, context) => { return context .status(200) .headers({"Content-Type": "text/html"}) .succeed(` <h1> 👋 Hello World 🌍 </h1>`); }
handler.js
Python 3 示例:
import requests def handle(req): r = requests.get(req, timeout = 1) return "{} => {:d}".format(req, r.status_code)
handler.py
Golang 示例 (golang-http
)
package function import ( "fmt" "net/http" handler "github.com/openfaas/templates-sdk/go-http" ) // 处理函数调用 func Handle(req handler.Request) (handler.Response, error) { var err error message := fmt.Sprintf("Body: %s", string(req.Body)) return handler.Response{ Body: []byte(message), StatusCode: http.StatusOK, }, err }
查看我们的官方培训材料
OpenFaaS 的创始人编写了《Serverless For Everyone Else》,帮助开发者通过使用 JavaScript 和 Node.js 的实践练习来理解函数的用例。无需编程经验即可尝试这些练习。
示例使用 faasd 项目,这是一种简单易用且轻量级的方式,可以开始学习 OpenFaaS 和函数。
在 Gumroad 上查看 Serverless For Everyone Else
《Everyday Go》是一本实用的、动手操作的指南,介绍如何用 Go 编写 CLI、网页和微服务。它还包含一章专门介绍使用 OpenFaaS 和 Go 开发和测试函数。
OpenFaaS 用户可以订阅每周社区通讯《Insiders Updates》,以了解新功能、错误修复、活动、教程和安全补丁。Insiders Updates 由项目创始人撰写,通过 GitHub Sponsors 分发。
以下是OpenFaaS社区版UI的截图,该UI设计注重易用性。正在运行的是inception函数,这个函数可以在商店 中找到。
现在就使用部署指南将OpenFaaS部署到Kubernetes、OpenShift或faasd。
你写过关于OpenFaaS的博客吗?你有演讲活动吗?请向下面的社区页面提交Pull Request。
OpenFaaS社区版使用Golang编写,采用MIT许可。我们欢迎各种形式的贡献,无论是提供反馈、测试现有和新功能,还是修改源代码。
请查看社区与贡献指南
这里是一个链接到OpenFaaS的Grafana仪表板示例,展示了实时自动缩放:点击这里