The original promise of cloud computing was simple: no longer would you need to buy, configure, and maintain racks and racks of servers in hopes of growing a tech business into that capacity. All you needed to get up and running was a credit card and some code; if you started slow, you were only on the hook for the resources you consumed, and those resources were limitless.
As with most technology advances, the reality turned out to be a bit more complicated.
A current customer of Amazon Web Services, Microsoft Azure, or Google Cloud Platform’s infrastructure-as-a-service products still needs to do quite a bit of work to provision servers, monitor performance, and make sure their costs aren’t running out of control. And customers running legacy applications that would like to move to the cloud have to do even more work to ensure nothing breaks in the transition.
But serverless computing might just be the technology that delivers on that original promise. Serverless technologies allow application developers and technology organizations to account for unpredictable spikes in demand without having to specify the resources they’ll need from their cloud provider.
“Serverless” is the latest in a long line of confusing tech marketing terms. Put another way: the servers are still there, but you’ll never know it.
Dev: so you're saying it's serverless?
Ops: oh no, actually there's more servers now than eve–
Dev: *Mr Burns voice* serverless
— tuxedo masq (@alicegoldfuss) April 25, 2017
“Last year, people were looking to explore. This year will be the year of great maturity,” said Sam Kroonenburg of A Cloud Guru, who will be hosting the Serverless Conference today in Austin, Texas, where 450 serverless enthusiasts will hear presentations from all the major cloud providers on their approaches.
Dude, Where’s My Server?
Serverless computing is relatively old as a concept inside forward-thinking elite technology companies, but it’s only been about three years since it has started to gain traction.
The spark behind this movement was the preview release of AWS Lambda in 2014, which Amazon CTO Werner Vogels recently called “the last crucial piece” in the promise of the cloud. Lambda became generally available almost exactly two years ago.
“Lambda really brought to life a managed computing environment, where you no longer need to think about managing instances, or managing servers or managing any type of infrastructure: you could just write code and deploy it,” Vogels said at the AWS Summit in San Francisco last week.
Almost all cloud providers now offer serverless capabilities for their cloud customers. Lambda is probably the gold standard, thanks to its early debut and the healthy market share enjoyed by AWS, but Azure Functions have been generally available since last November and Azure CTO Mark Russinovich recently gave an update on the state of Micrsoft’s serverless efforts.
Ahead of the Serverless Conference on Thursday, IBM announced new capabilities for its Bluemix OpenWhisk product, including a new API Gateway that allows developers to target multiple endpoints. Google just elevated Google Cloud Functions to beta status, but has not announced a time frame for general availability.
Their approaches can be a little different, but they all allow a developer to upload code once and set a “trigger” that instructs the application to behave a certain way in response to certain inputs.
A classic example of an application that can benefit from a serverless approach is one that might experience rapid, unpredictable spikes in demand, such as when DJ Khaled posts something to Snapchat. Serverless tools can automatically execute code in response to a flood of incoming traffic, or a pre-determined event such as when a file is uploaded to a database. (This well-written primer from Martin Fowler covers all the technical bases.)
“One of the things that has come out of this serverless movement is the recognition that an event-based or trigger-based programming model is actually a very powerful model — one where I can get code activated very quickly and respond to it,” Russinovich said earlier this month.
Along those lines, Algorithmia CEO Diego Oppenheimer will discuss how the benefits of serverless computing could enable the next generation of machine learning at our Cloud Tech Summit in the Seattle area this June.
And because serverless functions can be spun up and taken down in fractions of a second, a cloud provider is able to charge its customers accordingly, rather than charging them for computing services by the hour, week, month, or even year.
“You only have to pay for what you use. This is a tremendous change in the way people are developing applications; build highly scalable environments and only build what they are paying for,” Vogels said last week.
Serve and volley
This is still early-adopter territory. After all, there are so many companies that are just getting started designing applications for the cloud, let alone embracing something like serverless computing.
You have to be a bit of a self-starter to put serverless computing at the heart of your application strategy. The biggest complaint among early adopters of serverless computing is the lack of proper tools optimized for this style.
“Some of the basics of software development were not there in early days, like being able to properly debug and deploy,” said Kroonenburg, noting this has improved a lot in just the last year. Google hopes to address this problem by working with the open-source community to develop serverless tools instead of building its own Google Cloud Functions-oriented tools, said Alan Ho, a product marketing manager for the company.
Serverless can also get very complicated, very fast, if you’re using it for Internet of Things applications.
The Next Web recently published an account of how iRobot is using serverless computing to run its robot vacuum cleaners, and while there are a lot of benefits, “with any technology, here are the places where it works and where it doesn’t, you are always trying to find a balance with how pragmatic the solution is to meet your goals,” said Ben Kehoe, cloud robotics research scientist, in the profile.
However, this is clearly an exciting cloud technology — one that could really drive the promise of cloud computing to the next level.
“To me, this has strong potential for being the future model of compute,” said Michael Behrendt, a Distinguished Engineer at IBM, “because you really don’t have to pre-buy or pre-allocate; with serverless that goes away. We’re used to that already in other domains, like with APIs: you pay by the API call. Serverless is applying that notion to compute in general.”
[Editor’s Note: This story has been corrected to properly spell the last name of IBM’s Michael Behrendt.]