Everything You Need to Know About AWS Firecracker

Lightweight Virtualization for Serverless Computing

The world has come a long way from maintaining hardware in a big room full of servers to running CPU and memory-intensive applications in just one click. One of the main purposes of this transition is to enable developers and system engineers to concentrate more on applications and programs rather than maintaining the underlying infrastructure. The shift toward serverless computing is happening rapidly, and many tools and technologies have emerged to help. AWS, for one, has been consistently releasing new features to help users move toward serverless computing and virtualization — Lambda being one such example.

The History Behind Firecracker:

AWS launched Lambda to run user applications or scripts in a serverless manner. Lambda executed functions without any overhead simply and efficiently. The introduction of AWS Fargate, which runs containers, further stressed on serverless architecture. Firecracker was developed using the language Rust as a way to enhance the backend implementation of AWS Lambda and AWS Fargate. Firecracker was developed with the goal to provide high security, isolation, flexibility, and an efficient run-time environment for Lambda and Fargate services.

Source – https://aws.amazon.com/blogs

What is Firecracker?

Firecracker is a virtualization technology that uses a Kernel-based Virtual Machine (KVM) that helps to run different customers’ workloads on the same machine. With isolation similar to traditional machines, Firecracker ensures security and efficiency. Firecracker is licenced under Apache 2.0, making it an open source tool that encourages contribution for further improvements.

Virtual Machine Managers (VMMs) are used to create and manage microVMs.

A minimalistic and simple design reduces memory overhead.

The Firecracker process is statistically linked and can be launched using a jailer.

Firecracker can handle huge workloads as it already supports Lambda and Fargate.

Key Features:

RESTful API creates and manages microVMs for custom vCPU and memory.

Low overhead (5 MiB of memory per microVM) and high performance (125ms launch time) can support running about 1000 microVMs on the same machine.