Serverless is not a pricing model
(Well, it is, but that’s not the important bit).
Serverless is about pushing code and not caring about servers. It’s not about FaaS — that’s just a way of doing serverless.
And, it’s not about pricing: for the majority of apps developer time is the valuable commodity, not server time.
Say it with me..
Serverless does not imply a pricing model
FaaS — which is not the same as serverless, it’s just one way of doing serverless — implies a pricing model and some people have got very excited about this. Most apps, though, are simple web apps or simple services and will run fine on one instance in a PaaS.
A (Good) PaaS is Serverless
This is almost obvious. If I can take my small function, run a single command (say
cf push) and have it running in the cloud, scaling up and down as needed so I don’t need to worry about it and I never care about servers or operating systems or patching that must be pretty serverless!
A PaaS that auto-scales to zero is Serverless AND has the FaaS pricing model
One of the nice things about the FaaS model is I can push my individual functions and folks can use them if they’re useful and I don’t have to pay for infrastructure for ones that aren’t used.
Of course, as long as my services are web services (which seems a pretty reasonable assumption at the boundaries between microservices) and my PaaS has functions to automatically pause and resume my web services based on requests to the router, I will only be charged for used functions. So, if the router pauses and restores apps, I already have FaaS pricing.
For most services, developer time and time to market are worth far more than what you’ll save with FaaS
So pick the tool that let’s you get to market fastest with happy developers. That may be serverless, it may be a good PaaS. In my opinion for many apps FaaS is a distraction, but PaaS needs to catch up so it’s as easy to push a simple web service to a PaaS as a function to Lamda.