微软的DevOps转型之旅

2015-04-27   出处: 互联居  作/译者:欧阳辰

微软是软件测试最优秀的公司之一,比尔盖茨曾经说过:微软是一个测试公司。公司的专职测试人员(SDET)的数量曾经接近2万,我敢说这是是世界上人数最多,质量最高的测试组织,测试的氛围曾经非常彪悍。在某些软件产品中,测试和开发的比例达到了1:1,甚至2:1(例如Office的某些部分),换句话说2个测试人员对付一个开发人员,这些不懈的测试投入,帮助微软打造了软件质量过硬的好口碑。这种极其成功的模式曾经帮助微软辉煌了几十年的辉煌。


2008年的微软互联网部门依然是沿用这种模式,开发(SDE),测试(SDET)和少量的运维人员(OPS),基本过程也是一个迭代和瀑布的过程。但是,随着互联网战斗的激烈,用户对创新的速度要求越来越高,修复服务器端缺陷的成本也越来越低了,微软对互联网产品发布节奏有越来越快的要求,从之前的半年一次,到后来的三个月一次,再到一个月一次,再到2个星期或则一个星期一次,甚至一些前端的项目,可以做到一天发布一次和多次这种改变很大程度上是推行DevOps的一个成果。


如果再看今天的微软研发,对于服务端(后台)的软件开发,越来越少的专职测试人员(SDET),少量的专职测试人员(SDET)集中在前端的自动化测试。早年的SDET和OPS都已经通过Combined Engineering 转变成SDE角色,新的SDE角色不再是只是写代码的工作,还包括编写测试用例,产品部署和运维支持等。


那么究竟什么是Combined Engineering呢?简单的说就是工程师角色的融合,一个软件工程师承担软件生命周期的大部分的工作,从代码的生到死:开发,测试,部署,运维等,都由一个工程师完成。不再将这些工作分包给不同的工程师,例如取消专职测试人员,取消专职运维人员。


微软这种转型是在2009年开始的,首先是在互联网服务的研发部门,这种转型是需要时间的,也是必须的,也是与时俱进的。为什么这么说? 由于采用Combined Engineering,很多测试人员,要更加深入代码开发;很多开发人员需要熟悉测试工具和方法;运维人员需要花时间找到自己的新定位。



另外一方面,这种变化也是必须的,组织能够更加敏捷,发布节奏能够更快捷。同时,很多软件基础设施也基本完善,例如自动化的部署系统,自动化的测试集成系统,高并并发度的测试用例运行系统,在线产品的监控系统等等,这些系统极大的方便了工程师进行相关的测试和运维工作。


再看看谷歌公司吧,虽然谷歌每年都会开自动化测试大会,但是它的测试人员相比开发人员来说少之又少,开发和测试比例大约是10:1,很多人听到这个比例会很惊讶,这种比例如何测试啊?我还会进一步告诉你,这一个测试人员主要对测试提供咨询服务,发现提高生产力的机会,并非项目中实际编写测试用例之人。所以,谷歌的测试人员,属于生产力大部门,而并非各个业务部门。谷歌的运维也是依赖于成熟的部署系统和在线服务监控系统,因此也没有太多传统公司的运维部门,因为这些软件都可以帮你做到。所以,谷歌公司本质上就是有着DevOps核心思想的公司,保持着创业的扁平化架构,能用软件解决的问题都用软件解决,而非创建更多的角色。一个软件工程师的角色就 足够了。


人员技能和基础架构服务时候两个重要方面,推动DevOps的前进,也保证了DevOps转型的动力。



先介绍两个外国公司吧,下次有时间再聊聊中国公司的DevOps,又需要的同学可以点赞,我会有更多动力早点写的


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
509° /5096 人阅读/0 条评论 发表评论

登录 后发表评论