Serverless is the new Black?
Serverless. Serverless is a very often — I would even say inflationary — used term in the developer communities these days. I often compare the term to “container” which was similar popular within the last years. Everything was a container, was deployed in containers and containers were the holy grail to infrastructure deployment and DevOps in general.
And now all our backend stuff shall get serverless — containerless? We won’t even need the servers, which run our containers, RLSY? STOP!
Let’s think for a moment, take a deep breath and let’s see what “serverless” really is? A system without a server, you would assume. We can’t get rid of “servers” or physical machines which compute our jobs, right? But we can get rid of the “organisational” work around it — the setup and maintenance of these servers, even the up and down scaling. RLY? RLY!
So what is behind this term “serverless”. Wikipedia defines it as follows:
“[…] is a cloud computing code execution model in which the cloud provider fully manages starting and stopping virtual machines as necessary to serve requests, and requests are billed by an abstract measure of the resources required to satisfy the request, rather than per virtual machine, per hour.”
This sounds quite academic and when I read it I stuck with the terms execution model, provider, managing VMs and abstract billing. So is “Serverless Computing” really an execution model of a provider, who manages my VMs and let me bill those services abstractly? Yeah, kind of!
But I formulated a definition, which hits the core a bit more ;)
“Quick and easy run pieces of code* in the cloud, without worrying about infrastructure.”
*of various size
Serverless computing is firing up a computing instance which is instantly available. Just drop the code in there and use it. That’s it. This sounds a bit to easy, but it isn’t because there are providers with great frameworks to do exactly this.