AWS Lambda

Known Tech Choices

The firecracker paper [1] provide a good overview of the system, I highly recommend reading it.
Firecracker is the main project to create and manage the microvms, it's written in rust.

2014 - 2018

According to the firecracker paper [1] AWS Lambda during this period used to be running inside VMs (separate VMs for each customer, and running those VMs inside the customers VPC in case it's a VPC lambda, which is why the cold start was brutal for VPC lambdas during that period). inside those VMs each execution was in a separate linux container.
Containers were not used as an isolation mechanism because sharing a kernel with a sandbox namespace is a large surface area for attack vectors, I suggest reading https://www.freecodecamp.org/news/demystifying-containers-101-a-deep-dive-into-container-technology-for-beginners-d7b60d8511c1/ and https://github.com/p8952/bocker as a starter deep dive into how containers work.

2018 - Now

Customers were migrated to using firecracker micro VMs for each execution instead of VMs + containers.

Known People

 
 

Papers

  1. Firecracker: Lightweight Virtualization for Serverless Applications: https://assets.amazon.science/96/c6/302e527240a3b1f86c86c3e8fc3d/firecracker-lightweight-virtualization-for-serverless-applications.pdf
  1. On-demand Container Loading in AWS Lambda: https://assets.amazon.science/25/06/d2e5ea9c411c9e4d366aa2fbbca5/on-demand-container-loading-in-aws-lambda.pdf

Code


Timeline

Released in November 13, 2014, no information about the development timeline.
 
Built with Potion.so