Nas últimas duas décadas, foram feitas inovações consideráveis para garantir que os desenvolvedores não precisassem pensar muito sobre a máquina física subjacente na qual seu código é executado. A computação sem servidor é um paradigma que leva esse objetivo à sua conclusão lógica. Com serverless, você não precisa saber qualquer coisa sobre o hardware ou sistema operacional em que seu código é executado, já que tudo é gerenciado por um provedor de serviços. Embora o segmento tenha tido altos e baixos, atualmente está em ascensão: um relatório recente da tecnologia SkyQuest projetou que a computação sem servidor seria um mercado de US$ 50 bilhões até 2031.
O que é computação sem servidor?
A computação sem servidor é um modelo de execução para a nuvem em que um provedor de nuvem aloca dinamicamente apenas os recursos de computação e armazenamento necessários para executar um determinado trecho de código. Naturalmente, ainda existem servidores envolvidos, mas o provedor gerencia o provisionamento e a manutenção. O usuário é cobrado pelos recursos consumidos junto com a manutenção e quaisquer outras taxas que possam ser cobradas. Em um cenário ideal sem servidor, não haveria servidores para gerenciar ou provisionar: nada de bare metal, nada virtual, nada de contêineres. Os usuários sem servidor não estão envolvidos no gerenciamento de um host, na correção de um host ou em lidar com qualquer coisa no nível do sistema operacional.
Serverless tem sido usado para descrever cenários de back-end como serviço, onde um aplicativo móvel se conectaria a um servidor back-end hospedado inteiramente na nuvem. Mas quando as pessoas falam sobre computação sem servidor ou arquiteturas sem servidor, geralmente se referem à função como serviço (FaaS), em que um cliente escreve um código que aborda apenas a lógica de negócios e o carrega para um provedor. Essa é a nossa definição para este artigo: o provedor lida com todo o provisionamento de hardware, gerenciamento de máquinas virtuais e contêineres e até mesmo tarefas como multithreading, que geralmente são incorporadas ao código do aplicativo. Tudo o que resta fazer é fornecer as funções que implementam especificamente a lógica de negócios do aplicativo.