O que é computação sem servidor? | Definição de "sem servidor"

Computação sem servidor é um método de fornecimento de serviços de back-end baseado em como são utilizados. Os servidores ainda são utilizados, mas uma empresa que utiliza os serviços de back-end de um fornecedor sem servidor é cobrada com base no uso, não por uma quantidade fixa de largura de banda ou número de servidores.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Defina computação sem servidor
  • Descreva as vantagens do uso de uma arquitetura sem servidor

Copiar o link do artigo

O que é computação sem servidor?

Computação sem servidor é um método de fornecimento de serviços de back-end baseado em como são utilizados. Um provedor sem servidor permite que os usuários escrevam e implantem código sem precisar se preocupar com a infraestrutura subjacente. Uma empresa que usa serviços de back-end de um fornecedor sem servidor é cobrada com base na computação utilizada e não precisa reservar e pagar por uma quantidade fixa de largura de banda ou número de servidores, já que o serviço pode ser dimensionado automaticamente quando necessário. Vale notar que, embora os serviços sejam chamados de "sem servidor", os servidores físicos ainda são utilizados, mas os desenvolvedores não precisam estar cientes deles.

Nos primeiros dias da internet, qualquer pessoa que desejasse criar uma aplicação web precisava possuir o hardware físico necessário para rodar um servidor, uma tarefa complicada e cara.

Mais tarde apareceu a computação em nuvem, em que um número fixo de servidores ou quantidades de espaço no servidor podiam ser alugados remotamente. Os desenvolvedores e as empresas que alugavam essas unidades fixas de espaço no servidor geralmente compravam espaço extra para garantir que um pico de tráfego ou de atividade não excedesse limites mensais e interrompesse aplicativos. Isso significa que boa parte do espaço de servidor pago pode ser desperdiçado. Para resolver o problema, os fornecedores de nuvem introduziram modelos com dimensionamento automático, mas mesmo esse tipo de modelo poderia acabar saindo muito caro se ocorresse um pico de atividade indesejado, como um ataque DDoS.

Vantagens do esquema sem servidor

A computação sem servidor permite que os desenvolvedores comprem serviços de back-end com base em um esquema flexível "pague pelo que usar", o que significa que só precisam pagar pelos serviços realmente utilizados. É como migrar de um plano de dados de celular com limite fixo mensal para um que cobra apenas por cada byte de dados que é realmente usado.

O termo "sem servidor" passa uma mensagem errada, já que os servidores que fornecem esses serviços de back-end continuam existindo, mas significa que quem lida com todas as questões de espaço e infraestrutura é o fornecedor. Sem servidor significa que os desenvolvedores podem fazer seu trabalho sem precisar se preocupar nem um pouco com os servidores.

O que são serviços de back-end? Qual é a diferença entre front-end e back-end?

O desenvolvimento de aplicações geralmente é dividido entre dois domínios: o front-end e o back-end. O frontend é a parte da aplicação que é vista pelos usuários e com a qual estes interagem, como a organização visual. O back-end é a parte que o usuário não vê; isso inclui o servidor no qual ficam hospedados os arquivos da aplicação e o banco de dados no qual os dados do usuário e a lógica dos negócios são mantidos.

Comparação entre o front-end e o back-end de uma aplicação

Por exemplo, vamos imaginar um site que vende ingressos para shows. Quando um usuário digita o endereço do site na janela do navegador, uma solicitação é enviada ao servidor de back-end, que responde com os dados do site. O usuário então verá o front-end do site, que inclui texto, imagens e campos de formulário para preencher. É possível interagir com um dos campos de formulário no front-end para pesquisar seu artista favorito. Quando o usuário clica em "Enviar", outra solicitação será enviada para o back-end. O código do back-end verifica o banco de dados para ver se existe um artista com esse nome e, em caso positivo, qual a data do próximo show e quantos ingressos estão disponíveis. Em seguida, o back-end envia esses dados de volta para o front-end e exibe os resultados de um jeito que faça sentido para o usuário. Da mesma forma, quando o usuário cria uma conta e digita as informações financeiras para comprar os ingressos, ocorre outra comunicação entre o front-end e o back-end.

Que tipo de serviços de back-end a computação sem servidor pode fornecer?

