fbpx

O termo Serverless vem ganhando cada vez mais notoriedade com o crescimento das aplicações em nuvem. Mas o que é de fato uma arquitetura Serverless, para quais empresas ela é indicada e para quais empresas ela não é?

O boom do termo foi recentemente agora em 2016, inclusive analistas estimaram que 2017 seria o ano do Serverless, porém como sabemos agora, não aconteceu.

Já existem grandes empresas no Brasil e no mundo que utilizam do Serverless em produção, como por exemplo: Netflix, Nubank, MaxMilhas e Coca-Cola.

Então não teremos mais servidores?

Tá, então você deve estar pensando, como o nome “Serveless” diz, significa que não temos mais servidores? Nada disso, basicamente, Serveless é um modelo que permite hospedarmos funções (FaaS) sem a preocupação de configuração de servidor, todo o ambiente (hardware e software) já está pronto para execução da função desenvolvida, então talvez o nome correto seja Infraless ou Devopsless.

Evolução até chegarmos no conceito de Serveless (FaaS)

Com o surgimento da computação em nuvem, nós podemos parar de nos preocupar com a infraestrutura do hardware do servidor e passamos a nos preocupar somente com a máquina virtual, agora com o Serverless nós vamos nos preocupar somente com a nossa função, o ambiente de sistema operacional em que a mesma vai rodar não é mais do nosso controle. 

Dessa maneira, nós podemos investir o nosso tempo em coisas que realmente geram resultado, a publicação desse código está a poucos comandos de distância, diminuindo drasticamente o time to market.

Apesar de ser um grande avanço para a computação, existem limitações, que se não analisadas da maneira correta, podem mais atrapalhar do que ajudar no desenvolvimento de um produto digital. 

Para quem é indicado o Serverless

Como explicado Serverless é baseado em funções, ou seja, pequenas frações de código que possuem uma responsabilidade única e coesa. 

Powered by Rock Convert

Sendo assim, não podemos publicar um sistema inteiro utilizando o conceito de Serverless, o mais indicado é na utilização de serviços que podem estar desacoplado da plataforma principal, como por exemplo um envio de e-mail, uma função de importação ou algo parecido. 

Outra utilização interessante do Serveless é em conjunto com o conceito de microservices, assim não temos uma API monolítica e sim separada em funções em diferentes hosts de Serverless

Benefícios do Serveless

  • Não precisamos nos preocupar com configuração de Hardware (marca do processador, marca do SSD e etc…)
  • Não precisamos nos preocupar com configuração de S.O (Ubuntu, Debian, Windows e etc..)
  • Não precisamos nos preocupar com a configuração do Servidor (NGINX, Apache e etc..)
  • Deploy simples, como não precisamos nos preocupar com nenhum dos itens acima, publicar a aplicação é extremamente fácil
  • Preço baixo, como podemos ver nessa calculadora de custos de FaaS, os valores para uma função que será executada 100.000x o custo fica por volta de U$ 8,00.
Tabela de preços Serveless (FaaS)

Desvantagens do Serverless

Como dissemos no tópico de para quem é indicada, a arquitetura Serveless não é nenhuma “bala de prata”, se você está cogitando utilizar, segue alguns pontos para ficar atento:

  • Debugar uma aplicação Serveless pode ser bem complicado
  • Se utilizado da forma incorreta, os custos podem ser exorbitantes, bem maiores que em uma aplicação comum
  • Aplicações Serveless não foram criadas para serem executadas constantemente, o custo e a perfomance nesses casos podem ser bem ruins

Como começar a utilizar

Para começar você precisa analisar se o Serveless faz sentido no seu contexto, verifique atentamente os pontos positivos e negativos apresentados antes de tomar a decisão de utilizar ou não a arquitetura.

Escolha um serviço de FaaS

Uma vez decidido pela utilização, precisamos escolher qual dos serviços de FaaS utilizar, uma série de empresas como Google Cloud, Microsoft Azure, Amazon AWS, já possuem o serviço de Serveless (FaaS), o meu conselho é utilizar a que você tenha mais afinidade e começar alguns testes.

Das empresas listadas acimas a AWS Lambda por exemplo suporta Node, Python, C# e Java. Dessa maneira você consegue fazer os testes com a linguagem que tem mais afinidade.

Utilize o CLI serveless

O CLI te traz ainda mais facilidade na hora de construir sua função como serviço, com dois comandos você já cria uma função e publica no AWS Lambda.

Agora que você sabe o que é Serveless já consegue visualizar casos de uso dentro do seu projeto? Se tiver alguma dúvida deixe nos comentários que respondemos o mais rápido possível! Até a próxima 🙂

Entre com seus dados para a ligação.