AWS Lambda: seu site agora pode ser executado sem servidor

O que é AWS Lambda, e o que faz?

Em uma definição simples, pode-se dizer que o AWS Lambda é o serviço de computação sem servidor (serverless computing) desenvolvido para ativar aplicativos. Sendo assim, arquitetos e desenvolvedores de nuvem podem usar o serviço para diferentes casos de uso.

AWS Lambda o que é

O AWS Lambda é um dos recursos mais importantes que a AWS oferece, já que representa o “futuro” da interação desenvolvedor x infraestrutura. O serviço permite que os desenvolvedores usem a infraestrutura da AWS sem se preocupar com mais nada: o Lambda implementa e gerencia toda a infraestrutura necessária, monitora a integridade do servidor, registra a execução do código e fornece estatísticas detalhadas. Isso pode parecer uma PaaS, mas existem algumas diferenças cruciais, como:

  • Modelo de precificação
  • Orientação a eventos
  • Escalabilidade ilimitada de execuções paralelas
  • Suporte nativo em vários idiomas

O modelo de precificação do AWS Lambda é do tipo “pay-as-you-go“, portanto, os clientes pagam apenas pelos recursos de computação utilizados. Isso torna o serviço muito econômico, isso sem mencionar o período de teste gratuito. De fato, os usuários pagam pela memória usada, o número de solicitações de código processadas e o tempo de execução do código “arredondado” em 100 milissegundos. Basta compará-lo com a taxa de faturamento por hora do EC2 e observar a granularidade e o nível de controle disponíveis ao usar o AWS Lambda.

Em vez da disponibilidade 24/7, comum nas camadas de pirâmide de nuvens IaaS, PaaS e SaaS, o AWS Lambda é orientado a eventos. O código é executado somente quando é necessário e consome zero recursos quando não é acionado. Obviamente, esse é um grande benefício para aplicativos que se mantém silenciosos por um longo tempo e que ao mesmo tempo precisam atender à demanda por recursos durante os picos de uso.

O AWS Lambda possui uma configuração chamada “Número de solicitações simultâneas” (“Number of concurrent requests“), que permite dimensionar quase instantaneamente para um grande número de processos de execução de código em paralelo. O downscale também é simples – as funções desnecessárias param de funcionar automaticamente quando o código é executado.

Os desenvolvedores podem usar uma variedade de linguagens de programação com o Lambda: Java, Python e Node.JS, entre outras linguagens, através de frameworks de código aberto. Há também ferramentas para deploys ainda mais convenientes e rápidos, como Apex, Serverless e Sparta.

Um exemplo de como uma empresa pode usar o AWS Lambda e o Amazon S3 para hospedar sites estáticos, praticamente sem custo:

  • Deploy do web frontend no S3
  • Uso do CloudFront CDN para fornecer entrega rápida de conteúdo
  • Configuração do front-end web para usar endpoints HTTPS do API Gateway e enviar solicitações ao Lambda
  • O Lambda funciona como back-end, lida com a lógica do aplicativo e armazena os dados em bancos de dados relacionais ou não relacionais, como o AWS RDS ou o DynamoDB

É possível isolar funções Lambda, código do site e bancos de dados de outras redes configurando um peering no AWS VPC.

Como os componentes do sistema – AWS Lambda, AWS S3 e o API Gateway – funcionam sob o modelo de preços PAYG (pay-as-you-go), o usuário paga apenas pelos recursos realmente consumidos pelo site, e não pelo aluguel de um servidor 24 horas por dia, 7 dias por semana, permanecendo sem uso por períodos prolongados.

O usuário precisa pagar pela manutenção do banco de dados em taxa fixa, porém a economia geral será enorme.

Análise os logs enquanto trabalha

Imagine a criação de uma função do AWS Lambda para coletar os logs do AWS Cloudtrail ou de outros aplicativos de log, como o Cloudwatch. O Lambda observa os triggers e as entradas de log específicas, chamando uma notificação do SNS quando isso acontece. Essas notificações também podem ser facilmente enviadas ao Slack, ao Jabber ou a sistemas de suporte, como o Zendesk, por chamadas nos endpoints da API no Lambda.

Boa automação antiga de backups e rotina diária

As funções do Lambda podem ser chamadas dentro do cronograma, o que o torna uma ferramenta de automação perfeita para tarefas repetitivas, como a verificação de recursos ociosos, a criação de backups, a geração de relatórios e a execução de vários outros trabalhos de rotina. Basta usar as bibliotecas boto3 do Python e se livrar do trabalho de administração mundano para sempre!

Suporte a várias tarefas do AWS S3

Se o usuário configurar o AWS Lambda para receber notificações de eventos do S3, ele poderá executar qualquer processamento de objetos armazenados em depósitos do S3. Por exemplo, poderá usá-lo para geração de miniaturas de imagens sem a necessidade de se preocupar com recursos suficientes, porque o Lambda fará o escalonamento tanto quanto for necessário.

Otimização de operações de backend

O backend de um site não deve ser a fonte de interrupções para a experiência do usuário final. O Lambda pode fazer o parse da entrada do visitante e armazená-lo em um banco de dados (ou processar a entrada de qualquer outra forma) enquanto o site renderiza a próxima página. Os dados de entrada serão enviados para o banco de dados ou aplicativo necessário e usados no devido tempo, enquanto o visitante desfruta da experiência perfeita do site!

O AWS Lambda pode e deve ser um dos principais recursos para lidar com tarefas repetitivas ou demoradas, junto com os outros trabalhos pesados do mundo de processamento de dados. Ele libera os principais serviços online para se concentrar em tarefas frontend de alta prioridade, como responder rapidamente a solicitações de usuários, o que permite descarregar muitos processos que, de outra forma, deixariam o sistema mais lento.

Fonte: DZone.com

Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.