Sem servidor a tecnologia gerou muito entusiasmo na comunidade tecnológica, despertando muita curiosidade e recebendo algumas reações adversas. É uma tecnologia que começou com o lançamento de AWS Lamba em 2014, que logo foi seguido por Azure Functions no final de 2016.
Google mais tarde seguiu o exemplo com o lançamento de Nuvem do Google funciona 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 de TI tradicional, 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 proteger os servidores.
Você também teria que se preocupar em obter um data center limpo e seguro e garantir que ele possa fornecer resfriamento e energia redundante e serviço de Internet suficientes. Uma vez configurado, você terá que instalar o sistema operacional e, posteriormente, implantar seus aplicativos. Além disso, você seria obrigado a
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ê deve ter adivinhado, isso consome muitos recursos, é caro e extenuante.
Então computação em nuvem entrou no mundo da tecnologia, revolucionando completamente a maneira como implantamos e gerenciamos servidores e aplicativos. Isso anunciou uma nova era em que os desenvolvedores prontamente montariam servidores em nuvem e bancos de dados em um piscar de olhos 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 conveniência e economia de escala na implantação de recursos de TI, algumas empresas comprariam em excesso unidades de espaço do servidor e recursos, como RAM e CPU, em antecipação a um pico no tráfego de rede ou atividade que pode sobrecarregar formulários.
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, ainda assim, um pico inesperado e repentino pode custar caro. Além disso, você ainda precisa realizar outras tarefas, como configurar balanceadores de carga, que também podem aumentar os custos operacionais.
É evidente que, apesar de fazer uma 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 Computação sem servidor entra.
Computação sem servidor é um modelo de nuvem que fornece serviços de back-end aos usuários com pagamento conforme o uso. Em termos simples, o provedor de nuvem aloca recursos de computação e cobra apenas pelo tempo em que os aplicativos estão em execução. Isso equivale a mudar de um plano mensal de pagamento a cabo para pagar apenas quando você estiver assistindo seus programas de TV.
O termo 'Sem servidor'Pode ser um pouco enganador. Existem servidores envolvidos? Claro, entretanto, neste caso, os servidores e a infraestrutura subjacente são puramente manipulados 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 estejam funcionando para sua satisfação.
Ao fazer isso, a computação sem servidor tira a dor de cabeça de gerenciar servidores e economiza um tempo precioso para trabalhar em seus aplicativos.
Um exemplo perfeito de serviço de back-end sem servidor é Função como serviço (FaaS) plataforma. 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 de 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 é 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 FaaS modelos de computação incluem:
Em resumo, vimos isso com FaaS, você paga apenas pelo tempo que seu aplicativo está em execução e o provedor de nuvem faz praticamente tudo por você, incluindo lidar com a infraestrutura subjacente. Gerenciar servidores é a menor das suas preocupações.
Agora, você 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.
Esta é talvez uma das maiores vantagens de adotar o modelo de computação sem servidor. Embora o termo ‘sem servidor'Pode ser mal interpretado para implicar que não há servidores envolvidos, o fato é que os aplicativos ainda são executados em servidores. O ponto crucial da questão é que o gerenciamento do servidor é inteiramente da responsabilidade do fornecedor da nuvem, e isso concede a você mais tempo para trabalhar em seus aplicativos.
A infraestrutura sem servidor fornece escalonamento automático de aplicativos em resposta a um aumento no uso, demanda ou crescimento da base de usuários. Se o aplicativo estiver sendo executado em várias instâncias, os servidores serão iniciados e interrompidos quando necessário. Em uma configuração tradicional de computação em nuvem, um pico no tráfego ou atividade pode facilmente sobrecarregar os recursos do servidor, levando a inconsistências com o aplicativo que está sendo executado.
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 ativos e em execução quando necessário.
A computação sem servidor aloca recursos com base no pagamento conforme o uso. Seu aplicativo só exigirá funções de back-end quando o código for executado e será escalonado automaticamente com base na quantidade de carga de trabalho.
Isso oferece economia de escala, pois você só é cobrado pelo tempo em que os aplicativos 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 o aplicativo estar em execução ou ocioso.
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 carregar pequenas pilhas de código de maneira eficiente e lançar um ótimo produto.
A facilidade de implantação também permite aos desenvolvedores corrigir e atualizar facilmente certos recursos do código sem alterar o aplicativo inteiro.
Existem desvantagens associadas ao modelo sem servidor? Vamos descobrir.
Aplicativos mal configurados representam um dos maiores riscos associados à computação sem servidor. Se você optar por AWS, por exemplo, é prudente configurar permissões diferentes para seu aplicativo que, por sua vez, determinará como eles 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.
A opção 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.
Outro desafio apresentado pelo modelo sem servidor é a dificuldade de 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 acessibilidade a serviços de back-end que são uma preservação do provedor de nuvem.
Monitorar aplicativos sem servidor é uma tarefa complexa pelos mesmos motivos que depurar e testar é uma tarefa árdua. Isso foi agravado pela indisponibilidade de ferramentas com integração para serviços de back-end, como AWS Lamba.
A computação sem servidor continua ganhando força e aceitação entre empresas e desenvolvedores por três motivos principais. Um é a acessibilidade, o que implica custos operacionais reduzidos. Em segundo lugar, a computação sem servidor facilita o escalonamento automático e rápido e, finalmente, os desenvolvedores não precisam se preocupar com a infraestrutura subjacente que é gerenciada pelo fornecedor.
Enquanto isso, os provedores de nuvem estão trabalhando sem parar para resolver algumas das armadilhas associadas à computação sem servidor, como a dificuldade de depurar e monitorar aplicativos.