THE PROMISE OF (PRACTICALLY) ‘SERVERLESS COMPUTING’
The definition of cloud computing may be nebulous, but its promise is clear. Instead of filling a warehouse with servers and paying people to manage them, a company can pay a cloud computing provider for computing resources on demand and pay only for what it actually uses.
This prospect lured organizations ranging from startups to massive corporations to stodgy government agencies onto cloud offerings from Amazon, Google, Microsoft, and others. Those now well-established services might save companies from buying and managing physical servers, but they don’t quite deliver on the dream of paying only for what you use.
Services like Amazon’s EC2 still require you to select—and pay for—a specific amount of computing resources, including memory and network capacity. You can dial those resources up or down as demand for your web application changes. But that might still leave you with less computing power than you need for a sudden or unanticipated spike in traffic, leaving your app less responsive to users. So, many cloud customers agree to pay for more resources than they routinely need.
Worse, these virtual servers still require customers to do a lot of real maintenance, says Donald F. Ferguson, co-founder and CTO of video-streaming company Seeka TV and a professor of computer science at Columbia University. For example, customers need to install security updates and test them to make sure they don’t break existing features. Ferguson, who spent decades as a software architect for companies including Dell and Microsoft and helped create IBM’s application server WebSphere, says this consumes more time than you might think. “For most projects, we’d spend 20 per cent of our time managing cloud environments,” he says.
Ferguson says about 99 per cent of Seeka TV’s code runs on serverless platforms. That’s reduced the time spent managing the cloud environment to practically zero, he says.
It’s not just startups using serverless. Motorola Solutions uses serverless computing for some of its work with law enforcement and public safety customers, says executive Andrew Sinclair. “Serverless functions allow us to spend more time on developing new features and less time on provisioning and managing servers,” he says.
“Function as a Service”
Serverless computing has been around for years, but only recently has it become viable to create entire applications based on it. Over the past decade, programmers have shifted more of the code for running applications from servers to either your phone or your browser. Many developers would prefer not to maintain servers for the few things that can’t run on the user’s device, like data storage and password authentication. The earliest serverless services, which were designed to handle specific tasks, helped developers outsource these sorts of things. Amazon’s storage service S3, for example, allows you to upload data without worrying about how many servers it’s stored on, and pay only for what you use. Twilio offers a service that lets developers use its computing infrastructure to send text messages to users, without installing or configuring specific servers. A newer service called Auth0 handles tasks like password verification.
The first wave of serverless computing proved popular with app developers, but developers still needed traditional servers for a lot of their custom code. That changed in 2014 with the launch of “function-as-a-service” offerings like Hook.io and Amazon Lambda, which enable developers to upload small chunks of their own code, and pay only for the computing resources that code consumes. That made it possible for companies like Seeka TV to rely almost exclusively on serverless computing.