itestro - Fotolia
SAN FRANCISCO -- Not to be outdone, while Oracle is hosting its annual Java developer festival, Microsoft released a Java-based preview of its serverless computing offering, Azure Functions.
According to TechTarget's definition, serverless computing does not eliminate servers, but instead seeks to emphasize the idea that computing resource considerations can be moved into the background during the design process. The term is often associated with the NoOps movement and the concept may also be referred to as function as a service (FaaS) or runtime as a service (RaaS).
Serverless computing provides a great model for accelerating app development, but developers want to do it using the programming languages and development tools of their choice, Microsoft said. And ever since the company first released Azure Functions, support for Java has been a top request.
Oracle Project Fn
Bob Quillinvice president of developer relations, Oracle
Oracle also introduced and open sourced its own serverless computing offering -- known as Project Fn -- at JavaOne 2017. With Fn, developers using Oracle Cloud Platform can build and run applications by just writing code, without provisioning, scaling or managing servers, allowing them to focus on delivering value and new services, the company said. Fn runs across multiple clouds, further reducing risk of vendor lock-in, Oracle noted.
"Oracle deserves kudos for its recent Java efforts," said Charles King, principal analyst with Pund-IT, who also commended Microsoft for its Azure Functions Java support. "Microsoft's new Azure Functions Java support and Oracle's recent JavaOne/OpenWorld announcements reflect the continuing innovations around Java and the vitality of the Java community."
Support for different programming languages
Likewise, with the ability to run Azure Functions runtime on cross-platform .NET Core, Microsoft has built its runtime to allow support for different programming languages. Java is the first new language being introduced. The new Java runtime will share all the differentiated features provided by Azure Functions, such as the wide range of triggering options and data bindings, serverless execution model with autoscale, as well as pay-per-execution pricing, Microsoft said.
And Java developers do not need to use any new tools to develop using Azure Functions. Microsoft has released a new plug-in for the Maven build automation tool so developers can create, build and deploy Azure Functions from their existing Maven-enabled projects. The new Azure Functions Core Tools enable developers to run and debug their Java Functions code locally on any platform.
Meanwhile, with fnproject.io, "Developers using Oracle Cloud Platform, their laptop, or any cloud, can now build and run applications by just writing code without provisioning, scaling or managing any servers -- this is all taken care of transparently by the cloud," said Bob Quillin, vice president of developer relations at Oracle, in a blog post.
Three parts to Fn
According to Quillin, Fn consists of three components: the Fn Platform; Fn Java FDK (Function Development Kit), which brings a first-class function development experience to Java developers, including a comprehensive JUnit test harness; and Fn Flow, for orchestrating functions directly in code. Fn Flow enables function orchestration for higher-level workflows for sequencing, chaining, fanin/fanout, but directly and natively in the developer's code versus relying on a console.
The Oracle offering will have initial support for Java with additional language bindings coming soon, Quillin said. Project Fn will provide polyglot language support, including Java, Go, Ruby, Python, PHP, Rust, .NET Core, and Node.js with AWS Lambda compatibility. AWS Lambda is Amazon Web Services' serverless computing offering.
Securing serverless applications
Hot performance in Java 9
Trending at JavaOne 2017
Get this expert opinion on what's happening at JavaOne 2017.