Windows 容器对比:WinDocks vs. Microsoft

本文比较了WinDocks容器与微软容器的区别,重点介绍了WinDocks在SQLServer支持方面的优势,以及其轻量级设计带来的资源节省。WinDocks支持广泛的Windows版本,为开发人员提供了便捷的容器解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文讲的是Windows 容器对比:WinDocks vs. Microsoft【编者的话】介绍基于WinDocks的容器和Microsoft的容器之间的区别。

WinDocks是在Windows系统层面上的具有独立端的Docker开源应用。作为前微软工程师,我们致力于改善软件开发人员的工作,在2016年3月我们开源了第一个基于Windows的Docker端。基于社区免费版我们培养了大量相关技术人员。

目前,微软发布了Windows Server 2016,并且支持Windows容器技术,那么许多人就想要详细探究WinDocks与微软的Windows容器到底在实现形式上有什么异同。以下的内容是基于微软SQL Server专业人士的公开演讲,以及对微软Windows Server 2016的容器测试。

供开发和测试的容器

Windows容器与Linux容器带来同样的好处,因此我们希望Windows容器同样成为支持开发,测试和QA的首选基础设施。在不久的将来,容器可以引导持续集成,持续交付,DevOps的增长。

WinDocks容器提高了开发速度与效率,开发人员在一个共享的虚拟机使用隔离容器环境,每个实例化可以控制在秒级别。假设每个开发团队平均使用20个VM,应用容器技术的话,可以共用一个VM。20:1的比例缩减微软服务器许可证可以为Windocks的用户立即提高收益率(也可能不是 Mircosoft容器用户)。

WinDocks vs. Microsoft

内置 :微软的容器支持被包含在Windows Server 2016中,而且作为Windows 10专业版和企业版的附加,这就使得客户针对一个供应商提供服务支持。而对于容器本身支持则没有增加成本,他们实际上不一定是免费的。

WinDocks Windows支持 :WinDocks对容器支持包括了所有版本的Windows 8、Windows 10、Windows Server 2012、Windows Server 2016,这样为开发人员提供了方便的接入。行业调查显示,客户计划逐步迁移到Windows Server 2016。这表明Windows Server 2012将继续扩大共享使用率到2020年,与Windows Server 2016同期逐渐增长。

SQL Server的支持 :WinDocks的成立旨在解决开发人员所需有效的SQL服务器环境。超过80%的组织每月只测试SQL Server两次。WinDocks通过对SQL Server容器和镜像提供自动工作流的方式,来支持SQL Server 2008及以上所有版本的发布。WinDocks利用了微软成熟的DLL共享架构,使当前SQL Server通过容器发布而不变更工具或进程。

Windows Server 2016已经发布,但并没有有效的SQL Server支持。三个月后发布的SQL服务器镜像支持仍局限于SQL Server 2014 Express和SQL Server 2016 Express。其他悬而未决的问题包括缺乏支持SQL Server Management Studio 的Windows身份验证(目前仅限于SQL sa身份验证),以及缺乏IP回环的支持。简言之,微软对SQL Server的支持只能被形容为并不完善。

更大的问题还没有讨论是微软正在为未来的SQL Server容器镜像秘密计划新的SQL Server许可条款。新许可尚未透露,但考虑到减少VM来获取容器,不太可能是“免费”的。

应用程序容器vs. 微软臃肿软件 :WinDocks容器通过“guards”容器和实施资源限制提供了用户和进程隔离。这个设计提供了类似于微软的安全服务器核心容器,为企业内提供了可信的工作负载。这个设计并不是为了不可信的多租户使用,这也解释了为什么微软提供hyper-v容器支持。

WinDocks应用级容器比Windows容器更加轻量级。微软容器背负重大的Windows文件,基本镜像平均> 9 GB,而WinDocks平均100 MB。微软容器需要20多额外的进程,而且比WinDocks容器额外多80 MB RAM。WinDocks .net IIS容器使用5 MB的RAM(16倍差),所以系统分级的影响是显著的。如果平均开发团队运行SQL Server和.NET,则微软容器主机需要比WinDocks服务器耗费更多的CPU和RAM!

微软这样的设计同时会导致镜像维护的增加,Windows更新迫使镜像重建(每个镜像包含大量Windows封装)。WinDocks的设计,相比之下,允许独立更新容器镜像。

镜像支持 :除了支持所有SQL Server 2008及以上版本,WinDocks还支持Java及之上的Tomcat和Jetty,Nginx,node.js。正如我们已经指出的那样,微软缺乏镜像支持SQL Server发布的版本,以及Java的Tomcat服务。

其它应用程序支持 :微软容器设计的一个优点是能够支持依赖注册表支持的Windows应用程序。WinDocks对SQL Server镜像的支持如何涉及到对Windows注册表的依赖,那么将是一个很大的工程量。微软的设计更好地支持范围广泛的依赖Windows注册表的应用程序。

容器发布 :WinDocks利用本地安装.NET和SQL服务器实例来支持创建容器和镜像。这种方法实现起来比较简单高效,而且利用微软成熟的DLL共享架构。这种方法同时使用了现有的主机或基于SQL Server许可的核。当前SQL Server许可允许一个主机上的多个实例,而WinDocks使得这种多实例的使用更加快速和实用。对于开源的镜像,如Nginx,node.js或Java,WinDocks同时包含了可再发行的运行时支持。

微软的容器服务是基于新的设计模式,每个容器等于一个新安装的应用程序,容器镜像则是一个新的安装包。这就解释了微软引入新的许可条款的理由。

其他问题 :微软对Windows容器的支持在不断的进步,但在发表这篇文章的时候仍然存在着缺乏支持IP回环,不支持mount,以及不支持SQL Server Management Studio的Windows身份验证。

结论

WinDocks针对现有的系统和发行版本,可以简单的采用、使用和支持。开发人员可以在Windows 8,Windows10,Windows Server 2012,或Windows Server 2016上支持.NET、SQL Server和Java。WinDocks软件目前已经被广泛应用,开发人员平均减少VM使用比例为10:1,大大缩减了在微软许可证上的投入成本。

而相对来说,微软的容器之路并不完善,提供的可伸缩性很有限,这正是运维的痛点,并且其中还存在大量悬而未决的问题。客户如果使用微软的Windows容器应考虑等待新的SQL Server许可镜像,并且需要更多和更强大的系统来支持镜像维护。

原文链接: Windows Containers Compared: WinDocks vs. Microsoft(翻译:edge_dawn)

原文发布时间为:2017-01-04

本文作者:edge_dawn

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:Windows 容器对比:WinDocks vs. Microsoft

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值