12 comments

[ 3.5 ms ] story [ 46.8 ms ] thread
What does this do that kubernetes doesn't?

Forgive my ignorance but this seems like AWS to try and get the lock-in back that they lost with Kubernetes becoming popular

Firecracker serves an entirely different purpose from Kubernetes. Kubernetes is a cluster scheduler but the containers being scheduled still need a runtime (typically Docker, containerd, or CRI-O) to execute the process within the container. These runtimes typically share a single Linux kernel instance and use the kernel cgroups feature to isolate workloads. In multi-tenant environments where each tenant is running unrestricted code this presents and unacceptably high security risk. If a hacker compromises one container and escapes the cgroup confinement they can potentially impact the security of other containers. Fargate is the building block for an alternative container runtime that uses extremely lightweight VMs and isolated kernel instances instead of the more traditional approach of sharing a kernel between all processes.
Any plan to integrate Firecracker with CRI? Or you think it's more like serving for specific purpose like Serverless?
More broadly, that is exactly what AWS aims to do with serverless: "De-commoditize" its commoditization by containerization and tightly re-couple your application to AWS. Which is fine, if it suits someone to do that. AWS just likes to use different words to describe it: "Run code without thinking about servers" -- Which is actually only half the story, since you'll still be thinking about all that extra stuff, just that now you'll be thinking about AWS-specific versions of that stuff, in addition to paying the convenience fees.
To my knowledge AWS EC2 uses (a derivative of) Xen, Google uses KVM and Microsoft Azure uses Hyper-v. Now AWS is making inroads into KVM with Firecracker, does this mean that the days of Xen are counted?

Edit: Brandan Gregg introduces Nitro (based on the KVM core kernel module) https://news.ycombinator.com/item?id=15812803 in nov ‘17

The c5, m5, t3, c5d, m5d, z1d, r5, r5d, m5a, r5a, a1, c5n, p3dn instance families all use the Nitro Hypervisor, which is based on Linux KVM code but offloading a lot of functionality to the Nitro System instead of using the normative QEMU setup.

Firecracker runs as a process in a customer-provided Linux 4.14 or newer kernel using the upstream KVM apis, that can be on an EC2 Metal Instance or on your own hardware.

How could you miss z1? ;)
Thanks for the reminder, ironically I put a lot of work into launching that platform!