Seidor
AWS

25 de março de 2024

Automatize seu aplicativo usando o serviço serverless AWS Lambda

Após o marco dos contêineres, começamos a eliminar as grandes peças de nossas aplicações, substituindo nossos servidores por máquinas virtuais, nossas máquinas virtuais por contêineres e nossos contêineres por código "in situ".

Graças a isso, você pode alcançar o máximo potencial de sua aplicação em pouco tempo, sem se preocupar com questões operacionais (hardware e software subjacente) e tornar a vida dos desenvolvedores mais fácil.

Com o uso do serviço Serverless AWS Lambda, você pode realizar muitas ações e, portanto, obter muitos benefícios.

Mas, o que é AWS Lambda?

AWS Lambda é uma plataforma de computação sem servidor, orientada por eventos e fornecida pela AWS, que permite executar código sem provisionar ou gerenciar servidores em tempo real. Se você estiver executando sua aplicação 24 horas por dia, 7 dias por semana, será cobrado pelo tempo durante o qual as funções são executadas. O código que é executado no AWS Lambda é chamado de função Lambda.

Podemos considerar o Lambda como uma plataforma baseada em eventos que é executada quando ativada e aciona o código que foi carregado no sistema.

Com o AWS Lambda, você pode executar código para praticamente qualquer tipo de aplicação ou serviço de Backend. Esta função é compatível com Java, Go, PowerShell, Node.js, C#, Python e código Ruby, além de fornecer uma API de tempo de execução que permite utilizar qualquer linguagem de programação adicional para criar suas funções.

Casos de uso desta plataforma de computação sem servidor

AWS Lambda é um serviço que pode ser ideal para muitas situações. O código das aplicações deve estar escrito nas linguagens suportadas e mencionadas anteriormente. Vamos ver alguns exemplos de como você pode usar este serviço para simplificar e automatizar sua infraestrutura na nuvem:

  • Processamento de arquivos em tempo real: você pode usar o Amazon S3 para acionar o AWS Lambda e processar os dados imediatamente após o upload. Por exemplo, você pode usar o Lambda para criar imagens em miniatura, transcodificar vídeos, indexar arquivos, processar registros, validar conteúdo, agregar e filtrar dados em tempo real.
  • Backups automáticos: você pode facilmente escrever uma função Lambda que criará automaticamente backups de informações importantes. O backup pode ser programado para ser realizado no final de cada dia. E, se desejar, seu sistema de backup pode ser incremental, diferencial, etc.
  • Personalização, integração e envio de alertas: você pode facilmente criar uma função Lambda para verificar os logs do Cloudwatch. O Lambda pode procurar nos logs eventos específicos ou entradas de registro à medida que ocorrem, e enviar notificações através do SNS. Pode ser integrado com aplicativos como Slack para enviar notificações personalizadas e monitorar com envio de e-mails e chamadas para alertas dos recursos que forem estabelecidos.
  • Programação de tarefas: você pode programar tarefas de “start/stop” de diferentes recursos (instâncias RDS, instâncias EC2, etc) e eliminar a necessidade de que o sistema de servidor tradicional «sempre ativo» fique por trás de uma aplicação, o que reduzirá significativamente a complexidade e os custos operacionais.
  • Datalakes: você pode configurar uma função Lambda ao copiar os arquivos para o S3 para verificar o tamanho do arquivo que acabou de chegar antes de enviá-lo para a camada de ensaio através do DataPipeline ou upload do S3, além de configurar uma segunda Lambda para abrir os clusters do EMR para processar os dados e realizar a normalização e ETL (extrair, transformar, carregar) antes de serem armazenados no DynamoDB ou AuroraDB.