说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

揭秘微软的Container技术之一Drawbridge

HTML文档下载 WORD文档下载 PDF文档下载
有人说Windows Server只有拥有了自己的Container技术才能继续保持与Linux的抗衡。但微软对于其Container技术一直没有明确的发布,只能从一些公开的演讲中,搜集到一些信息。

在构建软件定义的数据中心方面,VM技术已逐渐显露出力不从心,Container技术作为后继者慢慢崭露头角。Container技术由来已久,但开源技术Docker的出现,为开发者以微服务的形式构建可移植的应用,提供了标准。随着Docker技术的成熟,容器已经能够满足应用的可移植性、自动性、编排和扩展性。

作为一种开源的Linux Container技术,Docker已经得到IBM、Google、RedHat、VMware和微软等多个公司的支持,这些公司纷纷宣布在自己的操作系统、虚拟机或云平台中支持Docker。微软更是在5月份宣布,在其Azure云服务的IaaS组件中可运行基于Linux的Docker容器。至于在PaaS服务中可用,应该只是时间问题了。Azure云服务部门CTO Mark Russinovich 在9月份公开表示:“我们也在考虑这个问题,许多Azure云的PaaS用户已经有了这个需求。”

Russinovich确认了正在将其代号为“Drawbridge”的Container技术商业化的计划,Drwbridge基于库操作系统(library OS),library OS由微软研究院Galen Hunt在2008年发起。

“基于VM的虚拟化技术其效率不高,而传统的OS虚拟化技术,如Linux Container技术,安全性又不足,所以Drawbridge选择了一条两者兼顾的道路,把Kernel的内存状态放到了Container中(这里指Windows的Container),用户间的隔离更彻底,而各个Container之间依然共享一部分资源,所以相较VM虚拟化效率要高。”曾经负责过Drawbridge项目的前美国微软首席开发经理左玥告诉笔者。

Drawbridge的基石:库操作系统(library OS)

在Galen 2011年发布的一篇论文中,详细说明了win7库操作系统中运行Excel、PowerPoint和Internet的工作原型。library OS的想法是,一个应用所依赖的操作系统的特性,会体现在应用的地址空间上。一个连接宿主机操作系统内核和库操作系统的小抽象集合,提高了系统安全性,也使得系统各组件能够更快地改进。

在论文中,详细描述了一个win7 library OS的工作原型,其中运行了诸如Microsoft Excel、PowerPoint和Internet Explorer等常用应用。证明了通过对网络协议的重用,可以实现在各个独立、安全隔离的库操作系统实例的桌面共享。每个实例的开销相比全虚拟化要小得多,一个典型的应用只会增加16M的工作集和64M的磁盘空间。在库操作系统下面提供了一个新的ABI(应用二进制接口),保证了应用的移动性。我们也证明了只花费很小的开销,就可以达到当前很多硬件虚拟化的功能。

库操作系统会精简操作系统到固件层,将重点放在API和应用交付层面,而不是低层次的服务。定义了3种OS服务,包括:硬件服务、用户服务和应用服务。硬件服务包括了操作系统内核和硬件驱动;用户服务包括了GUI shell和桌面、剪切板、索引器等;应用服务包含了API实现,包括框架、渲染引擎、通用的UI控制等。

在Drawbridge中运行的应用可以访问Windows的核心特性和增强版的API,包括.NET CLR和DirectX。虽然被严格地隔离开来,但Drawbridge中的应用依然可以共享资源,包括屏幕,键盘,鼠标和用户剪切板。



在August TechMentor大会的Keynote上,Redmond的专栏作家Don Jones曾发表演讲讨论过库操作系统的话题。Jones说:“我们通常都将开发人员的开发理解为针对某一系统的开发,比如iOS开发、Android开发、Windows开发等,但这是不准确的,他们应该是在针对一种运行环境或一组API做开发。而这组API再关联相应的操作系统。”

Drawbridge VS Docker

