从CoreOS到Nano:微操作系统全面降临容器平台

译文
云计算
时至今日,一场面向云技术领域的操作系统王者之战已经全面展开。但您猜怎么着?没有任何一套传统操作系统方案能够在竞争当中直接胜出!

[[139558]]

一堵新近构建的微型砖墙。

CoreOS、红帽、Ubuntu、VMware、Rancher以及微软等厂商都在以自家独有的方式打造分拆式、面向容器的云规模操作系统。

时至今日,一场面向云技术领域的操作系统王者之战已经全面展开。但您猜怎么着?没有任何一套传统操作系统方案能够在竞争当中直接胜出!

之所以传统操作系统无法在这片战场上取胜,是因为它们在设计当中并未纳入云考量要素——换言之,它们太过臃肿。因此,一系列超级精简且只满足最低限度需求的新型操作系统正陆续出炉,并将在云领域为现有厂商重新排个座次。

备注:我们会把这些只包含最低限度功能的操作系统称为微操作系统。大家可能也遇到过将其称为容器操作系统的情况——这也没错,毕竟其设计目标是运行在容器环境当中。

为了具备现实意义,云环境拥有三大考量重点——密度、弹性以及安全性。很明显,云计算当中涉及诸多重要元素,但密度、弹性与安全性无疑是其中最为核心的特质所在。

也正是这三项要素预示着传统操作系统将在云环境下失去统治地位,而微操作系统则在这里成为冉冉升起的新星。

微操作系统到底是什么?

概括地讲,微操作系统其实是一款专门针对一种目标——即服务器工作负载——且只针对这一种目标设计而成的操作系统。其中没有任何额外的点缀性内容,例如华丽的图形用户界面、桌面生产力应用程序甚至是服务器服务等等,这一切对于微操作系统都是不必要的负担。没错,微操作系统就是这样一套拆分式、尽可能精简且不带任何非必要元素的操作系统。

微操作系统的一大核心宗旨在于以更低的自身体积实现更高功能密度以及更出色的安全性水平。或者从另一种方式来看,由更低自身体积带来更少复杂性元素、更少安全漏洞、更低补丁需求、更少重启次数以及更短的启动时间……总体而言,就是尽可能降低资源浪费。

而且虽然这一切都立足于Linux世界,但这场云环境当中的系统王者之争已经趋于白热化,甚至影响到了Windows领域。每个人都希望能够在这场决定新时代霸主人选的角逐中脱颖而出。

在今天的文章中,我们将评测目前这场令人血脉贲张的微操作系统竞争当中最为重要且极具吸引力的几位参赛选手。

CoreOS

首先,任何围绕现代微操作系统议题所展开的讨论往往都会以CoreOS作为起点。而在我看来,将CoreOS称为当下云环境中第一款具有切实影响力的微操作系统也绝非言过其实。

从高层角度来看,CoreOS其实是一款拆分式Linux发行版,其设计目的在于同容器技术相协作——其最初使用Docker容器引擎,但最近开始使用自家打造的rkt容器引擎。(备注:rkt的发音应为‘rocket’,即火箭。)无论配合哪种容器技术,这种对容器机制的高度倾斜使得CoreOS能够摆脱软件包管理器以及其它不再必要的载入内容,从而将自身的体积控制在相当体贴的161 MB水平(这一体积为截稿时最新稳定版本的实际大小)。

有鉴于此,CoreOS体积非常小巧且专门面向容器进行设计。不过CoreOS Linux发行版还仅仅属于CoreOS公司预期成果的组成部分之一。该公司的预期目标可以归纳成以下两项重点:

  • 保护云及互联网安全
  • 为公众带来谷歌式的基础设施方案

说起保护云及互联网安全这信议题,尽可能简化更新机制绝对进CoreOS的核心价值取向之一。这款操作系统的更新以镜像为基础,这意味着用户可以随时对其进行更新,而完整的系统镜像也将由此实现更新。相较于对多个独立软件包及服务进行升级,CoreOS选择了直接对系统镜像以及容器进行整体更新的办法。事实证明这是一种非常理想的系统更新方案,而且使得管理员能够在必要时更轻松地实时回滚。

而在谷歌式基础设施方面,CoreOS提供一整套服务套件、用于编排可扩展性容器生态系统并提供覆盖网络——具体包括etcd、fleet以及flannel等技术方案。

总体而言,CoreOS是一款历史最为悠久的微操作系统,其设计目标符合容器以及当前云工作负载的实际要求。此外,它还拥有小巧的体积并支持基于镜像的原子式更新机制。

#p#

Atomic项目

不甘于人后的红帽公司也拿出了自己的社区项目,名为Atomic项目。该项目的主旨在于打造出针对云及容器环境进行过优化的Fedora、RHEL以及CentOS版本:

  • Fedora Atomic Host
  • RHEL Atomic Host
  • CentOS Atomic Host

