返回 登录
0

微软企业应用开发三大方向:跨平台、开放/开源与DevOps

软件和互联网正在改变传统企业,软件的职能逐渐从管理内部员工变成核心的商业竞争能力,在今天这种大环境下,我们应该用的新开发技术和方法。微软公司全球资深副总裁、开发平台事业部潘正磊(Julia)认为,把IT托管到云上并不是真正的高效生产力,云计算最主要的是提供各种各样的服务,为企业创造新的商业价值。也就是说,云平台需要提供各种易用、强大的工具来支持开发人员实现数字化转型,不管是认知服务、流媒体服务还是物联网、大数据的支持。

除了弹性、可扩展的基础设施云平台,微软还从跨平台、开放/开源与DevOps三个方面为开发者提供开发工具来实现企业的高效生产率。基于这些经验和技术,从2012开始到今天Visual Studio 2015年发布之后,微软的交付速度从三年多到三个月,再到可以三个星期为客户提供新功能。

跨平台:Xamarin的整合与开源

在应用高效开发的过程中,要避免iOS版本、Android版本甚至Windows版本的重复性开发,增加代码共享、避免用不同的编程语言不同的开发环境来编不同的APP是自然的思路。微软提供了三套解决方案来增加代码共享。

  1. C++。微软的Office产品全部是基于C++的代码共享,如果在iOS或者Android上下载微软的产品,里面大量的C++代码是跟Mac和Windows桌面产品共享的。

  2. 针对JavaScript的Apache Cordova架构,在Visual Studio 2015里做了很多支持它的开发工具。

  3. 收购了Xamarin提供给所有Visual Studio开发人员使用,没有任何新增费用,包括在Mac上提供这项支持,此外还将Xamarin的运行时全部开源

潘正磊介绍,基于Xamarin,开发人员可以用C#编程语言构建完全原生的iOS和Android的APP——用Apache Cordova可能还会担心性能问题,但Xamarin编的完全是原生的APP,没有任何性能和执行的问题,而且Xamarin还可以极大的支持代码共享在iOS和Android上。

Xamarin还有一个非常酷的功能:Xamarin Test Cloud,有几百种不同的设备在后端,通过云服务形式提供给开发人员做不同设备的匹配测试,而且有一个非常炫的界面。Xamarin对企业用户来说最大的好处是能够极大地利用现有人才,而且能够共享前后端代码,为企业提供移动的服务编程。

互联网医疗的创业公司微诊集智的宋剑飞介绍,其微诊App按照国内主流设计,有类似微信的聊天、类似微博的回复评论,基于Xamarin开发的APP与原生APP相比流畅度和使用体都是一模一样的。

图片描述

Xamarin可以在两个层面做代码复用呢,第一是APP的网络操作和和一些计算逻辑可以跨IOS和Android的,因为都是C#代码,只是UI层有区别,要按照具体的SDK来做开发。第二是前后端也可以复用。

MVC里有Model层,APP也有Model层,因为需要数据传输模式,两个对象是一样的,采用Xamarin技术可以做到至少Model层在APP复用,跟后端代码也可以复用。比如校验,APP和服务器校验两次,要是原生开发APP可能需要用Java写一套,Objective-C写一套,C#写一套用Xamarin就可以跨过这三套。首先对C#的开发人员我们可以用最熟悉的C#工具做对象处理,非常快捷。其次是C#5.0的Async语法,也极大地提升生产力,APP是单线程的,必须不断做线程交互,有了Async之后,我们可以以串行方式做并行的事。

开发iOS需要在Mac上,有两种做法,比较常见的是在Mac上开发,里面跑一个Windows虚拟机,我认为效率不高;我是在Windows的PC上跑一个Mac的虚拟机,既可以保证我在Windows下面开发Android调试外围界面,还可以开发iOS。

潘正磊称,在收购宣布之后,Xamarin用户可以不用付费完全使用,Xamarin的日用户量马上就上涨3~4倍。微软认为,Xamarin的价格是最大的问题之一。

Xamarin最初并没有在中国推广,中国客户就算想买Xamarin也不知道哪里去刷信用卡,后来才有了CSDN软件商城与Xamarin的合作。中国作为Visual Studio是一个非常大的用户市场,潘正磊表示,微软也在跟Xamarin团队沟通,希望很快可以做好中文版本,推广给中国的开发者。

CSDN软件商城是目前Xamarin在中国的唯一合作伙伴,在三年的时间里已经为近两百家移动开发企业提供技术和培训服务。同时,CSDN也是微软MSDN产品在中国战略合作伙伴,为企业提供开发工具的优惠解决方案。CSDN软件商城旨在为企业提供高生产力的开发技术与工具,成为开发团队在技术合作上的最佳伙伴。更多产品信息请访问CSDN软件商城

开放与开源:.Net Core技术

微软2014年11月开源了.NET技术,2015年11月发布了.NET Core第一个版本。潘正磊表示,.NET是微软14年前推出的为技术,在新的“移动为先,云为先”的大环境下,原有的.NET已经不适合在云端运行大量并发式服务,微软就把最核心的运行时.NET Core拿出来做技术更新。.NET Core的好处是非常小,只包括开发者需要的Class Library,非常模块化。

