Firecracker: você sabe como rodam as AWS Lambdas?

Fala galera do Tabnews,

Hoje venho compartilhar com vocês uma parada que explodiu minha mente. Recentemente estava estudando sobre Lambdas para preparar um conteúdo, e me deparei com o projeto por trás das Lambdas (e também do Fargate), o Firecracker. Então a ideia é trazer um pouco dele aqui pra vocês.

Lambdas e o Conceito "Serverless" na AWS

Desde 2014, a Amazon Web Services (AWS) oferece a computação "serverless" por meio do AWS Lambda, proporcionando uma experiência de uso simplificada ao eliminar a gestão direta de servidores e ajustes de capacidade. O Lambda tornou-se sinônimo de agilidade, escalabilidade e eficiência, onde a AWS realiza o provisionamento automático, sendo o cliente responsável apenas pela função que vai rodar na lambda.

Se você quiser se aprofundar mais em AWS Lambdas, deixo aqui meu último artigo: Entendendo e otimizando AWS Lambdas

O desafio na criação das Lambdas

Na criação do Lambda, o desafio de equilibrar segurança e eficiência foi central. Surgiram duas abordagens: a conteinerização, notória por sua velocidade e economia de recursos, porém com limitações em termos de isolamento entre clientes; e a execução do código em máquinas virtuais, que oferece maior segurança, mas à custa de uma sobrecarga computacional. A AWS, tendo segurança como prioridade, optou pela última.

MicroVMs são mais seguras, mas como fazer com a eficiência?

Clientes demandavam escalabilidade mais ágil, latência reduzida e recursos avançados, como concorrência provisionada. Para atender a essas necessidades e ir além das limitações das VMs tradicionais, a AWS desenvolveu o Firecracker. Lançado em 2018 como uma plataforma open source de virtualização, o Firecracker representa uma solução híbrida, promovendo segurança comparável às VMs e a eficiência dos contêineres.

Diferencial do Firecracker

Um ponto notável na eficiência do Firecracker está em seu VMM enxuto (Virtual Machine Monitor), com apenas 50.000 linhas de código escritas em RUST. Essa abordagem representa uma redução de 96% em relação ao QEMU, tradicionalmente empregado em conjunto com o KVM. Esse enxugamento possibilita a criação de microVMs específicas para cada programa do cliente, contribuindo para um modelo de segurança mais direcionado.

Bora aprender mais?

Galera o post é esse. Bora trocar ideia sobre isso e outras curiosidades das Lambdas e MicroVMs nos comenários!

Ah, e se você gosta de "fuçar" tecnologias novas, vou deixar aqui uma lista de artigos que me ajudaram:

E é isso galera, tamo junto!

Cara, eu tenho muita vontade de aprender essas tecnologias, mas infelizmente a maioria só fazem sentido em aplicações que exigem alta performance e escalabilidade, e é justamente aí que conseguimos entender realmente para que serve e como se aplicam. Eu mesmo só fui mexer com Azure Functions na empresa que estou depois de quase 1 ano, ajudando temporariamente um time numa demanda crítica (já fiz alguns testes simples com Functions no passado, mas foi só isso mesmo: coisa simples). Acho que o melhor jeito pra aprender essas soluções em nuvem são em ambientes corporativos quando surge uma oportunidade mesmo.

Ah eu comecei a mexer por conta própria mesmo. Sabia que existia então arranjei motivos pra mexer. Fiz um curso basicão para começar, depois fiz um side project que era um agregador de noticias, então tinha uma lambda pra cada site... e assim fui indo. Por um acaso hoje eu trabalho com lambdas kkkk