-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
adds FAQ item about firecracker #264
base: main
Are you sure you want to change the base?
adds FAQ item about firecracker #264
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to have something out there! It's amazing how often there is confusion here. :D
|
||
> Firecracker is an alternative to QEMU that is purpose-built for running serverless functions and containers safely and efficiently, and nothing more. | ||
|
||
Bottlerocket does not uses Firecracker. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: "uses"
There's an open issue for Firecracker support so it's not a foregone conclusion that this will always be true, especially as out-of-tree builds make the distro easier to customize and experiment with.
For me this is like saying "Bottlerocket does not use Docker" - it's true except when it's not.
Bottlerocket and Firecracker actually have very little in common except they: | ||
|
||
* are open source projects started at AWS, | ||
* use the Rust programming language, | ||
* have names related to fireworks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sort of reads like dunking on the person who asked this question. It doesn't help that the sentence could be written as "Bottlerocket and Firecracker actually have a lot in common" without changing the bullet points at all.
Quite a lot! | ||
[Firecracker](https://firecracker-microvm.github.io/) is a *virtualization* technology and Bottlerocket is an *operating system*. From the [Firecracker FAQ](https://firecracker-microvm.github.io/#faq): | ||
|
||
> Firecracker is an alternative to QEMU that is purpose-built for running serverless functions and containers safely and efficiently, and nothing more. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alternatively: Firecracker really just runs micro VMs and talking about specifics of what's inside those micro VMs (containers, serverless functions) is actually what creates the confusion, since Bottlerocket is also built for running containers safely and efficiently, and nothing more.
The missing nuance here is that there are different ways to run containers:
- using the Linux kernel primitives for isolation (cgroups, namespaces)
- using userspace reimplementation of the Linux kernel API (gvisor)
- using micro VMs with micro Linux kernels for each container (Firecracker)
Bottlerocket could support all of these ways with various trade-offs in terms of security and functionality, and today just supports the first one.
Issue number:
Closes # n/a
Description of changes:
Terms of contribution:
By submitting this pull request, I confirm that my contribution is made under
the terms of the licenses outlined in the LICENSE-SUMMARY file.