你是否需要一个容器专用的 Linux 发行版本?

2015-07-23 10:21


单单使用容器是不够的,提供商们认为你需要一个容器专用的Linux发行版本。

我们可以让容器在不同的操作系统上运行,不同的操作系统都有自己的虚拟化服务,如:Solaris Zones、BSD Jails、Linux Docker(Windows现在也支持Docker了)、Linux OpenVZ等等。特别是在Docker和容器技术突然流行开来,操作系统公司正在采取不同的策略。他们认为,大部分容器,应该用瘦操作系统制作。

为什么?(当然,除了给他们一个新的收入来源)

Alex Polvi,CoreOS的CEO,第一个发行了针对轻量级、容器友好的Linux系统的Linux公司,解释道:”我们认为我们可以进一步让容器达到操作系统无关“

如何办到?Polvi意识到容器可以将应用程序与操作系统隔离,使宿主操作系统切换不影响应用程序正常运行。为了让容器更有效的运行,你会希望宿主操作系统只提供满足容器运行的最少服务。

然后,从谷歌是如何更新Chrome OS中可以借鉴(请注意,CoreOS一开始就是fork自Chrome OS的),Polvi认为容器服务器也可以自动更新,相应的,也会极大提升操作系统打补丁的速度。

所以,Polvi继续说道,”如果所有这些都能自动更新,你再也不用担心?CoreOS就像一个有组织的团体,帮你维护操作系统,你只需要关注应用程序的正常运行。”

所以,CoreOS所做的,或者其他操作系统现在或者将来要做的,就是维护一个非常小的操作系统内核,只提供最基础的服务。在这种模式下,无需操作系统更新升级。取而代之的是,等待服务器关闭,由于在云端,总会有其他的服务器接管容器,等接管完成后,可以将旧的OS替换成新的版本。

这种方式可以快速提供最新的更新,用户感知不到任何停机时间的。有了这个机制,你也可以提供一个跨整个数据中心或云的一致的操作系统,不存在集群中有系统没打补丁,或者补丁不一致.

这种方法的另一个优点是,如果新版本出现了什么问题,你可以随时回滚到一个先前的、安全的版本。正如Red Hat公司产品技术总裁Paul Cormier在最近的博客文章中说,“Linux的容器,扩充和依赖取决于操作系统的一致性。”

这个想法已经深入民心。现在,除了CoreOS,红帽Red Hat Enterprise Linux 7 Atomic Host (RHELAH)、Canonical公司Ubuntu Core,惊人的是,VMware也将发行它的第一个Linux发行版Photon。

此外,如果有人只想试用Docker容器可以使用boot2docker。这个微小的Linux发行版仅有27Megabytes大小。它是基于Tiny Core Linux,并且是专门为运行Docker容器定制的。

容器友好的操作系统有一个共同点,对于Docker来说:

  • 通过事务升级/回滚语义来保证稳定性;
  • 传统的包管理器不存在,且可以通过新的打包系统(Snappy)或自定义镜像构建(Atomic)所取代;
  • 安全性是通过各种隔离机制来保证;
  • Systemd提供了系统启动和管理。

那么,他们彼此又是如何的不同?这仍然需要一些时日去发展。即使是其中最古老的操作系统CoreOS,也还没有达到它的第二个生日呢。以下是迄今为止我们所知道。

 

图片来自:lickr/Jonas Smith

CoreOS

Polvi在接受采访时说, "CoreOS从一开始就设计为“可自动更新的服务器,这和人们之前所认识的服务器很不同。如果一切正常,我们认为我们可能解锁了很多价值,它拥有安全性、可靠性、性能,所有最新版本软件所具有的一切。“

CoreOS设法使用FastPatch做到这一点。这样,更新的时候是直接更新完整的系统,而不是一个又一个的升级补丁。

至于容器,CoreOS开始作为Docker的最好的朋友。但随后,Polvi说,“Docker开始成为一个平台,在其本身,因此它会与现有的平台竞争。这很好。我明白,如果他们想建立一个平台,作为一个公司,这有很大的商业意义。问题是,对于构建平台,我们仍然需要的是一个简单的组件。“