Fedora Atomic Host是一切新鲜创意被转化为现实的前沿性实验平台。RHEL Atomic Host则从Fedora Atomic Host当中提取自己需要的元素,并将其封装在一套企业级绑定集当中。CentOS Atomic Host则属于由社区支持的RHEL Atomic Host版本。

与CoreOS类似,Atomic Host同样属于以容器为核心、面向云环境进行优化的64位服务器。不过“Atomic”,也就是原子,这一用词显然与该服务器的实际体积并无关联。考虑到这一事实,我们发现Atomic Host在与其它微操作系统进行比拼时,在体积方面恐怕略微处于劣势。一套CentOS Atomic Host的镜像在压缩后一般在数百MB区间,而未压缩版本的体积则约为1GB。

很明显,“Atomic”一词来自于其更新方式。与CoreOS类似,Atomic Host支持基于镜像的更新机制。

总体而言,Atomic项目提供面向云以及容器环境进行优化的Fedora Linux、RHEL以及CentOS版本,其采用Docker容器引擎并支持基于镜像的更新机制。

Snappy Ubuntu Core

就在全世界刚刚开始为云计算如痴如狂时,这款新型微操作系统恰好应时而生,Canonical公司(也就是Ubuntu Linux的持有方)的工作人员努力希望为智能手机及平板设备打造一款Ubuntu精简版本。而接下来的故事却峰回路转……当Ubuntu意识到自身需要面向云及容器环境拿出一套经过优化的微操作系统方案时,才发现自己早已出于不同理由而做好了充分的准备。

让咱们长话短说,这就是Snappy Ubuntu Core的来历。从技术角度看,这是一套经过拆分的Ubuntu Server版本,其压缩后的镜像体积约在100MB左右。不出所料,Snappy使用的是Docker容器引擎,同时支持基于镜像的更新机制。

说到这里,我们似乎看到了微操作系统的固有发展模式。

VMware的Photon项目

作为一家专业打造趋势性、稳定可靠的企业级产品的厂商,VMware公司也已经加入到这场微操作系统混战中来,其产品代号为Photon项目。Photon目前尚处于技术预览阶段,只提供社区支持。

Photon项目是一套拆分式Linux发行版,通过优化运行于VMware vSphere之上并利用VMware生态系统实现补丁安装与更新,同时具备基于身份的访问管理机制。其安装选项由体积为260MB的“微型”镜像到1.7GB的完整安装项目不一而足。

除了Docker之外,Photon还能够支持rkt与Garden容器引擎,后者为Pivotal公司Cloud Foundry所采用的容器格式。Photon不仅支持基于镜像的更新机制,同时也包含有更为传统的yum类软件包管理器。

事实上,Photon项目专门针对vSphere运行进行了优化(包括相关驱动程序以及经过调整的内核),其效果也相当值得称道。不过Photon项目真正的杀手级功能在于其背后强大的VMware支持以及与vSphere生态系统的集成能力。

如果大家所在企业已经是VMware公司的客户且保持有较为谨慎的新型技术引入态度,那么Photon项目可能会是大家跟进容器发展趋势的最佳平台。

RancherOS

好了,现在开始说点别的……

RancherOS(来自Rancher实验室)的知名度显然无法与前面几位选手相提并论,但其将云与窗口集成水平带入了新的高度。

首先,它的体积实在小巧到令人喜出望外——只有20MB左右,这对于一款云优化型服务器平台来说简直值得大加赞赏。不过这还不是其最酷的方面……真正的亮点在于RancherOS集成Docker的具体方式。

让我们先做一番回顾。前面提到的CoreOS、Atomic Host、Snappy Ubuntu Core以及Photon项目都采用Linux内核,配备一系列系统服务而后在此基础上部署容器运行时环境。但RancherOS所另辟了一条蹊径。在启动Linux内核之后,它会生成一套被称为system-docker的特定Docker实例,并将所有系统服务以容器方式加以运行。没错,大家没有看错。在RancherOS当中,Linux内核只是一种引导机制,并随后生成一个system-docker进程。该system-docker进程获取PID 1并负责将所有与系统相关的进程以容器方式启动——类似于udev以及syslog。

毫无疑问,RancherOS是一款非常有趣而且极具创新特性的解决方案,它构建起的云优化型操作系统开创了属于自己的解决思路。更不用说它是我们目前见到过的体积最为小巧的微操作系统,同时拥有最为紧密的容器引擎集成效果(Docker)。因此从个人角度来讲,我强烈建议大家对这套方案加以认真审视。

Windows Nano Server

最后但同样重要的就是微软拿出的解决方案了。由于不想放任Linux在云以及容器生态系统当中一家独大,微软公司最近发布了其自主开发的微操作系统,名为Windows Nano Server(目前的规划是在2016年年内推出通用版本)。

