Como o Serverless Computing pode ajudar a economizar tempo e dinheiro?

Este modelo de computação sem servidor tem se tornado cada vez mais popular, afinal a solução deixa os developers livres da gestão dos servidores.

Por Josh Fruhlinger

Para facilitar o trabalho dos developers, nas duas últimas décadas têm surgido diversas soluções de TI. Como máquinas virtuais, computação na cloud, containers, entre outras ferramentas que permitem que os profissionais não precisem se preocupar com os equipamentos físicos onde a programação é executada. Nesse sentido, o modelo de computação sem servidor – ou Serveless Computing – temvganho alguma popularidade, o fatcto de ser uma solução que liberta os developers do provisionamento e da gestão dos servidores tem sido o motivo principal da adoção desta solução.

Benefícios e desvantagens do Serverless

São muito claras duas vantagens do Serveless Computing: os developers podem dedicar-se em exclusivo apenas no seu trabalho, e não perderem tempo com questões de infraestrutura; e as empresas pagam apenas pelos recursos usados, dispensando gastos com hardware.

Este último ponto é particularmente benéfico para empresas que lidam com picos. Por exemplo, uma empresa pode ter uma aplicação que fica ocioso a maior parte do tempo, mas em algumas situações deve manipular diversas solicitações de uma só vez. Nesse caso, a abordagem tradicional exigiria o provisionamento de um servidor robusto que pudesse dar conta dos momentos de pico, mas ao mesmo tempo esse servidor seria subutilizado na maior parte do tempo.

Apesar dos benefícios, o Serveless Computing também apresenta desvantagens. A principal delas é que as funções sem servidor são intencionalmente efêmeras, ou inadequadas para tarefas de longo prazo. A maioria dos fornecedores, de acesso web, não permite que o código seja executado por mais de alguns minutos, e quando se ativa uma função, esta não retém os dados executados anteriormente.

Muitas das outras desvantagens, como apontado por Rohit Akiwatkar e Gary Arora, estão relacionados a dependencia dos fornecedores. Embora existam opções de código aberto disponíveis, o mercado sem servidores é dominado pelos grandes fornecedores de cloud comerciais. Isto significa que há dificuldades de mudanças, já que grande parte da computação sem servidor ocorre na infraestrutura do fornecedor.

Fornecedores Serveless: AWS Lambda, Azure Functions e Google Cloud Functions

A era moderna do Serveless Computing começou com o lançamento do AWS Lambda, uma plataforma baseada no serviço de Cloud da Amazon, em 2014. A Microsoft seguiu o caminho com o Azure Functions em 2016. Já o Google Cloud Functions, que estava em teste beta deste 2017, foi lançado em julho de 2018. Os três serviços têm limitações, vantagens e maneiras de funcionamento diferentes. De acordo com especialistas, o AWS Lambda é o mais completo, já que teve mais tempo de aperfeiçoamento.

Serverless stacks

Como em diversas áreas de software, o mundo sem servidor viu a evolução das “stacks”, que reúnem diferentes componentes necessário para a construção de uma aplicação sem servidor. Cada pilha consiste em uma linguagem de programação onde o código será escrito, uma estrutura para o código e um conjunto de gatilhos que a plataforma entenderá e usará para iniciar a execução do código. Embora o desenvolvedor possa misturar e combinar diferentes ofertas específicas em cada uma dessas categorias, há limitações dependendo de qual fornecedor for utilizado.

Estruturas sem servidor

Segundo especialistas, vale a pena insistir na parte estrutural, pois isso definirá como o developer cria a sua aplicação. A Amazon tem sua própria oferta nativa, o SAM, de código aberto, mas há outros disponíveis, como o Serverless, um dos mais populares, e o Apex, que pode ajudar a trazer algumas linguagens que, de outra forma, não estariam disponíveis paraalgusn fornecedores.

Bancos de dados Serveless

Como já mencionado, uma das desvantagens da Serveless Computing é falta de retenção dos dados executados anteriormente. Dessa forma, quaisquer informações que o código precisa devem ser armazenados em outros local.

Alguns desses bancos de dados são chamados de serveless. Isso significa que funcionam de forma semelhante a outras funções sem servidor, com grande parte da sobrecarga de gestão envolvida no provisionamento e a manutenção de um banco de dados  a ser descartada. Assim como nas ofertas de FaaS, o developer paga apenas pelo tempo de computação utilizado e os recursos são ativados conforme as necessidades.

Os três grandes fornecedores serveless oferecem o seus próprios bancos de dados sem servidor: a Amazon tem o Aurora Serverless e o DynamoDB, a Microsoft tem o Azure Cosmos DB e o Google tem o Cloud Firestore.

Serveless Computing e Kubernetes

Os containers ajudam a fornecer energia à tecnologia sem servidor, mas a sobrecarga de gestãov é cuidada pelo fornecedor e, portanto, invisível para o utilizador.

Muitos vêem o Serveless Computing como uma maneira de obter vantagens dos micro serviços em container, sem ter que lidar com sua complexidade. Há alguns especialistas que já falam, inclusive, sobre um mundo pós-container.

Na realidade, containers e Serveless Computing devem coexistir por muitos anos, e as funções sem servidor podem existir na mesma aplicação que os micros serviços. O Kubernetes, plataforma de orquestração de container, também pode gerir a infraestrutura sem servidor. Com esta solução, os developers podem integrar diferentes tipos de serviços em um único cluster.

Serveless offline

Começar a usar a computação sem servidor pode ser intimidador, principalmente porque parece ser necessária a contratação de um fornecedor. Mas é possível executar a solução em hardware local. Por exemplo, o AWS SAM fornece um recurso que permite testar o código Lambda offline. Para quem está a usar a estrutura de aplicações sem servidor, vale a pena checar o serverless-offline, um plugin que permite executar código localmente.

Autores
O seu comentário...

*

Top