当Unikernel遇上Docker,会发生什么?

本文讲的是当Unikernel遇上Docker,会发生什么,【编者的话】本文主要是对在巴塞罗那举办的DockerCon大会上介绍的Unikernel的总结。Unikernel是一种新的容器化发展方向,使用Rump Kernels构建Rump Kernels微服务,可以像传统的容器一样管理使用,能充分利用到现有容器生态系统的优点。

今天,在欧盟巴塞罗那举办的DockerCon大会上,Unikernel闪亮登场!

作为闭幕黑科技主题keynote的一部分, Anil Madhavapeddy(MirageOS项目负责人),展示了如何像其他任何容器一样使用Unikernel。他先用Docker创建了一个unikernel微服务,然后接着部署了一个真正的Web应用,数据库、Web服务和PHP代码运行在使用Rump Kernels构建的隔离的unikernel微服务上。Docker像管理Linux容器一样管理Unikernel,但是不用再部署一个传统的操作系统!

这种集成使得各地的开发者都可以使用Unikernel,并把容器生态中熟悉的工具和实际工作流与Unikernel改进的安全性、效率和专业化结合起来。在这篇文章中我们会透露让你如何参与其中的更多细节,不过在我们进入Anil演示的更多细节前,我们先了解一些关于Unikernel的背景以及为什么可以这样使用Docker。

为什么是Unikernel?

随着公司开始使用云计算,对单一用途的机器映像一直处于增长趋势,但很显然这还有巨大的改进余地。当前,每台运行应用的虚拟机都必须有一个操作系统副本,特别是对隔离要求高的应用。

运行在虚拟机上的应用程序也受到操作系统漏洞影响,包括那些与应用日常功能毫无关系的漏洞。例如,USB驱动-存在于操作系统但是与云部署毫无关系-这个驱动有多个漏洞,允许执行任意代码。修补这样的漏洞是一个完全没必要的维护负担。

Unikernel采取不同的方法:应用代码只与它需要用来创建一个专业,单地址空间机器镜像相关的OS组件链接— 这样就减少了不必要的代码。使用'操作系统库'的技术创建,与传统的操作系统相比Unikernel提供很多好处,包括:

  • 改进的安全性 - Unikernel不包含与部署无关的代码,大大减少应用程序的攻击面。
  • 更小的空间 - unikernel代码通常要比传统当量小几个数量级,并且可以更容易地进行管理。
  • 细粒度优化 - 由于Unikernel通过一个关联的编译器工具链构建,可以在设备驱动程序和应用程序逻辑层面进行全系统优化,无形中更提高了专业化。
  • 快速启动时间 - 由于Unikernel可以在不到一秒钟启动,资源分配会变得更加动态。

这些好处与微服务和'不可变基础设施'发展理念尤其相关-虚拟机被视为一次性消耗品并可定期从版本库的代码重新分配。这样的虚拟机是不允许直接修改的:所有的更改必须通过修改源代码进行。

Unikernel自然借用了微服务架构和不可变基础设施的概念:源代码和生成的二进制是紧密关联的,可以轻松控制版本。如果说传统的栈,使我们走向微服务,那么Unikernel将推动我们走向不变的nanoservices世界。

虽然Unikernel提供了一种方式,但是在生产配置中采用它们还有很大的挑战。unikernel生态系统才刚刚兴起,并且这种新技术需要适应现有的工作流程和工具。

进入Docker!

为什么是Docker?

Linux的容器通过允许在传统操作系统为其上的多个'容器化'应用程序提供功能,已经让开发者更快地迈向微服务。这些容器相互隔离,因此可以单独替换或修改,这也是微服务架构模式的核心。

虽然容器技术出来已经有一段时间了,而且应用的步伐也在快速增长。从过去几年可以看到,工具的激增包括镜像库,编排工具等等,使得容器更易于大规模使用。在Docker的带领和培育下,建设了一个充满活力、开放和欣欣向荣的生态系统,帮助改善了每个人的开发工作流程。

随着越来越多的支持工具和基础设施,可以明确看出生态系统已经不仅仅是Linux容器本身了。Unikernel是否适合这个生态系统?如果适合,Unikernel与容器有什么关联?

容器和Unikernel其实是一体的。一方面,在最上层,我们使用传统方法在一个VM中运行一个包括单一应用的全OS栈。下一步自然是在OS上使用容器,这会有更好的资源使用体验并允许每个应用更加自包含。如果从这个角度来看,Unikernel只是在这条道路上又迈出的一步,可以被看作是极端的、自包含的应用程序。现在我们面临的挑战是让Unikernel与容器一样简单易用。

