Pesquisa de site

LFCA: Aprenda computação sem servidor, benefícios e armadilhas – Parte 15


A tecnologia sem servidor gerou muito entusiasmo na comunidade de tecnologia, evocando muita curiosidade e recebendo algumas reações adversas, até certo ponto. É uma tecnologia que começou com o lançamento do AWS Lamba em 2014, que foi logo seguido pelo Azure Functions no final de 2016.

Mais tarde, o Google seguiu o exemplo com o lançamento das funções do Google Cloud em julho de 2018. Então, o que é tecnologia sem servidor? Para melhor responder a essa pergunta, vamos voltar à computação tradicional baseada em servidor.

No modelo tradicional de TI, você era responsável por basicamente tudo. Como proprietário de uma empresa, você teria que fazer um orçamento para servidores e outros equipamentos de rede, como roteadores e switches, e racks para guardar os servidores.

Você também teria que se preocupar em obter um data center limpo e seguro e garantir que ele possa fornecer resfriamento suficiente, energia redundante e serviço de Internet. Depois de configurado, você terá que instalar o sistema operacional e, posteriormente, implantar seus aplicativos. Além disso, você deverá configurar sistemas de monitoramento e implementar recursos de segurança, como firewalls, prevenção de invasões e sistemas de detecção.

Como você deve ter adivinhado, isso consome muitos recursos, é caro e desgastante.

Então a computação em nuvem entrou no mundo da tecnologia, revolucionando completamente a forma como implantamos e gerenciamos servidores e aplicativos. Ele anunciou uma nova era em que os desenvolvedores criariam servidores e bancos de dados em nuvem rapidamente e começariam a trabalhar em seus aplicativos. Não se preocupe com problemas associados à computação de TI tradicional, como tempo de inatividade, equipamentos caros e aluguel de datacenters.

Embora a computação em nuvem trouxesse consigo a conveniência e as economias de escala na implantação de recursos de TI, algumas empresas comprariam unidades de espaço de servidor e recursos em excesso, como RAM e CPU, antecipando um aumento no tráfego ou atividade de rede que poderia sobrecarregar os aplicativos.

Embora seja uma medida prudente, o resultado não intencional é a subutilização dos recursos do servidor, que muitas vezes são desperdiçados. Mesmo com o escalonamento automático, um aumento repentino e imprevisto pode custar caro. Além disso, você ainda precisará realizar outras tarefas, como configurar balanceadores de carga, que também provavelmente aumentarão os custos operacionais.

É evidente que, apesar da mudança para a nuvem, alguns gargalos ainda persistem e têm o potencial de aumentar os custos e causar desperdício de recursos. E é aqui que entra a computação sem servidor.

O que é computação sem servidor

A computação sem servidor é um modelo de nuvem que fornece serviços de back-end aos usuários com base no pagamento conforme o uso. Em termos simples, o provedor de nuvem aloca recursos de computação e cobra apenas pelo tempo de execução dos aplicativos. Isso equivale a mudar de um plano mensal de pagamento a cabo para pagar apenas quando estiver assistindo seus programas de TV.

O termo ‘sem servidor’ pode ser um pouco enganador. Existem servidores envolvidos? Claro, porém, neste caso, os servidores e a infraestrutura subjacente são puramente gerenciados e mantidos pelo provedor de nuvem. Como tal, você não precisa se preocupar com eles. Como desenvolvedor, seu foco é puramente desenvolver seus aplicativos e garantir que eles funcionem de acordo com sua satisfação.

Ao fazer isso, a computação sem servidor elimina a dor de cabeça do gerenciamento de servidores e economiza um tempo precioso para trabalhar em seus aplicativos.

Serviços de back-end fornecidos por computação sem servidor

Um exemplo perfeito de serviço de back-end sem servidor é a plataforma Função como serviço (FaaS). FaaS é um modelo de computação em nuvem que permite aos desenvolvedores desenvolver, executar e gerenciar código em resposta a eventos sem a complexidade de construir e gerenciar uma infraestrutura subjacente geralmente associada à implantação de microsserviços.

Faas é uma subcategoria da computação sem servidor com diferenças sutis. A computação sem servidor abrange uma ampla gama de serviços, incluindo computação, banco de dados, armazenamento e API, para mencionar alguns. O FaaS está focado exclusivamente em um modelo de computação orientado a eventos onde os aplicativos são executados sob demanda, ou seja, em resposta a uma solicitação.

Exemplos de modelos de computação FaaS incluem:

  • AWS Lambda da AWS
  • Funções do Azure da Microsoft
  • Funções de nuvem do Google
  • Trabalhadores Cloudflare por Cloudflare

