Serverless é um dos tópicos mais quentes em se tratando de engenharia de software no momento, por isso preparei esse post com alguns conceitos introdutórios e recomendações dos melhores livros sobre Serverless, assim como alguns vídeos e referências para você que quer dominar o tema.

Serverless é a arquitetura nativa da nuvem (cloud computing) que permite transferir a responsabilidade de gerenciar servidores ao seus provedor de nuvem (como a AWS, por exemplo), dessa forma é como se fosse não precisasse gerenciar servidores, eles ficam transparentes para você. Por isso o termo Serverless, que traduzido ao pé da letra para o português, seria algo como “Sem Servidores”.

Essa tecnologia permite que seu time de tecnologia tenha muito mais agilidade e que possa passar mais tempo focando no negócio e em inovações gastando menos tempo para gerenciar infra-estrutura.

A arquitetura Serverless permite criar e executar aplicativos e serviços sem preocupações com servidores. Eliminando tarefas de gerenciamento de infraestrutura, como provisionamento de servidores ou de clusters, patches, manutenção do sistema operacional e provisionamento de capacidade.

Existem diversos serviços Serverless disponíveis que podem ser utilizados, inclusive bancos de dados, como é o caso do DynamoDB (um banco de dados NoSQL da AWS), do Aurora Serverless (um banco de dados relacional compatível com Postgres ou MySQL), e também do S3 um banco de dados de objetos, ideal para armazenar arquivos.

Pague só pelo que Usar

Outro benefício de Serverless é pagar apenas pelo tempo de execução. Por exemplo, se você tem uma aplicação que fica a maior parte do tempo ociosa, em vez de pagar por minuto ou segundo do servidor, você pode pagar efetivamente apenas pelo tempo que seu aplicativo estava trabalhando (executando funções). Em alguns casos isso pode gerar uma enorme economia com custos de infra-estrutura.

Escale até o Infinito

A arquitetura Serverless incorpora disponibilidade e tolerância a falhas. Não é necessário definir a arquitetura desses recursos, pois os serviços que executam o aplicativo os fornecem por padrão.

Seu aplicativo pode ser dimensionado automaticamente ou ter a capacidade ajustada (por taxa de transferência, memória) em vez de unidades de quantidade de servidores.

Funções (FaaS)

Uma das principais aplicações de Serverless são as funções, o AWS Lambda é um dos serviços mais conhecidos e utilizados do mercado, através dele você pode executar códigos sem provisionar nem gerenciar servidores pagando apenas pelo tempo de computação utilizado. Não haverá cobranças quando o código não estiver em execução.

É possível utilizar diferentes linguagens de programação como Java, Python, C#, Rust, Go, entre outras.

Edge

O Lambda@Edge permite executar o seu código serverless mais próximo dos usuários do seu aplicativo, o que melhora o desempenho e reduz a latência.

Se seu usuário estiver no Japão, o código vai ser executado num data center no Japão, se estiver na Austrália no data center mais próximo da Austrália e assim por diante. Tudo isso sem adicionar nenhuma complexidade de administração para sua equipe.

Com o Lambda@Edge, você não precisa provisionar ou gerenciar a infraestrutura em vários locais ao redor do mundo. Você paga apenas pelo tempo de computação utilizado. Não haverá cobranças quando o código não estiver em execução.

Com o Lambda@Edge, você pode enriquecer seus aplicativos da Web, tornando-os globalmente distribuídos e melhorando seu desempenho, tudo com zero de administração do servidor.

Melhores livros sobre Serverless

Quer aprender mais? Confira esse livros:

Bate Papo sobre Serverless

Lambda na AWS

E aí, gostou? Tem alguma outra recomendação?

Deixe nos comentários.