由于微软的工程师们参与了超过2000个开源项目,你不得不承认开源如今在微软不仅仅是一个立足点。例如,最近浏览器团队出于一个非常实际的原因,开发了支持Edge和Internet Explorer开源的Chakra JavaScript引擎。
流行的JavaScript运行时Node目前只能在谷歌的V8 JavaScript引擎上运行。脉轮现在开源,微软可以创建的节点,它的叉上运行脉轮和贡献的项目,这意味着开发人员使用与边缘节点将使用它的选择以及Chrome,打开更大的市场,微软的浏览器技术。
企业开发方式的转变在很大程度上解释了。net和ASP的开源。净。部分原因是为了让社区参与进来——利用开源项目的开发者的想法和专业知识。像Fog Creek和Xamarin这样编写了自己的。net编译器的软件公司已经用微软的开源Roslyn . net编译器取代了那些编译器。
微软还希望将这些技术引入Linux,这在很大程度上是因为Azure。运行云平台让微软对Linux产生了兴趣,这远远超出了Windows Server团队对Linux内核所做的开源贡献,以便在其Hyper-V管理程序上运行发行版。截至2015年9月,在Azure IaaS上运行的虚拟机中,超过20%是Linux,微软甚至说服红帽公司在其CloudForms云管理平台上支持Azure(除了AWS之外)。
Windows Server首席架构师Jeffery Snover说:“当我们追求我们对fabric和云的任何地方的愿景时,这是一个关于支持Linux工作负载和Windows工作负载的故事。”
“在我们整个组织中,每个团队都有自己的Linux团队,”Snover说。“从历史上看,我们让Windows服务器团队为Hyper-V提供Linux支持,他们在这方面已经取得了惊人的进步;我们在技术预览4中有很棒的网络支持。PowerShell已经有了一个Linux版本的状态配置工具,可以用相同的工具更容易地管理Windows Server和Linux。
[相关:科技巨头是如何传播开源编程之爱的]
“也是如此,”Snover说,“. net团队正在使用. net,并将其提供给Linux。”
这很适合Verizon的FiOS团队这样的客户,他们使用Linux集群来运行。net和ASP,这些集群用于使用Mesos部署的Docker容器。净5。微软宁愿让Verizon成为其开发平台的客户,而不仅仅是为了向他们出售像Visual Studio这样的工具,这是有道理的。在未来,当Windows Server 2016带来对Docker、容器和更轻的Nano服务器选项的支持时,微软有希望把它们赢回来;如果他们继续使用。net,即使是在Linux上,这种可能性也会更大。
根据Snover的说法,像Verizon这样的客户认为微软希望。net在容器中运行的原因并不是因为他们想要转移到Linux本身,而是给Windows服务器留下了一个明确的机会。
“当你启动这个线程时,真正激发他们的是对真正轻量级计算环境的渴望,以及能够非常、非常敏捷地站起来、重启和伸缩的能力,”Snover说。这是他们无法用完整的Windows服务器栈和完整的。net栈来实现的。他们现在可以通过Windows服务器做到这一点,多亏了Nano服务器和我们的容器工作。”
搬到microservices
. net本身也在变化,正如最近开放源码版本的名称变化一样(从. net Core 5和ASP。NET 5到。NET Core 1.0和ASP。.NET Core没有覆盖完整的。NET 4.6框架那么多(例如,它没有服务器端图形库)。ASP也是如此。NET 4.6和5(有Web API,但还不支持SignalR、VB或f#)。更新的版本不会完全取代当前的版本,尽管它们会在将来得到丢失的部分。它们还以一种新的方式构建,具有更快的发布速度和更多地强调向前推进而不是避免破坏更改。
这是你在微软看到的同样的转变。在过去的十年中,构建Azure让公司了解了很多关于微服务的优势,否则就会变成大型的单片应用程序。原始服务前端管理的资源如计算、存储、网络和整个世界的核心基础设施组件——服务——在一个单一的应用程序。这是一个庞大而复杂的代码,运行在一个数据中心,并花了一个月发布一个更新完成后,测试——这意味着它只有四分之一更新一次。雷竞技电脑网站另外,针对所有不同组件的管理工具都由一个证书保护。
[相关:大型科技公司最近开源的10种产品]
将其重写为25个不同的微服务可以使开发、测试和发布新特性变得更容易。尽管管理计算、存储和网络的资源供应商现在都在独立的数据中心运行,但新功能可以“飞行”到一个测试系统,看看它们的表现如何,发布更新不超过三天。这提高了性能,因为在澳大利亚Azure数据中心使用的计算由运行在同一数据中心(而不是在德克萨斯州)的资源供应商管理时,延迟要小得多。雷竞技电脑网站把计算和数据放在一起不仅更快,更容易扩展;它使事情更加可靠,因为您不再依赖数据中心之间的网络进行管理。雷竞技电脑网站限制每个微服务在自己的区域内运行也可以提高安全性。
这些都是设计良好的微服务体系结构通常具有的优势,微软正试图为企业提供一种简单的方法来使用Azure服务结构。这是一个基于. net的微服务平台(运行在一个物理或虚拟机集群上),它在2003年开始作为Windows Fabric构建。Azure SQL数据库是建立在它之上的第一个服务;现在Azure文档数据库、事件中心、Cortana、Intune、Power BI、Skype for Business、Azure物联网套件以及Azure核心基础设施中的所有虚拟机都是用服务结构构建的。
将来,服务结构还将支持Linux、Docker或Java。Service Fabric现在已经可以在Azure上使用了,你可以在自己的服务器上运行它(或者托管在其他云提供商上),作为Azure堆栈技术预览的一部分(到2016年底将成为最终产品)。
像Verizon这样的公司可能走在了曲线的前面,但对于那些利用云技术、容器、微服务和更快、更灵活的开发的新应用程序来说,这将是关键。“每个人都在追求同样的东西,”微软的Snover说。“他们希望自己开发的应用程序尽可能小,尽可能节省资源。与“小”相关的是“敏捷”、“安全”和“快速”。
这个故事,“微软开源。net的真正原因”最初是由首席信息官 。