应对这一挑战的第一步是将Unikernel与现有容器基础设施,特别是Docker工具和生态系统集成。
利用广泛使用和大家都理解的包模型和运行框架,把Unikernel看作只是另一种类型的容器,这将帮助我们让各地的开发人员都用上Unikernel。

它还使得Unikernel可以使用整个容器生态的工具,包括业务流程和其他任何可用的。采用现有的工具链将加速Unikernel的进程,同时也展现了Docker生态系统的灵活性和广度。通过使用Docker抽象掉了底层操作系统的复杂性,开发人员可以选择如何'containerise'他们的应用程序,无论是针对一个传统的Linux容器,或者一个新的unikernel'容器'。

DockerCon演示

也正是这些最初的步骤使开发人员能够利用现有的Docker工具,构建和运行unikernel微服务,正像今天Anil在DockerCon的演示一样!

首先,他用Docker创建一个unikernel微服务,然后他启动Unikernel集群部署包括数据库,Web服务和PHP代码的Web应用。整个构建系统包含在一个易于使用的Dockerfile,每个微服务变成一个专门unikernel。这些Unikernel在自己有硬件保障的KVM虚拟机上运行。Docker像管理Linux容器一样管理unikernel容器和网络!

这些早期的工作使得Unikernel实现了像Docker部署方式一样的可用目标!既然现在Unikernel可以通过Docker进行管理,那么它就可以为Unikernel带来所有现有生态系统编排和管理方面的优点。

该演示包括Nginx,MySQL和PHP,LAMP环境典型的几个组件。这些没有改动过的,现成的组件采用Docker工具链使用Unikernel创建,而不是用典型的操作系统!为了运行这些特定的应用,为这些Unikernel创建了一个集群。观看下面视频了解更多详情!

视频

参与其中!

这里描述的演示仅仅是个开始。Unikernel实现有很多种,并有大量的工作要做,以确保它们都能获得集成后的好处,同样提升Docker充分利用这些新技术的能力。 查看相关的unikernel项目,并向这篇博客贡献你的体验吧!

感谢AnilBalrajDavid,JeremyJustinMartinMindyThomas他们对初稿的意见。

原文链接:Unikernels, meet Docker! (翻译:朱高校)

原文发布时间为: 2015-11-27

本文作者:unodba

本文来自合作伙伴DockerOne,了解相关信息可以关注DockerOne。

原文标题:当Unikernel遇上Docker,会发生什么?

时间: 2024-09-12 14:27:51

当Unikernel遇上Docker,会发生什么?的相关文章

当DOCKER遇上ESXI

特别是你要为DOCKER窗口设置静态IP,且和公司局域网打成一片的时候, 苦逼的测试就会开始,我差不多前前后后测试了四五天,一百多个容器报废. NETNS,NSENTER,PIPWORK,各种镜像合下载之后, 想起了去年就是这个时候作的一个在ESXI上再双重虚拟化HYPER-V的情况. 混杂模块启用啊啊啊啊啊!!!!因为DOCKER也相关于网桥里的网桥了... 死去吧... 这一关打通想通,以后的就容易啦.. 为什么这些问题都要我遇上???

金融和互联网好像北京遇上西雅图

本文讲的是金融和互联网好像北京遇上西雅图,中国工商银行电子银行部总经理侯本旗表示,金融和互联网好像不太一样,"金融长这样(吴秀波),稳重.可靠.有内涵.互联网长这样,漂亮.任性.烧钱.有魅力.当他们两个遇到一起就变成了这样,被拍成了一部电影<北京遇上西雅图>."他说,未来三年互联网金融势不可当. 以下为演讲实录: 侯本旗:金融和互联网好像不太一样,我不知道大家有没有想过金融长什么样,金融长这样(吴秀波),稳重.可靠.有内涵.互联网长这样(汤唯),漂亮.任性.烧钱.有魅力,当

MySQL批量插入遇上唯一索引避免方法_Mysql

一.背景 以前使用SQL Server进行表分区的时候就碰到很多关于唯一索引的问题:Step8:SQL Server 当表分区遇上唯一约束,没想到在MySQL的分区中一样会遇到这样的问题:MySQL表分区实战. 今天我们来了解MySQL唯一索引的一些知识:包括如何创建,如何批量插入,还有一些技巧上SQL: 这些问题的根源在什么地方?有什么共同点?MySQL中也有分区对齐的概念?唯一索引是在很多系统中都会出现的要求,有什么办法可以避免?它对性能的影响有多大? 二.过程 (一) 导入差异数据,忽略重

