O que é computação serverless?

O que é Serverless?

Serverless é um termo que caiu no hype da comunidade nos últimos anos, mas você sabe qual é o significado do termo? Arquitetura Serverless ou computação serverless numa tradução completa é computação sem um servidor.

Vídeo de introdução sobre serverless

Como assim Fellyph? Como a minha aplicação irá rodar sem um servidor? Na realidade, essa infra-estrutura é abstraída para os desenvolvedores. Apenas rodamos o nosso código na “nuvem”. Neste caso você não contrata um servidor, mas contrata a execução do seu código. Assim, em muitos casos reduzindo bastante o custo de ter uma aplicação online que tem tarefas agendadas, por exemplo.

O que é computação “sem servidor” ou serverless?

A computação serverless é um método de fornecer serviços de back-end conforme o uso. Um provedor sem servidor dedicado permite que os usuários escrevam e implantem código sem o incômodo de se preocupar com a infraestrutura subjacente.

Uma empresa que obtém serviços de back-end de um fornecedor serverless é cobrada com base na sua computação e não precisa reservar e pagar por uma quantidade fixa de largura de banda ou número de servidores, pois o serviço é dimensionável automaticamente. Observe que, apesar do nome serverless, os servidores físicos ainda são usados, mas os desenvolvedores não precisam estar cientes deles.

Nos primórdios da web, qualquer pessoa que quisesse construir uma aplicação web tinha que possuir o hardware físico, em outras palavras, um computador na sua casa rodando uma aplicação web. Depois tivemos o crescimento de serviços de hospedagem de sites onde tinham uma estrutura dedicada para sites.

Em alguns casos, empresas contratavam unidades fixas de espaço de servidor geralmente compram em excesso para garantir que um pico de tráfego ou atividade não exceda os seus limites mensais e interrompa os seus aplicativos. Isso significa que grande parte do espaço do servidor pelo qual é pago pode ser desperdiçado.

Depois veio a computação em nuvem, onde números fixos de servidores ou quantidades de espaço de servidor podiam ser alugados remotamente, com datacenter totalmente automatizados. A Computação em nuvem trouxe flexibilidade de escalar servidores, mas com essa flexibilidade o uso dos recursos não era 100% eficiente. Era precisa um tempo de validação para avaliar se precisamos de mais ou menos servidores.

Custo beneficio de uma estrutura serverless
Custo beneficio de uma estrutura serverless

A computação serverless permite que os desenvolvedores comprem serviços de back-end numa base flexível de “pagamento conforme o uso”, o que significa que os desenvolvedores só precisam pagar pelos serviços que usam. Isso é como mudar de um plano de dados de celular com limite fixo mensal, para um que cobra apenas por cada byte de dados que realmente é usado.

O termo “serverless” é um pouco enganoso, pois ainda existem servidores fornecendo esses serviços de back-end, mas todas as preocupações com o espaço do servidor e a infraestrutura são tratadas pelo fornecedor. Serverless significa que os desenvolvedores podem fazer o seu trabalho sem ter que se preocupar com servidores.

O que são serviços de back-end? Qual é a diferença entre front-end e back-end?

O desenvolvimento de aplicativos é geralmente dividido em dois domínios: o front-end e o back-end. O frontend é a parte do aplicativo que os usuários veem e com a qual interagem, como o layout visual. O backend é a parte que o usuário não vê; isso inclui o servidor onde os arquivos do aplicativo residem e o banco de dados onde os dados do usuário e a lógica de negócios são mantidos.

Por exemplo, imaginemos um site que vende ingressos para shows. Quando um usuário digita um endereço de site na janela do navegador, o navegador envia uma solicitação ao servidor de back-end, que responde com os dados do site. O usuário verá o frontend do site, que pode incluir conteúdo como texto, imagens e campos de formulário para o usuário preencher.

O usuário pode então interagir com um dos campos do formulário no front-end para procurar o seu concerto musical favorito. Quando o usuário clica em ‘enviar’, isso acionará outra solicitação para o back-end. O código de back-end verifica o seu banco de dados para ver se existe um artista com esse nome e, em caso afirmativo, quando eles tocarão em seguida e quantos ingressos estão disponíveis.

O backend então passará esses dados de volta para o front-end, e o front-end exibirá os resultados de uma maneira que faça sentido para o usuário. Da mesma forma, quando o usuário cria uma conta e insere informações financeiras para comprar os ingressos, ocorrerá outra comunicação de ida e volta entre o front-end e o back-end.

Que tipo de serviços de back-end a computação serveless pode fornecer?

