开源应用程序自动部署引擎Docker将在本周公布1.0版本,看似与开源软件势不两立的微软和Rackspace 、IBM、谷歌、Canonical、Red Hat等公司一样,都是这款开源软件的功勋之臣。据ZDnet报道,Docker使用整合包(containers)替代虚拟机,能让多款应用程序同时在一个服务器上运行,让开发者和系统管理员轻松地部署分布式应用程序。
拥有丰富软件技术宝库的微软,为这款开源软件贡献了诸多微软技术,测试人员已经能在Linux虚拟机中运行预览版的Docker on Azure。 但在本周的DockerCon show上,微软代表将使用Azure虚拟机扩展软件把Docker部署到Linux虚拟机之中。在Azure上运行时,Docker集成了跨平台的 Azure CLI工具套件,并让用户更简便地登陆到Docker on Azure。
**微软开源技术的发展
**
Docker仅仅是微软力挺开源技术的最新案例,他们对开源技术的热衷要从2006年微软开放源技术中心(OSTC)成立开始谈起。在此之前,微软和Linux几乎是势不两立的。微软第二任CEO鲍尔默曾在2001年把Linux称作恶性肿瘤,2007年夏天的时候微软还指责Linux侵犯了微软的235项专利,暗示将索要授权费。
与此同时,微软内部关于开源软件的讨论开始出现变化。在首席开源战略师萨姆·拉姆齐、微软开源先驱比尔·希尔夫(Bill Hilf)等人的积极推动下,盖茨在公司内部会议上表达了对微软拥抱开源的支持,随后微软开源技术中心就此诞生。
微软在开源技术上的努力很快有了成果,2007年他们首次破天荒地向Linux贡献了3个驱动程序,2万行源代码,引发业内强烈关注。这3个驱动程 序主要改进了Linux运行在微软虚拟环境Hyper-V的支持,同年微软加入了总部位于美国加州的开源组织Open Source Initiative(OSI)。
随着对开源技术支持力度的不断加大,2012年微软开放技术开始独立运营,成立了微软开放技术公司(Microsoft Open Technologies)。同年,微软对Linux源代码贡献终于挤进前20强,排在Red Hat、谷歌、IBM、英特尔等公司之后,殊为难能可贵。
2014年1月,微软开放技术公司全资子公司——微软开放技术(上海)有限公司正式成立,再次扩大了微软开放技术版图。
微软开放技术成果
独立运营的微软开放技术公司已经取得很多成果,微软已经宣布将Node.js和Hadoop等Linux技术移植到Windows。他们还陆续开放 ASP.NET、MVC、Web API、Entity Framework、SignalR、VS Web Essentials、Azure SDK等一系列微软技术的源代码。Build 2014大会上,微软宣布开放.Net编译器Roslyn及WinJS源代码,并成立.Net Foundation基金会开源更多.Net组件和代码库。
除以上开源技术外,微软还和各大开源社区DMTF, ISO, OASIS, W3C在开发开源云计算的标准(如 OData, AMQP, WS-Management 及OVF )方面展开深入合作,保证这些技术在Windows Azure云计算平台上的高效率运用。
此外,微软还与国际标准化制定机构W3C’s HTML、IETF’s HTTPBis、Ecma 推动行业技术标准的制定,在WebRTC、HTTP/2.0、W3C 网络平台文档等诸多标准化技术领域作出了一系列贡献。
同时,为帮助微软Widows 8和Windows Phone平台生态系统的发展,他们积极推动PhoneGap (即 Apache Cordova) jQuery Mobile、Sencha Touch、SQLite 和 SharpDX等等开源和跨平台工具在Windows Phone的应用开发,为JQuery支持Windows应用商店提供技术支持等等。
(也许有人会想起,微软一直在向Android设备制造商收取授权费。实际上Android一直被谷歌公司牢牢掌握,据 VisionMobile 2011年发布的报告,Android开放程度仅有23%,远不及同期Symbian的58%和Linux的71%。同时,收 取授权费与否和支持开源技术并无太大关系)
微软为何钟情开放技术
与非营利机构不同,企业是以盈利为目的的。在纳斯达克上市的微软公司,更有必要向每位投资者负责,为股东带来更多投资回报。投资于开放技术无法获取直接经济收益,却能给微软带来间接回报。
微软开放技术公司的宗旨是成为沟通微软技术与非微软技术的桥梁。
微软云计算平台Azure是微软技术与非微软技术最大、最重要的聚集地,微软允许用户在Azure上通过虚拟机运行Linux操作系统,使用 Oracle 数据库和中间件,使用非Windows开发工具Java、Ruby、PHP和Python。把微软带进开放技术世界的比尔·希尔夫,就曾担任微软云计算平 台产品总经理。微软云计算业务现掌门人斯科特·古斯里,同样是位开放技术的倡导者。微软在开放技术领域作出的许多努力,例如本文开头的Docker软件, 都为Azure更好服务使用非微软技术的客户,占领更广阔的市场份额,作出了很大贡献。
除Azure外,Windows、Windows Phone等微软生态系统经常需要开源技术如Linux的支持,如微软为Linux首次贡献的2万行源代码主要是为Linux运行于微软虚拟化产品 Hyper-V提供支持。同时微软大力拥抱开源技术,可以博得大批开源技术开发者的欢心,让他们有机会为微软技术生态系统贡献力量。
为了在行业技术标准上获得足够话语权,微软有必要参与到行业技术标准的制定中来。在开放的行业技术标准中加入微软贡献的技术,可以帮助微软产品如IE浏览器更好地与竞争对手产品展开竞争,其重要性不言而喻。
微软始终保持着全球最大软件公司的霸主地位,在计算机软件产业中拥有巨大影响力。即便如此,大量非微软技术,尤其是开源技术在计算机产业内依然扮演 着不容忽视的重要作用。微软拥抱非微软技术,沟通微软技术与非微软技术,符合微软、其他软件公司或组织、开发者、用户等所有产业内参与者的利益。