由于意识到Windows Server Core已经在正确的方向上迈出了重要一步——虽然只是小小的一步——微软公司开始以Nano Server为平台将精简水平提升到新的高度。Nano据称属于Windows Server的一套拆分版本,而且微软官方承诺称其“VHD体积缩小了93%,重要公告减少92%,而重启次数亦降低了80%。”

作为实现这一系列体积压缩的必要牺牲品,Nano Server显然不提供GUI方案。事实上,它甚至不提供本地CLI或者PowerShell机制——所有管理工作都需要通过WMI、PowerShell Remote或者即将推出的Web管理工具以远程方式实现。软件包安装与更新则由DISM负责处理,也就是微软公司的镜像管理工具。

我们还可以期待Nano Server针对各类容器作出优化——微软公司此前已经公布了相关技术,但目前仍未正式推出。

综合以上几点,Nano Server的最终成果似乎已经可以预见。而微软方面这次似乎是把可资利用的一切都投入到了云与容器技术领域。

#p#

至精至简的云设备

就目前来看,最可能出现的结果就是未来的云体系都将由轻量化服务器以及容器化应用程序所支撑,而微操作系统与容器则在其中居于核心位置。考虑到这一点,让我们快速浏览由此带来的潜在影响。

首先,这些微操作系统的小巧体积自然会使其受攻击面亦相应减小——也就是易受恶意软件侵袭的目标代码更少。这同时意味着需要安装补丁的代码比例更低,重启次数更少且启动速度更快。这应该也会让操作系统的运营状态更加稳定。毕竟一套体积仅为100MB的代码库,其维护及故障排查难度要远低于高达1GB级别的大型操作系统。

其次,基于镜像的更新机制又是另一项巨大进步。在漫长复杂的过程中不断面对各种变更、对个别软件包进行调整并遭遇可怕的潜在系统稳定性影响的传统操作系统更新方式已经彻底成为历史。基于镜像的更新机制会允许我们对操作系统进行整体更新——包括所有系统相关软件包——而且整个过程一步到位。这就消除了应用更新时可能出现的各种复杂性因素,同时也简化了大规模回滚的实施过程。

回滚的简化效果分两个分区——第一分区用于保存更新后的系统镜像,另一分区则存储着现有运行良好的配置方案。在应用一项更新之后,当我们下一次重新启动该操作系统时,它会利用更新后的分区进行备份。如果遇到问题,操作系统可以立即回滚到原本能够正常运作的分区。基于镜像的更新机制不仅有助于简化更新及回滚流程,同时也能帮助我们在大型集群当中保证所有设备处于一致性状态之下——这就让大规模集群的更新工作变得更易于打理。

而在容器方面,大家应当考虑相关系统方案支持哪一种容器运行时。截至撰稿之时,一部分微操作系统仍然稳坐Docker阵营当中,但也有一部分同时支持Docker与CoreOS rkt。大家应当谨慎分析,考虑哪种容器运行时最适合自己的业务流程与应用程序。

最后,我们需要认真了解这些微操作系统的管理方式——毕竟这是一个全新的领域。RancherOS的管理工作从本质上讲其实就是在管理Docker容器。CoreOS公司则乐于帮助客户负担起这些操作系统的管理工作——也就是操作系统即服务这一业务范畴。即使是在Windows Nano Server——在这里,全部配置工作都需要以远程方式实现——我们也完全能够以更简单、更加自动化的方式处理部署与配置任务。当然,无论是由CoreOS负责管理我们的操作系统,还是由我们自己亲手负责相关工作,大家都可以由此省出更多时间和精力,并将其投入到应用程序当中。

原文标题:From CoreOS to Nano: Micro OSes strip down for containers


 

责任编辑:Ophira 来源: 51CTO
相关推荐

2013-08-26 09:31:49

2012-07-13 09:35:46

2010-04-16 16:25:43

2010-04-23 16:08:24

Aix操作系统

2009-12-11 16:53:52

Linux操作系统

2019-07-08 18:23:45

Windows操作系统功能

2010-04-29 14:08:38

Unix操作系统

2022-08-01 07:09:48

Docker操作系统抽象重组

2009-10-23 09:12:23

CLR与操作系统关系

2010-03-04 16:32:33

Google Andr

2013-02-28 14:51:01

2015-01-19 14:14:59

dockercoreosvagrant

2010-04-22 14:53:07

Aix操作系统

2010-04-22 14:45:31

Aix操作系统

2010-04-15 15:46:57

Unix操作系统

2015-05-05 14:16:22

容器技术CoreOSGoogle

2015-04-08 10:30:48

CoreOSGoogleLinux容器云平台

2010-03-05 10:31:33

Android OS

2009-12-10 15:53:15

Linux操作系统平台

2020-12-16 17:25:11

鸿蒙HarmonyOS操作系统
点赞
收藏

51CTO技术栈公众号