A maioria dos provedores sem servidor oferece serviços de banco de dados e armazenamento aos clientes e muitos também têm plataformas de Função como Serviço (FaaS), como o Cloudflare Workers. O FaaS permite que os desenvolvedores executem trechos de código na borda de rede. e criem uma arquitetura modular, produzindo uma base de código mais escalonável, sem precisar gastar recursos com a manutenção do back-end subjacente. Saiba mais sobre o FaaS >>

Quais são as vantagens da computação sem servidor?

  • Custos mais baixos — a computação sem servidor geralmente é muito econômica, já que o modelo de serviços de back-end na nuvem dos provedores tradicionais (alocação de servidores) geralmente significa que o usuário acaba pagando pelo espaço não utilizado ou pelo tempo ocioso da CPU.
  • Escalabilidade simplificada — os desenvolvedores que usam arquitetura sem servidor não precisam se preocupar com as políticas de aumento da capacidade de seu código. O fornecedor sem servidor se encarrega de aumentar os serviços de acordo com a demanda.
  • Código de back-end simplificado — com o FaaS, os desenvolvedores podem criar funções simples que rodam independentemente para executar uma única finalidade, como fazer uma chamada de API.
  • Retorno mais rápido — a arquitetura sem servidor pode reduzir significativamente o tempo de lançamento no mercado. Ao invés de demandar um processo complicado de implantação para implementar correções de bugs e novas funcionalidades, os desenvolvedores podem adicionar e modificar o código gradualmente.

Saiba mais sobre os benefícios da computação sem servidor.

Comparação entre a computação sem servidor e outros modelos de back-end na nuvem

Os modelos de Back-end como Serviço e Plataforma como Serviço são tecnologias frequentemente associadas à computação sem servidor. Mas é importante ressaltar que embora compartilhem semelhanças, esses modelos não necessariamente atendem aos requisitos de uma arquitetura sem servidor.

Back-end como Serviço (BaaS) é um modelo de serviço em que um provedor de nuvem oferece serviços de back-end, como armazenamento de dados, para que os desenvolvedores possam se concentrar em escrever código de front-end. No entanto, aplicativos sem servidor são orientados por eventos e executados na borda, requisitos não atendidos pelos aplicativos de BaaS. Saiba mais sobre o BaaS >>

Plataforma como Serviço (PaaS) é um modelo em que todas as ferramentas necessárias para desenvolver e implantar aplicativos são alugadas de um provedor de nuvem, incluindo sistemas operacionais e middleware. Entretanto, aplicativos PaaS não são tão fáceis de escalonar quanto os aplicativos sem servidor. Além disso, o PaaS não é necessariamente executado na borda e, muitas vezes, apresenta um atraso significativo na inicialização, o que não ocorre em aplicativos sem servidor. Saiba mais sobre o PaaS >>

Infraestrutura como Serviço (IaaS) é um termo genérico para fornecedores de nuvem que hospedam infraestrutura em nome do cliente. Provedores de IaaS podem oferecer funcionalidades sem servidor, mas os termos não são sinônimos. Saiba mais sobre o IaaS >>

Qual é o futuro da computação sem servidor?

A computação sem servidor continua evoluindo, pois os provedores estão criando soluções para eliminar algumas desvantagens. Uma dessas desvantagens é a inicialização a frio.

Normalmente, quando uma função sem servidor não é chamada por um tempo, o provedor a desativa para economizar energia e evitar o provisionamento sem necessidade. Na próxima vez que o aplicativo que chama essa função for usado, o provedor sem servidor precisará iniciá-lo do zero e começar a hospedar a função novamente. Esse tempo de inicialização gera uma latência significativa, conhecida como "inicialização a frio".

Quando a função estiver em execução, será disponibilizada muito mais rápido para as solicitações subsequentes (inicializações a quente). Mas se não for solicitada novamente por um tempo, ficará inativa de novo. Isso significa que o próximo usuário que solicitar a função terá uma experiência de inicialização a frio. Até bem recentemente, as inicializações a frio eram consideradas um mal necessário das funções sem servidor.

Mas o Cloudflare Workers resolveu esse problema com a inicialização antecipada das funções sem servidor, durante o handshake de TLS. Como as funções do Workers são inicializadas na borda e em um período de tempo muito curto, menor até que o tempo necessário para concluir o handshake, o resultado é uma plataforma de FaaS sem inicializações a frio. Para começar a usar o Cloudflare Workers, confira nossa Documentação para desenvolvedores.

Com a resolução das desvantagens da arquitetura sem servidor e o crescimento da popularidade da computação em borda, esperamos que o uso desses serviços sejam cada vez mais difundidos.