With its open source Fn project, Oracle is looking to make a splash in serverless computing.
Fn is a container native serverless platform that can be run on-premises or in the cloud. It requires the use of Docker containers. Fn developers will be able to write functions in Java initially, with Go, Ruby, Python, PHP, and Node.js support planned for later. Applications can be built and run without users having to provision, scale, or manage servers, by using the cloud.
Fn, as its name implies, relies heavily on functions, which are small blocks of code that generally do one simple thing. In a function, developers focus just on just the task they want the function to perform.
With serverless computing, developers write functions and resources are automatically allocated to it. Scaling is automatic, and developers pay only for the resources they use.
Amazon Web Services' AWS Lambda platform is perhaps the best-known serverless platform. Oracle says Fn will let developers take their AWS Lambda functions and run them “anywhere.”
Fn features three components:
- Fn Platform, featuring Fn Server and the command-line interface.
- a Java function development kit, which includes a JUnit test harness.
- Fn Flow, to orchestrate functions directly in code, for higher level workflows such as sequencing, chaining, and fanin/fanout, directly in the developer’s code rather than through a console.
- Fn Helm, a Helm chart that allows you to install a fully functioning Fn server on Kubernetes via the Helm package manager.
Fn requires Docker 17.05 or later and a Docker Hub account.