【博文推荐】Windows Docker和Windows Nano Server来啦!

    本博文出自51CTO博客MVP盆盆 博主,有任何问题请进入博主页面互动讨论!

今天盆盆起了一个大早,6点不到就醒了,打开邮箱一看,好家伙,被Windows Docker的大新闻给刷屏了!

首先先来说说看Nano Server。

何为Nano Server?

盆盆的理解,就是专门为Windows Azure和Docker而生的Cloud OS!从开发者的角度来看,Docker其实是一种类似于PaaS的技术,对外展示的是打包好的应用,而不像传统的虚拟化那样需要对操作系统进行维护。

【博文推荐】Windows Docker和Windows Nano Server来啦!

对于Docker而言,所有的容器都是共享内核的,这个内核自然越小越好。对于Linux而言,大家都知道CoreOS就是专门为Docker而生的,而据说Google也在打造自己的超微型Docker专用OS,轻量级的Ubuntu!

所以对于Windows Docker而言,应该也要有一个能配得上Docker的底层OS,于是Nano Server应运而生,这是时势造英雄啊!

从这篇博客来看,Nano Server拥有极佳的优势,它是完全剥离了GUI(您没看错),这和Server Core,Server Core只是用Cmmand Shell替代了GUI。

http://blogs.technet.com/b/windowsserver/archive/2015/04/08/microsoft-announces-nano-server-for-modern-apps-and-cloud.aspx

由于极为精简,所以其重启的时间极快,博客视频里显示其重启时间只需28秒不到!

【博文推荐】Windows Docker和Windows Nano Server来啦!

此外,Nano Server的体积非常苗条。那篇博客里说体积可以减少93%!看到网上国外测试过的朋友说,其VHD文件只有四五百兆!不知道真假^_^

这么娇小的身材,当然极大地减少了补丁的数量,那篇博客上统计减少了92%的关键补丁数量。如果您检查2014年的关键补丁数量,传统Windows约23个补丁,那么Nano Server由于极为精简,所以按照92%来算,最多只有2个补丁!

【博文推荐】Windows Docker和Windows Nano Server来啦!

这个道理和Hyper-V差不多,Hyper-V采用微内核技术,其Hypervisor只有1MB左右,所以盆盆曾经统计过,从2008年到2013 年,Hyper-V一共有2个补丁,而同期VMware vSphere 4.0共有45个补丁。参考盆盆亲手统计制作的PPT截图。

【博文推荐】Windows Docker和Windows Nano Server来啦!

当时这个PPT《VMware您不行》,盆盆还曾经在Team内部比赛中分享过,兄弟们抬爱,小弟我还拿到了第一名,得到了一台当时刚刚发布不久的Surface RT哩!

【博文推荐】Windows Docker和Windows Nano Server来啦!

话说Surface质量还是杠杠的,到现在各方面都好得很,继续任劳任怨地为咱服务呢。

Windows Docker来啦!

Windows Docker的脚步离我们越来越近了,微软其实早就拥有多种容器隔离技术,例如Hyper-V,SoftGrid(现在叫做APP-V),终端服务(现在换马甲叫做RDS),还有即将粉墨登场的Docker!

为了帮助诸位更好地理解这几种隔离技术的优势,盆盆根据手头已有的素材,整理了一个简单的表格。由于目前我们还不清楚Windows Docker的庐山真面目,所以其中涉及到Docker的部分比较粗略,但是道理不外乎此。

【博文推荐】Windows Docker和Windows Nano Server来啦!

可以看到Hyper-V的隔离能力最彻底,安全性最高,但是这是以硬件虚拟化作为代价的,其各方面资源开销比较大,算是一种比较重的容器技术。

而 SoftGrid,则是主要用在客户端应用软件的批量部署的sandbox技术,其优势是资源利用率高。但由于在同一台主机上是以同一个用户身份运行的,所以安全性略低(大牛Mark Russionovich曾经说过,Desktop才是安全边界!)。同时SoftGrid也缺乏高可用性方案,所以一般比较适合客户端应用软件,而不适合服务器场景。

终端服务,采用的是会话隔离技术,资源利用率比Hyper-V更高,安全性比SoftGrid更高。但是和SoftGrid相比,会话本身也存在额外的开销。有关会话隔离的技术,可以参考《Windows Internals》。我们可以用Sysinternals Suite里的WinObj来查看会话的隔离技术。可以看到终端服务通过构造新的窗口站命名空间(附图中的Windows部分),来隔离不同用户所看到的桌面;通过隔离的BaseNamedObjects命名空间,则可以隔离(也叫做实例化)出自己的共享对象(例如内存段、Mutex和事件)。。

【博文推荐】Windows Docker和Windows Nano Server来啦!

而Windows Docker采用应用程序级别的容器技术,所以资源利用率能和SoftGrid一样,而且按理说磁盘和内存的额外开销极低(应该比SoftGrid高一些,但是远低于终端服务),同时更加安全,还有高可用能力呢!

在以下的博客里,微软还提到会推出一种叫做Hyper-V Container技术,虽然那篇博客并没有提到其技术细节,但是盆盆可以大胆猜测这是把Hyper-V和Docker技术整合起来,这样理论上可以同时支持Linux和Windows的Docker(注意这两种Docker是不兼容的!所以需要通过虚拟机进行封装)。

http://blogs.technet.com/b/server-cloud/archive/2015/04/08/microsoft-announces-new-container-technologies-for-the-next-generation-cloud.aspx

相关推荐