Entenda o que é Arquitetura Serverless

Computação sem servidor (Serverless) é um novo paradigma que abstrai a complexidade associada ao gerenciamento de servidores para back-ends de APIs e dispositivos móveis, operações de extração, transformação e carga (ETL, na sigla em inglês), jobs de processamento de dados, bancos de dados e muito mais.

Não é fácil ignorar uma certa palavra que está surgindo no mundo da tecnologia com toda força: “Serverless”. O nome pode parecer meio estranho e, de fato, confunde alguém em primeiro contato com o termo. Afinal, Serverless significa que não existem servidores? Não! Continuamos precisando ter servidores para rodar nossas aplicações, mas agora, não precisamos mais nos preocupar com a parte de infraestrutura.

A Amazon Web Services possui diversos serviços que estão dentro do ecossistema Serverless como Lambda, SQS, SNS, S3, DynamoDB, Kinesis API Gateway, Cognito, entre outros. Mas o serviço essencial que permitiu que aplicações totalmente Serverless virassem realidade foi o AWS Lambda. Ele é um FaaS (Function as a Service) onde escrevemos nosso código sem nos preocuparmos em qual servidor ele irá rodar. Dessa forma, é um conector natural entre vários serviços da AWS.

Isso é ótimo para desenvolvedores, que poderemos focar inteiramente na aplicação que estamos construindo. Mas e aí? Será que essa é a tendência? Ou será que é uma onda passageira que em alguns anos ninguém mais vai estar falando? Abaixo segue 5 razões que levam a crer que o Serverless veio pra ficar:


Construção de aplicações totalmente escaláveis
Essa tarefa nunca pareceu tão fácil. Em um ambiente Serverless, escalabilidade já é natural. Quando utilizamos um FaaS, queremos que nossa função rode quando acionada e que ela escale por conta própria. O AWS Lambda permite que suas funções executem em paralelo e escalem automaticamente conforme o aumento de suas chamadas.


Sem mais servidores para atualizar e balanceadores de carga para configurar
Tá certo que a maioria das tarefas de infra são totalmente automatizáveis e temos ótimas ferramentas para tratar isso nos dias de hoje. Mas, e se não precisarmos nem mesmo nos preocupar com essa automatização? A forte cultura de DevOps pode estar rapidamente caminhando para a cultura NoOps.


Continuous Integration e Continuous Delivery facilitados
Para honrar os princípios ágeis, precisamos ter um ciclo de desenvolvimento rápido e assim fazer entregas contínuas para que o produto em desenvolvimento seja constantemente validado. Mas existem projetos em que essa tarefa é extremamente complicada devido à complexidade do projeto. Com o Serverless e, consequentemente, uma arquitetura de microserviços (e já há quem fale de nanoserviços), CI/CD ficam bem mais fáceis para serem implementados.


Você só paga pelo que você realmente usa
Na utilização de um FaaS você só é cobrado pelo tempo em que sua função está processando. E isso, na maioria dos casos significa economia! Para quê manter um servidor ligado durante uma madrugada quando você raramente tem acessos? No Serverless, mesmo sem estar sendo cobrada, a função ociosa está disponível.


Possibilidade de usar várias linguagens de programação
Por que ficar preso a uma única linguagem? Em um time grande de desenvolvimento, com certeza cada um tem sua linguagem preferida. Podemos aproveitar isso criando times auto-gerenciáveis em que o próprio time escolhe sua linguagem. Atualmente, o AWS Lambda permite escrever código em 4 linguagens: Java, Node.Js, Python e C#.


Com esses 5 pontos, não há como negar que o ciclo de desenvolvimento de um time ágil pode melhorar significativamente quando se adota uma arquitetura Serverless. Temos os benefícios de uma arquitetura de microserviços sem precisar a sobrecarga do gerenciamento de infraestrutura. 
Gostou do artigo e quer saber mais sobre tecnologia? Então siga os nossos perfis no Facebook, Twitter e LinkedIn !