On April 27, 2022, Qingyun technology container team launched the open source function as a service (FAAS: function-as-a-service) projectOpenFunctionSuccessfully passed the vote of CNCF Technical Supervision Committee (TOC) of cloud native Computing Foundation and officially entered the custody of CNCF sandbox. This means that openfunction has been recognized by the cloud native open source community. At the same time, entering sandbox can further ensure the neutrality of the project. Developers and partners can participate in the project construction and jointly build a new generation of open source function computing platform.
This is the third project launched by Qingyun technology container team to enter CNCF。 As early as July 2021, Qingyun technology willFluent OperatorThe project is donated to fluent community as a sub project of CNCF, which greatly reduces the use threshold of fluent bit and fluent D users; In November of the same year, the load balancer plug-inOpenELBJoin CNCF sandbox to help the privatized environment expose services more easily.
Currently available inServerless section of CNCF landscapeOpenfunction project found in.
Openfunction is a modern function-as-a-service (FAAS) project, which can help developers focus on their business logic without worrying about the underlying operating environment and infrastructure. Users only need to submit a piece of code to generate an event driven, dynamically scalable serverless workload.
Openfunction introduces many excellent open source technology stacks, including knative, Tekton, shipwright, dapr, Keda, etc. These technology stacks provide unlimited possibilities for building a new generation of open source function computing platform:
- Shipwright allows users to freely select and switch the tools for image construction during function construction, and abstract them, providing a unified API;
- Knative provides excellent synchronization function runtime with strong automatic scaling ability;
- Keda can automatically scale based on more types of indicators, which is more flexible;
- Dapr can abstract the common capabilities of different applications and reduce the workload of developing distributed applications.
As can be seen from the architecture diagram, openfunction contains four core components:
- Function: the only entry for the user to deal with the function (addition, deletion, modification and query of the function), including all definitions of the build and serving stages of the function;
- Build: after the user creates a function, the function generates the corresponding builder, and the user does not need to create it manually. Builder selects different image building tools cloud native buildpacks, buildah, buildkit and kaniko through shipwright, and builds the application as a container image under the control of Tekton;
- Serving: after the user creates a function, the function generates the corresponding serving, and the user does not need to create it manually. When CRD is created asynchronously or when it is deployed asynchronously, CRD can be selected to run asynchronously. Synchronous runtime can be supported by knative serving or keda-http (under development), and asynchronous runtime can be supported by dapr + Keda.
- Events: for event driven functions, you need to provide the ability of event management. Because knative eventing is too complex, we have developed a new event management framework calledOpenFunction Events。
At present, openfunction has officially released version 0.6.0. Compared with the previous version, it has added many noteworthy functions, including function plug-ins, distributed tracking of functions, automatic scaling control, asynchronous functions triggered by HTTP functions, etc. At the same time, the asynchronous runtime definition has been refactored. The core API has also been developed from
v1beta1。 It is worth mentioning that the openfunction team also works withApache SkyWalkingCommunity cooperation has increased the support of FAAS platform for function observability. Now you can directly visualize the dependency of serverless function and track the call of function through charts on skywalking UI.
For details, please refer to this article:Openfunction 0.6.0 release: FAAS observability, HTTP synchronization function capability enhancement and more features。
For practical use cases of openfunction, please refer to the following two articles:
- Implement kubernetes log alarm in serverless mode
- Construction of FAAS based data archiving system based on openfunction
Openfunction has been open-source since December 2020 and submitted its first commit. By may 2021, it will release its first release. Six major versions have been released in just over a year, attracting24Contributors and480+GitHub stars, and has beenYushi Technology、China Unicom、Holographic low code platformAnd other enterprises, organizations and platforms. Up to now, the enterprises and organizations participating in the contribution include:KubeSphere、Yushi Technology、Apache SkyWalking、SAP、China Unicom、Holomorphic cloud, I would like to thank every community partner who participated in the contribution for their support and help to openfunction. At the same time, more developers and users are welcome to participate in the experience and contribute to openfunction.
In addition, the openfunction team was also invited to attend some regular meetings of upstream communities and introduced the openfunction project and its typical use cases, includingTag runtime meeting of CNCFandDapr community meeting。 In particular, the dapr community favors openfunction. The co-founder of dapr is very optimistic about the development prospect of the project. Interested students can watch the video to learn more about it. Openfunction community is also cooperating with dapr community and quarkus community to compile java code into native programs and run them in quarkus environment, which can greatly reduce the resource occupation of Java programs and greatly improve performance. Next, Huo Bingjie, the initiator of openfunction project, will also introduce his joint scheme with Apache skywalking in the field of function observability at the Apache skywalking summit held on May 10.
Thanks to the open source and neutral endorsement provided by CNCF for the project, openfunction will really become an open source project driven by 100% community. Next, openfunction will develop and implement the following functions. You are welcome to submit your needs and feedback to the community:
- Asynchronous function frameworks supporting more languages include nodejs, python, Java and NET；
- Support compiling Java functions into native programs and running them in quarkus environment;
- Use Keda’s HTTP add on as another option for the runtime of synchronization functions other than knative serving;
- Support the scheme of opentelemetry ecology as another function of tracing other than skywalking;
- Add openfunction console;
- Implement serverless workflow;
- Better support for functions running at the edge;
- Pre study the cold start optimization scheme based on pool;
- Using web assembly as a lighter runtime, combined with the rust function to accelerate the cold start speed.
Continuous open source
In the future, kubesphere team will continue to maintain the concept of open source and openness, continue to be one of the participants in the openfunction project, promote the ecological construction of domestic and international open source organizations, cultivate the openfunction community into an open and neutral open source community and ecology, and conduct in-depth cooperation with more function computing platforms and upstream and downstream ecological partners. You are welcome to pay attention to, use openfunction and participate in community contributions.
- ⚙️ GitHub：https://github.com/openfunction/openfunction
- Official website:https://openfunction.dev/
- Community: VX search kubesphere and add friends to invite you to join the group
Finally, the messages of openfunction project heavy participants and followers to openfunction are attached:
Founder of Apache skywalking
I am very happy and excited to see openfunction join CNCF successfully. As a young project for only more than a year, it is an important milestone in the process of the project from prototype to stability, diversity and maturity. As a member of Apache skywalking, I was honored to participate in the integration of skywalking V9 iteration with openfunction. The open, equal and neutral open source cooperation model is impressive. We will cooperate closely and deeply on the observability of serverless, including more language integration, log integration, platform performance integration and so on. Congratulations on openfunction’s successful participation in sandbox incubation and look forward to the project to a higher level. Enjoy your CNCF journey.
R & D director of Yushi technology cloud platform
Uisee is a leading auto driving company in China. Openfunction has helped us find a fast customization solution for business services based on FAAS / serverless. We have used it to solve the data processing and disk dropping problems for different storage middleware across public and private clouds (seeThis case）。 We look forward to more community partners participating in the function construction of openfunction, exploring more application scenarios together and improving R & D efficiency!
CTO of Shenzhen youhaoda Technology Co., Ltd
It was an extra surprise for me to join CNCF with openfunction. I became a contributor to openfunction only in the last month. My practical experience of dapr project in the past two years has convinced me that openfunction based on dapr is a very promising FAAS project. I am now in charge of building openfunction Net supports the development of the framework and looks forward to more community partners participating in the function construction of openfunction.
Sap, early users of openfunction
I paid attention to openfunction last year. At that time, I was attracted by its technology selection. It was very cutting-edge, which made me think of many possibilities. Since then, we have been paying attention to the technical trend of the project, community development and participation and contribution. An excellent project is inseparable from the support of the community. The maintainers of openfunction are very professional and enthusiastic. With excellent technical design and professional community, I believe openfunction will shine in the field of cloud native.
This article is composed of blog one article multi posting platformOpenWriterelease!