O AWS Lambda é um dos serviços de computação sem servidor mais populares do mercado.  Ele também é o provedor mais usado com o Serverless Framework.

Neste artigo, abordaremos tudo sobre o tema. O que é, quais são suas vantagens e, ainda, forneceremos uma lista dos principais recursos para que você possa aprender mais e obter o máximo desta plataforma.

AWS Lambda: o que é e como funciona

O AWS Lambda é o serviço de computação sem servidor (serverlles compunting), fornecido pela Amazon como parte do Amazon Web Services (AWS).

Este recurso permite que o usuário use a infraestrutura da AWS  de maneira eficiente e sem maiores preocupações, já que as funções do Lambda podem executar qualquer tipo de tarefa de computação, desde servir páginas da Web e processar fluxos de dados até chamar APIs e integrar-se a outros serviços da AWS.

O conceito de computação “sem servidor” refere-se à não necessidade de manter seus próprios servidores para executar essas funções. O AWS Lambda é um serviço totalmente gerenciado que cuida de toda a infraestrutura para o cliente. Portanto, “sem servidor” não significa que não há servidores envolvidos, mas, sim que os servidores, os sistemas operacionais, a camada de rede e o restante da infraestrutura já foram resolvidos, a fim de que o desenvolvedor se concentre exclusivamente na escrita do código do aplicativo.

O código que o usuário executa no AWS Lambda é carregado como uma “função do Lambda”. Cada função tem informações de configuração associadas, como nome, descrição, ponto de entrada e requisitos de recurso, e são executadas em um cluster de vários domínios gerenciados pela AWS. Antes das funções começarem a serem executadas, o diretório de cada uma delas recebe 500 MB de memória RAM alocada.

Em vez da disponibilidade 24 horas por dia, 7 dias por semana, comum nas camadas de pirâmide de nuvens, a plataforma é orientada a eventos. O código é executado somente quando solicitado e, em stand by, o consumo de recursos é praticamente zero.

Dessa maneira, como o modelo de precificação do Lambada é PAYG (pay-as-you-go), o usuário paga apenas pelos recursos realmente consumidos pelo site, como memória usada, o número de solicitações de código processadas e o tempo de execução do código, e não pelo aluguel de um servidor com disponibilidade total, permanecendo sem uso por períodos prolongados, por exemplo.

Os recursos do AWS Lambda

Como dito anteriormente, a plataforma permite que o desenvolvedor execute os códigos sem provisionar ou gerenciar qualquer servidor.  Além de pagar apenas pelo o que usar, com o Lambda, o usuário pode executar o código para qualquer tipo de serviço de back-end ou aplicativo, sem se preocupar com mais nada.

Assim, basta apenas carregar o código, pois a plataforma cuida de todo o resto.  Além disso, o usuário pode configurar o código para que seja automaticamente acionado por meio de outros serviços da AWS ou chamá-lo diretamente usando qualquer aplicativo móvel ou da web.

Veja os principais recursos do AWS Lambda:

Estenda outros serviços da AWS com lógica personalizada

O Lambda permite que a cliente acrescente lógica personalizada aos recursos da Amazon Web Services como buckets do Amazon S3 e tabelas do Amazon DynamoDB, facilitando, desse modo a aplicação de computação aos dados quando eles entram ou se movem na nuvem.

Para começar a utilizar a plataforma, o primeiro passo é criar uma função ao fazer o upload do código (ou criar o código diretamente no console do Lambda) e escolher a memória, o tempo limite e a função do AWS Identity and Access Management (IAM).

Depois, basta especificar o recurso AWS e acionar a função, seja um bucket do Amazon S3, uma tabela do Amazon DynamoDB ou um stream do Amazon Kinesis. Quando o recurso muda, o Lambda executa sua função ao lançar e gerenciar os recursos computacionais, conforme necessário, para acompanhar as solicitações de entrada.

Crie serviços de back-end personalizados

O usuário ainda pode usar a plataforma para criar serviços de back-end para os aplicativos, acionados sob demanda ao usar a API do Lambda ou endpoints de API personalizados criados a partir do Amazon API Gateway.

O uso do AWS Lambda para processar eventos personalizados permite evitar variações da plataforma do cliente, reduzindo o consumo de bateria e facilitando as atualizações.

Traga seu próprio código

Com o Lambda, não existe a necessidade de novas linguagens, ferramentas ou estruturas para aprender. O desenvolvedor pode usar qualquer biblioteca de terceiros, até mesmo nativas, e empacotar qualquer código (estruturas, SDKs, bibliotecas, etcs) como uma Camada Lambda e, deste modo, podendo gerenciá-lo e compartilhá-lo facilmente em diversas funções.

A plataforma oferece suporte aos códigos Java, Go, PowerShell, Node.js, C#, Python e Ruby, bem como uma API de tempo de execução que permite usar qualquer linguagem de programação adicional para criar suas funções.

Administração totalmente automatizada 

O Lambda realiza todo o gerenciamento de forma automatizada para executar seu código e permitir uma infraestrutura altamente disponível e tolerante a falhas, liberando o desenvolvedor para a criação de serviços de back-end diferenciados.

A plataforma, ainda, libera o usuário da preocupação de ter que atualizar o SO quando um patch é liberado, do redimensionamento ou a adição de novos servidores conforme o aumento da necessidade.

O AWS Lambda implanta código com transparência, faz toda a administração, manutenção, instala patches de segurança, fornece registro e monitoramento integrados através do Amazon CloudWatch.

Tolerância a falhas integrada

O programa mantém a capacidade computacional em diversas zonas de disponibilidade em cada região, auxiliando na proteção do código e evitando falhas de instalação de datacenter ou de máquinas individuais. Tanto o AWS Lambda quanto as funções em execução no serviço fornecem performance operacional previsível e confiável.

Escalabilidade automática

Quando o código é utilizado apenas quando necessário, o Lambda realiza a escala automaticamente para comportar a taxa de solicitações de entrada, sem exigir qualquer configuração. Vale ressaltar que não há limite para o número de solicitações que podem ser atendidas pelo código.

De maneira geral, a plataforma executa seu código em milissegundos após um evento. Como o Lambda escala automaticamente, a performance é continuamente consistente e aumenta a frequência na mesma proporção que os eventos aumentam. Como o código é stateless, o Lambda pode iniciar quantas instâncias forem necessárias sem implantações demoradas e atrasos de configuração.

Modelo de recursos flexível

O usuário define a quantidade de memória que deseja alocar para cada função e o AWS Lambda aloca proporcionalmente a capacidade de CPU, largura de rede e E/S de disco

Pague somente pelo que usar

O cliente paga pela duração da execução, e não pela unidade do servidor. Ao usar as funções do Lambda, é cobrado apenas as solicitações atendidas e o tempo de computação necessário para executar o código.

 Modelo de segurança integrado

O programa permite que o código acesse com segurança outros serviços da Amazon Web Service por meio do AWS SDK incorporado e da integração com o AWS Identity and Access Management (IAM). Por padrão, o AWS Lambda executa o seu código em uma VPC.

Deseja saber mais sobre AWS Lambda e como a solução pode ajudar a sua empresa? Entre em contato com os nossos consultores e agende uma reunião.