科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件深层探索Nano Server——微软打造的新型袖珍云操作系统

深层探索Nano Server——微软打造的新型袖珍云操作系统

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Nano Server提供了一套能够与Windows Server相兼容、但同时又仅仅包含最低组件涵盖范畴的精简平台。作为该产品的首套版本,微软的工程技术团队将关注重点牢牢控制在两大主要场景身上:云基础设施与云环境内开发而成的应用程序。

来源:ZDNet软件频道 2015年5月4日

关键字: 云操作系统 Build 2015 Nano Server Windows Server 微软

  • 评论
  • 分享微博
  • 分享邮件

ZDNet至顶网软件频道编译:毫无疑问,这已经不再是父辈们所熟知的那个Windows Server了。

深层探索Nano Server——微软打造的新型袖珍云操作系统

来自微软Windows Server开发团队的工程技术人员们在Build开发者大会上大放异彩。借助这一舞台,他们分享了大量与Nano Server相关的细节信息。顺带一提,Nano Server是Server家族的一位新成员兼微型版本,旨在将其带入云部署领域。

“就目前而言,Nano Server已经成为我们继Windows NT以来在Server家族当中所实现的最重要、也最显著的变更方案,”微软公司一位杰出工程师Jeffrey Snover宣称。

我们最初是在本月早些时候听闻这一来自微软的服务器操作系统全新迭代方案的,不过Nano Server并不会在2016年Windows Server下个主要版本步入通用阶段之前与我们正式见面。

作为一套设计灵感源自CoreOS、红帽Atomic Host以及“Snappy” Ubuntu Core等小规模、以云为核心的Linux发行版的系统方案,Nano Server提供一套能够与Windows Server相兼容、但同时又仅仅包含最低组件涵盖范畴的精简平台。就在本周四,Snover与Windows Server项目经理Andrew Mason从实践角度出发阐述了这款新系统的运作方式。

Nano Server代表着Windows Server的未来发展方向

Snover给出的一项重要说明在于,Nano Server绝不是Windows Server开发团队的什么并行项目或者实验性产物。相反,Nano Server是其大规模代码重构项目的首套直观可见成果,且其最终将改变Windows Server各个版本的构建方式与交付途径。

作为该产品的首套版本,工程技术团队将关注重点牢牢控制在两大主要场景身上:云基础设施与云环境内开发而成的应用程序。不过展望未来,Nano Server将最终成为Windows Server的一种新基准,而所有更为复杂的组件都将以此为起点进一步构建完成。

“它(Nano Server)真的作为所有组件的基石而存在,承载着一切未来的发展目标,”Snover指出。“我们希望打造出一款‘刚刚够用’的操作系统模型。如果大家在运行一款应用程序时需要总计5 GB的其它组件作为配合,没问题; 就选定这5 GB组件,而用不着非要使用10 GB。而如果大家实际需要的只有900 MB,那么只用这900 MB就完全可以了。”

但目前的Windows Server版本还无法帮助大家实现以上诉求。它们会将一切杂七杂八的东西全部塞进各位的磁盘,无论我们是否真的需要。正是因为这样,我们在启用一项功能时——例如互联网信息服务器——Windows系统才不必要求我们首先将安装介质插入设备当中。也正是因为如此,Windows Server的自身体积就像是热气球一样、在最近几个版本当中越来越大——具体而言,其虚拟磁盘镜像的平均体积已经达到6.3 GB左右。

相比之下,Nano Server目前的磁盘占用空间约为400 MB,Snover指出,而且其在未来的发展过程中可能并不会进一步膨胀。大家仍然可以选择使用Server Core以及全面但臃肿的Windows Server,但如果各位仅仅希望使用启动一套服务器系统并将春运行在云环境下所必需的最低程度组件数量,那么Nano Server无疑是最为理想的选择。此外,如果大家有意在Nano Server默认水平之外稍微进行一部分扩展,那么微软方面也允许各位将其它操作系统功能安装于其中——正如大家当下向系统中安装应用程序那样。

精简中的“斩首行动”

