Api management

What is Serverless computing?

22nd April 2020

Serverless computing has become a great business and process efficiency opportunity for companies that are increasingly leaning toward the cloud. Find out what serverless computing is exactly.

Serverless computing: how it works

Far from being a serverless architecture, serverless computing allows a cloud provider to run and manage a server dynamically, by assigning resources to the machine.

This means that the main feature of this model is to cast aside the old way of managing servers by a specific person within the company and focus on automated management performed by the cloud provider

In other words, users do not need to manage the administration system that runs the applications or production code; the cloud provider will instead be tasked with dynamically managing the resource allocation as required by the organization to perform a specific task.

In the face of this new paradigm, that which was born a few years ago, computing tasks are billed based on the actual use of resources needed by each application or task, which turns it into a model that is completely different from the traditional one, where the purchase of credits was required to use a platform. This is to say, you will only pay for what you use during runtime.

In addition, server instances no longer require a reservation, as is usually the case in Platform as a Service (PaaS), where developers must communicate with the server via an API and add resources on their own. It will be the provider who will be in charge of doing so automatically and in a way that is transparent to the users.

All of these features of serverless computing allow developers to focus their attention on the development of their software. Of course, certain stateless functions need to be created that include guidelines for the way in which a specific program reacts to different events. 

In this model, the way in which providers manage hardware is essential. The challenge users face is integrating the software and functions into leased cloud space. Access can take place in one of two ways:

  • Synchronous access via the classic model, known as Client-Server.
  • Asynchronous event-driven access. This novel functionality prevents the coupling of different functions by maintaining demand at a low level for the duration of the execution. One very common example of this access method is loading an image that is also accompanied by a thumbnail.

Unlike other standard methods, the serverless method offers the required resources in real-time during the runtime of that function call. This means that a specific event will trigger the execution of the function’s code and the provider will be in charge of allocating the resources for that code. The user will pay once its execution has finished.

The serverless method and its two main execution models

Due to the efficiency of serverless method functions, today there are providers that offer a serverless architecture under the names Function as a Services (FaaS) and Backend as a Services (BaaS), two of the most important serverless computing methods.

BaaS: this is a computing method that is mostly based on third-party services and applications which are accessed via an API that was configured by the provider. Examples of this are authentication services, databases, encryption and others.

FaaS: The Function as a Service model makes it easy for developers to write and update code, which is then implemented in cloud containers managed by a provider. It is a cost-effective, effective way to implement microservices. Its main features are the simplification of data integration, fast execution and automated event execution on-demand, fully managed by the provider and paying only for the execution – not for applications or servers that are working permanently.

Advantages of having a serverless architecture

The serverless computing model has many advantages, allowing the creation, execution and processes that do not need to communicate with the underlying server. Some of the most important advantages are:

  • The developers no longer need to focus their work on routine irrelevant actions that take significant time to perform, boosting their productivity.
  • It deeply simplifies the code implementation process, facilitating tasks such as maintenance, planning and procurement.
  • This is a low-cost technology, since one only pays for what they use in real-time. That which is not used, is not paid for. Furthermore, it drastically reduces operational and fixed costs, as is the case of maintenance, licenses and facilities. 
  • Agility and efficiency in the supply of resources in real-time, which are sometimes impossible to predict – even at peak load.

Serverless architecture in practice: where is the serverless principle used?

In practice, the serverless method was designed to process functions separately rather than long code sequences. This characteristic allows it to become an interesting option under certain scenarios, such as:

  • Processing of structured and unstructured data. A serverless infrastructure allows for the processing of information resulting from Big Data, decoding, processing or combining structured data such as JSON or XML with unstructured data such as audio or images.
  • API proxy. Some applications have slow APIs which, through the serverless method, can easily be accessed from other systems.
  • Backend. There is an increasing number of companies that use serverless computing to create and support the cloud backend.
  • Schedule-based execution. The method is used to execute functions that are based on events, and also on specific schedules, facilitating organization and automation, such as, for example, backups.
  • Chatbots and virtual assistants. This technology also allows for the integration of virtual chat assistants