当前位置: 首页 > news >正文

关于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\u0026quot;。
  • 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/

相关文章:

  • spring boot 2.0单元测试
  • ansible API 常用模块
  • 追踪解析 FutureTask 源码
  • 再次简单明了总结flex布局,一看就懂...
  • 倒计时3天,公链黑马YOUChain正式开启节点测试
  • 那些被忽略的 JavaScript 数组方法细节
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 可达性分析算法
  • MySQL的sql语言分类DML、DQL、DDL、DCL、
  • 在IIS上部署ASP.NET Core项目出现错误 500.19
  • poj 1088(dfs+dp)
  • flutter的key在widget list的作用以及必要性
  • 深入 Nginx 之配置篇
  • 干货!手把手教你打造自己的seo生态资源,让排名不在是梦想
  • Mayor's posters(线段树+离散化)
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Angular数据绑定机制
  • Druid 在有赞的实践
  • GitUp, 你不可错过的秀外慧中的git工具
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JSDuck 与 AngularJS 融合技巧
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Less 日常用法
  • mongodb--安装和初步使用教程
  • nodejs:开发并发布一个nodejs包
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Python十分钟制作属于你自己的个性logo
  • SOFAMosn配置模型
  • unity如何实现一个固定宽度的orthagraphic相机
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 微信开放平台全网发布【失败】的几点排查方法
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 小程序开发之路(一)
  • 一起参Ember.js讨论、问答社区。
  • 用element的upload组件实现多图片上传和压缩
  • 06-01 点餐小程序前台界面搭建
  • const的用法,特别是用在函数前面与后面的区别
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • !$boo在php中什么意思,php前戏
  • (11)MATLAB PCA+SVM 人脸识别
  • (4)STL算法之比较
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (第27天)Oracle 数据泵转换分区表
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转载)PyTorch代码规范最佳实践和样式指南
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算