por admin

05 out 2017

Vantagens e desvantagens do Serverless na cloud computing

Aos poucos a funcionalidade do Serverless nos serviços de cloud computing tem ganhado mais espaço. O fato de permitir com que realmente se pague apenas pela quantidade de uso da nuvem é uma das grandes vantagens dessa solução. Mas não a única.

Como funciona a arquitetura Serverless

De forma técnica, Serverless são aplicações onde a lógica que está armazenada no servidor segue sendo escrita pelo desenvolvedor da aplicação, mas ela somente é executada quando há algum evento que a chame. Essa é grande diferença quando comparada às arquiteturas tradicionais.

Outra vantagem do Serverless é que a sua arquitetura é totalmente gerenciada por terceiros, o que torna possível o conceito correto de “nuvem como nuvem”. Você paga apenas por aquilo que irá consumir. Ou seja, mesmo a aplicação estando “dormente” até o momento em que for despertada por um evento, ela vai estar pronta para te ouvir e executar a chamada.

Com o crescimento do Serverless, criou-se uma definição para esse tipo de serviço, que agora é chamado de “Functions as a Service”, ou FaaS, seguindo a tendência das denominações comuns para cloud computing.

Mas por que devo considerar o uso de Serverless?

As vantagens de usar a arquitetura de Serverless como serviço são diversas. O importante é ter claro quais são os pontos em que os benefícios desse serviço farão diferença para o seu negócio.

> Redução de custo

Primeiro dos recursos humanos, ao poupar o tempo em que os profissionais estariam preocupados com a arquitetura que hospedaria a aplicação. Mas também no consumo do provedor Cloud escolhido, uma vez que você passará a pagar por evento e não mais por tempo de execução da máquina.

> Tempo para o mercado

Em um mundo que exige soluções rápidas, a adoção de FaaS irá permitir que o time de desenvolvedores tenha maior dinamismo e facilidade na realização dos testes com a ferramenta. Com o FaaS a única preocupação dele será com o código e não mais com a estrutura por trás dele.

> Conceito “limpo”

Houve um crescimento assustador nas últimas décadas em se tratando no número e tamanho dos data centers espalhados pelo mundo. Já parou para pensar no quanto de energia elétrica, espaço físico e outros recursos necessários para sustentá-los estão sendo consumidos diariamente? Tudo isso para entregar, em média, de 5 a 15 por cento do máximo da sua capacidade ao longo dos anos, segundo a Forbes.

Esse é um gasto extremamente ineficiente, que gera enorme impacto quando o assunto é otimização e respeito aos recursos naturais. Uma aplicação serverless usa ao máximo o conceito Lean, focando no aproveitamento dos recursos apenas conforme a necessidade.

> Linguagens suportadas

Dentro de um time com vários desenvolvedores, pode-se estimular a criação de times secundários que sejam auto gerenciáveis, onde cada um deles poderá trabalhar com a linguagem que se sentir mais confortável. Afinal, uma aplicação Serverless suporta até 4 linguagens diferentes, sendo elas Java, Node.Js, Python e C#.

> Escala

Com uma aplicação Serverless, você não precisará mais se preocupar com escala. Esta é uma prática em que o aumento de recursos de acordo com a demanda acontece por conta própria, sem a necessidade dos desenvolvedores se preocuparem com qualquer adaptação.

E problemas? Existe alguma desvantagem?

Estamos em processo de amadurecimento da oferta Serverless nos provedores e, como todo serviço novo, é claro que há uma série de brechas em que podem melhorar a oferta. Aqui estão algumas delas para que não haja surpresa em uma futura implantação de solução FaaS.

>  Monitoramento

Como existem poucos fornecedores, não temos muitas ferramentas para monitoramento de aplicações construídas dentro dos conceitos de FaaS e ficamos reféns daquilo que é oferecido pelos provedores como padrão. Mas espera-se que com o surgimento de APIs, a oferta de serviços vindos de terceiros virá para suprir essa deficiência.

> Latência

Especificamente para o AWS Lambda, temos um problema com a latência na hora de iniciar a execução de uma função FaaS. Esse é um caso que acontece principalmente em funções JVM, onde elas podem levar até 10 segundos para iniciarem.

> Provedores

Como ainda não existe um padrão de oferta para o serviço Serverless, é muito provável que o provedor que for escolhido para hospedar a sua função tenha um formato de implantação totalmente diferente de qualquer outro. Isso quer dizer que se você começar num provedor e quiser mudar para outro, terá de mudar o código para que seja aplicado em uma interface diferente. Assim, também será para a arquitetura da aplicação, a ferramenta de monitoramento e a de deploy também.

Ou seja, o estudo dos provedores que ofertam Serverless é fundamental para que o serviço tenha vida longa e, principalmente, evite retrabalhos.

> Versionamento e Deploy

Para cada função FaaS que você tiver, terá a necessidade de realizar o deploy inteiro dela separadamente. Ou seja, infelizmente você não poderá fazer o envio automático das atualizações de forma dinâmica. Ao invés disso, vai ter de parar a aplicação em blocos de funções para poder realizar qualquer novo upgrade. Agora já imaginou realizar esse tipo de parada numa aplicação que não pode ter downtime?

Então esse deve ser um item a ser levado em consideração, já que ocasionalmente haverá a necessidade de parada da aplicação para que sejam feitas atualizações dos códigos/blocos de funções.

Mas então vale mesmo a pena usar Serverless?

É importante entender que cada negócio, função ou aplicação dentro das empresas, já tem um modelo próprio estipulado e isso acarreta numa série de decisões e riscos que precisam ser calculados. Então, talvez a melhor maneira de dar os primeiros passos, seja a aplicação gradual do conceito através de pequenos testes.

Assim, com uma equipe dedicada a entender as funcionalidades, os riscos se tornam menores e o aprendizado pode ser levado aos poucos para a aplicação em serviços que estejam em produção.

Mas para quem tem necessidade do processo andar mais rápido, o indicado é que busque a contratação de uma consultoria que já tenha experiência no desenvolvimento de aplicações Serverless. Com a contratação de uma empresa ou consultor externo, a curva de aprendizado será drasticamente encurtada e os riscos reduzidos.

Mas a tendência não deve mudar e a arquitetura Serverless no serviço de cloud computing só tende a evoluir. E você está preparado para a inovação? Lembre-se que inovar com segurança é também investir para se tornar referência no mercado.

serverless

 

Categorias



Acompanhe nossas novidades nas redes sociais!