Notícias

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

Para facilitar o trabalho dos desenvolvedores, nas duas últimas décadas têm surgido diversas soluções em TI. Máquinas virtuais, computação em nuvem, containers, entre outras ferramentas permitem que os profissionais não precisem se preocupar excessivamente com os equipamentos físicos onde a programação é executada. Nesse sentido, o modelo de computação sem servidor – ou Serveless Computing – tem se tornado cada vez mais popular, afinal, a solução deixa os desenvolvedores livres de provisionamento ou gerenciamento de servidores.

O que é Serveless Computing?

Serveless Computing é um modelo de arquitetura de software capaz de executar a lógica do aplicativo em um ambiente sem processos visíveis. Na computação sem servidor, um provedor de nuvem aloca dinamicamente – e, em seguida, cobra do usuário – apenas os recursos de computação e o armazenamento necessários para a execução do código. Claro que ainda existem servidores envolvidos, mas seu provisionamento e manutenção são de total responsabilidade do provedor.

Como o desenvolvedor Mike Roberts explica, o termo Serveless Computing já foi usado para os chamados Backend as a Service (BaaS), em que um aplicativo móvel se conectaria a um servidor hospedado inteiramente na nuvem. Hoje, no entanto, quando se fala sobre computação sem servidor, ou de arquitetura sem servidor, o significado está relacionado à Função como Serviço (FaaS). Nesse sistema, o provedor cuida de todo o provisionamento de hardware, da máquina virtual e do gerenciamento de containers, e até mesmo de tarefas como o multithreading.

O provedor cobra apenas pelo tempo de computação usado para as execuções, e não taxas mensais fixas para a manutenção de um servidor físico ou virtual. Essas funções podem ser conectadas para criar um pipeline de processamento ou podem servir como componentes de um aplicativo maior, interagindo com outros códigos em execução em containers ou em servidores convencionais.

Benefícios e desvantagens

A partir da descrição, ficam claras duas vantagens do Serveless Computing: os desenvolvedores podem se concentrar apenas no seu trabalho, e não em questões de infraestrutura; e as empresas pagam apenas pelos recursos usados, dispensando gastos com hardware.

Como os especialistas apontam, esse último ponto é particularmente benéfico para empresas que lidam com picos. Por exemplo, a companhia pode ter um aplicativo 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 provedores não permite que o código seja executado por mais de alguns minutos, e quando você ativa uma função, ela não retém os dados executados anteriormente.

Muitas das outras desvantagens, como apontado por Rohit Akiwatkar e Gary Arora, estão relacionados ao aprisionamento de fornecedores. Embora existam opções de código aberto disponíveis, o mercado sem servidores é dominado pelos grandes provedores de nuvem comerciais. Isso 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 nuvem 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 os especialistas, o AWS Lambda é o mais completo, já que teve mais tempo de aperfeiçoamento.

Serverless stacks

Como é o caso em diversas áreas de software, o mundo sem servidor viu a evolução das pilhas, ou stacks, que reúnem diferentes componentes necessário para a construção de um aplicativo 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 os especialistas, vale a pena insistir na parte estrutural, pois isso definirá como o desenvolvedor cria seu aplicativo. 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 para certos provedores.

Bancos de dados Serveless

Como dito anteriormente, 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 eles funcionam de forma semelhante a outras funções sem servidor, com grande parte da sobrecarga de gerenciamento envolvida no provisionamento e manutenção de um banco de dados sendo descartada. Assim como nas ofertas de FaaS, o desenvolvedor paga apenas pelo tempo de computação utilizado e os recursos são ativados conforme as necessidades para atender a demanda.

Os três grandes provedores serveless oferecem 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 gerenciamento é cuidada pelo fornecedor e, portanto, invisível para o usuário.

Muitos enxergam o Serveless Computing como uma maneira de obter vantagens dos microsserviços em container, sem ter que lidar com sua complexidade. Há especialistas que já estão falando, 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 no mesmo aplicativo que os microsserviços. O Kubernetes, plataforma de orquestração de container mais popular, também pode gerenciar a infraestrutura sem servidor. Com a solução, o desenvolvedor pode integrar diferentes tipos de serviços em um único cluster.

Serveless offline

Começar a usar a computação sem servidor pode ser intimidadora, 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á usando a estrutura de aplicativo sem servidor, vale a pena checar o serverless-offline, um plugin que permite executar código localmente.

 

Recent Posts

Novos executivos da semana: Dahua, Rimini Street, Arcserve e mais

O IT Forum traz, semanalmente, os novos executivos e os principais anúncios de contratações, promoções e…

2 dias ago

Sustentabilidade x IA: emissões da Microsoft sobem 30%

A Microsoft está enfrentando críticas após um relatório revelar um aumento alarmante em suas emissões…

2 dias ago

Centroflora integra e monitora ambientes industriais e automatiza manutenções

O Grupo Centroflora é um fabricante de extratos botânicos, óleos essenciais e ativos isolados para…

2 dias ago

8 oportunidades de vagas e cursos em TI

Toda semana, o IT Forum reúne as oportunidades mais promissoras para quem está buscando expandir…

2 dias ago

Fraudes: 58% das empresas dizem estar mais preocupadas no último ano

Um estudo divulgado na segunda-feira (13) pela Serasa Experian mostra que a preocupação com fraudes…

2 dias ago

82% dos ataques via USB podem interromper operações industriais

A Honeywell divulgou essa semana a sexta edição de seu Relatório de Ameaças USB de…

2 dias ago