Em resumo, vimos que com o FaaS, você paga apenas pelo tempo de execução do seu aplicativo e o provedor de nuvem faz praticamente tudo por você, incluindo o gerenciamento da infraestrutura subjacente. Gerenciar servidores é a menor das suas preocupações.

Benefícios da computação sem servidor

Agora você já tem uma boa ideia de alguns dos méritos que a computação sem servidor traz para a mesa. Vamos nos aprofundar nas vantagens de adotar a tecnologia.

1. Sem gerenciamento de servidor

Esta é talvez uma das maiores vantagens da adoção do modelo de computação sem servidor. Embora o termo “sem servidor” possa ser mal interpretado, sugerindo que não há servidores envolvidos, o fato é que os aplicativos ainda são executados em servidores. O cerne da questão é que o gerenciamento de servidores é inteiramente da responsabilidade do fornecedor de nuvem, e isso lhe dá mais tempo para trabalhar em seus aplicativos.

2. Dimensionamento fácil e eficiente

A infraestrutura sem servidor fornece escalonamento automático de aplicativos em resposta a um aumento no uso, na demanda ou no crescimento da base de usuários. Se o aplicativo estiver sendo executado em várias instâncias, os servidores serão iniciados e parados quando necessário. Em uma configuração tradicional de computação em nuvem, um pico no tráfego ou na atividade pode facilmente sobrecarregar os recursos do servidor, levando a inconsistências com o aplicativo que está sendo executado.

3. Disponibilidade integrada

Como desenvolvedor, você não precisa construir nenhuma infraestrutura especial para tornar seus aplicativos altamente disponíveis. A computação sem servidor fornece alta disponibilidade integrada para garantir que seus aplicativos estejam funcionando quando necessário.

4. Custos operacionais reduzidos

A computação sem servidor aloca recursos com base no pagamento conforme o uso. Seu aplicativo exigirá apenas funções de back-end quando o código for executado e será dimensionado automaticamente com base na quantidade de carga de trabalho.

Isso proporciona economias de escala, pois você só será cobrado pelo tempo de execução dos aplicativos. No modelo de servidor tradicional, você tem que pagar pelo espaço do servidor, bancos de dados entre outros recursos, independentemente de o aplicativo estar em execução ou ocioso.

5. Implantações mais rápidas de aplicativos

A arquitetura sem servidor elimina a necessidade de configuração de back-end e upload manual de código para servidores, como na configuração tradicional. É fácil para os desenvolvedores fazer upload de pequenas pilhas de código de maneira eficiente e lançar um ótimo produto.

A facilidade de implantação também permite que os desenvolvedores corrijam e atualizem facilmente determinados recursos do código sem alterar o aplicativo inteiro.

Armadilhas da computação sem servidor

Há alguma desvantagem associada ao modelo sem servidor? Vamos descobrir.

1. Segurança

Aplicativos mal configurados representam um dos maiores riscos associados à computação sem servidor. Se você optar pela AWS, por exemplo, é prudente configurar diferentes permissões para sua aplicação que, por sua vez, determinarão como elas irão interagir com outros serviços dentro da AWS. Onde as permissões são vagas, uma função ou serviço pode ter mais permissões do que o necessário, deixando amplo espaço para violações de segurança.

2. Aprisionamento do fornecedor

Optar por um modelo sem servidor pode apresentar desafios ao migrar para outro fornecedor. Isso ocorre principalmente porque cada fornecedor tem seus próprios recursos e fluxos de trabalho que variam ligeiramente dos demais.

3. Dificuldade em testar e depurar aplicativos

Outro desafio colocado pelo modelo serverless é a dificuldade em reproduzir um ambiente serverless para testar e monitorar o desempenho do código antes de entrar no ar. Isso ocorre principalmente porque os desenvolvedores não têm acessibilidade aos serviços de back-end que são uma reserva do provedor de nuvem.

4. Dificuldade em monitorar aplicativos sem servidor

Monitorar aplicativos sem servidor é uma tarefa complexa pelos mesmos motivos que a depuração e o teste são uma tarefa difícil. Isso foi agravado pela indisponibilidade de ferramentas com integração a serviços de back-end, como o AWS Lamba.

Conclusão

A computação sem servidor continua a ganhar força e aceitação entre empresas e desenvolvedores por três motivos principais. Uma delas é a acessibilidade, que implica custos operacionais reduzidos. Em segundo lugar, a computação sem servidor facilita o escalonamento automático e rápido e, por fim, os desenvolvedores não precisam se preocupar com a infraestrutura subjacente que é gerenciada pelo fornecedor.

Enquanto isso, os provedores de nuvem estão trabalhando 24 horas por dia para resolver algumas das armadilhas associadas à computação sem servidor, como a dificuldade de depuração e monitoramento de aplicativos.