微软公司在对其服务器操作系统进行精简的过程中,第一步就是将GUI层彻底清理出去。事实上,Nano Server并不支持任何类型的本地访问机制。所有管理工作皆需要以远程方式完成——通过Windows Management Instrumentation(简称WMI)与PowerShell相结合来实现——或者更准确地讲,Core PowerShell,微软方面的一套全新命令行实现方案、主要运行在Core CLR而非完整的.Net运行时之上。

不过这一变更的主要目的绝非仅仅为了节约存储空间。其同时也是为了将Windows管理员社区引导至现代数据中心领域当中——如果有必要,即使因此而引发抱怨甚至反抗也在所不惜。对于Snover而言,Windows管理员通过以本地方式运行在服务器之上的GUI工具管理其基础设施的概念体系已经完全过时、不再符合新时代下的具体要求。

“那已经是多年之前的技术执行方式了,”他解释道。“时至今日,数据中心才是一切的主宰与核心。如今,真正的重点在于立足于云环境实现敏捷性开发,而这些本地GUI已经成为阻碍发展的毒药……一直以来,大家都是端坐在服务器之前并对其加以管理,我们目前在做的就是将这种固有思维彻底消除。”

为了支持上述思路,Windows Server开发团队甚至在讨论这款操作系统的具体方式上做出了一种微妙的语义变化。目前Windows Server同时拥有三种构成层类型:Server Core(服务器核心)、常规传统Server以及所谓的Full Server(完整服务器)。在此之后,微软将Full Server这一名称变更为“Server with GUI”(配备GUI的服务器),从而更准确地反映其实际构建方式。到了现在,上述名称又迎来了新一轮变更。

“其未来的名称将变更为Client,”Snover指出。“这是因为Client能够真正反映其实际角色。它其实是一套运行在服务器设备之上的客户端堆栈。”

在部分正常合法的用例当中,大家可能希望将客户端堆栈运行在服务器之上,他补充称,但其会被主要限制在远程桌面层面。除了这类特殊情况之外,我们真的没什么理由继续在服务器软件当中访问GUI客户端API。

适用于传统Windows开发人员的新技巧

遗憾的是,还有很大一部分Windows Server软件在设计思路当中并没有包含以上构建方式。从现在开始,Snover表示,专门为Windows系统编写服务器端软件的开发人员们应当将Nano Server作为其默认编写对象。如果他们切实需要一部分超出Nano Server供应范围的功能,那么还有Server Core以及全功能Server作为备选方案。总而言之,编程人员真的不需要围绕着API依赖性来创建代码,他们没有任何理由非得这么做。

不过Snover同时强调称,Nano Server并不属于一款全新操作系统。它仍然属于Windows Server,只不过这套版本只能提供完整Win32 API中的一个子集。

“Nano Server当中的全部API都直接源自Full Server版本当中,”他解释道。“只不过在数量上较后者更少。那些用于在台式机上实现功能的API将不复存在。”

另一部分API在Nano Server当中同样不见踪影。当然,这意味着某些现有软件将永远无法在Nano Server之上正常运行——至少,如果不加以修改的话不可能。不过目前能够运行在Nano Server平台上的应用程序也已经具备相当规模,这要归功于其名为Reverse Forwarders的功能。

将API从操作系统当中剔除出去的一大问题在于,一旦相关DLL消失不见、那些在编写当中针对相应API进行调用的软件也将出现崩溃状况。因此,举例来说,一款服务器应用程序在发送通知消息时会弹出一个对话框,但这一过程在Nano Server会引发相当大的麻烦——因为在Nano Server当中根本不存在此类GUI API。

Reverse Forwarders是一款可选软件包,能够通过为这类缺失API提供替代机制而在一定程度上解决此问题。在将其安装到位之后,所有指向缺失API的调用都会被Reverse Forwarders直接返回“未实现”代码,从而得到简单解决。如此一来,此类软件仍能继续运行在Nano Server之上且不需要经过重新编译,而由该软件所造成的、本不应该出现的种种操作也不至于引起其它麻烦。

但这并不意味着开发人员永远无需修改现有代码就能保证其顺利运行在Nano Server之上。作为系列的起点,目前的Nano Server只提供64位版本,这意味着32位二进制代码无法在其上运行。不过Snover指出,Reverse Forwarders已经让这款操作系统新成员拥有了不错的初期表现。

