阅读更多

0顶
0踩

互联网
容器技术在过去一年中取得了令人瞩目的关注度,无论是个大技术论坛还是个大公司都对Docker投入了巨大的热情。 随后出现的CoreOS和Docker一样都是容器技术的重要组成部分,它们确实在操作系统功能特色方面做了很大的改变。

容器技术是的封装和分发应用程序非常容易,特别是基于基础设施云模式的应用场景中。容器相比它的前辈:虚拟机技术而言,更加的快速和简便,能够提供更快地启动时间和保持合理的隔离特性,确保机遇共享的基础设施上的不同应用能够有效的隔离和提供安全防护。容器也被优化用于在单一操作系统实例上用安全和兼容的模式运行多个应用程序。

那么问题有没有呢? 有。

传统的操作系统体积是比较大的,即使通过一些手段和技术瘦了下来,也相对来说比较重量级。如果你看看一个容器实例会发现只有几百兆大小,在托管应用方面,容器的优势是显而易见的。

而一个操作系统的副本意味着所有操作系统的服务和子系统,无论这些服务和子系统是必要的还是不需要的。这巨大的体积的冲突与更广泛的云市场的“微服务”发展趋势是相悖的,现在的服务发展趋势即要求提高安全性的需要,有要求一切操作尽可能快的完成。

因此,现在在传统的操作系统的容器技术可能会被新的技术取代,例如无核化UniKernels。Docker容器推荐一个容器一个服务single-service-per-container (microservices)的概念,而无核化UniKernel则会将这个想法带得更远。

无核化UniKernel允许你将所有包括操作系统都考虑到你的应用程序的编译和打包中,比如,如果你应用不需要持久磁盘的访问,那么设备驱动程序和OS有关磁盘使用的工具就可以不包含在生产Imag中,因为UniKernels 是为运行Xen等虚拟管理程序而设计的,它们只需要网络和磁盘的一些标准资源的接口,用于显示的数千个设备驱动 磁盘驱动等等都是不需要的。由此,生产系统变得最小化,只是需要应用代码 运行环境和应用必须的OS工具等等必备的,VM image文件变得更小,部署变得更快,更加易于维护。

从应用开发人员角度来说,UniKernels不需要一个操作系统的主机就能够部署应用程序,该UniKernel方法允许开发人员从一组服务库里面选择一种服务,该服务能够支撑应用的运行。这些服务链接库可以直接编译打包到应用程序中。

其结果是UniKernel模型本身可以完全去除除操作系统,允许应用程序直接运行在一个虚拟机或服务器的硬件。这是一个没有底层软件堆栈的模型,只有应用程序。

UniKernels无核化有一些非常重要的优势:

1. 空间大小有优势

不像虚拟机或容器,一个UniKernel只需要运行单一应用的底层支撑服务。我们知道容器小于VMS,但实际上他们仍然是相当大的,特别是如果一个应用不关心底层的操作系统映像时。一个800MB的应用程序去除底层各种内核和服务支撑,可能只有50MB大小。这意味着在网络上移动应用,其网络负载仍然非常大。在这样一个云数据中心的时代,数据在云中的流入和流出都需要花钱,而通过UniKernels无核化这不仅可以网络传输节省时间,而且可以节省真正的钱。

2. UniKernels启动速度快

最近实现UniKernel实例启动可以控制在20毫秒左右,这意味着UniKernel实例可以启动在接受的网络请求后几乎可以立刻提供服务。Anil Madhavapeddy领导的一个MirageOS项目名字叫JitSU,就是利用UniKernels来实现云中服务的快速启停。

3. 安全性更好

UniKernel无核化降低了系统的体积和复杂度,因此相对于Docker等容器技术安全性也更有优势,保证了应用程序不需要的其他组件不存在被攻击的风险。此外,UniKernels往往是“不可改变的,“这意味着一旦建成,改变它的唯一途径是重建,没有补丁或不可预测的变化,从而降低了系统部署后补丁管理的复杂度。

4. 兼容性优势

虽然大多数UniKernel设计一直专注于新的应用程序或能够基于该模型编写代码的应用,一些新的技术例如Rump Kernels提供把现有的应用程序运行在UniKernel服务之上能力。Rump的内核组件化能够操作系统的各子系统组建以及所需要的驱动程序打包,并将它们编译成应用程序之中去。

以上四种优势能够很好的支撑云化的发展趋势,例如:微服务、微内核、离散化,快速便携式应用实例迁移。像Docker和CoreOS技术把基础设施服务更好的微服务化,然而,这些服务仍然需要改变和进化,这也是像UniKernels灯技术发展的驱动力。

