下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

关于针对Docker的7个Unikernel项目

作者:课课家教育     来源: http://www.kokojia.com点击数:1353发布时间: 2017-10-18 11:00:13

标签: 云服务Docker云计算

  欢迎各位阅读本篇文章,本篇文章讲述了关于针对Docker的7个Unikernel项目,课课家教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!

  Docker和Linux容器技术如今备受媒体关注,这种强大而简易的方法可用来封装应用程序,尤其是由于云计算变得更主流。虽然这类技术仍在发展之中,但它们提供了一种简单、干净又精简的方式来分配应用程序工作负载。

  随着容器创新方面的热情越来越高涨,一种名为Unikernel的相关技术也开始引起注意。Unikernel又以能够在组件层面干净利落地分离功能而著称,它正带来众多新的方法以部署云服务

  传统的操作系统在单一机器上运行多个应用程序,管理资源,并将应用程序彼此隔离开来。Unikernel则在单一虚拟机上运行单一应用程序,改而依赖虚拟机管理程序(hypervisor)来隔离那些虚拟机。Unikernel通过使用“库操作系统”来构建,开发人员只要选择应用程序运行所需的一组最基本的服务即可。这些密封的、用途固定的映像直接在虚拟机管理程序上运行,没有像Linux这种干预性的访客操作系统。

关于针对Docker的7个Unikernel项目_云服务_Docker_云计算_课课家教育

  Unikernel图解

  除了改进容器技术外,Unikernel还能够为跨平台环境、大数据分析和横向扩展型云计算带来出色的灵活性、速度和多功能性。与基于容器的解决方案一样,这项技术兑现了易于部署的承诺,但是Unikernel还提供了极其小巧的、专门的运行时环境,受到攻击的可能性要小得多。

  今年有几个新兴的开源项目值得关注,其中包括ClickOS、Clive、HaLVM、LING、MirageOS、Rump Kernels和OSv,每一个项目都注重Unikernel方法的不同方面。比如说,MirageOS和HaLVM采取了全新设计(clean-slate)的方法,专注于安全性,ClickOS注重速度,而OSv和Rump Kernels旨在与老式软件兼容。若使用现有的整体式操作系统,不可能获得这类灵活的方法,现有的整体式操作系统已积累了数十年的假设和取舍。

  Unikernel如何能够提供更好的安全性?各种Unikernel实现技术采取的方法有何不同?如今谁在使用这项技术?它给云和数据中心运营方带来的主要好处有哪些?虚拟机管理程序上的Unikernel会取代容器吗,还是说企业会结合使用这三种技术?如果是这样,如何结合使用,为何结合使用?后续文章会逐一解答这些问题,并给出这些新兴项目背后的主要开发人员的真知灼见。

  ClickOS:

