What is Serverless Computing?
“Serverless Computing” although it is not the best way to do it. It is a cloud computing execution model in which the cloud provider runs the server and dynamically manages the allocation of machine resources.
This, simplifying, means that it is a fully managed service. That is to say, it allows us to forget about the servers and their management, of the operating system … From the point of view of application development, it is as if there is nothing below.
Therefore, it is not necessary to explicitly reserve server instances as it does with PaaS services or, of course, in the case of IaaS. It is the platform, the provider, who does this automatically and transparently for users.
It is a type of service that fits very well for workloads that respond to incoming events. For example, by means of timers that allow executing a function every day at a certain time, order processing queues, etc. This feature allows billing to be normally also based on when the code is executed. That is, you only pay for use, but for use in an execution .
The serverless computing goes one step beyond what is known as architecture microservices, which is nothing more than “an approach to software development is to build an application as a set of small services, which are running on your own process and communicate with light mechanisms ». The downside of this microservice architecture is that it increases the work of infrastructure management and maintenance, something that is solved thanks to “serverless” computing.
In this way, from the developer’s point of view, the only thing that really matters is to define each functionality and each business logic. The rest is up to the cloud service provider. Therefore, these types of functions allow you to focus on the applications, and not on the management or configuration of the servers. Therefore, the activity will be more productive and, as an “extra ball”, the cost can be significantly reduced.
One of the best-known implementations of this type of architecture is FaaS — Functions as a Service—. Many times FaaS is identified as serverless architecture and, therefore, its characteristics are described in the same way. FaaS can also be seen as “code execution as a service”.
Like everything else, serverless computing has its advantages – already commented -, and these are some of its disadvantages or limitations:
- Vendor lock-in, it is difficult to migrate from one provider to another.
- There is a limitation of the maximum execution time of a function, and also a limitation of the maximum size of the function.
- It is possible that the execution will suffer latencies if it is its first execution or if it has not been executed for a long time.
- It is a closed environment managed by third parties, so it is not possible to make customizations or optimizations.
Also Read: What is Edge Computing?