By now you have probably heard the term serverless flying around. It’s a buzzword and people mean different things with it.
Usually, people use this term when they talk about services or platforms that you can use without knowing anything about the underlying hardware.
To me, that is exactly what it means. I also think that this is a variant of Platform-as-a-Service (PaaS), in the case of Microsoft Azure and even in the case of the Amazon Cloud.
The services in any (public) cloud offering, including Microsoft Azure, can be roughly split up into three categories:
* There is Infrastructure-as-a-Service
* These are services like VM’s and networking components. In IaaS you are responsible for the operating systems and things that run on your VM
* These are things like SQL Azure, DocumentBD, and Azure App Services. In PaaS you use the service, like SQL, without having to worry about operating systems and things like that
* A classic example of this are the services in Microsoft 365, like exchange online, or Gmail. With SaaS, you don’t have to think about any of the underlying resources at all, you just use the service
The ease of use becomes higher with each level of abstraction.
There is lots of debate about which services fall under the category of PaaS and if there are different subcategories like IPaaS (Integration Platform-as-a-Service). The point of PaaS is that it offers services that enable customers to create applications, in the broadest sense of the word, so functionality. I think this also includes things like Logic Apps, that you can use to orchestrate API’s into business processes.
Serverless often refers to Azure Functions and Amazon Lamba. Both offer something similar; the ability to run a self-sufficient piece of code in the cloud, without that code having to run in the context of a web application or service.
This enables developers to just focus on creating the code and adding business value by doing so, taking away the tasks to create and manage the ‘plumbing’ to have the code run.
Azure Functions scale automatically (currently using the Dynamic App Service Plan). So you don’t have the option to scale up or out yourself, and you don’t need to. Functions will scale to your need and you will pay accordingly.
Logic Apps have the same model. There is no way to scale a Logic App, it will do that itself when needed.
In any case, all of these services still need computer resources to run on, so they are far from not using servers.
Let’s just stop saying serverless. It is just a variation of PaaS, with a slightly higher level of abstraction. Don’t get me wrong, this is a very good development! This increases productivity and focus by enabling people to focus on adding business value, instead of focusing on the plumbing to make things work.
I’d love to hear what you think!