在纽约举行的Interop大会上,Russinovich宣告了Drawbridge依然在使用。虽然他没说Windows的计划,也没有明确表示Drawbridge会被加到Windows Server和Hyper-V中。但可以肯定的是Drawbridge在Windows Server和Azure的工作已经在进展中了。Russinovich说在微软新的基于Azure的机器学习技术中,已经使用了Drawbridge容器技术。

“显然对虚拟化技术的加速已经不能满足我们的需求,所以我们借助了微软研究院的Container技术Drawbridge,这是一项我们内部一直在用的技术,我们正在试图将其公开化。”

虽然微软Azure也高调宣称了其对Docker技术的支持,但从Russinovich的态度看来,其将Drawbridge作为容器技术的优先选择,不断强调Drawbridge在部署微服务方面更安全。

Russinovich说:“在一个多租户的环境中,必然会有很多未知来源的第三方代码运行在同一个平台上,你需要为他们设立安全屏障。大多数云平台使用虚拟化技术来实现,而通过一个更小粒度的安全容器,能够更高效地实现,这就是Drawbridge的设计初衷。”

左玥告诉笔者,其实微软自身的Container技术与Docker并不矛盾,Docker是将Linux的Container技术标准化的工具,同样Windows的Container技术也可以使用Docker。

Windows Server的Container技术?

Sam Ramji,是Apigee(一家提供基于云的API服务提供商)的VP,5年前离开微软时,是新兴开源与Linux策略部门的头。在采访中,他认为Windows Server只有拥有了自己的Container技术才能继续保持与Linux的抗衡。

虽然不知道Server团队的头是怎么想的,但可以肯定的是他们也已经开始了Container技术方面的投入,预计在下一个Server版本中就会添加对Container的支持。左玥告诉笔者,Drawbridge只是微软的一种Container技术,至于未来Windows Server的Container support是否基于Drawbridge还有待观察。

老大开源,老二怎么玩?

以前的IT界,多是老大闭源,老二开源,现在老大开源了,闭源怎么玩呢?先不说去抢Linux的生意,首先Windows目前的用户是否对Container技术有这么强的需求呢?

Ubuntu也刚刚推出了自己的LXD,并且还强调并不是要替代Docker,而是作为Docker的补充。有幸在微信群中看到了大牛们讨论:有人说LXD就是要替代Docker,因为Docker的初衷本来就是LXC+RESTful API;还有人说Docker让容器更像进程,而LXD是让容器更像虚机。老外不是一直反对“重复造车轮”的吗?你怎么看?

(感谢前美国微软首席开发经理左玥对本文的审校和帮助!)

相关链接:Windows 'Drawbridge' Container Tech Sets Stage for Docker Battle

Why IT Pros Should Prepare for Microsoft's Stealth Library OS

如需要了解更多Docker相关的资讯或是技术文档可访问Docker技术社区;如有更多的疑问请在Dcoker技术论坛提出,我们会邀请专家回答。购票等问题可咨询QQ群:303806405。




Container技术日报公众账号已开启,欢迎关注!

