Welcome to OpenFunction
阅读文档 GitHub

OpenFunction 是一个云原生、开源的 FaaS(函数即服务)框架,旨在让开发人员专注于他们的开发意图,而不必关心底层运行环境和基础设施。用户只需提交一段代码,就可以生成事件驱动的、动态伸缩的 Serverless 工作负载。

OpenFunction Architecture

OpenFunction 特性

  • 云原生,开源

  • 自动构建代码为 OCI 标准镜像

  • 自动部署具有动态伸缩能力的应用程序

  • 提供事件框架,使函数具备事件驱动能力

  • 提供函数版本控制和入口流量管理功能

CustomResourceDefinitions

OpenFunction 的核心功能是使用户能够开发、运行和管理以代码函数为执行单元的业务应用程序。为此,OpenFunction 实现了以下的自定义资源定义(CRD)

Function

Function 是直接由使用者定义、控制的资源,它是使用者对其业务应用的一段描述,即用何种原料(源代码)加工成何种制品(应用镜像),最终又将以何种方式运作(工作负载、运行时)。

在 OpenFunction 中,Function 资源会根据配置有序控制 Builder 和 Serving 资源的协调过程,进而实现使用者函数的生命周期管理。

你可以访问 Function 概念 了解更多信息。

Builder

Builder 定义了 OpenFunction 中由源代码生成应用镜像的构建工作。

当前,OpenFunction Builder 使用 Shipwright 和 Cloud Native Buildpacks 来构建应用镜像。它通过 Shipwright 控制应用镜像的构建过程,包括通过 Cloud Native Buildpacks 获取代码、生成镜像制品和发布镜像。

你可以访问 Builder 概念 了解更多信息。

Serving

Serving 的目标是以高度弹性的方式(动态伸缩:0 <-> N)为使用者运行应用负载。

当前,OpenFunction Serving 支持两种负载运行时:Knative 和 OpenFuncAsync。设置其中一种负载运行时之后,Serving 才能正常工作。

你可以访问 Serving 概念 了解更多信息。

如果你已经安装了 OpenFunction,

可以参考 OpenFunction samples 来运行一些简单的案例。

期待你的贡献!

通过一个 Pull Request 开启你在 GitHub 上的贡献之旅。我们将保持对贡献者的热忱!

GitHub 上关注我们。