Custo e eficiência entre iFaaS e FaaS (AWS) na criação de aplicativos sem servidor

Nov 25 2022
A arquitetura sem servidor é um design de sistema poderoso que permite aos desenvolvedores criar e executar código sem gerenciar servidores e sem pagar por serviços de nuvem ociosos. A AWS é um dos maiores provedores de serviços em nuvem, onde você pode criar um sistema robusto sem servidor.

A arquitetura sem servidor é um design de sistema poderoso que permite aos desenvolvedores criar e executar código sem gerenciar servidores e sem pagar por serviços de nuvem ociosos.

A AWS é um dos maiores provedores de serviços em nuvem, onde você pode criar um sistema robusto sem servidor. No entanto, existem três perspectivas abaixo que gostaríamos de abordar as diferenças entre Lolo Code (função como serviço de integração) e AWS (função como serviço) na criação de aplicativos sem servidor.

  • Custo
  • atuação
  • Eficiência

Preços da AWS

A AWS oferece uma abordagem de preço conforme o uso. Em outras palavras, você pagará por quanto usou os recursos da AWS.

Exemplo de preços AWS

Uma API é usada em um aplicativo da Web sem servidor que invoca o Lambda para retornar o conteúdo dinâmico da página da Web. O site recebe 10.000 carregamentos de página por minuto. Cada solicitação de API tem 12 KB e a resposta tem 46 KB.

Isso representará um total de 432 milhões de solicitações por mês.

Custos mensais = US$ 418,8 (US$ 0,97 por milhão) * em custos do Amazon API Gateway (não incluindo Lambda nem DynamoDB)

Preços Lolo Code

O Lolo Code também oferece um modelo de pagamento conforme o uso, mas é mais direto, você paga pela quantidade de eventos que seu aplicativo precisa processar simultaneamente, em vez do total de eventos.

Pode subscrever 1 Aplicação com 1 LCU (ou Réplica) com 256 mb de memória e 0,125 núcleos (CPU) a partir de 9 euros por mês. O nível gratuito inclui dois aplicativos com 1 LCU cada, mas exige que você use o aplicativo uma vez por semana para mantê-lo funcionando. Se você deseja aumentar suas réplicas para um aplicativo de nível gratuito, o preço começa em 9 € cada.

Exemplo de preços Lolo Code

Tomando o mesmo exemplo acima para o API Gateway, fizemos alguns cálculos.

Se o site obtiver 10.000 carregamentos de página por minuto e cada solicitação de API tiver 12 KB e a resposta for 46 KB, precisamos processar 10 mil req/min para um aplicativo Lolo. Isso requer 0,131 (núcleos) e 85 mb de memória. Consequentemente, isso requer duas réplicas a 9€ cada, mas ainda teremos espaço para mais solicitações dentro desse aplicativo. O resultado é

Custos mensais = € 18 por mês de custo para o aplicativo Lolo.

Lolo pode ser visto como uma combinação de AWS Lambda e API Gateway. Você também pode usar a loja de estado do Lolo para armazenar o conteúdo dinâmico da sua página da web. Desta forma, não haveria custos ocultos. O total que você pagaria seria simplesmente € 18 por mês.

Desempenho: Diferenças entre iFaaS e FaaS

A AWS pode oferecer tudo o que você precisa e você pode projetar um aplicativo de grande escala com redundância, escalabilidade e alta disponibilidade. Por outro lado, você deve conhecer bem os sistemas de rede e estar familiarizado com a arquitetura da AWS para liberar seu potencial. Serverless também vem com suas desvantagens. Um deles é o notório “cold start”.

Para ilustrar, seu aplicativo aguardará um determinado período até que um contêiner esteja pronto para executar o código. Essa solicitação leva mais tempo para ser processada porque um aplicativo Serverless precisa ativar a função (ou seja, baixar código, biblioteca, módulos/etc e inicializar um ambiente para executar o código). Esse problema aparece em qualquer aplicativo sem servidor no Lolo Code ou AWS.

AWS

A AWS ficou notoriamente melhor desde que as frotas Lambda migraram para a tecnologia Firecracker em 2018. No entanto, como a função ainda precisa ser ativada, as partidas a frio prevalecerão.

Na AWS, você pode ativar o Lambda com um número mínimo de contêineres. Mas você terá que pagar um custo extra para executá-lo continuamente.

Um usuário fez um teste * no início atrasado do AWS Lambda neste verão (usando o AWS EU). O resultado do experimento segue abaixo.

