Blog Spain
Serverless is not just a trending topic
Fernando Pereiro, Head of Devops and Corporate Platforms
Serverless computing is a cloud computing execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources.
Fernando Pereiro, Head of Devops and Corporate Platforms
In our work, we need to be able to create demos and POCs in an agile way, and Serverless services are perfect for doing this. Honestly, I’d rather not have to worry about the servers, the operating system, the networks and other issues, I just want to focus on generating differential value, which is a key focus for my company UST, and should be for all other companies as well.
Serverless is more than that, but before going deeper let’s go back to the basics with a typical definition that we can find in Wikipedia:
Or as described by Simon Wardley
“Serverless is an event driven, utility based, stateless, code execution environment in which you write code and consume services”.
With regard to these definitions, there are two things I would like to comment on:
Can serverless exist outside of a Cloud provider?
Of course! There will be servers in a private cloud or in a local environment, but it’s all about perception; a developer, as part of a development team, may have a “serverless” perception, but his operations team or platform will need to manage his environment. This can work with tools like:
- Anthos from Google Cloud.
- Knative or Kubeless installed on a Kubernetes cluster
Is serverless just about computing?
No! Of course, FaaS (Function as a Service – Lambda, Azure Functions, Cloud Functions, etc.) and CaaS (Container as a Service – Fargate, Cloud Run, etc.) make up a sizeable piece of the pie, but you can design an entire architecture without worrying about servers; for example, you could use DBaaS (Data Base as a Service – DynamoDB, Cloud Firestore, Azure Cosmos DB, etc.), SaaS (Storage as a Service – Amazon S3, Azure Blob Storage, Cloud Storage, etc.), and many others.
I agree with Rachel Stephens in her article “Serverless: more than just functions”:
“Serverless is something that approximates managed services that scale to zero.”
Having a FaaS environment is great because you only have to worry about your code, but having an entire back end or IoT system where you don’t need to worry about the virtual machines it’s running on or the operating system it’s using is absolutely incredible!
Let’s continue! Why is serverless more than just a trending topic?
The best way to see serverless is as a tool or a set of tools, a very powerful set of tools with great benefits:
- Inherent high availability (HA) and disaster recovery (DR ) in the model with no additional effort or cost, to ensure total availability for users.
- Elastic scaling: You can forget about defining and monitoring automatic scaling rules, as each action or request is analysed and scaled automatically. It doesn’t matter if you only have one idea or if you already have millions of users, just let it grow or drop to zero.
- Super fast provisioning: Running a container? You can forget about clusters, nodes and virtual machines, as you just configure an image and you will have a container running in 1 or 2 seconds with any CaaS service. Saving a document? You can forget about servers, storage arrays, backups and everything else.
- Pay-per-use: this is obvious when talking about the Cloud, but serverless allows you to scale to zero and go one step further because you don’t even need to worry about billing per month or per hour, just how many users will access the services and how many actions they will perform.
- It’s cheaper (if done properly): Yes, it’s true! It’s the same as with the Cloud, because if you want to migrate without transformation, it probably won’t save you any money. As such, migrating “as is” and consuming serverless services without any transformation, probably won’t provide any economic benefit.