Oracle has released Fn, a new open-source, cloud-agnostic, serverless platform. While supporting ‘any programming language’, it initially launched with extensive Java capabilities and a JUnit test framework.
Fn comprises four of main components: Fn Server, Fn FDKs, Fn Flow and Fn Load Balancer. Written in Go, Fn Server is the platform that runs the code.
Developers can use an FDK (Function Development Kit) for their preferred language to build and test functions that implement business functionality. Once packaged, these are deployed to the Fn Server. Fn Flow provides a tool for sequencing and orchestrating workflows so functions can be chained together to implement higher-level business processes. This removes the problem common to microservices architectures of coupling due to the need for services to call each other. The Load Balancer is a tool for operations teams to deploy clusters of Fn Servers and route traffic to them.
Like the recently announced Spring Cloud Function project, Oracle’s Fn provides a cloud platform agnostic framework. Functions are packaged as containers that can run on any platform that supports Docker. Being "container native" was a specific goal for the team who developed the Fn Project, as was making it open source. In a blog post, Chad Arimura, VP of software development, Oracle, said that the Fn team believed open source to be the way software is now delivered and adopted. Hence, the Fn Project was open-sourced under the Apache 2.0 license and the strategy appears to be paying off.
Arimura is the former founder and CEO of Iron.io. He, as well as the team who developed IronFunctions (one of the pioneering serverless platforms), moved to Oracle last year and the result is the Fn project. Perhaps unsurprisingly, one of the next steps on the roadmap is launching it as a service on Oracle Cloud, though Arimura sees its platform agnosticism as one of the factors that differentiate the project from the other serverless frameworks. He also lists being container-native, having more complete developer support and being orchestrator-agnostic as key characteristics that will help the Fn project stand out in what is rapidly becoming a crowded serverless landscape.
Though Oracle Fn launched with a comprehensive Java FDK, Shaun Smith, director of product management at Oracle, told InfoQ that there has already been a rush of people contributing other language support (including Haskell) as well as enhancements to Fn Flow to execute AWS ASL.