- 《架构师》2019年3月
- InfoQ中文站
- 1208字
- 2020-06-26 06:07:52
关于AWS的Firecracker,技术人应该知道的十件事
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/