Skip to content
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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

stockholmux
Copy link
Member

Issue number:

Closes # n/a

Description of changes:

  • Adds a FAQ item to disambiguate Firecracker from Bottlerocket (a common confusion).
  • Adds a style to support block quotes needed in this FAQ item.

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.

Copy link
Contributor

@stmcginnis stmcginnis left a 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.
Copy link
Contributor

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.

Comment on lines +12 to +16
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.
Copy link
Contributor

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.
Copy link
Contributor

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:

  1. using the Linux kernel primitives for isolation (cgroups, namespaces)
  2. using userspace reimplementation of the Linux kernel API (gvisor)
  3. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants