Serverless: afinal de contas, o que é e de onde veio?

Fernando Gonçalves
DevOps Dojo
Published in
4 min readAug 14, 2017

Um assunto que tem despertado muito o meu interesse é um novo conjunto de princípios de arquitetura de software chamado Serverless.

Serverless poderia ser traduzido livremente como “sem servidor”. A principal ideia por trás desses princípios é que você não precisa mais se preocupar com a administração de um servidor para hospedar sua aplicação.

Você pode estar se perguntando:

Se nós fossêmos traçar uma evolução rápida do mundo dos servidores, poderíamos dizer o seguinte:

  • Até pouco tempo atrás, para hospedar uma aplicação você precisaria comprar uma série de equipamentos, incluindo um servidor. Esses equipamentos costumam ser bem caros e representavam uma grande barreira para quem estava apenas começando…
  • Então surgiu a famosa computação em núvem. A partir desse momento, você poderia criar “equipamentos” virtuais, como máquinas virtuais, e utiliza-los de forma semelhante aos físicos, no entanto pagando muito menos por isso…
  • E agora, nós temos a arquitetura Serverless, onde você não precisa nem mesmo se preocupar em criar o servidor para executar a sua aplicação. Você pode focar no desenvolvimento enquanto o seu provedor de computação em núvem toma conta dos servidores para você!

No entanto, tudo tem um preço. Para adotar uma arquitetura Serverless, você vai precisar abrir mão de um certo nível de controle sobre o ambiente em que a sua aplicação vai ser executada. Mais detalhes sobre isso em posts futuros.

Mas como e porque chegamos na arquitetura Serverless? Para entender isso, precisamos olhar para a história recente da arquitetura de software…

Há algum tempo, o modelo de arquitetura mais comum era o que chamamos de Monolítico. A maior parte das aplicações que existem no mercado ainda seguem esse modelo e ele possui uma característica principal:

  • Alto nível de acoplamento, o que significa que existe uma dependência muito grande entre os componentes da aplicação. Isso causa uma série de problemas conforme a aplicação evolui; (nada bom…)
Aplicação Monolítica: todos os componentes são altamente dependentes

Depois disso, surgiu a Arquitetura Orientada a Serviços, do inglês “Service-Oriented Architecture (SOA)”. A ideia era quebrar essas aplicações monolíticas em várias aplicações menores que proveriam um serviço específico e conversariam entre si através de um barramento de mensagens.

A ideia era muito boa, mas no mundo real ela não funcionou como esperado. Surgiram uma série de regras, documentações e outras coisas que acabaram dificultando muito a adoção dessa arquitetura pelo mercado de uma forma geral.

SOA: vários serviços se comunicando por um mesmo barramento

Em sequência, surgiu um novo modelo de arquitetura chamado de Microserviços. Diferentemente de serviços em SOA, microserviços são independentes, menores, atômicos e podem se comunicar sem depender de um barramento central. Esse modelo possibilitou que aplicações complexas fossem quebradas em partes menores onde, por exemplo, cada serviço poderia ter um time dedicado apenas para ele, utilizando suas próprias tecnologias e métodos de trabalho.

Apesar da arquitetura de Microserviços ter trazido vários benefícios, o trabalho de administração de servidores ainda existia. E pior, agora você poderia ter requisitos de ambiente diferentes e/ou conflitantes, considerando que cada microserviço poderia utilizar uma tecnologia diferente.

Microserviços: aplicações independentes, menores, atômicas e que podem se falar diretamente

E é ai que a arquitetura Serverless entra como uma evolução de Microserviços. Ela encapsula todos as dependências de um serviço e utiliza um Function-as-a-Service (FaaS), como por exemplo o AWS Lambda, para abstrair essa complexidade de administração de servidores, fazendo com que você precise focar apenas na sua aplicação.

Então, recapitulando:

  • Serverless remove a necessidade de administração de servidores para a execução de aplicações na núvem;
  • Pode ser considerado uma evolução dos Microserviços.

Em posts futuros, vamos entrar mais em detalhes sobre como tudo isso funciona.

Quais são as suas principais dúvidas sobre Serverless? Por favor, deixe nos comentários!

Um abraço!

Fontes:

--

--