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 em ascensão: Um relatório recente de 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 ultimate sem servidor, não haveria nenhum servidor para gerenciar ou provisionar: nada de naked metallic, nada digital, 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.
Sem servidor foi usado para descrever cenários de back-end como serviçoonde 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 querem dizer 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.