Software developers can compile and run applications independently from servers through the serverless architecture model. The servers do not cease to exist, instead they are managed and operated by third parties as a service.

Serverless computing is an evolution of the cloud computing model through which developers can focus on the key part of their products.  Serverless applications use Backend as a Service (BaaS) solutions or contain customized codes that are executed in ephemeral containers on a Functions as a Service (FaaS) platform. In this manner, the provider dynamically manages the allocation of machine resources, as well as ensuring scalability and reliability to the systems installed in this infrastructure.

Currently, the main cloud infrastructure providers (AWS, Google and Microsoft) invest heavily in the serverless concept, an increasingly relevant topic in the context of software architecture.

Serverless Solutions – FaaS and BaaS

Initially, the term serverless describes applications that depend, in whole or in part, on cloud services to manage the logic and state of the server. In most cases, being a single page is the basic feature of these applications – using a cloud database, such as Firebase, and authentication services, such as Auth0 and AWS Cognito. These solutions are called “Backend as a Service” or ‘BaaS’.

In certain cases, the application developer can write some part of the server logic. This model is also treated as serverless, however, unlike traditional architectures, the code is executed in ephemeral containers managed by third parties on FaaS (Functions as a Service) platforms.

Advantages

In addition to relating to microservices and agile development frameworks, serverless applications also reduce the product’s time to market, scale automatically, and reduce infrastructure costs.

Time to Market

The delivery time for a product can be very long because of the planning, design, development, testing and software deployment steps. Development and operations teams can save a lot of time with servers if they use FaaS or BaaS solutions, through which they can deploy changes more quickly.

Reduced costs

It is possible to scale resources at peak demand and reduce them in low demand with dynamic allocation. In this way, you only pay for what is used, which reduces costs with cloud infrastructure resources.

Scalability

BaaS and FaaS solutions make serverless applications self-scaling and control their capacity according to consumption units.

Related articles:

Modernization of Systems for Use in the Cloud

Cloud Computing and Service Models