It is interesting to see the rapid evolution of cloud computing models and the different computing abstractions that have come up in recent years. Operating systems abstracted hardware, virtual machines provided another layer of abstraction over hardware, containers and container orchestration technologies provide yet another layer of abstraction. Each layer of abstraction provided its own set of benefits.
As if those levels of abstractions were not enough, AWS pioneered yet another abstraction for “serverless” computing (AWS Lambda) that allows you to specify when you want your code to run. You pay only for the compute time consumed while the code runs and manage nothing – no infrastructure, no VMs, no containers .. Literally nothing. Microsoft Azure and Google Cloud Platform have come up with their own implementations of server less computing since then.
I’d like to draw an analogy with the transportation industry. People have always owned cars and used to rent one when they travelled. This continued for quite some time until Ridesharing companies such as Uber and Lyft appeared and disrupted the entire industry. The impact of this disruption is far from over as the coming years would tell.
To give you an example of the impact from my own experience, Its been close to 2 years and I have not rented a car in my business travel. Several reasons:
- It is cheaper to uber than rent a car especially since I drive straight to work and then to my hotel.
- It is convenient. Uber arrives in a few mins, and I am off to my destination. No need to plan for extra time to drop off the car at the airport.
- Frictionless experience. I get charged automatically through the app.
- I don’t need to manage my rental – no need to look out for chips or scratches before and after, no need to refuel etc.
So essentially renting a car is like renting a VM that gives you the flexibility of using the VM the way you like. It’s yours to keep for as long as you like, and you pay a VM rental. Ubering is like running a AWS Lambda or Azure Functions. You uber from point A to point B and pay for just that. Nothing to rent or maintain. You do the same with serverless computing, just pay for your code execution and don’t rent or maintain anything.
Are ridesharing services going to kill the car rental market?
Well, cabs and car rentals have coexisted for quite some time. Ridesharing services disrupted both cabs and car rental but there are still uses cases for cabs as well as car rentals. For instance, if I have to make say 5-6 trips in a day, perhaps car rental is more efficient and economical than ridesharing.
We have a very similar case in cloud computing where renting a VM (or for that matter deploying containers) would continue to make sense if you can drive high utilization of your rented assets. For other cases, “serverless” is the way to go. However, there is a long tail of apps in most public clouds that are well suited for moving to serverless.
Many companies have already begun to make use of serverless to drive further efficiencies in their cloud native apps. Netflix for instance, uses serverless for many use cases.
Other companies are building new businesses riding solely on “serverless” architecture at dramatically lower price points, Cloudguru is a good example in the training space with insanely low cost of operation.
Just as Uber phenomenon is at the early stages so is serverless. With autonomous driving vehicles on the horizon, the disruption to the transportation industry is far from over.
Serverless computing is a profound shift in cloud computing and only time will tell if this disruptive paradigm goes mainstream.