ClickOS

  这是一种极简、定制的虚拟化操作系统,旨在运行基于Click的中间设备(middlebox)。

  最近的网络功能虚拟化(NFV)潮流有望将中间设备处理从基于硬件的设备向在廉价的大众化硬件(比如配备万兆网卡的x86服务器)上运行的软件转变。ClickOS正是为实现这个目的而开发的一种高性能虚拟化软件中间设备平台。它包括在MiniOS(一种源自Xen的极简操作系统)上运行的Click模块化路由器软件,另外对网络输入/输出进行了优化,以便为几乎所有大小的数据包提供万兆吞吐率。这些虚拟机很小巧(6MB),启动速度快(大约30毫秒),增加的延迟很短(45微秒)。构建操作系统映像需要工具链(toolchain),而工具堆栈(toolstack)可以在数毫秒内启动虚拟机。

  Clive:

  Clive的口号是:消除云中的大部分软件堆栈。

  Clive是一款操作系统,旨在可以在分布式和云计算环境下工作。

  它的主要设计准则如下:

  云中没有软件堆栈。应用程序和服务连同库一起编译,库允许应用程序和服务可以在裸机硬件上运行。

  系统接口按照类似CSP的方式来设计。应用程序和组件通过通道(channel)来对话,而通道与网络、管道及其他任何输入/输出工件实现连接。

  这种设计主要归功于Plan 9和Nix。

  这个项目刚开始,不过已经有一些软件和说明文档。

  Clive文档草案(http://lsub.org/export/clivesys.pdf)介绍了这个系统。

  使用手册(http://lsub.org/sys/man/)详细记载了程序包和命令。

  用来编译Clive软件的修改后的go编译器可以使用如下命令来下载和安装:

  git clonegit://git.lsub.org/golang.git golang

  cd golang

  git checkoutlsub

  GOROOT=`pwd`

  cd src

  all.bash

  clive软件可以使用如下命令来下载:

  git clone git://git.lsub.org/clive.git clive

  cd clive

  HaLVM:

HaLVM

  Haskell轻量级虚拟机(HaLVM))是Glasgow Haskell Compiler工具套件的移植版,该工具套件让开发人员可以编写高级的轻量级虚拟机,可在Xen虚拟机管理程序上直接运行。

  虽然Galois最初设计HaLVM的初衷是便于快速、轻松地为操作系统组件建立原型,但是它取得了长足发展,现在支持一系列广泛得多的使用场合。比如说,如果结合适当的库,HaLVM就能作为网络设备来运行。

  LING:

LING

  LING是一种新的Erlang平台,可以直接在Xen上运行。你可以减少管理难题,提升安全和性能。

  LING与Erlang/OTP高度兼容,可以理解.beam文件。

  LING启动到外壳只需不到100毫秒。实例可以在请求后启动。LING是扩展性超强的云的构建模块。

  LING消除了大多数攻击途径。它只使用3个外部库,不使用OpenSSL。文件系统具有只读属性。

  MirageOS:

MirageOS

  MirageOS是一种库操作系统,它可以为跨众多云计算和移动平台运行的安全、高性能的网络应用程序构建Unikernel。可以在Linux和MacOS X之类的平常操作系统上开发代码,然后编译成完全独立、专门的Unikernel,可在Xen虚拟机管理程序下运行。

  由于Xen支持大多数公有云计算基础设施,比如亚马逊EC2或Rackspace,这样一来,相比使用全面软件堆栈的系统,你的服务器运行起来成本更低、安全性更高,可以实现更精细化的控制。

  MirageOS使用OCaml语言,代码库提供了开发过程中适用于Unix下的网络、存储和并发支持,但是编译后可以变成操作系统驱动程序,部署到生产环境中。该框架完全是事件驱动型,不支持抢占式线程。

  MirageOS 1.0已在2013年12月发布,随后在2014年7月发布了MirageOS2.0。

  Rump Kernels:

Rump Kernels

  Rump Kernels让你能够构建所需的软件堆栈,而不会迫使你重新发明轮子。软件堆栈需要类似驱动程序的组件,它们按传统方式紧密组合到操作系统里面――即使你不想要某个操作系统的限制和基础设施开销,也确实需要驱动程序。

  Pump Kernels解决这个问题的办法是,提供了免费、可重复使用、组件化、内核质量的驱动程序,比如文件系统、POSIX系统调用、PCI设备驱动程序以及TCP/IP和SCSI协议堆栈。Rumprun Unikernel是一种随时可投入到生产环境的技术,它只有几千行代码,外加Rump Kernel组件,支持POSIX化的软件直接在原始硬件和云虚拟机管理程序(比如KVM和Xen)上运行。Rump Kernels还可以集成到第三方平台中。

  OSv:

OSv

  OSv是一种为云设计的开源操作系统。它是从头开始全新设计的,旨在实现轻松部署和管理,性能很出众。

  OSv减少了传统操作系统带来的内存和处理器开销。调度很轻盈,应用程序和内核协同运行,内存池共享。OSv提供了无与伦比的短延迟和稳定性能,这减少了操作系统实例的大小和数量,直接节省了资本开支。

  语言运行时环境、操作系统和虚拟机管理程序都提供了保护和抽象机制。OSv简化了操作系统,从而尽量减少了这几层的冗余。

  知识分享:安全

  确保Docker环境安全

  Docker十分火热,很多人表示很少见如此能够吸引行业兴趣的新兴技术。然而,当兴奋转化为实际部署时,企业需要注意Docker的安全性。

  了解Docker的人都知道,Docker利用容器将资源进行有效隔离。因此容器相当于与Linux OS和hypervisor有着几乎相同的安全运行管理和配置管理级别。但当涉及到安全运营与管理,以及具有保密性、完整性和可用性的通用控件的支持时,Docker可能会让你失望。

  当容器运行在本地系统上时,企业可以通过其安全规则确保安全性。但一旦容器运行在云端,事实就不会如此简单了。

  当Docker运行在云提供商平台上时,安全性变得更加复杂。你需要知道云提供商正在做什么,或许你正在与别人共享一台机器。

  虽然容器没有内置的安全因素,而且像Docker这样的新兴技术很难有比较全面的安全措施,但这并不意味着以后也不会出现。

  确保容器部署安全性

  也有专家将Docker安全问题的实质定位于配置安全,认为Docker目前的问题是很难配置一个安全的容器。虽然现在Docker的开发人员通过创建非常小的容器来降低攻击面,但问题在于大型企业内部在生产环境中运行Docker容器的员工需要有更多的可见性和可控性。

  专家认为,大约90%的外部网络攻击并不是超级复杂的,攻击者多是利用了管理员的行为漏洞,比如配置错误或者未及时安装补丁。

  因此,企业在部署数千或数万台容器时,能够确保这些容器都遵守企业安全策略进行配置是至关重要的事情。

  为解决这个问题,就需要增加Docker容器部署的实时可见性,同时实施企业制定的安全策略。 [9]

  硬件上的Docker安全中心

  在新的功能中有硬件的部分,可以 跨任何基础架构,允许开发和随后的升级中的数字编码签名。构建在Docker Trust框架之上用来进行镜像发布者认证,同时进行新的镜像扫描和官方漏洞检测,以便能够更好地理解容器内部是什么。

  命名空间是本周发布的另外一个Docker安全升级。允许IT运用来为基于用户群组的容器指派授权,约束了主机的访问根源,并指定了系统管理员,限制了群组对于指定服务的访问。

  镜像扫描对于Docker Hub上的所有官方版本都可用,同时命名空间和硬件签名则在Docker的实验渠道提供。

  安全问题仍旧是容器采纳要解决的最大问题,尤其是如果大量容器是便携的,IDC研究经理Larry Carvalho说道。通过硬件解决这个问题很明智,因为这样更难以介入,并且提供了未来可能被使用的大量容器的效率。

  小结:相信最后大家阅读完毕本篇文章,肯定学到了不少知识吧?其实大家私下还得多多自学,当然如果大家还想了解更多方面的详细内容的话呢,不妨关注课课家教育平台,在这个学习知识的天堂中,您肯定会有意想不到的收获的

赞(13)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程