Login / Registre-se Account

Aplicações nativas em nuvem

O que é serverless e para que serve?

O conceito de serverless se refere ao modelo de cloud computing em que os desenvolvedores não precisam provisionar servidores ou gerenciar a escala das aplicações. Na verdade, essas tarefas rotineiras são abstraídas pelo provedor da nuvem, possibilitando que os desenvolvedores enviem códigos para produção com mais rapidez do que nos modelos tradicionais.

Resumindo, ao usar o modelo serverless os desenvolvedores se concentram no código, em vez da infraestrutura. Ou seja, é serverless porque as especificações do servidor não afetam os desenvolvedores. É claro que os servidores ainda existem, mas eles são gerenciados pelo provedor de serviços em nuvem.

Explicando mais a fundo, um provedor de cloud como a Amazon ou Google executa servidores físicos e aloca dinamicamente os recursos deles em nome de um usuário, como você, que pode implantar código diretamente na produção. Talvez isso se pareça muito com uma oferta de infraestrutura como serviço (IaaS) de nuvem pública. No entanto, a principal diferença do modelo sem servidor é que o provedor cobra somente os recursos de computação necessários para executar seu código.

Como a computação serverless funciona?

Em um modelo padrão de IaaS, os usuários compram unidades de capacidade com antecedência. Ou seja, você paga componentes de servidor "sempre ativo" para executar as aplicações. Esse não é o caso em um modelo serverless. O que acontece na verdade é que um evento aciona a execução da aplicação. Depois, o provedor de cloud aloca recursos dinamicamente nesse código. Assim, o usuário não precisa mais pagar quando o código termina de ser executado. Além do aumento da eficiência e da economia, o modelo serverless também livra os desenvolvedores das tarefas rotineiras e manuais associadas ao provisionamento do servidor e à escala da aplicação.

Há dois métodos principais de computação serverless. O primeiro é o back-end como serviço (BaaS), em que vários serviços e aplicações de terceiros formam sua aplicação. O segundo método é a função como serviço (FaaS), em que os desenvolvedores ainda criam lógica personalizada no lado do servidor, mas ela é executada em containers totalmente gerenciados por um provedor de serviços em nuvem. É importante notar que você pode criar uma aplicação totalmente serverless por meio desses métodos ou uma formada por elementos de microsserviços parcialmente serverless e parcialmente tradicionais.

Back-end como serviço (BaaS)

O back-end como serviço (BaaS), também conhecido como back-end mobile como serviço (MBaaS), é um método de computação serverless que depende muito de serviços e aplicações de terceiros. Por exemplo, talvez um provedor de cloud ofereça serviços de autenticação, criptografia extra, bancos de dados acessíveis pela cloud e dados de uso de alta fidelidade. Esses serviços de back-end costumam ser acessados por meio de uma chamada para uma interface de programação de aplicações (API) definida pelo provedor da nuvem. Isso garante uma integração mais simples aos seus sistemas, ao contrário do desenvolvimento desses recursos internamente.

Função como serviço (FaaS)

A função como serviço (FaaS) proporciona um nível maior de controle do que o BaaS. Isso acontece porque a lógica no lado do servidor ainda é criada pelos desenvolvedores. No entanto, depois que a lógica é criada, ela é implantada em containers gerenciados por um provedor de nuvem. Esse é o principal benefício do modelo serverless. Especificamente, esses containers são:

  • Sem estado, o que simplifica a integração dos dados.
  • Efêmeros, para que eles sejam executados por muito pouco tempo.
  • Acionados por eventos, para que eles sejam executados automaticamente quando necessário.
  • Totalmente gerenciados por um provedor de cloud. Assim, você paga somente o necessário, e não os servidores e aplicações "sempre ativos".

Quais são as vantagens e desafios do modelo serverless?

Em primeiro lugar, o modelo serverless aumenta a produtividade dos desenvolvedores e reduz os custos operacionais. Ele livra os desenvolvedores das tarefas rotineiras de provisionamento e gerenciamento de servidores. Assim, eles têm mais tempo para se concentrar nas aplicações. Esse benefício é ainda maior quando todos os componentes da aplicação são incorporados por terceiros usando o BaaS, em vez de serem criados internamente. Os custos operacionais são reduzidos no modelo serverless porque você paga o tempo de computação baseado em cloud conforme necessário. Isso não acontece quando você executa e gerencia os próprios servidores o tempo todo.

No entanto, deixar de executar o próprio servidor ou controlar a lógica no lado dele têm suas desvantagens. Abrir mão de controlar esses aspectos do stack de TI também aumenta as chances de dependência de fornecedor. É possível que os provedores de cloud tenham restrições sobre como as pessoas podem interagir com os componentes. Por sua vez, isso afeta a flexibilidade e a personalização dos seus próprios sistemas. Além disso, quando você decide trocar de provedor, isso pode gerar custos. Você precisará fazer upgrade dos sistemas para que eles atendam às especificações do novo provedor.

A base Kubernetes para a computação serverless

Cloud computing

Uma plataforma de containers e Kubernetes para realizar a implantação mais rápida de aplicações nativas em nuvem.

Cloud computing

Uma seleção de runtimes e frameworks ideais para o desenvolvimento de aplicações nativas em nuvem.

Descubra todas as vantagens de uma arquitetura serverless