Através da arquitetura serverless o provedor de cloud se torna responsável por provisionar, gerenciar e escalar os servidores nos quais as aplicações serão executadas.
É muito normal em empresas que desenvolvem e disponibilizam aplicações na nuvem, acabarem assumindo a responsabilidade de cuidar e gerenciar os recursos desses servidores. No entanto, essa abordagem de sempre alocar um servidor na nuvem, exige alguns trabalhos e cuidados adicionais, como:
- Toda a manutenção do servidor;
- A segurança do servidor;
- Mesmo que não exista nenhum usuário acessando a aplicação, o valor a pagar do servidor será o mesmo que foi alocado;
- Caso a demanda aumente ou diminua consideravelmente, é necessário aumentar ou diminuir os recursos de hardware do servidor.
O conceito de serverless vem justamente para resolver esses pontos, onde o foco fica praticamente todo na aplicação e o gerenciamento da infraestrutura fica a cargo do provedor de nuvem.
Apesar desse conceito existir há alguns anos, é muito comum encontrar empresas que ainda não aplicam serverless na prática, e entre os principais motivos para isto estão:
- Realmente não conhecem o conceito de serverless;
- Conhecem o conceito, mas se habituaram a desenvolver da mesma forma que acabaram deixando o serverless de lado;
Para esclarecer dúvidas sobre o conceito e uso de serverless, preparamos um conteúdo dividido em quatro tópicos. Confira:
1 - O que é serverless
Serverless é um tipo de computação onde o provedor de cloud é o responsável por provisionar, gerenciar e escalar os servidores nos quais as aplicações serão executadas. Dessa forma, as responsabilidades de infraestrutura que cairiam sobre quem disponibiliza uma aplicação, passam a ser do provedor de cloud.
Outra diferença importante de um servidor alocado para a arquitetura serverless, é a precificação. Na alocação de servidor a cobrança é feita por hora executada, enquanto na arquitetura serverless a cobrança é por execução, ou seja, se não tiver ninguém usando a aplicação você não será cobrado por isso.
A arquitetura serverless também pode ser referenciada por outro nome “Function as a Service” (Funções como Serviço) ou simplesmente “FaaS”. Esse nome acaba sendo utilizado como serverless pelo fato de os principais provedores de cloud o tratarem como uma função. O principal motivo para isso, é que quanto mais rápido e menos recurso de máquina a função utilizar, mais barato será a cobrança para cada execução.
2 - Maiores provedores de Funções como Serviço (FaaS) do mercado
Atualmente, os maiores provedores de “FaaS” do mercado são:
- AWS: AWS Lambda;
- Microsoft Azure: Azure Functions;
- Google Cloud: Cloud Functions.
Neste momento você deve estar pensando em migrar todo a sua aplicação para esse tipo de arquitetura, certo? Entretanto há um ponto importante que precisa ser levado em consideração. Como essas funções são executadas sob demanda, provavelmente a sua aplicação passará por um delay inicial na primeira execução. Esse delay é chamado de Cold Start. Após a primeira execução, a função fica por algum tempo em uma espécie de cache, e naturalmente, as próximas execuções serão mais rápidas. Esse estado também é conhecido como Warm Start.
Com esse complicador, fica um pouco mais complexo definir quando utilizar ou não a arquitetura serverless. No tópico seguinte, preparamos algumas dicas de por onde você pode começar!
3 - Como começar a utilizar serverless
Até aqui você já conseguiu criar uma ideia de como os provedores de cloud disponibilizam o seu serviço de “FaaS”, e deve estar se perguntando como pode começar a utilizar essa arquitetura na sua aplicação. Confira nossas duas sugestões:
- Utilize para automatizar eventos dentro da sua cloud;
- Migre suas rotinas assíncronas para serverless.
Toda vez que você precisar plugar algum evento dentro do seu provedor de nuvem, pense em utilizar serverless. Dessa forma, você terá mais experiência com esse tipo de arquitetura e vai gerar insights para utilizar cada vez mais serverless dentro da sua aplicação.
Confira alguns exemplos de gatilhos que podem ser adicionados dentro da sua nuvem: requisições HTTP, serviços de filas, alertas de monitoramento, upload de arquivos, eventos agendados, entre outros.
4 – Por que migrar as rotinas assíncronas para serverless
A intenção de migrar as rotinas assíncronas para serverless, surge justamente para que você não tenha preocupação com o Cold Start. Afinal, se uma rotina assíncrona levar alguns segundos a mais para ser executada, o usuário final não vai perceber a diferença. Considerando esse cenário, uma boa prática para execução de rotinas assíncronas é ter uma fila para gerir as execuções das suas funções no seu servidor cloud, gerando mais flexibilidade para você controlar como essas funções serão executadas.
Agora você já sabe mais sobre serverless e os benefícios que ele pode trazer para sua empresa. Caso você ainda tenha alguma dúvida, ou deseja saber mais sobre como aplicar e economizar com a sua cloud aplicando a arquitetura serverless, entre em contato conosco! Nós somos especialistas nesta área e temos diversas soluções a oferecer!