A maioria dos provedores serveless oferece serviços de banco de dados e armazenamento para seus clientes, e muitos também têm plataformas Function-as-a-Service (FaaS), como Cloudflare Workers. O FaaS permite que os desenvolvedores executem pequenos pedaços de código na borda da rede. Com o FaaS, os desenvolvedores podem construir uma arquitetura modular, tornando uma base de código mais escalável sem ter que gastar recursos na manutenção do back-end subjacente.

Quais são as vantagens da computação serverless?

  • Custos mais baixos – A computação sem servidor geralmente é muito econômica, pois os provedores tradicionais de serviços de back-end em nuvem (alocação de servidor) geralmente fazem com que o usuário pague por espaço não utilizado ou tempo de CPU ocioso.
  • Escalabilidade simplificada – Os desenvolvedores que usam arquitetura sem servidor não precisam se preocupar com políticas para escalar seu código. O fornecedor sem servidor lida com todo o dimensionamento sob demanda.
  • Código de back-end simplificado – Com o FaaS, os desenvolvedores podem criar funções simples que executam de forma independente uma única finalidade, como fazer uma chamada de API.
  • Resposta mais rápida – A arquitetura sem servidor pode reduzir significativamente o tempo de lançamento no mercado. Em vez de precisar de um processo de implantação complicado para lançar correções de bugs e novos recursos, os desenvolvedores podem adicionar e modificar o código aos poucos.

Quais sãos as desvantagens da computação serverless?

Como toda tecnologia existem os seus pontos negativos, por conta da sua fragmentação é possível ocorrer problemas no seu debug ou a execução agendada possui uma necessidade previa de teste e simulação de uma ambiente real mais próximo possível da aplicação real.

Como o serverless se compara a outros modelos de back-end em nuvem?


Algumas tecnologias que são geralmente confundidas com computação sem servidor são Backend-as-a-Service e Platform-as-a-Service. Embora compartilhem semelhanças, esses modelos não atendem necessariamente aos requisitos do serverless.

Backend-as-a-service (BaaS) é um modelo de serviço em que um provedor de nuvem oferece serviços de back-end, como armazenamento de dados, para que os desenvolvedores possam se concentrar em escrever código de front-end. Mas enquanto os aplicativos sem servidor são orientados a eventos e executados na borda, os aplicativos BaaS podem não atender a nenhum desses requisitos.

Platform-as-a-Service (PaaS) é um modelo em que os desenvolvedores alugam essencialmente todas as ferramentas necessárias para desenvolver e implantar aplicativos de um provedor de nuvem, incluindo coisas como sistemas operacionais e middleware. No entanto, os aplicativos PaaS não são tão facilmente escaláveis ​​quanto os aplicativos sem servidor. O PaaS também não é executado necessariamente na borda e geralmente apresenta um atraso de inicialização perceptível que não está presente em aplicativos sem servidor.

Infrastructure-as-a-service (IaaS) é um termo genérico para fornecedores de nuvem que hospedam infraestrutura em nome de seus clientes. Os provedores de IaaS podem oferecer funcionalidade sem servidor, mas os termos não são sinônimos. Saiba mais sobre IaaS >>

O que vem a seguir para serverless?

A computação sem servidor continua a evoluir à medida que os provedores sem servidor apresentam soluções para superar algumas das suas desvantagens. Uma dessas desvantagens é a partida a frio.

Normalmente, quando uma função sem servidor específica não é chamada há algum tempo, o provedor desliga a função para economizar energia e evitar o provisionamento excessivo. Na próxima vez que um usuário executar um aplicativo que chame essa função, o provedor sem servidor terá que ligá-lo novamente e começar a hospedar essa função novamente. Esse tempo de inicialização adiciona uma latência significativa, conhecida como ‘inicialização a frio’.

Assim que a função estiver em funcionamento, ela será atendida muito mais rapidamente nas solicitações subsequentes (inicializações a quente), mas se a função não for solicitada novamente por um tempo, a função ficará novamente inativa. Isso significa que o próximo usuário a solicitar essa função experimentará uma inicialização a frio. Até recentemente, as partidas a frio eram consideradas uma troca necessária do uso de funções sem servidor.

O Cloudflare Workers resolveu esse problema ativando funções sem servidor antecipadamente, durante o handshake TLS. Como as funções dos Workers são ativadas na borda num período de tempo muito curto, ainda mais curto do que o tempo necessário para concluir o handshake, o resultado é uma plataforma FaaS com zero cold start. Para começar a trabalhar com Cloudflare Workers, consulte nossa documentação do desenvolvedor.

À medida que mais e mais desvantagens do uso sem servidor são abordadas e a popularidade da computação de borda cresce, podemos esperar ver a arquitetura sem servidor se tornando mais difundida.

Fonte: https://www.cloudflare.com/learning/serverless/what-is-serverless/

Gostou desse post sobre serverless, confira mais conteúdo relacionado:


Publicado

em

por

Tags:

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *