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。