研发周报:Mt.Gox破产,都是错误编程惹的祸 数据挖掘+人工智能,教育定制化下的学霸量产 通过700合作伙伴的进一步细分,Google变得越来越像微软 一周热点:高薪必备:Hadoop求职者的6大攻略 谷歌Android主管:两周内为开发者推出可穿戴设备SDK 【OSTC讲师专访】魏子钧: “中国式开源”没有“然后” 揭秘CarPlay欲将颠覆汽车产业的真相 联想王岳源:利用Web App推动互联网转型 IT经理人:提高团队工作效率的11个方法 30美元一小时,数据科学家的收入是否太低? 选择Go语言的12个理由 动鱼数码携三款大作参战Unity游戏及应用大赛 从Google、Apple、Dropbox、Twitter和Square学到的管理哲学 软件开发就像炒股,关键看你怎么选股票! iOS 7.1正式版:新增CarPlay连接功能、完美支持iPhone 4 【OSTC讲师专访】马全一:Docker,Hadoop的竞争者来了! 福布斯:全球那些富可敌国的科技大佬们 抢工作、争资源,如此聪明的AI你拿什么阻止? iUI:移动Web应用开发必备的开源框架 支持iOS 7.1!苹果发布Xcode 5.1更新 视频云将成为2014年乐视新的发力点 3月12日:万维网迎来理念诞生25周年 《近匠》云适配CEO陈本峰:跨屏移动,曲线一样救国 Intel陈荣坤:赢取移动市场的几个先决条件 而立之年,开发者在害怕什么? 首席工程师揭秘:LinkedIn大数据后台是如何运作的 年交易额1800亿美元,揭秘PayPal成功背后的三大热门技术 微软妥协Android?向该平台推开源Office 365 SDK 中国云计算大会PPT集萃(一):众多名家分享技术挑战与行业趋势 速度是现在的10000倍,出自物理学家之手的新型电脑 逗你玩?淘宝开放平台从4月1起开始全面收费 如何判断commondialog.showsave ,用户是按了确定,还是取消按钮? 我最近编写一个DLL,用来实现ftp功能,使用了delphi中的nmftp控件,结束调用后总出现莫名其妙的内存错误。请高手指教! 请问哪里有win2000 server的软件下呀?迫切需要,恳请各位能帮忙!谢谢! 面试时问主考官什么样的问题算有水平? 我枚举一个外部程序的子窗体,可是却只看到了TDXDraw,我怎么样才能得到TDXDraw中更多的信息呢? 帶一個checkbox的list應該怎麼做? 扫描程序如何循环处理一段IP地址? 数据库中图片如何调用? 如下错误是什么意思,如果解决 一个关于SQL的问题 残啊?都要计算机专业毕业的。。。。。 Miscrosoft Scrioting Library是何东东?Scrrun.dll上那去弄? 如何让softice支持usb鼠标,键盘 多线程程序中使用采用单线程编译参数编译的DLL,会有什么后果? 很多on error goto ... 很简单,有NT4.0或XP的朋友一看就知道。在线等待 手工配置Grub:希望能对大家有所帮助 新显卡驱动For Linux Where download? ADO问题?????????????/ 请问c++的handle class是什么东东呀 怎么textBox控件不可以使用 \n,\r等语句?????? CEdit疑问 急切在线等:打包时出现的问题! 今天我生日,放分!!! 网络财务系统管理信息系统源代码销售 pb8的序列号问题!............................在线等待!!! 在javscript里面怎么判断一个变量(var定义的)是数字? 在线!!!哪位知道好的关于DSP的论坛? 请教高手,如何编程实现一台计算机通过拨号(modem)连接到对方计算机,并实现文件传输? ■■■有没有右键菜单也像VS.NET风格的???■■■ 有没有现成控件,实现EXCELL式的编辑功能 关于BCB中开发DirectDraw的问题 诚聘高手开发电子辞典? 请问一下了dbeng7 -Q的有关事项了? 高手请拉兄弟一把:TField 有一个OnValidate事件,可用它来校验,能否利用它来替换? 怎样把DataSet里面的数据写入一个Excel和Access文件里面? DX全屏模式下如何显示MFC控件? 关于保存对话框的问题,请教高手,谢 (简单问题送分)如何得到select语句得到的数局条数??? 谁能答出来?给分500!!! 很奇怪的问题了 c/s模式,后台是sql server 关于保存对话框的问题,请教高手,谢 类的定义问题 怎样将十进制数转换成十六进制数? 用DataGrid作分页显示,我想让鼠标移到某行时,这行就改变颜色?具体该怎么办? 版主,请进,帮我结贴,沉年老事,我不想再提,越提越伤心,最好帮我删了。 pcgenius(superj) ,你在吗?能告诉我你的QQ吗? 请问我在win2000专业版里装了asa 7可是他的服务器manage为什么用不了呀? 在PL/SQL中这个SQL语句为何不对 用水晶报表实现。怎么样在一个坐标系内画两个图?比如线图和条形图。
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