The Blog

 

A big congratulations is due the Apache OpenWhisk community on its official graduation to become an Apache Software Foundation (ASF) Top-Level-Project. OpenWhisk’s open source mission is to provide a platform for building serverless applications with functions.

The project’s diverse developer community has worked tirelessly to achieve this milestone. OpenWhisk was initially accepted as an Apache Incubator project, based on beta-level code donated by IBM Research. The community has developed it to be a resilient, highly-scalable, production-quality serverless platform that follows approved Apache governance for releases all open sourced under the Apache 2 license. Today OpenWhisk is recognized as the most comprehensive, enterprise-ready, proven serverless platform solution available from any open community.

Incubating a diamond in the rough

In late November 2016, just prior to the Apache OpenWhisk project being accepted as an incubating project at Apache, the OpenWhisk codebase was already being used as the underlying technology for IBM Cloud Functions, which was entering GA. Effectively, that means that the same source code, which IBM had already beta-tested, was used to seed the project at Apache, and that IBM considered it “production ready” for its own customers.

In terms of features at the time of incubation, the initial codebase only supported a single Ansible deployment of its component architecture’s Docker images (using runc for execution) on clusters of virtual machines, had hard-coded dependencies for platform services (such as logging, monitoring and resource storage), and only supported three language runtimes for writing functions: NodeJS 6, Python 2.7, and Swift 3.

Fast forward to the present

Today, OpenWhisk’s deployment is focused on container frameworks (using Containerd) and mainstreamed on Kubernetes using Helm charts and, of course, supporting the Apache Mesos framework. In addition, a host of other options are available for local development including Docker Compose and a recent addition allowing OpenWhisk to run as a single executable Java (JAR) file.

The downstream community has “pushed the envelope” by impressively showing that OpenWhisk can be quite effective for Edge Function-as-a-Service (FaaS) computing and even can be run on a Raspberry Pi! The back-end platform now supports a slew of service provider interfaces (SPIs) that allow operators to “plug-in” their favorite logging, monitoring, or datastore. This SPI “pluggability” even extends so you can provide your own scheduler to allow providers to optimize for their cloud’s workloads.

The OpenWhisk platform runtime language family has also grown. It not only includes the latest versions of NodeJS, Python and Swift, but also boasts released runtime code for GoLang, Java, .NET, PHP, Ruby, Rust, Ballerina and even a special Python3 for Artificial Intelligence (AI) for realizing embarrassingly parallel workloads along with an SDK to “bring your own” custom runtimes with Docker.

Let’s not forget that serverless is all about getting down to the business of writing application code without worrying about operations and infrastructure. In this area, OpenWhisk excels with a host of options for developers, including:

The future is wide open

Even today, the OpenWhisk community is actively discussing new ideas for the future. A few areas of focus include integrating with the latest, open serverless technologies such as Knative, Tekton CI/CD pipelines, and Kubernetes Event-Driven Autoscaling (KEDA) and exploring use cases to allow new protocols with finer-grained access control to functions using edge service proxies like Envoy. The community is even discussing how to support heterogeneous clusters with new scheduling techniques.

We’re excited about the future of the OpenWhisk community and again extend our congratulations for this big achievement. We’re excited to see how OpenWhisk continues to drive serverless into the future.