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:
- How AWS’s Firecracker virtual machines work
- Getting Started With Firecracker
- Firecracker: start a VM in less than a second
- Firecracker internals: a deep dive inside the technology powering AWS Lambda
E é isso galera, tamo junto!