AWS 开源了用于 Serverless 计算的安全且快速的微虚拟机(microVM)Firecracker。
项目基于 Apache 2.0 开源,地址:https://github.com/firecracker-microvm/firecracker
Firecracker 是一种专门用于创建和管理多租户容器和基于函数的服务的虚拟化技术,使用 Rust 开发,旨在加快 AWS Lambda 和 AWS Fargate 等服务的速度和效率。它是一种虚拟化技术,提供 Serverless 操作模型,专门用于创建和管理多租户容器与基于函数的服务。Firecracker 在轻量级虚拟机中运行工作负载,AWS 将其称为 microVM,它结合了硬件虚拟化技术提供的安全性与隔离性和容器的速度与灵活性。
Firecracker 的主要组件是虚拟机监视器(VMM),它使用 Linux 内核虚拟机(KVM)来创建和运行 microVM。Firecracker 采用极简设计,它剔除了不必要的设备和面向客户的功能,以减少每个 microVM 的内存占用和攻击面积,这可以提高安全性、缩短启动时间并提高硬件利用率。
Firecracker 目前支持 Intel CPU、AMD 与 Arm,同时它还将与流行的容器运行时集成。
谈及开发背景,AWS 表示这是为了应对虚拟化技术的新挑战。现在开发人员可以通过 AWS Fargate 将其代码打包为 Serverless 容器或通过 AWS Lambda 打包成 Serverless 函数,但是 AWS 意识到现有的虚拟化技术并不是为了优化这些工作负载中固有的事件驱动与短期性质而产生的,那么就需要构建专门为 Serverless 计算而设计的虚拟化技术,它将提供基于硬件虚拟化的虚拟机安全边界,同时保持轻量级与 Serverless 容器和函数的灵活性。
Firecracker 开源原则如下:
-
内置安全性:提供计算安全隔离,以支持多租户工作负载,并且用户无法失误禁用。用户工作负载同时被视为具备神圣(不可触及)与恶意(应予以防备)两种属性。
-
轻量级虚拟化:专注于短期或无状态工作负载而不是长期运行或持久性工作负载。Firecracker 的硬件资源开销是已知且有保证的。
-
极简主义:如果任务没有明确要求,将不会创建。仅维护每个功能的单个实现。
-
计算资源超额订购:Firecracker 向用户公开的所有硬件计算资源都可以安全地超额订购。