共计 3931 个字符,预计需要花费 10 分钟才能阅读完成。
2022 年 4 月 27 日,青云科技容器团队开源的函数即服务(FaaS: Function-as-a-Service)我的项目 OpenFunction 顺利通过了云原生计算基金会 CNCF 技术监督委员会(TOC)的投票,正式进入 CNCF 沙箱(Sandbox)托管。这就意味着 OpenFunction 失去了云原生开源社区的认可,同时通过进入 Sandbox 能够进一步保障我的项目的中立性,开发者以及合作伙伴等都能够参加我的项目建设,独特打造新一代开源函数计算平台。
这曾经是青云科技容器团队发动的第三个进入 CNCF 的我的项目了。早在 2021 年 7 月份青云科技就将 Fluent Operator 我的项目捐给 Fluent 社区成为 CNCF 子项目,大大降低了 Fluent Bit 和 Fluentd 用户的应用门槛;同年 11 月份,负载均衡器插件 OpenELB 退出 CNCF Sandbox,帮忙私有化环境更便捷地对外裸露服务。
目前能够在 CNCF Landscape 的 Serverless 版块中找到 OpenFunction 我的项目。
我的项目介绍
OpenFunction 是一个现代化的函数即服务(FaaS: Function-as-a-Service)我的项目,它可能帮忙开发者专一于他们的业务逻辑,而不用放心底层运行环境和基础设施。用户只需提交一段代码,就能够生成事件驱动的、动静伸缩的 Serverless 工作负载。
OpenFunction 引入了很多十分优良的开源技术栈,包含 Knative、Tekton、Shipwright、Dapr、KEDA 等,这些技术栈为打造新一代开源函数计算平台提供了有限可能:
- Shipwright 能够在函数构建的过程中让用户自由选择和切换镜像构建的工具,并对其进行形象,提供了对立的 API;
- Knative 提供了优良的同步函数运行时,具备弱小的主动伸缩能力;
- KEDA 能够基于更多类型的指标来主动伸缩,更加灵便;
- Dapr 能够将不同利用的通用能力进行形象,加重开发分布式应用的工作量。
从架构图上能够看出,OpenFunction 蕴含了 4 个外围组件:
- Function : 用户和函数打交道 (函数的增删改查) 的惟一入口,蕴含了函数的 Build 和 Serving 阶段的全副定义;
- Build : 用户创立 Function 后,Function 生成相应的 Builder,用户毋庸手动创立。Builder 通过 Shipwright 抉择不同的镜像构建工具 Cloud Native Buildpacks, buildah, BuildKit, Kaniko, 并在 Tekton 的管制下将利用构建为容器镜像;
- Serving : 用户创立 Function 后,Function 生成相应的 Serving,用户毋庸手动创立。Serving CRD 创立后,函数将被部署到不同的运行时中,能够抉择同步运行时或异步运行时。同步运行时能够通过 Knative Serving 或者 KEDA-HTTP (开发中)来反对,异步运行时通过 Dapr+KEDA 来反对。
- Events : 对于事件驱动型函数来说,须要提供事件治理的能力。因为 Knative Eventing 过于简单,所以咱们研发了一个新的事件治理框架叫 OpenFunction Events。
目前 OpenFunction 曾经正式公布了 0.6.0 版本,与上一个版本相比,新增了许多值得关注的性能,包含函数插件、函数的分布式跟踪、管制主动缩放、HTTP 函数触发异步函数等。同时,异步运行时定义也被重构了。外围 API 也曾经从 v1alpha1
降级到 v1beta1
。值得一提的是,OpenFunction 团队还与 Apache SkyWalking 社区单干,减少了 FaaS 平台对函数可观测性的反对,当初大家能够间接在 SkyWalking UI 上通过图表来可视化 Serverless 函数的依赖关系并追踪函数的调用。
详情可参考这篇文章:OpenFunction 0.6.0 公布: FaaS 可观测性、HTTP 同步函数能力加强及更多个性。
对于 OpenFunction 的理论应用案例能够参考上面两篇文章:
- 以 Serverless 的形式实现 Kubernetes 日志告警
- 基于 OpenFunction 构建 FaaS 化的数据归档零碎
社区生态
OpenFunction 自 2020 年 12 月开源并提交了第一个 commit,到 2021 年 5 月公布第一个 Release,仅一年多的工夫就公布了 6 个大版本,吸引了 24 个 Contributors 和 480+ GitHub Stars,并且曾经被 驭势科技 、 中国联通 、 全象低代码平台 等多个企业、组织和平台采纳。截止目前参加奉献的企业和组织有:KubeSphere、驭势科技 、Apache SkyWalking、SAP、 中国联通 、 全象云,在此感激每一位参加奉献的社区小伙伴对 OpenFunction 的反对和帮忙,同时也欢送更多的开发者和用户参加体验和奉献 OpenFunction。
除此之外,OpenFunction 团队还受邀加入了一些上游社区的例会并向大家介绍过 OpenFunction 我的项目及其典型用例,包含 CNCF 的 TAG-runtime 会议和 Dapr 社区会议。尤其 Dapr 社区对 OpenFunction 青睐有加,Dapr 联结创始人十分看好我的项目的发展前景,感兴趣的同学能够观看视频进一步理解。OpenFunction 社区也正在和 Dapr 社区及 Quarkus 社区单干以实现将 Java 代码编译为 Native 程序在 Quarkus 环境中运行,可大幅升高 Java 程序的资源占用并极大地晋升性能。接下来,OpenFunction 我的项目发起人霍秉杰还将在 5 月 10 日举办的 Apache SkyWalking 峰会介绍其与 Apache SkyWalking 在函数可观测性畛域的联结计划。
将来布局
得益于 CNCF 为我的项目提供了开源和中立的背书,OpenFunction 也将真正变成一个由 100% 社区驱动的开源我的项目。接下来,OpenFunction 将开发与实现如下性能,欢送给社区提交需要与反馈:
- 反对更多语言的异步函数框架包含 Nodejs, Python, Java 和 .NET;
- 反对将 Java 函数编译成 Native 程序运行在 Quarkus 环境中;
- 应用 KEDA 的 http-add-on 作为 Knative Serving 之外同步函数运行时的又一个抉择;
- 反对 OpenTelemetry 生态作为 SkyWalking 之外的另一个函数 Tracing 的计划;
- 减少 OpenFunction 控制台;
- 实现 Serverless 工作流;
- 对在边缘运行的函数有更好的反对;
- 预研基于 Pool 的冷启动优化计划;
- 应用 WebAssembly 作为更加轻量的运行时,联合 Rust 函数来减速冷启动速度。
继续开源凋谢
将来 KubeSphere 团队将持续放弃开源、凋谢的理念,继续作为 OpenFunction 我的项目的参与方之一,推动国内和国内开源组织的生态建设,将 OpenFunction 社区培养成一个凋谢中立的开源社区与生态,与更多的函数计算平台及上下游生态搭档进行深度单干,欢送大家关注、应用 OpenFunction 以及参加社区奉献。
- ⚙️ GitHub:https://github.com/openfuncti…
- 🔗 官网:https://openfunction.dev/
- 🙋 社群:vx 搜寻 kubesphere 加好友即可邀请您进群
最初附上 OpenFunction 我的项目重磅参与者与关注者对 OpenFunction 的寄语:
吴晟
Apache SkyWalking 创始人
我很快乐和兴奋看到 OpenFunction 顺利退出 CNCF,作为一个仅一年多的年老我的项目,这是一个我的项目从原型走向稳固,多元和成熟过程中的重要里程碑。作为 Apache SkyWalking 的一员,我有幸加入了 SkyWalking v9 迭代过程中与 OpenFunction 的集成。凋谢,平等,中立的开源单干模式,让人印象粗浅。咱们单方会在 Serverless 的可观测性上,进行严密深刻的单干,包含更多语言集成,日志的集成,平台的性能集成等等。恭喜 OpenFunction 胜利退出沙箱孵化,期待我的项目更上一层楼。Enjoy your CNCF journey.
张海立
驭势科技云平台研发总监
驭势科技 UISEE 是中国当先的主动驾驶公司,OpenFunction 帮忙咱们找到了一种基于 FaaS / Serverless 的业务服务疾速定制计划,咱们已将它用于解决跨公私有云的、针对不同存储中间件的数据处理和落盘问题(参见 此案例)。期待有更多社区搭档参加到 OpenFunction 的性能建设中,一起摸索更多利用场景,晋升研发效力!
张善友
深圳市友浩达科技有限公司 CTO
OpenFunction 退出 CNCF 对我来说是一个额定的惊喜。我是最近一个月才成为 OpenFunction 的贡献者,我在最近 2 年实际 Dapr 的我的项目实战经验,让我坚信基于 Dapr 的 OpenFunction 是一个十分有前景的 FaaS 我的项目。我当初负责建设 OpenFunction 的 .NET 反对框架开发工作,期待有更多的社区搭档参加到 OpenFunction 的性能建设。
蔡礼泽
SAP, OpenFunction 晚期用户
我从去年关注到 OpenFunction,过后被它的技术选型所吸引,十分的前沿,让我想到了许多的可能性。之后始终关注着我的项目的技术走向还有社区倒退,还有参加奉献。一个优良的我的项目离不开社区的反对,OpenFunction 的维护者十分业余与激情。优良的技术设计加上业余的社区,我置信 OpenFunction 会在云原生畛域大放异彩。
本文由博客一文多发平台 OpenWrite 公布!