Serverless Computing is the next big thing. Last month
IBM quietly announced a major advance in so-called serverless app -- composing
serverless functions into applications using Composer. IBM unveiled the new offering at Serverless NYC. Built on Apache
OpenWhisk, Composer was created by the same team at IBM Research that started
the development of OpenWhisk nearly three years ago. Serverless is largely synonymous with
Functions-as-a-Service (FaaS), which are cloud-native, usually stateless,
functions that scale on demand. Serverless as a "model" is potentially broader
than FaaS.
I recently caught up with IBM Research's Paul Castro, Research Staff Member and Manager, Cloud Programming Technologies, and
Rodric Rabbah, Principal researcher,
Technical Lead, Serverless Computing, to find out more.
VMblog: As I look
more closely at this preview technology offering for serverless, I see a
parallel with the orchestration wars a few years ago around containers. Your
new Composer is open source and it looks like IBM is aiming for the high ground
in serverless orchestration by building on open source software.
Castro: We're
moving to the next phase of Functions-as-a-Service. To date, the state of the
art focuses on the creation of "stateless" functions that are cloud native,
pay-per-use, and developers never worry about servers. But for real solutions
you typically don't deal with single functions, but rather sets of functions -
and you have to coordinate these functions to do real tasks. At IBM Research,
we've create Composer, a reference implementation for orchestrating functions
for IBM Cloud Functions. Developers want
to create functions, compose them together, and interact with the compositions
themselves as functions, all using a familiar programming model. Developers will want to create compositions
in any language, since the reality today is polyglot development - this is one
strength of FaaS: use the right language for the job. And developers want to create compositions
that are not merely a collection of stateless functions, but stateful
applications. With Composer,
we're working towards all of these next-generation serverless opportunities, on
top of IBM Cloud functions, based on Apache OpenWhisk.
VMblog: It sounds like what you're trying to do with
Composer is sort of analogous to what Kubernetes is doing with orchestrating
containers. Is that a fair comparison?
Castro: Absolutely.
Similar to the way that people don't just deploy single containers and need a
way to orchestrate all of them -- that's the missing piece for functions.
When you're building
applications that use Cloud services, you have to write coordination code
somewhere. Where does the coordination code itself go? Traditionally, you would
put that code on the client side, or you have to install that logic somewhere
server-side. Where Composer comes into play is the ability to write that
coordination code in a serverless way - this allows you to access Cloud
services using a simple model that is cloud native.
Function-as-a-Service
(FaaS) is a natural extension of the container model. Why even worry about
containers if all I want to do is run some code? Functions is an abstraction on
top of containers that we can use to simplify orchestration. Serverless and
containers in many ways are converging.
VMblog: Why OpenWhisk? Why is IBM committed to this Apache
framework as the platform for its serverless efforts?
Rabbah: One major
reason developers are cautious about using a particular cloud is because of
lock in. We want to open source this so we can give the community a way to move
anywhere if they have to. We have seen this value proposition resonate with our
clients and also with the community that's growing around Apache OpenWhisk. In
addition, we think OpenWhisk is the platform for research and innovation that
can appeal to the academic community where there is an increasing interest in
serverless computing.
Of course, we think
we have the best version Apache OpenWhisk in the IBM cloud. Our Research team
created the initial core that is now an Apache incubator, and IBM Functions is
based on this.
With
last
month's announcement, we are providing developers with a reference
implementation of Composer and a really cool tooling environment called the
Cloud Functions Shell that makes it easier to build your compositions.
VMblog: What's the future of stateless look like from
IBM's perspective?
Rabbah: Stateless
functions are state of the art today. But to support developers creating
complete enterprise apps you need to do more. For example, many applications
require managing persistent state. How do we evolve the serverless model to
make this easier for the developer? And how do we do this in a way that
preserves all the things that developers already love about serverless? We want
to make it easier for developers to make great applications with IBM Cloud
Functions. We would like to support a variety of enterprise workloads that
developers need and in a way that makes their jobs easier.
When you look at serverless,
there are many ways to support more complex applications. If you want to
compose functions together, you want the result of that to still be a function.
Like all functions, you shouldn't have
to pay for idle time for your composition We want to also respect the polyglot nature
of serverless development - your composition can be composed of functions in
any language. We've done this with Composer to go beyond the first generation
of serverless functions.
##