Hello, my name is Daniel Krook, I’m a Senior Software Engineer at IBM. Today I’m going to tell you about an emerging programming model called serverless computing.
Serverless architectures are gaining interest from many developers and organization because they promise to provide better technical and business benefits over existing compute models.
New serverless platforms allow developers to focus more on their key business logic, rather than the infrastructure, hence the name because the point of view and concerns have shifted.
===
Over the past ten years we’ve seen a steady improvement how fast developers can create and deploy applications to production.
Starting with the moment that service providers matched virtualized resources with self service APIs, speed has been accelerating.
Recently we’ve seen the shift from IaaS to PaaS, where developers concern themselves only with their apps and data.
And now, we’ve seen the rise of Functions as a Service programming.
Thoughout this shift the developer has narrowed his focus purely on business value, and lost site of more and more operational concerns, hence the term serverless.
The technical capabilities of these new platforms promise to help developers build well designed cloud native applications more easily by offloading many operational concerns recommended by the 12 Factors.
===
Beyond those deployment problems, this new model improves cloud native development as it promises to address many if not most of the good design patterns provided in the 12 Factors.
In fact, what is not directly related to code is now covered by serverless platforms like OpenWhisk.
Many new types of event driven applications that aren't traditional web apps want to leverage the benefits of cloud computing. They are a good fit for the event driven model that serverless architectures support using different protocols.
===
Another trend driving new models of cloud native application development has been the trend towards less web application focused services as cloud computing matches more and more types of workloads.
With them come a need for event driven programming models.
At the business level a new cost model is also emerging, tying code execution time directly to the billing for resources used. While serverless architectures aren’t a silver bullet, they do provide a new deployment option.
===
Serverless billing models promises an even closer match between business value gained and computing resources used.
All of these factors come together to drive interest in serverless architectures and platforms for event driven programming.
===
So, to summarize these technology improvements and solutions combined an efficient pricing model are driving interest in severless, event driven computing.
OpenWhisk, an open source platform started by IBM provides an open source platform for serverless applications. It’s flexible, extensible, and integrates with a variety of event sources.
===
OpenWhisk provides a similar set of functionality to hosted services from Amazon, Google, and Microsoft, but it also adds unique features in a simple to extend polyglot model, open source nature, and ability to be deployed into many types of environments.
It offers the developer - the person with the serverless point of view - a straight forward programming model based on 4 concepts: triggers, actions, rules, and packages.
===
Let’s talk in a bit more detail about the programming model. There are four main entities in OW: triggers, actions, rules, and packages
You can get started with OpenWhisk as hosted on Bluemix as a beta service. It provides an web UI, online editor, and visual monitoring console over and above the open source platform.
OpenWhiks is built on top of proven, cloud native open source technology such as NGINX, Consul, CouchDB and Docker. You can develop with the open source platform using Vagrant on a workstation or deploy it on top of OpenStack.
===
Docker is used to setup a new self-encapsulated environment (called container) for each action that we invoke in a fast, isolated and controlled way. In a nutshell, for each action invocation a Docker container is spawned, the action code gets injected, it gets executed using the parameters passed to it, the result is obtained, the container gets destroyed.
If you’re interested in building a cloud native platform for the future of serverless apps, join the growing community at OpenWhisk.org