At Amazon Web Services' (AWS) re:Invent conference two years ago, the company introduced AWS Lambda, a mind-blowing service that allows developers to specify and set up specific functions that would run in the event of particular events.
This was a remarkable development, for it heralded the ability to move beyond servers for specific processes and move to a model where the operation was the unit of measure. Functions would run only in the event of the particular triggers and would set in a idle state for eternity in the absence of those triggers. Developers would pay only when the particular functions were running.
IBM introduced its version, Whisk, recently.
Google recently released a very early alpha product, Google Cloud Functions. The company calls it "a lightweight, event-based, asynchronous compute solution that allows you to create small, single-purpose functions that respond to cloud events without the need to manage a server or a runtime environment." This is a very early product—Google didn't do much to publicize the release.
For its part, Microsoft is, via its Azure cloud platform, developing a similar offering.
The modern organization
Apart from the obvious case of these three vendors chasing one another to match their product catalog, these sort of event-driven solutions are an exciting development in IT delivery. These three vendors (and, it should be noted, vendors such as Iron.io, an early-stage startup trying to commercialize a Lambda-like service) realize that the paradigm of today is one of servers. And storage. And networking. Is one that ignores the reality of modern applications and organizational requirements.
The modern organization at a high level—and by extension, the applications an organization runs—is all about outcomes. The desired state is to tie cost and the provision of infrastructure directly to the final output. What better way to tie infrastructure (and cost) to outputs than to have a service run only when a particular action and its intended output occurs.
These event-driven solutions all tie in nicely to the new approach of building applications with a services-based view. Rather than massive monolithic blocks of code, modern applications tie together a myriad of individual services to create the application as a whole. Delivering these micro services in an event-driven way is a natural and attractive approach.
Lambda, Cloud Functions, Iron.io and whatever Microsoft calls its product are examples of an entirely new way of building applications and delivering infrastructure. Exciting times!