Oracle發(fā)布了Fn,F(xiàn)n是一個(gè)新開源的、云平臺(tái)無(wú)關(guān)的Serverless平臺(tái)。它初始啟動(dòng)時(shí)擁有廣泛的Java能力和一個(gè)JUnit測(cè)試框架,但也支持“任何編程語(yǔ)言”。
Fn包含四個(gè)主要的組件:Fn服務(wù)器、Fn FDK、Fn Flow和Fn負(fù)載均衡器。Fn服務(wù)器以Go編寫,是運(yùn)行代碼的平臺(tái)。
開發(fā)人員可以根據(jù)偏愛的語(yǔ)言使用一種FDK(Function Development Kit),構(gòu)建和測(cè)試實(shí)現(xiàn)業(yè)務(wù)功能的函數(shù)。函數(shù)打包之后,就部署到Fn服務(wù)器。Fn Flow提供了一個(gè)用于工作流的時(shí)序控制和編排的工具,因此函數(shù)可以鏈接在一起以實(shí)現(xiàn)更高級(jí)別的業(yè)務(wù)流程。這消除了微服務(wù)架構(gòu)由于服務(wù)需要彼此調(diào)用而導(dǎo)致的常見的耦合問題。負(fù)載均衡器是運(yùn)營(yíng)團(tuán)隊(duì)部署Fn服務(wù)器群集并將流量路由到其中的工具。
與最近發(fā)布的Spring Cloud Function項(xiàng)目一樣,Oracle的Fn提供了一個(gè)云平臺(tái)無(wú)關(guān)的框架。函數(shù)打包成容器,可以在任何支持Docker的平臺(tái)上運(yùn)行。“container native”是Fn項(xiàng)目開發(fā)團(tuán)隊(duì)的具體目標(biāo),使其開源也是他們的目標(biāo)。在一篇博文中,Oracle軟件開發(fā)副總裁Chad Arimura表示,F(xiàn)n團(tuán)隊(duì)認(rèn)為開源是現(xiàn)在軟件交付和采用的方式。因此,F(xiàn)n項(xiàng)目使用Apache 2.0許可證開源,而這一戰(zhàn)略似乎正在取得成效。
Arimura是Iron.io的前創(chuàng)始人兼CIO。他以及開發(fā)IronFunctions(開創(chuàng)性的Serverless平臺(tái)之一)的團(tuán)隊(duì)去年搬到了Oracle,然后就開發(fā)了Fn項(xiàng)目。盡管Arimura將Fn平臺(tái)無(wú)關(guān)性視為將其與其他Serverless框架區(qū)分開來(lái)的因素之一,但也許不足為奇的是,F(xiàn)n路線圖的后續(xù)步驟之一是將其作為Oracle Cloud的服務(wù)。他還列出了container-native、擁有更完整的開發(fā)人員支持并且orchestrator無(wú)關(guān)的關(guān)鍵特征,這些特征有助于Fn項(xiàng)目在Serverless領(lǐng)域脫穎而出。
盡管Oracle Fn推出了全面的Java FDK,但Oracle的產(chǎn)品管理總監(jiān)Shaun Smith告訴InfoQ,已經(jīng)有非常多的人在提供其他語(yǔ)言(包括Haskell)支持以及改進(jìn)Fn Flow以執(zhí)行AWS ASL。