Como o próprio nome sugere, o modelo de arquitetura Serverless permite que os desenvolvedores compilem e executem aplicações sem se preocupar com os servidores. Isso não quer dizer que os servidores deixam de existir, mas sim que eles são gerenciados e operacionalizados por terceiros.
A computação Serverless é uma evolução dentro da computação em nuvem, permitindo que os desenvolvedores foquem cada vez na parte essencial de seu produto.
Aplicações Serverless são aquelas que utilizam soluções de Backend as a Service (BaaS); ou que incluem códigos customizados executados em containers efêmeros numa plataforma de Functions as a Service (FaaS).
Dessa forma, o provedor gerencia de forma dinâmica a alocação de recursos das máquinas, garantindo escalabilidade e confiabilidade aos desenvolvedores
Atualmente, os principais provedores de infraestrutura na nuvem (Amazon, Google e Microsoft) estão investindo muito no conceito do Serverless, sendo um tema cada vez mais relevante no mundo de arquitetura de software.
Soluções Serverless – FaaS e BaaS
Em um primeiro momento, o termo serverless foi atribuído para descrever aplicações que dependem, em partes ou totalmente, de serviços em nuvem para gerenciar a lógica e o estado do servidor.
Geralmente, esses aplicativos possuem a característica básica de serem páginas únicas – utilizando um banco de dados em nuvem (como o Parse e Firebase); e serviços de autenticação (como Auth0 e AWS Cognito).
Essas soluções são chamadas de “Backend as a Service” ou ‘BaaS’.
Em alguns casos, certa quantidade da lógica do servidor pode ser escrita pelo desenvolvedor do aplicação.
Esse modelo também é considerado como serverless, mas diferente das arquiteturas tradicionais, o código é executade em containers efêmeros gerenciados por terceiros em plataformas de FaaS – “Functions as a Service”.
Vantagens
Além de ter um bom fit com micro serviços e metodologias ágeis de desenvolvimento, as aplicações Serverless também reduzem o time to market do produto, escalam automaticamente e reduzem custos com infraestrutura.
Time to Market
O tempo de entrega de um produto pode ser muito longo, considerando as etapas de planejamento, design e desenvolvimento de software.
Utilizando solução de FaaS e/ou Baas, o time de desenvolvimento e operações pode economizar um bom tempo com os servidores, permitindo que alterações entrem em ambiente de produção mais rapidamente.
Redução de custos
Com a alocação dinâmica, é possível escalar os recursos em momentos de pico demanda, e reduzir na baixa. Desta forma, você paga apenas aquilo que é consumido, reduzindo os custos com o provedor de infraestrutura em nuvem.
Escalabilidade
As soluções de BaaS e FaaS fazem com que aplicações serverless sejam auto escaláveis, controlando sua capacidade de acordo com unidades de consumo.