Serverless: os prós e contras dessa opção de infraestrutura em nuvem

 

Serverless é uma arquitetura nativa da nuvem, que permite às empresas criar e manter seus aplicativos sem preocupação com a infraestrutura de servidores em que esses aplicativos estão rodando (por isso o “less” no nome).

Neste tipo de arquitetura, não é preciso se preocupar com tarefas como o provisionamento de servidor ou cluster, a aplicação de patches ou a manutenção do sistema operacional e do provisionamento de capacidade. As responsabilidades operacionais e de infraestrutura cabem ao provedor de serviços na nuvem, o que na prática aumenta a agilidade e a inovação.

Por que usar?

A arquitetura Serverless permite criar aplicativos modernos com maior agilidade e menor custo. E sem terem que se preocupar com a operação ou tempos de execução, podem se concentrar no produto principal, empregando tempo e energia no desenvolvimento de ótimos produtos, dimensionáveis e confiáveis.

 


Vantagens

  • Custo

O modelo de preços de uma arquitetura Serverless é baseado apenas pela quantidade de computação e recursos utilizados. Caso o sistema esteja ocioso, nenhum custo será associado. Além disso, a maioria dos provedores de nuvem fornece uma camada gratuita de solicitações de função Serverless, sem mencionar outros serviços.

  • Escalas fora da caixa

As infraestruturas Serverless aumentam e diminuem com base na demanda por funções específicas do sistema. Para os desenvolvedores, isso significa menos problemas e uma melhor experiência em picos de uso. Geralmente, os provedores de nuvem definem limites para simultaneidade máxima, de forma a proteger os desenvolvedores de custos descontrolados.

  • Time to Market

Com Serverless, os desenvolvedores passam menos tempo provisionando, dimensionando e gerenciando a infraestrutura, liberando tempo para desenvolver uma lógica comercial de valor agregado. Além disso, o código da função geralmente é mais fácil e rápido de escrever, pois é conciso e deve ser projetado para fazer apenas uma coisa de cada vez.

 

 

Desvantagens

  • Performance

O uso esporádico de serviços Serverless demanda a criação do servidor do zero (na hora de uma nova requisição) o que gera cold-starts da aplicação e ocasiona perda de performance momentânea.

  • Limite de recursos

A computação Serverless não é adequada para algumas cargas de trabalho, como a computação de alto desempenho, devido aos limites de recursos impostos pelos provedores de nuvem.

  • Monitorando e Depurando

Diagnosticar problemas de desempenho ou uso excessivo de recursos numa solução Serverless pode ser mais difícil do que com código tradicional de servidor, porque normalmente não se tem acesso à infraestrutura onde esses serviços são executados.

 

Casos de uso

A abordagem Serverless pode ser usada para uma ampla variedade de casos:

  • Aplicações Web e Mobile

Um dos casos de uso mais comuns para Serverless, tende a criar APIs de back-end que atendem a aplicativos da Web e móveis. As APIs Serverless geralmente são fáceis de criar, gerenciar e funcionam bem em cenários de carga flutuantes.

  • Processamento de fluxo e lote

A natureza orientada a eventos do Serverless é adequada para o processamento de dados. Por exemplo: as funções Lambda (AWS) podem ser designadas para consumir eventos de fluxos de dados ou definidas para processar tarefas em massa. Outro ótimo exemplo de porque o modelo de cobrança por uso é atraente, embora com altas cargas, a computação possa ser mais com Serverless.

  • Internet das Coisas

Os dispositivos que se conectam à Internet para ler ou gravar dados são um excelente caso de uso para Serverless. Serviços como Alexa e eletrodomésticos como o iRobot são usuários Serverless conhecidos.

  • Manipulação de imagens e vídeos

Com Serverless é possível criar serviços de imagem e vídeo com melhor desempenho para qualquer aplicativo. Você pode usar também para fazer redimensionamentos dinâmicos de imagens ou alterar a transcodificação de vídeo para diferentes dispositivos de destino.

Os aplicativos contam cada vez mais com reconhecimento de imagem para melhorar a experiência do usuário: por exemplo, um aplicativo de comércio eletrônico que permite aos clientes fotografar a frente do cartão de crédito em vez de digitar os números manualmente.

Esta arquitetura faz sentido em vários tipos de cenários, porém tem que ter cuidado na hora de escolher este tipo de abordagem para sua solução, verificando muito bem os objetivos e principalmente as desvantagens de partir para o uso de Serverless.

Gabriel Asakawa
Gerente de Inovação

--------

Fontes:

https://en.wikipedia.org/wiki/Serverless_computing

https://www.ibm.com/cloud/learn/faas#toc-faas-and-i-mdyazIsb

https://www.bmc.com/blogs/serverless-faas/

https://www.serverless.com/learn/use-cases/