采访整理:SegmentFault 思否 | 编辑 朱玲
采访嘉宾:霍秉杰霍秉杰,哈尔滨工业大学计算机科技与技术硕士,曾任职于金山软件从事大数据技术研发,2016年加入青云科技。现为 KubeSphere 云原生 FaaS 项目 OpenFunction Founder、 FluentBit Operator 发起人, Kube-Events、Notification Manager 等可观测性开源项目发起人,Prometheus Operator, Thanos, Loki, Falco 贡献者。
如今,云原生已经在国内各行业被深入应用,随着云原生技术在边缘计算中的重要作用逐渐凸显,越来越多企业开始致力于云原生开源社区发展,越来越多云原生领域的优秀开源项目也随之出现。
近日,SegmentFault 思否专访了 KubeSphere 云原生 FaaS 项目 OpenFunction Founder、 FluentBit Operator 发起人霍秉杰,为我们带来关于 OpenFunction 开源项目背后的故事。
以下内容整理自访谈实录。
从 0 到 1 的突破:开源需要“实干家精神”
2016 年,从事十多年软件研发工作的霍秉杰加入了QingCloud 青云科技,并于 2018 年开始作为初创团队的成员参与了 KubeSphere 的研发。自此,他便亲历了一场 KubeSphere “从 0 到 1 ”并逐渐发展壮大的过程。
在陆续负责了 KubeSphere 可观测性、边缘计算、Serverless 等方向产品的设计与研发之后,KubeSphere 在可观测性领域的相关功能有了进一步的丰富和完善。此时的霍秉杰便又带领团队,陆续开源了日志管理工具 FluentBit Operator(现已捐献给 Fluent 社区,并更名为 Fluent Operator )、通知管理 Notification Manager、事件管理 Kube-Events 等云原生领域的开源项目。
目前,这些云原生开源项目均已集成到了 KubeSphere, 且都可应用到任何 K8s 环境中。
随着霍秉杰团队这些开源项目的不断发展壮大,一些国外的开发者和用户也受到吸引并积极参与了进来。如来自Digital Ocean 的开发人员参与研发的 Fluent Operator,目前也已经应用到了生产环境、家乐福集团;而来自CaaS 团队的开发者则参与了Kube-Events 的开发,并将其应用到生产环境。
“现阶段可观测领域的工作重点是多集群可观测方向”。
在边缘计算领域,霍秉杰带领团队通过与 KubeEdge 社区的紧密合作,在 KubeSphere v3.1 实现了 KubeSphere 与 KubeEdge 的集成,并向上游 KubeEdge 社区贡献了相关代码。
“团队有成员最近成为了 KubeEdge 社区的 Maintainer, 让我们看到了开源社区合作的巨大影响力并会将这种合作持续深入的进行下去”。
2021 年,霍秉杰团队开始发力 Serverless 领域,并正式开源了云原生函数计算项目 OpenFunction 。通过一年时间的努力,目前已经发布了较稳定的版本 v0.6.0。据霍秉杰透露, v1.0.0 也将计划在今年晚些时候发布。
新一代云原生函数计算平台初诞生
SegmentFault:作为 KubeSphere 社区在云原生 Serverless 领域的开源项目 OpenFunction 的发起人,请您分享一下最初发起 OpenFunction 项目的契机或背景。
作为当下最热门的技术大趋势,业界关于云原生开源项目的创新异常活跃,而不断迭代的用户需求也为技术创新带来了新灵感。
早在 2020 年,就有社区用户询问关于 Serverless 方向的产品以及集成 Knative 、OpenFaaS 的计划。在对 Serverless 进行相关领域的调研之后,霍秉杰团队发现,开源的 Serverless 或者 FaaS 平台并不能满足自身要求。
在霍秉杰看来,目前市面上比较优秀的项目如 Knative 并不能称之为 FaaS 平台,而OpenFaaS 虽是 FaaS 平台,但技术栈较为老旧,用于云原生可观测领域的技术用在函数自动伸缩上不合适。反观云原生 Serverless 领域在近年来的进展较大,由此决定发起 OpenFunction 项目,打造新一代的云原生函数计算平台。
3 大优势让 OpenFunction 在行业保持核心竞争力
SegmentFault:目前不少大厂都在打造自家的开源 Serverless / FaaS 平台,所以相比业内同类云原生 Serverless 领域里的 Serverless 或 FaaS 平台 OpenFunction 函数计算平台的特色及技术优势有哪些?
如今,随着越来越多“大厂”入局开源 Serverless领域,各类优秀的开源项目也让用户目不暇接。对于新一代开源函数计算平台而言,独特的技术优势才可以在火爆的行业里展现竞争力。
在霍秉杰看来,OpenFunction 的特色和优势主要有三点。
一、技术栈较新,采用新型云原生 Serverless 领域技术——基于 KEDA 和 Dapr 打造的异步函数运行时。
“Knative 尽管被用作了同步函数运行时,但通过 Dapr 的引入其同步函数可以触发异步函数的运行,给异步函数添加了一个 HTTP 的 Trigger”。
霍秉杰团队自研的事件框架 OpenFunction Events 由于引入了 Dapr,使得其极具特色优势:不仅可对接多种事件源,其事件总线还是可插拔的,在易用性上也更好。
二、和 SkyWalking 的集成让函数有了更好的可观测性。得益于最新的云原生的 Serverless 技术,OpenFunction 不仅可以对接各种开源的后端服务如 Kafka, NATS Streaming 等,也能对接云厂商的 BaaS 服务如 GCP PubSub, Azure Event Hubs ,使得用户的函数可以跨云迁移。
三、开源 —— 开源社区使得 OpenFunction 收到较高的关注,也吸引了一些优秀的社区贡献者参与共建。
OpenFunction 的独特“处世之道”
SegmentFault:在打造 OpenFunction 项目的过程中所面临的挑战;对云原生 Serverless 领域接下来发展的期待;目前 OpenFunction 函数计算平台有已经应用/落地的案例可以分享吗?
在当前的行业大背景下,新平台的发展必然存在着一些挑战。而对于OpenFunction 而言,“如何在众多开源和商业 Serverless 或 FaaS 平台中找到自己的特色和优势”是关键。好在,经过一段时间的思考和沉淀,OpenFunction 目前看来已经有了自己的独特之处。
云原生使得云的用户有了统一的控制面,使得用户不被某一云厂商锁定成为可能,云原生 Serverless 领域同样如此。霍秉杰表示,“希望 OpenFunction 能够成为 cloud agnostic 的、可以在任何云和基础设施上运行的 Serverless 平台”。
目前,OpenFunction 已经在多个领域落地并取得不错成果。
除青云科技的全象低代码平台全象采用了 OpenFunction 支撑低代码平台的插件扩展机制外,自动驾驶公司驭势科技也采用 OpenFunction 的异步函数做数据归档来处理车端产生的大量数据,与此同时OpenFunction 还吸引了国内某大通信运营商的青睐。
同时,由霍秉杰团队联合提交的关于自动驾驶领域应用 OpenFunction 的议题还在2022 年的欧洲 KubeCon 上被选中;目前也有来自新加坡 SAP 的社区用户在调研和参与 OpenFunction并计划采用。
共赢:技术创新与开放生态有机合作
SegmentFault:目前云原生 Serverless 领域的发展现状,以及 OpenFunction 现阶段已经取得的成果。
谈到云原生 Serverless 领域,就不能不提 Knative。作为 Google 开源的 Serverless 平台,Knative 现已经加入 CNCF 孵化且已发布 v1.0.0 版.而 Knative Serving 也作为优秀的 Serverless 运行时,已被业界广泛采用。
Serverless 的弹性伸缩技术,目前已经有了微软的 KEDA 开源项目,KEDA 可使应用程序可以根据事件源特有的 Metrics 进行伸缩,并可在 0 和 1 个副本之间进行伸缩,很好的弥补了 HPA 的不足。
FaaS 函数则与应用一样需要与 BaaS 中的各种后端服务打交道,并非运行在真空中。但由于 FaaS 通常会有多语言的支持,每种语言都去对接每种后端服务会增加用户函数或者 FaaS 平台的复杂性,而微软开源的分布式应用运行时 Dapr 的出现,极大的简化了分布式应用开发者的负担。
此外在 build 领域也陆续涌现出了 Cloud Native Buildpacks, Tekton, Shipwright 等优秀的工具。
而对于 OpenFunction 来说,过去一年里已经发布了 6 个大版本(目前最新版 v0.6.0 已发布且计划于今年发布 v1.0.0 GA 版)。
据霍秉杰介绍,目前OpenFunction 支持 Knative 作为同步函数运行时,也支持在 Knative 同步函数中使用 Dapr 的能力及 KEDA + Dapr 作为异步函数运行时。
此外,OpenFunction还与 SkyWalking 社区紧密合作,在 v0.6.0 版支持了使用 SkyWalking 对 OpenFunction 的同步和异步函数进行 Tracing,使得用户的函数有更好的可观测性。在函数构建方面,OpenFunction 还支持使用 Cloud Native Buildpacks 技术在 Shipwright 抽象和 Tekton的控制下构建函数镜像。
SegmentFault:我们知道 FaaS 是云原生 Serverless 的核心,可否分享一下作为一个云原生 FaaS 平台 ,OpenFunction 接下来的计划或路线图。
OpenFunction 接下来会支持除 Knative 之外的同步函数运行时,或会在下一个版本支持 KEDA-HTTP。
另外,除了 Go 之外,OpenFunction 还将会对 Nodejs, Python 和 Java 有更好的支持;除运行函数外,也会对分布式应用有更好的支持,或会通过一个名为 ElasticApp 的 runtime 来支持分布式应用;后续会考虑通过类似 Pool 的技术优化冷启动的时间以及支持在 Webassembly 环境中运行函数。
结束语
近年来,在产业数字化的大趋势下,国内开源产业生态也迎来了前所未有的繁荣。作为备受广大开发者们关注的领域,云原生技术也在不断被探讨向前拓展可能性。作为该领域的杰出贡献者,霍秉杰所带领的团队在云原生背景下不断探索、实践,OpenFunction 开源项目的发起、新一代函数计算平台的创建,都对整个行业向前发展有着积极影响的深远。