LFCA: Aprenda Computação Sem Servidor, Benefícios e Armadilhas – Parte 15

A tecnologia Serverless tem gerado muito alvoroço na comunidade de tecnologia, evocando muita curiosidade e recebendo algum backlash em certa medida. É uma tecnologia que começou com o lançamento do AWS Lambda em 2014, que logo foi seguido pelo Azure Functions mais tarde em 2016.

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

No modelo tradicional de TI, você estava encarregado basicamente de tudo. Como proprietário de um negócio, você teria que orçar para servidores e outros equipamentos de rede, como roteadores e switches, e racks para montar os servidores.

Você também teria que se preocupar em obter um data center limpo e seguro e garantir que ele possa fornecer refrigeração suficiente e energia e serviço de internet redundantes. Uma vez configurado, você então teria que instalar o sistema operacional e posteriormente implantar suas aplicações. Além disso, seria necessário configurar sistemas de monitoramento e implementar recursos de segurança como firewalls e sistemas de prevenção e detecção de intrusão.Como você pode ter imaginado, isso é intensivo em recursos, caro e desgastante.

Como você deve ter adivinhado, isso é intensivo em recursos, caro e desgastante.

Então nuvem computação entrou no mundo da tecnologia, revolucionando completamente a maneira como implantamos e gerenciamos servidores e aplicativos. Marcou uma nova era em que os desenvolvedores rapidamente criariam servidores e bancos de dados na nuvem e começariam a trabalhar em seus aplicativos. Sem preocupações 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 com ela a conveniência e as economias de escala na implantação de recursos de TI, algumas empresas adquiririam unidades de espaço em servidor e recursos, como RAM e CPU, em antecipação a um aumento na rede tráfego ou atividade que pode sobrecarregar aplicativos.

Embora seja um movimento prudente, o resultado não intencional é a subutilização de recursos de servidor que geralmente são desperdiçados. Mesmo com escalonamento automático, ainda assim um pico inesperado e repentino pode ser caro. Além disso, você ainda precisaria realizar outras tarefas, como configurar balanceadores de carga, que também provavelmente aumentariam os custos operacionais.

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

O que é Computação Sem Servidor

Computação sem servidor é um modelo de nuvem que fornece serviços de backend aos usuários com base em pagamento conforme o uso. Em termos simples, o provedor de nuvem aloca recursos de computação e cobra apenas pelo tempo em que as aplicações estão em execução. Isso equivale a mudar de um plano mensal para pagamento de TV a cabo para pagar apenas quando você está assistindo aos seus programas de TV.

O termo ‘sem servidor’ pode ser um pouco enganador. Existem servidores envolvidos? Com certeza, no entanto, neste caso, os servidores e a infraestrutura subjacente são totalmente tratados e mantidos pelo provedor de nuvem. Como tal, você não precisa se preocupar com eles. Como desenvolvedor, seu foco é puramente desenvolver suas aplicações e garantir que elas estejam funcionando conforme sua satisfação.

Ao fazer isso, a computação sem servidor elimina a dor de cabeça de gerenciar servidores e economiza seu precioso tempo para trabalhar em suas aplicações.

Serviços de Backend Fornecidos pela Computação sem Servidor

A perfect example of serverless backend service is Function-as-a-Service (FaaS) platform. FaaS is a cloud computing model that enables developers to develop, execute, and manage code in response to events without the complexity of building and managing an underlying infrastructure usually associated with the deployment of microservices.

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 citar alguns. FaaS está focado exclusivamente em um modelo de computação orientado a eventos, onde as aplicações são executadas sob demanda, ou seja, em resposta a uma solicitação.

Exemplos de modelos de computação FaaS incluem:

  • AWS Lambda da AWS
  • Azure Functions da Microsoft
  • Cloud Functions do Google
  • Cloudflare Workers da Cloudflare