宜信大数据负责人Joyce:当金融遇上大数据,能擦出什么火花

ZDNet至顶网软件频道消息: 这两年,互联网金融的成长速度让一些不可一世的传统金融巨人也不禁打了个冷战.倒不是因为互联网金融业务的规模真的威胁到了传统金融,而是伴随它而来的这股创新力量让传统金融行业中存在的问题和局限性暴露无余.所幸,已经有一些人开始意识到问题的紧迫性,当然,还有问题背后所蕴藏的巨大机遇. Joyce Zhang 就是这些人中的一个.Joyce 是宜信 CEO 唐宁从美国挖来的一位资深大数据专家,现在担任宜信大数据创新中心的总经理.在来宜信之前,Joyce 曾经服务过 Hulu

在容器部署上Docker不一定最佳

本文讲的是在容器部署上Docker不一定最佳,[编者的话]很多时候,大家都把Docker跟容器等同起来,它确实能够解决运维中众多的问题,如:APP运行环境打包.容器移植性高.提供分层文件系统等特性:但是还有很多容器技术被忽略了,如LXC:而在某些特定环境下,Docker确实是有它的软肋,下文就是阐述这个问题的. 这是我去年在LinuxCon Europ的一个演讲的文字版.因为现在还没有放出视频,所以我很高心你们能看我演讲的PPT. 问题 假设你的是个运维人员管理着大规模的自动化的运维项目,这个项

宜信大数据负责人Joyce:当金融遇上大数据

这两年,互联网金融的成长速度让一些不可一世的传统金融巨人也不禁打了个冷战.倒不是因为互联网金融业务的规模真的威胁到了传统金融,而是伴随它而来的这股创新力量让传统金融行业中存在的问题和局限性暴露无遗.所幸,已经有一些人开始意识到问题的紧迫性,当然,还有问题背后所蕴藏的巨大机遇. Joyce Zhang 就是这些人中的一个.Joyce 是宜信 CEO 唐宁从美国挖来的一位资深大数据专家,现在担任宜信大数据创新中心的总经理.在来宜信之前,Joyce 曾经服务过 Hulu.Microsoft 等公司,主

当 App Store 遇上电视,开发者的第四代 Apple TV 开箱体验

当 App Store 遇上电视,开发者的第四代 Apple TV 开箱体验 引子 2015 年 9 月,San Francisco.今年接近 100 华氏度的气温要比往年都更热,而 Apple 例行的秋季发布会也如期在这里举行.自从 iPhone 一战成名后,每年的 iPhone 旗舰机型都是移动通讯设备的业界标杆.而今年秋季发布会大家也自然地将重点放在了最新的 iPhone 6s 上.手机乏善可陈,除了硬件参数的一些常规升级外,我们并没有看到 iPhone 有多大进步.不过这也是大家预料之中

当草根站长遇上品牌运营公司时

笔者最近在优化一个汽车车位锁网站,关键词竞争度倒是不大,当笔者一查几个竞争对手时,发现除了有几个厂家外,居然还有一个品牌运营公司.当草根站长遇上团队作战,经验丰富的品牌运营公司时,笔者是如下分析与制定计划的. 一.网站整体分析 遇上车位锁品牌运营公司,笔者觉得分析网站不能只分析简单的seo数据.应该从网站设计与布局,流量导入,口碑营销与社会化营销等诸多分析. 1.网站结构与设计 该品牌运营公司的网站结构简单,设计简洁大气,也符合该公司定位中高端车位地锁用户.实际上,笔者公司也曾请人模仿了该站,但

快速浏览Silverlight3 Beta:当HLSL遇上Silverlight

HLSL高级着色器语言(High Level Shader Language,简称HLSL),由微软拥有及开发的一种语言,只能供微软的Direct3D使用. HLSL是微软抗衡GLSL的产品,同 时不能与OpenGL标准兼容.他跟Nvidia的Cg非常相似. 看了上面的几行话,可能大家还不是很清楚这个东西与当前的Silverlight的关系.其实在园子里的兄弟发过这篇文章,介绍"silverlight3滤镜效果". 而其在源码中所使用的.ps文件(注:这里不是powershell呀),