My clients have started asking questions about a new industry catch phrase that they've started to hear coming from suppliers of cloud-based computing services. The phrase is "serverless" computing. They've also run into a related phrase, "Function as a Service." Is this really a new idea or a new implementation of an older one?
In short, there is little new under the sun in the world of IT and this can be seen as yet another take at supporting a microservice in the context of a cloud computing service.
What is serverless computing?
The chosen catch phrase is somewhat unfortunate, however. Physical servers are still supporting the computing. The most significant change is that customers are billed only for the resources used when one of the functions that comprise one of their workloads actually executes.
When this idea is boiled down to its essence, it simply is an additional approach for customers to request, consume and then pay for computing services offered by the suppliers of platform as a service (PaaS) or infrastructure as a service (IaaS) offerings. Rather than packaging and selling their systems resources by the server, by the VM or by the Container, the service providers are offering access to their systems "by the function."
+ ALSO ON NETWORK WORLD: What you need to know about microservices +
Clients are billed for the processing, memory and storage they're using only when a function executes rather than when an entire VM or container executes. The stated goal is to create a more fine-grain way for customers to consume and pay for computing services.
If a workload is properly decomposed into functional units, the cost could be lower than if the same functions were packaged in VMs or in containers. It is possible, however, that badly segmented workloads could cost more to execute in one of these environments.
Who is offering this type of service?
There are a number of cloud service providers who are dipping their toe into this emerging market. The following is not a complete list of those offerings, however.
- Amazon Web Services (AWS) Lambda — This service offers support for node.js, Java and Python-based applications. A growing list of other AWS services can be accessed this way. Amazon has also added C# to the languages their Lambda service supports.
- Google Cloud Functions — Google's offering currently supports workloads developed using node.js on its Google Compute Engine infrastructure. It is more limited than AWS Lambda at this stage, but is promising for companies that have selected Google Compute Engine as their platform.
- IBM OpenWhisk — An open source alternative to AWS Lambda that supports node.js-based applications and snippets written in the Swift language.
- Microsoft Azure Web Jobs — Although not a complete serverless computing framework, Azure Web Jobs offers many of the components necessary to support this approach to cloud computing.
Is this really new?
As is often the case in the world of IT, it is clear that this approach is an outgrowth of many other previous frameworks used to decompose applications into functions and then execute them in a computing environment. While interesting, serverless computing, joins a number of other catch phrases in the history of computing including service oriented architectures, microservices, and functions as a service.
By segmenting computing services into finer and finer pieces, cloud service providers can more effectively allow customers to consume all available computing resources. By purchasing cloud computing services in smaller and smaller segments, customers can more effectively consume and pay for computing services.
Everyone can win.