Introducing Fn: “Serverless must be open, community-driven, and cloud-neutral”
Fn, a new serverless open source project was announced at this year’s JavaOne. There’s no risk of cloud lock-in and you can write functions in your favorite programming language. “You can make anything, including existing libraries, into a function by packaging it in a Docker container.” We invited Bob Quillin, VP for the Oracle Container Group to talk about Fn, its best features, next milestones and more.
JAXenter: Oracle’s Mike Lehmann told us recently that “Oracle sees serverless as a natural next step from where the industry has gone from app server-centric models to containers and microservices and more recently with serverless.” At JavaOne 2017, Mark Cavage discussed Java’s pervasiveness in the cloud and the need to support container-centric microservices and serverless architectures. Why the sudden interest in serverless?
Bob Quillin: Developer efficiency, economics, and ease of use will drive serverless forward. We believe serverless technology will drive a new, more efficient economic model – for both development teams and cloud providers while making a developer’s life that much easier. It’s a win-win-win. In the end, it’s all about raising the abstraction level so that developers never think about servers, VM’s, and other IaaS components, giving everybody better utilization by using fewer resources with faster product delivery and increased agility.
JAXenter: Speaking of serverless, there’s also a new serverless open source project called Fn. Could you tell us more about it?
You can write functions in your favorite programming language with support right out of the box for languages including Java, Go, Ruby, Python, PHP, and Node.js.
Bob Quillin: Despite the buzz around serverless, what’s been missing to date are viable open source serverless options. As container technologies and Kubernetes orchestration have created an open, cloud-neutral foundation stack standard, serverless must follow that same developer mandate: open, community-driven, and cloud-neutral. And that’s why we introduced Fn. Fn is a serverless developer platform project that can be found at fnproject.io. Developers can run this on their own laptop and any cloud – without the risk of cloud lock-in.
JAXenter: What are Fn’s best features?
Bob Quillin: Fn top features include
- A container-native platform which packages your functions as containers and which can run on any platform supporting Docker;
- Fn Java FDK (Function Development Kit) for Java developers that includes a JUnit test harness (JUnit is a unit test framework for Java); and
- Fn Flow for creating workflow and orchestrations idiomatically – directly in the developer’s native coding language. Fn Flow enables sequencing, chaining, fan-in/fan- out, all natively in code versus relying on a console or external orchestration.
JAXenter: Which languages are supported right now?
Bob Quillin: Fn is a polyglot platform. You can write functions in your favorite programming language with support right out of the box for languages including Java, Go, Ruby, Python, PHP, and Node.js (which includes Lambda functions)! But you aren’t limited by built-in Fn language support. You can make anything, including existing libraries, into a function by packaging it in a Docker container.
JAXenter: Why did you build Fn? Was there a need for such a project?
Bob Quillin: One of the last missing pieces to serverless technology adoption was providing a viable open serverless solution to complement the new container native application development stack standards. We look forward to working with the industry on making that a reality and Fn is our contribution to that effort.
JAXenter: There’s also first class support for Go for Fn developers. Why Go? What is the purpose of Functions Development Kit (FDK-go) for Go?
You can make anything, including existing libraries, into a function by packaging it in a Docker container.
Bob Quillin: Go is one of the most popular languages for container native applications and a language we use internally across a variety of projects. Support for Go is always very highly requested across our developer communities. fdk-go provides convenience functions for writing Go Fn code.
JAXenter: What are the next milestones?
Bob Quillin: As an open source project we are making progress and updates every day so the best way to find out what’s next is to plug into the Fn community on Slack and join the discussions. If there are priorities important to you or something missing, we absolutely want to hear from you.
Top requests include broader language and cloud platform support plus more. Get involved – we’d love to work with all of you!