图片描述

这套技术已经在Windows里第一次发布,会逐渐把它搬到服务端来。这上面微软会架构Base Class Library,一套统一内库,这就为前后端共享提供了技术支持,这会在2016年下半年推出。

网易游戏工程师周峰介绍了采用.Net Core开发《绝代双骄》游戏后端的经验。

图片描述

前端用的是Unity引擎,非常自然的想法就是在后端也用C#来写,因为网易后端一直用Linux作为操作平台,积累了大量运维经验和开发经验,像监控、容灾、机房各方面配套都在Linux上,所以非常希望后端能够享受Linux成熟生态系统的便利。采用.Net Core之后,可以享受前端和后端语言一致性的好处,有非常多的开发语言的重用,特别是游戏行业有非常多验证逻辑需要在前端和后端一起跑,比如一场核心战斗。游戏行业会有独特的挑战,像外挂,需要在前端后端做非常强的验证,这些验证的逻辑如果分两套语言来写的话,会带来非常大的问题,还有非常现实的成本和进度的考量。另一方面的好处是人才培养,统一开发语言和编程环境之后,我们可以真正聚焦问题的核心,思考用户情景和商业价值,而不是思考优先队列在不同的平台上有几种写法,用不同的编程语言如何实现,这是更深远的好处。

很多游戏特别是手机弱视交换游戏后端都可以抽象地称为Web式架构,这是.Net Core特别得心应手的。我们在做后端架构时最重要的有两点,一是单台机器的性能要特别好,二是可延展性和扩展性要特别好,所有的逻辑都要做到平行扩展,做到备份与容灾,我们的逻辑纵向切分为逻辑服务器和共享的团队服务器。我们曾经碰到一个技术问题:在Linux上总是会有大量第三方依赖,微软技术和这些第三方生态能否够和谐融合在一起?我们花了几个月的时间和微软工程师紧密合作,迅速地把重依赖库结合到了产品中。

我们完整的架构和逻辑都在Linux上,能够为游戏前端丰富的展现提供坚实的后台支撑。这里也分享一些性能数据,做后台一方面服务是要能够平行扩展,能够应对突发的;另外一个关键的因素是投资回报率:用多少服务器来承载用户量,对游戏公司特别重要。和以前用Java和典型的服务器架构做横向比较,.Net Core在典型的用户情景上对我们的支持非常有力。业内典型手游服务器至少要做到一万人同服,上千人同时响应,无论是测试环境还是生产环境.Net Core都能很好地解决问题,还有独特的优势:例如性能非常稳定。当我们进行硬件更新换代和升级时,.Net Core带来的边际效应更好,这是合作中令人欣喜的地方。原来我们标准服务器是两套,用了.Net Core之后非常有可能把两台服务器变成一台,一台服务器就可以支撑一个大区的游戏玩家。

潘正磊谈到开源的体会时表示:微软所有的代码开源之后,开发者可以在自己使用场景中发现问题,然后发现一些优化的途径,然后把优化的代码直接给微软了,所以微软在开源过程中能够非常好地跟社区、跟开发人员、使用人员一起把产品做的最好,这也是没有开源之前比较难想象的一件事情。

DevOps:核心是四个持续

DevOps中文译为开发运维一体化,但潘正磊认为DevOps最核心的是四个持续:持续开发、持续交付、持续监控和持续学习。持续开发,希望每一次开发都是高质量的,很多功能三个星期迭代之后需要交付,这种持续发布是运维的一部分;通过持续监控,收集到及时的反馈,把遇到的问题非常快地解决。持续开发、交付、监控和学习的一个流程,不管是开发内部服务,还是云服务都是适用的。

微软支持DevOps开发模式的是SaaS的服务Visual Studio Team Services。微软内部,无论是服务器产品还是网络服务,都是用三个星期迭代的。Visual Studio IDE有一个DevOps,核心是一个持续开发、持续交付、持续监控和持续学习的闭环。而2012或者之前的版本没有这种能力,只能给开发人员一个全新的完整版本,没办法进行功能模块的更新。

网上服务每三个星期发布一次,最新功能三个星期之后会发布在Visual Studio上面,我们内部的也是三个星期一次内部的发布,我们的工程师会实时使用上一个迭代的产品来开发下一个迭代,每六个星期就会把我们最新的产品作为一个技术预览版的形式放在外面,给所有用户下载来收集及时的反馈这些都是为我们的持续交互来做延伸。通过持续监控,收集到及时的反馈把遇到的问题非常快地解决,这就是我们DevOps的体验。

潘正磊表示,很多DevOps在Visual Studio 2015最新版本中都得到了体现,这些功能和工具可以为不同企业做定制。工具是辅助开发团队达到所需效果,要知道自己的方法论是什么。TFS 2015在敏捷的项目规划、统一的版本管理、测试,质量管理、自动化部署等方面都有非常多新功能,为不同的工作方式打造了基础。微软在Microsoft Azure上也部署了Visual Studio Team Services,对不需要长久维持私有TFS Server的企业也是不错的选择。

评论