AWS Firecracker 轻量,高效,快速,可能会重新定义虚拟机。
去年 11 月份 AWS 举行的 re:Invent 大会上,AWS 开源了 Firecracker,一种利用 KVM 的新虚拟化技术,专门用于创建和管理多租户容器以及基于函数的服务。 用 AWS 首席布道师 Jeff Barr 的话来说,Firecracker 是“如今的容器和函数世界中,虚拟机该有的样子“,它类似 VM 和容器的结合产品。 以下是技术专业人员应该了解的有关 AWS Firecracker 的 10 件事。
1. AWS Firecracker 是一种利用 KVM 的新虚拟化技术
基于内核的虚拟机(Kernel-based Virtual Machine,简称 KVM)是在 Linux 内核中运行并将内核视为其管理程序的 VM。可以同时运行多个 KVM,并且像典型的 VM 一样,每个 KVM 都有自己的虚拟化硬件。
Firecracker 的每个实例被称为 microVM。
2. Firecracker 很安全
以下构建方式可确保 Firecracker 的安全性:
一个简单的 guest 模型,允许 Firecracker 用户访问 KVM 的最小元素:“网络设备,块 I/O 设备,可编程间隔定时器,KVM 时钟,串行控制台和仅有一个按键的键盘控制器,用于停止 microVM"。
Firecracker 通过使用 seccomp BPF 和控制组而被监禁。 此外,它只能访问有限的系统调用列表。
Firecracker 进程是静态链接的,这意味着它需要运行的所有库都包含在可执行的代码中。 这通过消除外部库使新的 Firecracker 环境更安全。
3. Firecracker 虚拟机占用空间极小
每个 Firecracker microVM 仅使用大约 5 MiB,也就是 5.24 MB 的内存。这意味着可以在单个虚拟 CPU 上运行数千个 Firecracker microVM。
4. Firecracker 是一种快速高性能的系统,专为短周期任务设计
AWS 将 Firecracker 作为下一代的事件驱动计算。它能快速启动,资源设计最小化,这些都是为了进行快速计算而构建的,需要类似容器的 microVM 来启动,执行和降速才能等待新的任务。
单个 Firecracker microVM 可以在 125 毫秒内启动,AWS 表示 2019 年的这个启动时间可以更短。
5. Firecracker 非常简单
Firecracker microVMs 包含的内容并不多,只有 Virtio 网络驱动程序,Virtio 块驱动程序,可编程间隔计时器,KVM 时钟,串行控制台和单按键键盘。
Firecracker 不是一个完整的设备模型,它没有任何模拟的 BIOS,但这减少了潜在的攻击面。正因为功能很少,它的速度也很快。
6. Firecracker 不支持 Kubernetes,Docker 或非 Intel 的芯片
Firecracker 有一些缺点,特别是对于那些使用 AMD 或 ARM 系统的人:这两种芯片组都还没有支持 Firecracker,尽管 AWS 表示将在 2019 年支持这两者。
Kubernetes 或 Docker 都不受支持,但 AWS 正在开发类似的东西:它的“containerd”容器运行时有一些原型代码能允许它像 Firecracker microVM 一样管理容器。随着进一步的发展,Firecracker 也可能会支持 Docker 和 Kubernetes。
7. 亚马逊已经在使用 Firecracker 了
关注 Firecracker 的实用性、稳定性或可用性的人不必担心:亚马逊已经在 AWS Lambda 和 AWS Fargate 上使用 Firecracker 了。
在 Lambda 中,Firecracker 用于配置和运行执行 Lambda 函数的沙箱,AWS 表示这使得 Lambda 更快速安全。
在 Fargate 中,Firecracker 实际上已取代了 AWS EC2,成为执行 Fargate 任务的专用环境。现在所有这些 Fargate 实例都在专用的 Firecracker microVM 中运行。
8. Firecracker 是开源的
AWS 表示 Firecracker“已准备好审核并接受 pr,并期待与来自世界各地的贡献者合作。”
Firecracker 开源地址:https://github.com/firecracker-microvm/firecracker
9. Firecracker 可以在本地运行
Firecracker 旨在在 AWS .metal 实例以及裸金属服务器上运行。
不需要在云中运行 AWS Firecracker - 它可以在本地服务器,甚至是开发人员的笔记本电脑上运行。
10. 可以在 GitHub 上学习使用 Firecracker
Firecracker GitHub 存储库有一个入门页面,其中包括 Firecracker 的先决条件,如何获取 Firecracker 二进制文件,如何运行,如何从源代码构建它等等。
参考链接:
https://www.techrepublic.com/article/aws-firecracker-10-things-every-tech-pro-should-know/
评论