+-----------+--------------------
|   time    | ms      
+-----------+--------------------
| 1 min     | 180 ms           
| 15 min    | 750 ms   
| 3h        | 1467 ms 
| 10h       | 2060 ms               
+-----------+--------------------

Aplicativos no Lolo Code também têm o problema de “Cold Start”, mas seu Lolo App continua rodando até você pará-lo. Ou seja, como o Lolo Code está trabalhando com contêineres, seu aplicativo estará tecnicamente sempre em execução até que você o pare. Essencialmente, você não deveria se preocupar com partidas a frio.

No entanto, o usuário acima que fez o teste na AWS fez exatamente o mesmo teste no Lolo Code. * Seus resultados são mostrados abaixo.

+-----------+--------------------
|   time    | ms      
+-----------+--------------------
| 1 min     | 172 ms           
| 15 min    | 210 ms   
| 3h        | 602 ms 
| 10h       | 890 ms               
+-----------+--------------------

Outra coisa a considerar é que, se o seu script estiver em execução por muito tempo, a AWS pode não ser a melhor escolha. O tempo limite máximo do AWS Lambda é de 900 segundos (15 minutos), enquanto o Lolo não tem tempo limite máximo.

Eficiência: como construir e gerenciar um aplicativo Serverless?

Construir APIs em AWS e Lolo Code é simples. No entanto, existem diferenças.

AWS

Na AWS, você cria sua função Lambda e depois a conecta a outro serviço, o API Gateway, que atuará como seu gatilho. Aqui você tem uma função anônima que será acionada quando algo acontecer. Este é o ideal do FaaS, uma função anônima que só é acionada quando um evento acontece.

Como a função é stateless, você precisará buscar os dados em outro lugar, neste caso você pode usar o AWS DynamoDB para armazenar e buscar os dados.

A arquitetura para criar uma API simples com AWS Serverless

Isso parece um design escalável e robusto, no entanto, você precisa considerar alguns fatores importantes:

  • Como gerenciar alterações no código do software?
  • Como implantar ou personalizar seu aplicativo rapidamente?
  • Por onde começar a verificar os serviços em caso de problemas de infra?

Veja um tutorial completo sobre como criar uma API HTTP com Lambda, API Gateway e DynamoDB aqui .

Código Lolo

Com o Lolo Code, você pode adicionar um gatilho HTTP e, em seguida, usar o armazenamento de estado integrado para um banco de dados. Você pode adicionar uma nova função bruta para atuar como seu lambda (para seguir o caso de uso exato acima).

Seu aplicativo Lolo pode ter esta aparência.

O código dentro dos blocos de código é simplesmente código NodeJS (), exceto pelo gatilho HTTP que é um gatilho de modelo compartilhado por Lolo.

Você decidirá o que há nos blocos de código simplesmente alterando seu código (NodeJS) e renomeando-o.

Além disso, o Lolo Code oferece funções de biblioteca que você pode copiar e usar funções de modelo existentes e criar seus próprios modelos. Para o caso da API, podemos usar a função Lolo/CRUD API v3 para criar rapidamente uma API CRUD. Isso será mais rápido do que configurar o nosso próprio a partir do zero.

Crie uma API CRUD no Lolo simplesmente usando uma função de biblioteca fornecida pelo Lolo.

Você não precisa mudar muitas coisas em lugares diferentes. Com o Lolo Code, todo o seu trabalho está em um só lugar.

Depois de salvar e executar seu aplicativo, você não precisa se preocupar em manter ou provisionar seus próprios servidores para mantê-lo em execução (ou seja, é completamente “sem servidor”). A menos que você decida usar um tempo de execução privado em sua própria conta de nuvem pública ou datacenter privado. Veja os documentos do Lolo runtime-d aqui . Runtime-d é um binário independente que transforma qualquer laptop ou servidor linux em um Lolo runtime.

Resumo

A AWS é uma plataforma de nuvem amplamente difundida, oferecendo serviços completos de data centers em todo o mundo.

Com a AWS, você pode fazer muitas coisas, mas também requer esforço e tempo decentes para transformar sua ideia em um aplicativo e implantá-la na AWS. O Lolo Code ajudará você a acelerar seu desenvolvimento e mantê-lo rodando por menos. Embora o Lolo Code use a nuvem AWS para implantar aplicativos, ele também oferece a capacidade de usar seus próprios tempos de execução, tornando-o independente da nuvem.

❤️ Lolo See More