What is serverless computing? Is this thing for me?
6 min read
Did you know that, with the serverless architecture, you can forget about infrastructure / hardware concerns, make your developers responsible only for writing code, and pay for server services just when they are triggered ... all at the same time?
Perhaps you have already experienced - or are still experiencing - a situation like this…
A problem or new demand arises in your business. The developers enter the scene, and spend days (sometimes weeks) trying to solve the challenge using their codes.
Soon after comes the infrastructure team, facing two heavy tasks:
deploy the codes written by the developers and make them work on all available servers;
ensure that everything keeps working, maintaining availability and ensuring scalability as consumption increases - all of this under an optimized cost …
Hence the inevitable question:
Have you thought about outsourcing all this hassle?
If so, you are not alone.
In the past two decades, most of the IT innovations aimed at a main objective: ensuring that people do not have to think too much about the hardware on which the code is executed.
The apex of this form of operation is called serverless computing (or serverless architecture). The name is self-explanatory: computing without a server.
NOTE: “serverless” may not be the best name for this technology, because the servers are still being used here. The thing is that the efforts to configure them become unnecessary. There are people saying that "DevOpsLess" or "NoOps" would be more appropriate expressions. It makes perfect sense. 🤔
With serverless, the desire for independence - both from the hardware and the operating system on which the code runs - finds its ideal solution:
You don't need to know anything about these things, as the service is provided by companies specialized in the subject.
According to the InfoWorld definition, “Serverless computing is an execution model for the cloud in which a cloud provider dynamically allocates - and then charges the user for - only the compute resources and storage needed to execute a particular piece of code. Naturally, there are still servers involved, but their provisioning and maintenance are entirely taken care of by the provider”.
Freedom is one of the strengths of the serverless. Cost reduction is another one (and quite representative, by the way). The sum of these factors makes the idea practically irrefutable.
Chart shows ease of configuration and serverless computing's focus on business logic. Image source: Plutora.
Serverless and its groundbreaking concept
To understand how serverless computing works, think of it as breaking an application into several functions.
In the serverless concept, you don't manage anything in terms of infrastructure. Forget concerns such as how many servers the application will run on or what are the RAM, disk or processor capacity requirements.
What you have to do is to write a line of code and deliver it to your cloud provider. The rest of the process is the responsibility of the contractor.
In practice, the process works like this:
*The moment someone accesses your website / application, it is as if a server that was stopped is started on the spot. This cloud provider delivers the website / application to your client, and shuts down the server again. And the whole process is done in milliseconds. *
For this reason, serverless functions are called event-driven, since the code only comes into action when it is triggered by a request.
Bernard Golden, CEO of the web solutions company Navica, exemplified the advantages of event-driven applications:
Imagine having an application that is inactive most of the time, but that occasionally receives many requests at the same time, or even an application that processes data sent from IoT devices with limited or intermittent Internet connectivity.
In both cases, the traditional approach would require provisioning a robust server, which could handle eventual peak demands - but that server would be underutilized most of the time.
With the serverless architecture, you would only pay for the server resources you are actually using.
This process of activating stopped server / deactivating server after being used is what provides the main advantages of serverless.
Let’s dive a little deeper.
Serverless computing = transparent processes + resource savings
The serverless model breaks many paradigms. One of the biggest paradigms it breaks is related to cost reduction.
Before the serverless concept, infrastructure costs in the cloud were charged by the hour. There was always a specific server available, and this generated constant costs. In addition, the excess use of RAM was charged as an extra cost.
This caused a huge distortion in the relation between the service provided and the amount paid. For example: if in 90% of the night time nobody accessed your site, you would fully pay for the server anyway.
When there was an access peak, exceeding the contracted plan, the charge was increased.
On the other hand, serverless technology is genuinely self-scaling: the server is capable of increasing and decreasing its processing and memory capacity by itself, according to the demand.
Anyway, you pay for what you consume, without wasting resources.
*Graph illustrates resource savings with serverless computing. Image source: Cloudflare. *
Serverless computing and the programming languages
This makes the process much easier, as you can use the most appropriate programming language for each specific part of the work, without losing integration with the other stages of the project as a whole.
Wrapping it all up, these are the main benefits of serverless computing:
developers can focus on the code they're writing, without having to worry about infrastructure issues;
contracting companies pay only for the computing resources they are actually using, in a completely transparent way, by not spending on hardware or renting cloud spaces that are usually idle.
In terms of technology infrastructure, serverless computing is here to stay. It is natural that, in the coming years, there will be a real exodus of companies for this architecture, especially due to the cost reduction provided.
This article must have given you a general idea about how serverless works and what are its main advantages. But you are probably thinking, "Okay, but how would I transition from my current architecture to serverless?"
Your question can be resolved with a nice chat.
Leave your comment or, if you prefer, log on to the bohr.io server on Discord. We will listen to the particularities of your business and point out the most appropriate solution. Furthermore, this is an issue that our team loves to address.
So don’t be shy. 😉