OpenFaaS ® - 简化无服务器函数
OpenFaaS® 让开发者能够轻松地将事件驱动的函数和微服务部署到 Kubernetes,无需重复编写模板代码。只需将您的代码或现有二进制文件打包到兼容 OCI 的镜像中,即可获得具有自动扩展和指标的高度可扩展的端点。
亮点
- 通过 UI 门户和一键安装实现易用性
- 使用模板商店或 Dockerfile 用任何语言编写服务和函数
- 将代码构建并打包成兼容 OCI/Docker 的镜像
- 可移植:通过利用 Kubernetes 在现有硬件或公有/私有云上运行
- 提供带有 YAML 格式的 CLI,用于模板化和定义函数
- 随需求增加自动扩展包括缩至零
- OpenFaaS 背后的团队提供商业支持的专业版
想深入了解 OpenFaaS?
- 使用 HTTP 或 Apache Kafka 和 AWS SQS 等事件源触发端点
- 将任务卸载到内置的队列和后台处理
- 使用 OpenFaaS Cloud 的 GitOps 快速开始您的 Kubernetes 之旅
- 了解 5 个必知的安全提示,确保安全
- 了解投入生产所需的一切
- 通过精选教程与 Istio 或 Linkerd 集成
- 部署到 Kubernetes 或 OpenShift
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 入门
官方培训资源
查看我们的官方培训材料
官方电子书和视频工作坊
OpenFaaS 的创始人编写了《Serverless For Everyone Else》,帮助开发者通过使用 JavaScript 和 Node.js 的实践练习来理解函数的用例。无需编程经验即可尝试这些练习。
示例使用 faasd 项目,这是一种简单易用且轻量级的方式,可以开始学习 OpenFaaS 和函数。
在 Gumroad 上查看 Serverless For Everyone Else
OpenFaaS 和 Golang
《Everyday Go》是一本实用的、动手操作的指南,介绍如何用 Go 编写 CLI、网页和微服务。它还包含一章专门介绍使用 OpenFaaS 和 Go 开发和测试函数。
社区博客和文档
- 阅读文档:docs.openfaas.com
- 在官方博客上阅读最新新闻和教程
社区赞助
OpenFaaS 用户可以订阅每周社区通讯《Insiders Updates》,以了解新功能、错误修复、活动、教程和安全补丁。Insiders Updates 由项目创始人撰写,通过 GitHub Sponsors 分发。
快速入门
以下是OpenFaaS社区版UI的截图,该UI设计注重易用性。正在运行的是inception函数,这个函数可以在商店中找到。
现在就使用部署指南将OpenFaaS部署到Kubernetes、OpenShift或faasd。
视频演示
- 认识faasd。看,没有Kubernetes! 2020
- 超越FaaS:Kubernetes开发者的PLONK技术栈 2019
- 跳出炒作看Serverless - Alex Ellis - GOTO 2018
- LivePerson如何使用OpenFaaS定制其对话平台 - Simon Pelczer 2019
- 巴拉圭Vision Banco利用Serverless函数实现数字化转型 @ KubeCon 2018
- 介绍"faas" - Dockercon 2017酷黑客主题演讲
社区活动和博客文章
你写过关于OpenFaaS的博客吗?你有演讲活动吗?请向下面的社区页面提交Pull Request。
贡献
OpenFaaS社区版使用Golang编写,采用MIT许可。我们欢迎各种形式的贡献,无论是提供反馈、测试现有和新功能,还是修改源代码。
如何成为贡献者?
请查看社区与贡献指南
仪表板
这里是一个链接到OpenFaaS的Grafana仪表板示例,展示了实时自动缩放:点击这里
OpenFaaS Pro自动缩放Grafana仪表板
另一个社区仪表板可在此处获取
新闻发布 / 品牌 / 网站赞助
-
个人赞助 🍻
GitHub上公开仓库中共享的OpenFaaS源代码可在MIT许可条款下免费使用和开源。
OpenFaaS Ltd为最终用户提供商业支持和企业附加组件,并为云和Kubernetes提供培训和咨询服务。
鼓励用户和贡献者通过GitHub赞助加入他们的同行支持项目。
-
适用于生产环境的OpenFaaS Pro
OpenFaaS Pro专为生产环境而构建,社区版(CE)适合开源开发者。
升级到我们的商业版本,获得精心调试的自动缩放、缩至零和Kafka及AWS SQS的事件连接器。
我们还提供企业支持,让您直接与项目创始人合作。
-
网站赞助 🌎
欢迎公司和品牌赞助openfaas.com,黄金和白金级别包含主页logo,查看费用和级别。网站赞助可通过发票支付。
-
新闻发布 / 品牌 📸
有关品牌、新闻工具包、注册实体和赞助的信息,请访问openfaas/media仓库。您还可以订购定制SWAG或参与每周Twitter竞赛#FaaSFriday
寻找统计数据?本项目不使用单一仓库,而是分为多个组件。使用Ken Fukuyama的仪表板在GitHub组织中获取准确的贡献者、星标和分支数量。
注意:您收集的关于openfaas/faas仓库的任何统计数据都是无效的,faas仓库并不能代表项目的活动。
治理
OpenFaaS ® 是由Alex Ellis创建的独立开源项目,正在由不断壮大的贡献者社区构建和塑造。
OpenFaaS由OpenFaaS Ltd(注册号:11076587)托管,该公司还提供商业服务、主页赞助和支持。OpenFaaS ® 是在英格兰和威尔士注册的商标。
用户
在openfaas.com查看已获得许可列出其logo的终端用户公司。
如果您正在使用OpenFaaS,请在此帖子中告诉我们。此外,欢迎您申请将您的logo列在主页上。感谢您的支持。