UniKernels的强大能力和简单化将会在未来的五年中产生深远的影响,它至少会补充我们目前称之为容器的技术,并逐步占领市场甚至完全取代Docker。我希望容器技术的狂热者们已经准备好了。

原文链接:Why unikernels will kill containers in five years(译者/张晓东 审校/朱正贵 责编/仲浩)

译者简介:张晓东,引跑科技副总裁,关注云计算领域。
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Docker实战演练

    现附上内容提纲如下: 什么是docker 更新(2023-04-17)-理解Docker重要概念 Docker的安装配置以及验证 Docker的基本应用 Docker容器的使用细节 Docker容器的使用 细节-2 如何在Docker中搭建Locust应用 Docker容器...

  • 【云快讯】Unikernel无核化五年后能否取代Docker

    去年,以Docker、CoreOS为代表的容器技术收获的盆满钵满,那么几年后会是什么来取代容器技术呢?

  • Docker技术 ( 容器虚拟化技术 )

    Docker虚拟化容器技术 第一章 Docker简介诞生背景Docker 介绍虚拟机技术容器虚拟化技术官方网址第二章 Docker安装前提条件安装DockerDocker底层原理Docker结构图工作原理Docker为什么比VM快第三章 Docker常用命令...

  • 不可变服务器和无核化unikernel ( by quqi99 )

    作者:张华 发表于:2015-11-16版权声明:可以任意...不可变服务器是一种部署模型,指的是在生产环境没有应用升级安全补丁和配置改变等等,如果这些层次中任何一项改变,一个新的image就需要重新构建,再发布到生产环节

  • 脚本自动化部署docker微服务,取代Jenkins

    由于Jenkins容器化部署,容器容器之间拷贝文件及其繁琐,如果在Jenkins部署在系统外层也需要配置复杂的流程才能实现微服务的自动化部署,本文主要通过脚本方式取代Jenkins实现自动化部署。脚本方式简单快捷,可以...

  • docker 常用命令大全

    Docker 常用命令大全

  • 【docker详解11】-docker可视化工具

    Portainer是一个可视化的Docker操作界面,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和...

  • docker入门(利用docker部署web应用)

    前言:本课程是在慕课网上学习 第一个docker化的java应用 课程时所做的笔记,供本人复习之用 目录 第一章 什么是docker 1.1 docker的发展史 1.2 docker国内应用史 1.3 什么是Docker 第二章 了解docker 2.1 ...

  • Docker+Jenkins一键自动化部署、超简单~

    1、卸载旧版本(有些系统可能会自带) yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 2、安装yum-...

  • Docker详解(十六)——Docker私有化仓库创建

    今天继续给大家介绍Linux运维相关知识,本文主要内容是Docker的私有化仓库创建。 一、Docker私有化仓库搭建准备 二、Docker仓库配置文件编写 三、Registry镜像搭建仓库 四、镜像上传 五、效果验证

  • docker入门,这一篇就够了。

    2w字的docker入门篇,作者花了半个月时间才写完的,希望对大家学习docker有一定的帮助!

  • Docker使用(五) — Docker部署安装Mysql

    Docker部署安装Mysql

  • 【Docker】五 Docker Hub管理镜像

    Nexus是一个多功能的仓库管理器,是企业常用的私有仓库服务器软件。目前常被用来作为Maven私服、Docker私服。本文基于 Nexus 3.5.2-01 版本进行讲解。

  • docker容器化部署

    Docker是Google使用go语言开发出来的一个开源的应用容器引擎,可以让开发者快速的打包应用程序及相应的依赖程序到一个轻量级、可移植的容器中,再发布容器到任意的服务器上(Linux与Windows都支持Docker)。...

  • Docker之可视化工具Docker UI

    基于docker API有很多图形化工具可以使用,今天我们用到的这款工具叫做docker UI. Docker UI有如下特点: 可对容器进行批量操作 可以监控容器各个资源 部署和管理都比较方便 缺点是不支持多主机管理 Docker UI WEb...

  • Linux安装Docker完整教程

    Linux安装Docker

  • Docker(四):Docker可视化管理工具

    Docker可视化管理工具

  • Ubuntu安装docker

    1.先卸载旧版,如果没有的话,就不用执行了,直接第二步。 2.在终端输入 3.安装证书 4.写入软件源信息 ... 参考:ubuntu 安装 docker 详细步骤_tiahaole的博客-CSDN博客_ubuntu安装docker.........

  • 【云原生】Docker部署数据库的持久化

    容器部署非常方便,卸载更是简单。所以,对于数据库这种需要持久化的数据来说,还需要看下如何才能防止因为容器的删除或损坏导致数据的丢失。

Global site tag (gtag.js) - Google Analytics