Cloud-native, open source
Automatically build code into OCI-compliant images
Automatically deploys application with dynamic scaling capabilities
Provides events framework to make functions event-driven
Provides function version control and ingress traffic management capabilities
The core function of OpenFunction is to enable users to develop, run, and manage business applications as execution units of code functions. OpenFunction implements the following custom resource definitions
Function is a resource that is directly defined and controlled by the user. It is a description of the user’s application, i.e. what raw materials (source code) are used to make the product (application image) and how it will ultimately work (workload, runtime).
In OpenFunction, the Function resource controls the coordination of Builder and Serving in an orderly manner according to the configuration, thus implementing the lifecycle management of user functions.
See Function concept for more information.
Builder defines the build work in OpenFunction for generating application images from source code.
Currently, OpenFunction Builder uses Shipwright and Cloud Native Buildpacks to build application images. It controls the build process of application images through Shipwright, including acquiring code, generating image artefacts and publishing images through Cloud Native Buildpacks.
See Builder concept for more information.
The goal of Serving is to run applications in a highly elastic way (dynamic scaling: 0 <-> N).
Currently, OpenFunction Serving supports two kinds of workload runtimes: Knative and OpenFuncAsync. Serving will only work when one of the them is set.
See Serving concept for more information.
If you have already installed the OpenFunction platform,
refer to OpenFunction samples to run a sample function.