Em resumo, vimos que com o FaaS, você só paga pelo tempo que sua aplicação está em execução e o provedor de nuvem praticamente faz tudo para você, incluindo o gerenciamento da infraestrutura subjacente. Gerenciar servidores é a menor de suas preocupações.

Benefícios da Computação sem Servidor

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

1. Sem Gerenciamento de Servidor

Este é talvez um dos maiores benefícios de adotar o modelo de computação sem servidor. Embora o termo ‘sem servidor’ possa ser mal interpretado para implicar que não há servidores envolvidos, o fato é que as aplicações ainda rodam em servidores. O cerne da questão é que o gerenciamento de servidores é inteiramente responsabilidade do fornecedor de nuvem, o que lhe proporciona mais tempo para trabalhar em suas aplicações.

2. Escalonamento Fácil e Eficiente

A infraestrutura sem servidor oferece escalonamento automático de aplicações em resposta a um aumento no uso, demanda ou crescimento da base de usuários. Se a aplicação estiver sendo executada em várias instâncias, os servidores iniciarão e pararão quando necessário. Em uma configuração tradicional de computação em nuvem, um pico de tráfego ou atividade pode facilmente sobrecarregar os recursos do servidor, levando a inconsistências na execução da aplicação.

3. Disponibilidade Incorporada

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

4. Redução de Custos Operacionais

A computação sem servidor aloca recursos com base no uso. Sua aplicação só exigirá funções de backend quando o código for executado e dimensionará automaticamente com base na carga de trabalho.

Isso proporciona economia de escala, pois você é cobrado apenas pelo tempo em que as aplicações estão em execução. No modelo de servidor tradicional, você tem que pagar pelo espaço do servidor, bancos de dados, entre outros recursos, independentemente de a aplicação estar em execução ou ociosa.

5. Implantações mais Rápidas de Aplicações

A arquitetura sem servidor elimina a necessidade de configuração de backend e upload manual de código para servidores, como na configuração tradicional. É fácil para os desenvolvedores fazerem upload de pequenos trechos de código de forma eficiente e lançar um ótimo produto.

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

Desvantagens da Computação sem Servidor

Existem desvantagens associadas ao modelo sem servidor? Vamos descobrir.

1. Segurança

Aplicações mal configuradas representam um dos maiores riscos associados à computação sem servidor. Se você optar pelo AWS, por exemplo, é prudente configurar permissões diferentes para sua aplicação, o que, por sua vez, determinará como elas interagirão 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. Bloqueio de Fornecedor

Optar por um modelo sem servidor pode apresentar desafios ao migrar para outro fornecedor. Isso ocorre principalmente porque cada fornecedor possui suas próprias características e fluxos de trabalho que variam ligeiramente dos demais.

3. Dificuldade em Testar e Depurar Aplicações

Outro desafio apresentado pelo modelo sem servidor é a dificuldade em reproduzir um ambiente sem servidor para testar e monitorar o desempenho do código antes de ir ao ar. Isso ocorre principalmente porque os desenvolvedores não têm acesso aos serviços de backend, que são uma prerrogativa do provedor de nuvem.

4. Dificuldade em Monitorar Aplicações Sem Servidor

Monitorar aplicações sem servidor é uma tarefa complexa pelas mesmas razões pelas quais a depuração e teste são difíceis. Isso foi agravado pela indisponibilidade de ferramentas com integração aos serviços de backend, como AWS Lamba.

Conclusão

A computação sem servidor continua a ganhar tração e adesão entre empresas e desenvolvedores por 3 razões principais. Uma delas é a acessibilidade, o que implica custos operacionais reduzidos. Em segundo lugar, a computação sem servidor facilita o dimensionamento automático e rápido, e, finalmente, os desenvolvedores não precisam se preocupar com a infraestrutura subjacente, que é tratada pelo fornecedor.

Enquanto isso, os provedores de nuvem estão trabalhando incansavelmente para resolver algumas das armadilhas associadas à computação sem servidor, como a dificuldade em depurar e monitorar aplicativos.

Source:
https://www.tecmint.com/serverless-computing/