Embora a PaaS e a computação sem servidor não envolvam gerenciamento de back-end do desenvolvedor, vários fatores separam os dois modelos, incluindo escalabilidade, preço e capacidade de implantação na borda de rede.
Após ler este artigo, você será capaz de:
Copiar o link do artigo
Como as arquiteturas de back-end da computação sem servidor e da plataforma como serviço (PaaS) mantêm todo o back-end invisível para os desenvolvedores, elas são um tanto semelhantes. No entanto, várias grandes diferenças separam os dois tipos de arquitetura e a maioria dos casos de uso funcionará melhor com uma ou outra, mas não com ambas. As principais divergências entre a PaaS e a computação sem servidor são escalabilidade, preços, tempo de inicialização, ferramentas e a capacidade de implantar na borda de rede.
Os aplicativos sem servidor são ampliados instantaneamente, automaticamente e sob demanda, sem nenhuma configuração extra do desenvolvedor ou do fornecedor. Eles são capazes de ampliar por definição. Em contraste, embora os desenvolvedores possam programar aplicativos hospedados em PaaS para ampliar ou reduzir de acordo com a demanda do usuário, esse não é um recurso intrínseco da PaaS e os desenvolvedores terão que fazer uma certa quantidade de previsões para ampliar adequadamente.
A computação sem servidor pode ser comparada a tirar água de uma torneira, com a água representando o poder da computação. A torneira de uma casa moderna pode ser aberta a qualquer momento e pode produzir a quantidade de água necessária. A PaaS seria como usar um bebedouro e um serviço de entrega de garrafas de água. Ainda é possível obter toda a água potável necessária, mas não é tão simples como abrir a torneira; o consumidor tem que pedir ao fornecedor para entregar mais se a demanda aumentar. Em ambos os cenários, outra pessoa está lidando com o "back-end" – purificando a água, trazendo-a para o prédio, etc. – mas apenas a água da torneira pode ser acionada com precisão, sob demanda e em tempo real.
Uma arquitetura sem servidor é capaz de ser ampliada rapidamente, processando novas instâncias das funções do aplicativo conforme são solicitadas. Ela também reduz rapidamente fechando as funções quando não são mais necessárias ou depois de executadas por um determinado período de tempo. Na verdade, um aplicativo web sem servidor é capaz de escalar totalmente para nenhuma atividade e, em seguida, iniciar novamente em resposta a um evento em segundos ou milissegundos. Os aplicativos construídos em PaaS não são capazes de ampliar ou reduzir tão rapidamente ou em tal grau.
Para continuar a metáfora da água, os consumidores que usam água da torneira pagam exatamente pela mesma quantidade de água que usam. Da mesma forma, o faturamento da computação sem servidor é extremamente preciso e os desenvolvedores pagam apenas pelo que usam. Alguns fornecedores de computação sem servidor cobram dos desenvolvedores apenas o tempo exato de execução de suas funções, até frações de segundo, para cada instância individual de cada função. Outros provedores cobram pelo número de solicitações.
Os consumidores que usam um bebedouro e têm garrafões de água entregues também pagam apenas pelo que usam, mas pagam pelo garrafão, não pelos litros do líquido. Da mesma forma, alguns vendedores de PaaS cobram dos desenvolvedores apenas pelo que seu aplicativo usa. No entanto, o faturamento não é tão preciso quanto no caso da computação sem servidor. Outros fornecedores de PaaS cobram uma taxa mensal fixa por seus serviços. Os desenvolvedores geralmente são capazes de personalizar quanto poder de computação estão pagando. No entanto, isso é decidido com antecedência e não responde a aumentos e diminuições no uso em tempo real.
Essa diferença não significa necessariamente que a arquitetura sem servidor é sempre mais acessível. Assim como rapidamente se torna proibitivamente caro ter uma torneira de água constantemente funcionando, os aplicativos web que têm um fluxo grande e constante de uso, que não flutua muito, podem se tornar caros para executar usando computação sem servidor.
Conforme descrito acima, os aplicativos sem servidor podem ficar ativos quase instantaneamente, assim que um evento acionar uma função do aplicativo. Os aplicativos construídos na PaaS podem ser instalados e executados rapidamente, mas não são tão leves quanto os aplicativos sem servidor e demoram mais para serem instalados e executados. Para evitar a latência da perspectiva do usuário, pelo menos algumas funções dos aplicativos em PaaS precisam estar em execução na maior parte do tempo ou o tempo todo.
De modo geral, os fornecedores de PaaS fornecerão aos desenvolvedores mais ferramentas para construir e gerenciar seus aplicativos, incluindo ferramentas para teste e depuração. Como os aplicativos sem servidor não são executados em máquinas específicas, virtuais ou não, e as funções sem servidor devem ser executadas da mesma forma, os fornecedores de computação sem servidor podem fornecer algumas ferramentas, mas não fornecem um ambiente completo para construir e testar o aplicativo.
O código sem servidor não é executado em servidores específicos e pode ser executado em qualquer parte da internet, o que torna possível implantar aplicativos sem servidor muito perto dos usuários finais na borda de rede, reduzindo enormemente a latência. Os service workers e o Cloudflare Workers são exemplos de funções sem servidor executadas perto do usuário (consulte Como funciona o JavaScript sem servidor?).
Do ponto de vista do desenvolvedor, não há servidores na PaaS. No entanto, a PaaS ainda é diferente da computação sem servidor em termos de onde o código é hospedado. Os fornecedores de PaaS aproveitarão a oferta de IaaS (infraestrutura como serviço) de outro fornecedor ou terão seus próprios data centers físicos. O resultado é que os aplicativos criados em uma plataforma em nuvem provavelmente serão executados apenas em certas máquinas designadas, evitando que os desenvolvedores otimizem a performance de seus aplicativos executando o código na borda.