A computação em cloud transformou a forma como os negócios operam, permitindo-lhes dimensionar recursos conforme a procura sem ter de manter uma infraestrutura dispendiosa. A computação serverless leva isto mais longe, permitindo aos programadores executar código sem provisionar ou gerir servidores de todo. Aqui está uma visão geral desta tecnologia emergente e por que pode ser a próxima evolução da cloud.
O Que é Computação Serverless?
Com a computação em cloud tradicional, alugam-se máquinas virtuais e paga-se pelo tempo que estão em execução. Isto é conhecido como Infrastructure as a Service (IaaS). Com computação serverless, também conhecida como Functions as a Service (FaaS), implementa-se código e o fornecedor de cloud executa-o automaticamente sem ter de gerir quaisquer servidores.
É cobrado com base no tempo de computação usado para executar o seu código. Quando o seu código não está a ser executado, não paga nada. Isto torna o serverless perfeito para cargas de trabalho impulsionadas por eventos, intermitentes ou com exigências computacionais variáveis.
Principais Benefícios do Serverless
Sem gestão de servidor: Esquecer servidores por completo permite às equipas de desenvolvimento focarem-se em escrever código, não em operações. O fornecedor de cloud lida com planeamento de capacidade, implementações, escalabilidade, patches e mais.
Pagamento por execução: Nunca mais pague por capacidade inativa. É cobrado em incrementos de milissegundos de tempo computacional em vez de taxas de aluguer mensais ou horárias. Isto pode reduzir significativamente os custos para cargas de trabalho infrequentes.
Auto-escalamento: As plataformas serverless escalam o seu código automaticamente, ligando mais recursos computacionais conforme necessário para lidar com a carga. Isto torna o serverless ideal para cargas de trabalho irregulares ou imprevisíveis.
Desenvolvimento mais rápido: Ignore provisionar infraestrutura e configurar ambientes. Basta implementar código e deixar a plataforma tratar do resto. Isto acelera os ciclos de desenvolvimento.
Suporte open source: A maioria das plataformas serverless funcionam com populares ferramentas open source como Terraform, permitindo abordagens de infraestrutura como código.
Casos de Uso Comuns Serverless
Aqui estão alguns dos casos de uso mais populares para arquiteturas serverless:
- Backends web e mobile – Serverless é perfeito para APIs REST, mensagens em tempo real, processamento de ficheiros e mais para apps web/mobile.
- Processamento de dados – Agendar tarefas recorrentes para limpar, transformar e mover dados sem servidores para gerir.
- Pipelines ETL – Construa complexos processos de extração, transformação e carregamento que auto-escalam para satisfazer a procura.
- Backends IoT – Lidar com volumes elevados, intermitentes de dados de dispositivos IoT.
- Chatbots – Criar facilmente bots que podem escalar cargas de trabalho conversacionais conforme necessário.
Possíveis Desvantagens a Considerar
Claro, a computação serverless não é perfeita para todas as cargas de trabalho. Algumas desvantagens-chave a considerar incluem:
- Apenas stateless – As funções serverless devem ser stateless, o que pode exigir remodelar apps mais monolíticas. Armazenamentos de dados externos podem fornecer persistência.
- Arranques a frio – Quando funções são executadas pela primeira vez após estarem inativas, incorrem em latência para lançar a infraestrutura do contentor, o que afeta os tempos de resposta.
- Sobrecarga de monitorização – Rastreio distribuído é necessário para monitorizar apps serverless já que são executadas num ambiente partilhado e opaco.
- Lock-in do fornecedor – Pode haver algum lock-in aos serviços proprietários de um específico fornecedor de cloud. Algumas opções open source ajudam a aliviar isto.
- Otimização de custos – A faturação pay-per-execution pode ser complexa para estimar e otimizar, especialmente para cargas de trabalho com utilização sustentada.
- Dificuldades de debug – Funções efémeras executando num ambiente remoto podem tornar o debug difícil comparado com desenvolvimento e testes locais.
A Linha Final
Serverless representa um grande salto em frente na abstração de infraestrutura dos programadores. Embora ainda uma tecnologia emergente, oferece uma proposta de valor convincente – sem operações, escala infinita e baixos custos para cargas de trabalho intermitentes. À medida que as plataformas amadurecem e endereçam as desvantagens em torno de estado, arranques a frio e debug, espera-se que a adoção do serverless acelere em startups e empresas. A próxima fase de domínio da cloud pode muito bem ser impulsionada pela computação serverless.
A computação serverless permite aos programadores implementar código sem gerir servidores. Fornece escalabilidade automática e faturação pay-per-execution, tornando-a ideal para cargas de trabalho intermitentes ou irregulares. Embora ainda a amadurecer, o serverless oferece uma visão do futuro da cloud e para onde esta pode seguir em frente.
Glossário
- IaaS: Infrastructure as a Service, o fornecedor de cloud aloja hardware como servidores e armazenamento para si usar. Exemplos são AWS EC2, Azure Virtual Machines.
- FaaS: Functions as a Service, um modelo serverless onde implementa snippets de código e o fornecedor executa-os automaticamente. Exemplos são AWS Lambda, Azure Functions.
- API REST: REST ou RESTful APIs permitem que sistemas acedam e manipulem dados usando pedidos HTTP standard como GET, POST, PUT, DELETE. Comum em apps web e mobile.
- ETL: Extract, Transform, Load, o processo de extrair dados de uma ou mais fontes, limpar ou modificá-los, e depois carregá-los num destino. Comumente usado para mover dados para armazéns de dados.