在2014年十二月Polvi解释说:“我们以为Docker会成为一个简单的单元,我们都同意。不幸的是,一个简单的可重复使用的组件变得越来越复杂。现在Docker正在开发启动云服务的工具,用于云计算的服务器,系统集群和很多其他的功能:构建镜像、运行镜像、上传、下载,并最终甚至覆盖网络,所有编译成一个整体的二进制程序作为root权限运行在服务器上...这不是我们曾设想的像使用组合积木一样简单。“因此,CoreOS开发了自己的容器Rocket。

CoreOS仍然还是支持Docker的,但是很快的Rocket将成为其主要的容器。

RHELAH

红帽还看到了一支精干的技术优势,是指Linux操作系统。他们开始做这个工作,那就是 项目Atom。这个开源的操作系统,目前可以选择是基于Fedora、CentOS,或者是RHEL。

在此基础上,红帽开发了RHELAH。这个操作系统是基于在RHEL7。它具有像镜像一样原子更新和回滚的功能。红帽为Docker贡献了自己的容器技术。

据红帽所公布的资料,RHELAH拥有超过其竞争对手的许多优点。这包括能够“直接运行在硬件以及公共或私人虚拟化基础架构。”此外,红帽添加了对SELinux的支持,提高了系统安全性。

Ubuntu Core

Canonical,创建Ubuntu的公司,正在尝试与CoreOS和Red Hat不同的方法。当然它也有写部分与其他的是相似的。 Canonical公司声称:“Ubuntu Core是最小的、负载最低的Ubuntu,完美适合超高密度容器云计算,Docker的应用程序部署或平台即服务(PaaS)的云环境。Ubuntu Core是专们为效率所开发,具有最小的运行时占用空间,拥有同行业中最好的安全配置文件:这是一个引擎、底盘和车轮,没有奢侈品,正是您所需要的大规模并行系统。“

虽然你可以通过镜像更新Ubuntu core和“Snappy”的应用程序,Canonical的Snappy包管理系统使用元数据文件和构建工具来创建一个新的Snappy的应用程序。”据Ubuntu的创始人Mark Shuttleworth所说,“这个短小精悍的系统使Ubuntu的各部分保持独立,只读文件,并且每个应用程序都是如此。这样,开发人员可以确信所有他们应用程序所需要的,将完全按照他们所预想一样正常运行,我们可以采取措施来保持各种应用程序彼此隔离,并确保更新总是完美的。

此外,Ubuntu使用AppArmor的内核系统来保证安全性。理想情况下,在snappy版本的Ubuntu中,应用程序是完全彼此隔离的。

VMware Photon

还记得VMware的联合创始人Mendel Rosenblum曾表示,操作系统早在2007年已经过时?我也这么认为。然而事情发生了变化。Rosenblum说对了一半,虚拟化技术正在改变世界 - 没有它我们不会有云服务,但操作系统仍和以前一样重要。所以,也许这并不奇怪,面对容器浪潮,VMware已经采用了这两种容器技术,并发布了自己的第一个Alpha版本Linux操作系统Photon。

当然VMware并没有放弃它的虚拟机(VM)的方式——Photon目前只能运行在VMware vSphere和VMware vCloud Air。总之,VMware的认为,应该在虚拟机上运行容器,而不是在原生操作系统上运行容器,这是未来的发展方向。那么,考虑到其商业模式,当然VMware的一样。

该公司是两面下注,加入到容器技术。 VMware正在支持Docker、CoreOS Rocket和Pivotal's Garden容器格式。

VMware还发布了Lightwave,一种容器的身份和访问管理方案。

那么,哪一个会胜出?你会选择哪一種容器?

我也不知道。

我确实不知道。

CoreOS显然已比别人有更多的经验。他们也是迄今为止体积最小、最年轻的公司。红帽带来了可观的资源来提高我们的服务,但Canonical公司并没有懈怠。至于VMware的,他们才刚开始加入容器技术,但他们非常了解虚拟化技术的前世今生。

这些都是在一个新的领域的新项目。我会去尝试所有这些这项,看我自己的IT需求,然后决定其中哪些是值得一试的程序。那是什么?你想要立即在你们公司内部应用?我不这么认为!这些技术都不太成熟。