根据Snover的说法,目前微软公司已经在Nano Server上顺利运行有软件包包括Chef、Go、Java(OpenJDK)、MySQL、Nginx、Node.js、OpenSSL、PHP、Python 3.5、Redis、Ruby 2.1.5以及SQLite等等。

按需供应的驱动程序

既然如果开发人员需要改变自身战术思路以适应Nano Server,那么管理员们当然也得通过多种不同方式完成这款袖珍型操作系统的安装、配置以及管理任务。

在起步阶段,虽然Nano Server从技术层面讲属于Windows Server的一套后备安装选项,但其在安装过程中并不会以独立选项方式被个别列出。相反,其将在安装介质当中拥有自己的独立文件夹,而管理员们则需要从这里进行安装。之所以采取这种方式,微软公司显然是希望进一步控制Nano Server的磁盘空间占用量——以及安全范畴中的受攻击面——即在操作系统本体当中尽可能降低所包含的驱动程序数量。

这并不是说Nano Server不会提供任何驱动程序。其最大优势在于,它的驱动程序与Windows Server任意其它版本的驱动之间完全兼容,因此目前能够与Windows Server正常协作的全部硬件设备都能够在Nano Server当中找到自己的归属。

不过在默认情况下,Nano Server当中并不包含任何驱动程序。安装介质内Nano Server文件夹中还包括另一个目录,其中全部为各OEM驱动程序。通过从中选取自己需要的驱动程序,管理员完全能够创建出属于自己的定制化Nano Server镜像。

“如果大家希望使用来自Server Core当中的全部可用驱动程序,那么直接将其进行导入即可,没有任何问题,”Windows Server主要项目经理之一Andrew Mason在Build大会上解释道。“或者,大家也可以对其进行自定义并单独挑出那些适用于现有硬件设备的驱动程序,从而保证整套镜像仍然具备小巧及轻量级的特性。”

不过尽管Nano Server的安装方法听起来足够智能而且简便,但在这款微操作系统上安装软件仍然存在一定难度、微软方面也始终在处理相关问题。事实上,随着时间的推移,将应用程序安装在Nano Server之上的惟一方式就是单纯将必要文件复制到该系统镜像当中——仅此而已。

由于传统Windows MSI安装流程当中包含大量面向GUI的依赖性,Snover表示,因此其无法在Nano Server上正常运行。

Snover同时指出,微软公司目前正加紧调整Nano Installer,希望利用其处理传统MSI类安装程序所负责的各类任务,包括卸载、注册与注销COM对象、创建并删除注册表键等工作。

但他还同时补充称,随着Nano Server的推出,微软公司正努力在安装与配置这两类任务之间作出明确的区分。Nano Installer的工作是处理由软件获取到复制到Nano Server系统之间的这部分任务,Snover指出,而配置则作为单独步骤存在、旨在处理诸如PowerShell的Desired State Configuration(即理想状态配置)等事务。

我们何时才能正式迎来Nano Server?

“Nano Server是我们迈向全兼容、因素性操作系统并保证大家在其中获得任何所需组件的第一步,”Snover解释道。

它将运行在任意环境当中,他指出,其中包括裸机、作为访客操作系统运行在虚拟机当中或者是作为面向容器机制的主机操作系统。除此之外,尽管这款全新Windows Server迭代方案的首个版本将专注于针对云基础设施以及云应用程序场景,但微软公司已经有计划随时间推移为Nano Server赋予更多角色定位。

不过对于大部分用户来说,Nano Server尚未进入公布阶段——至少现在还没有。本届Build大会并没有给出任何可用下载,不过Sonver与Mason都确认了一项结论,我们将在今年“五月初”、随新一代Windows Server的下一个技术预览版本的发布而获得对Nano Server进行上手体验的机会。总结起来,请大家稍安勿躁。

Nano Server的开发工作将与Windows Server的下一个版本齐头并进并一同结束——根据部分消息人士的说法,下一个版本将被命名为Windows Server 2016,不过目前我们很难断言这是否会是微软服务器系统的最终定名——因此,Nano Server将与之同时步入通用版本阶段。

 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章