Since the dawn of cloud computing, one theme has been a constant: the idea that demand can be dynamic and elastic, that you pay only for the resources you use, and that the service is delivered on demand. But does cloud computing today live up to that promise? Recent developments show that there may be a different way to satisfy that expectation.
Serverless computing exposed
Going back to basics, unless you are buying off-the-shelf commercial software services, cloud computing has always required the buyer to size and specify a server – CPU, RAM, storage, and so on. But there are times when this is not appropriate, with some observers going as far as describing the idea of having to think in terms of servers – even if they are virtual – as a left-over artifact of traditional datacentres.
Serverless cloud computing is, of course, not serverless at all. But from the enterprise point of view, it removes the need to specify servers before developing and posting code into the cloud. Instead, you can write a function directly into a cloud provider’s portal, while provider’s back end systems deal with managing resources needed by the function: this is not your concern from an operational perspective.
This then allows the developer to concentrate on the delivering the service, rather than on the delivery mechanism. You can create units of code – functions – which can be scheduled or triggered by external events, used together with code to provide microservices as part of a web application, or completely standalone – serverless.
Typically, this model allows you to scale based on demand, so you pay only for the resources your function consumes, usually an abstract measure of the resources required to satisfy the request rather than per virtual machine, per hour, regardless of how much actual work the VM is performing.
For example, one cloud provider charges for resource consumption in gigabyte-seconds, computed as a combination of memory size and execution time.
Pros and cons
The issue with renting a cloud server as a VM is that it will normally need to be configured for a particular task, which in turn requires a degree of certainty about the type and volume of work it will asked to perform. If there is less work to do than expected, you still need to pay the rent. Serverless computing avoids all that, and there is no need you to consider issues such as scaling in the event of peaks and troughs or multi-threading. You never have to pay for an idle VM.
That said, this model is not suited to all – maybe most – loads. Serverless functions, especially large ones, may be more sensitive to timeouts as a result of dependencies on external events, resulting in higher latency and poor performance from an end user perspective. Resources may also not be limitless, as they are often assumed to be in a more traditional cloud model. It may also be more difficult to debug such functions due to more limited visibility.
Quocirca analyst Clive Longbottom points out that “attempting to run a full-function application in this manner would not work well. The live time and amount of base resource required would be too high, and the costs involved would be horrendous and unpredictable.”
On the other hand, an event-driven application may be more suitable, an example being a surveillance system that detects movement from a networked camera could be set to upload a video to a cloud storage system. According to Longbottom: “The act of transferring that video from the camera to the cloud could trigger an analysis algorithm [running in a function] within a serverless environment.”
Serverless computing is still in its infancy, and can be expected to develop over time. All the major cloud providers offer serverless cloud computing, with some still expanding their basic services, such as debugging. And new applications will doubtless be imagined for this new environment.
Could 2017 be the year of serverless computing? Let’s find out!
 Clive Longbottom, Quocirca, in Computing: How serverless computing could help enterprises cut cloud complexity. http://www.computerweekly.com/opinion/How-serverless-computing-could-help-enterprises-cut-cloud-complexity