英文原文:Oracle Joins Serverless Race With Open Source Fn Project
Oracle 发布了 Fn,Fn 是一个新开源的、云平台无关的 Serverless 平台。它初始启动时拥有广泛的 Java 能力和一个 JUnit 测试框架,但也支持“任何编程语言”。
Fn 包含四个主要的组件:Fn 服务器、Fn FDK、Fn Flow 和 Fn 负载均衡器。Fn 服务器以 Go 编写,是运行代码的平台。
开发人员可以根据偏爱的语言使用一种 FDK(Function Development Kit),构建和测试实现业务功能的函数。函数打包之后,就部署到 Fn 服务器。Fn Flow 提供了一个用于工作流的时序控制和编排的工具,因此函数可以链接在一起以实现更高级别的业务流程。这消除了微服务架构由于服务需要彼此调用而导致的常见的耦合问题。负载均衡器是运营团队部署 Fn 服务器群集并将流量路由到其中的工具。
与最近发布的 Spring Cloud Function 项目一样,Oracle 的 Fn 提供了一个云平台无关的框架。函数打包成容器,可以在任何支持 Docker 的平台上运行。“container native”是 Fn 项目开发团队的具体目标,使其开源也是他们的目标。在一篇博文中,Oracle 软件开发副总裁 Chad Arimura 表示,Fn 团队认为开源是现在软件交付和采用的方式。因此,Fn 项目使用 Apache 2.0 许可证开源,而这一战略似乎正在取得成效。
Arimura 是 Iron.io 的前创始人兼 CIO。他以及开发 IronFunctions(开创性的 Serverless 平台之一)的团队去年搬到了 Oracle,然后就开发了 Fn 项目。尽管 Arimura 将 Fn 平台无关性视为将其与其他 Serverless 框架区分开来的因素之一,但也许不足为奇的是,Fn 路线图的后续步骤之一是将其作为 Oracle Cloud 的服务。他还列出了 container-native、拥有更完整的开发人员支持并且 orchestrator 无关的关键特征,这些特征有助于 Fn 项目在 Serverless 领域脱颖而出。
尽管 Oracle Fn 推出了全面的 Java FDK,但 Oracle 的产品管理总监 Shaun Smith 告诉 InfoQ,已经有非常多的人在提供其他语言(包括 Haskell)支持以及改进 Fn Flow 以执行 AWS ASL。