At KubeCon 2018 in Seattle, Oracle announced Oracle Functions, a new cloud service that enables enterprises to build and run serverless applications in the cloud.
Oracle Functions is a serverless platform that makes it easy for developers to write and deploy code without having to worry about provisioning or managing compute and network infrastructure. Oracle Functions manages all the underlying infrastructure automatically and scales it elastically to service incoming requests. With Oracle Functions, developers can focus on writing code that delivers business value.
Serverless functions change the economic model of cloud computing. Customers are charged only for the resources used while a function is running. There’s no charge for idle time! This approach is different from the traditional one of deploying code to a user provisioned and managed virtual machine or container that is typically running 24x7 and which must be paid for even when it’s idle. Pay-per-use makes Oracle Functions an ideal platform for intermittent workloads or workloads with spiky usage patterns.
Open source has changed the way that businesses, including Oracle, build software. Rather than building yet another proprietary cloud functions platform, Oracle chose to invest in the Apache 2.0 licensed open source Fn Project and build Oracle Functions on Fn. With this approach, code written for Oracle Functions will run on any Fn server. Functions can be deployed to Oracle Functions or to a customer managed Fn cluster on-premises or even on another cloud platform.
That said, the advantage of Oracle Functions is that it’s a serverless offering, which eliminates the need for customers to manually manage an Fn cluster or the underlying compute infrastructure. But thanks to open source Fn, customers always have the choice to deploy their functions to whatever platform offers the best price and performance. We’re confident that platform will be Oracle Functions.
Unlike most other functions platforms, Oracle Functions is container native with functions packaged as Docker container images. This approach supports a highly productive developer experience for new users while enabling power users to fully customize their function runtime environment, including installing any required native libraries. The broad Docker ecosystem, and the flexibility that it offers, lets developers focus on solving business problems and not on figuring out how to hack around restrictions frequently encountered on proprietary cloud function platforms.
Because functions are deployed as Docker containers, Oracle Functions is seamlessly integrated with the Docker Registry v2 compliant Oracle Cloud Infrastructure Registry, which is used to store function container images. Like Oracle Functions, Registry is also both serverless and pay-per-use. You simply build a function and push the container images to Registry, which charges just for the resources used.
Security is the top priority for Oracle Cloud services, and Oracle Functions is no different. All access to functions deployed on Oracle Functions is controlled through Oracle Identity and Access Management (IAM), which allows both function management and function invocation privileges to be assigned to specific users and user groups. And after they are deployed, functions themselves may access only resources on VCNs in their compartment that they have been explicitly granted access to. Secure access is also the default for function container images stored in Registry. Oracle Functions works with Registry private registries to ensure that only authorized users are able to access and deploy function containers. In each of these cases, Oracle Function takes a "secure by default" approach while providing customers full control over their function assets.
Oracle Functions will be generally available in 2019, but we are currently providing access to selected customers through our Cloud Native Limited Availability Program. To learn more about Oracle Functions or to request access, please register. You can also learn more about the underlying open source technology used in Oracle Function at FnProject.io.