微软STB China:研发团队的私有云应用之道

起步于2005年初的STB China在成立之时就树立了成为世界一流的开发、创新和业务中心的愿景,助力服务器与开发工具事业部在全球和中国的成功。作为微软亚太研发集团的核心部门,服务器与开发工具事业部中国研发团队目前在上海和北京两地共有近400名开发人员,积极参与SQL Server、Visual Studio、System Center、Windows Small Business Server、Windows HPC Server等微软核心平台产品的全球研发和创新。

微软服务器与开发工具事业部中国研发工程实验室(上海)

1500台服务器后面的3名运维工程师

2005年初到2011年,随着业务的扩展及范围的增长,STB China的服务器数量递增至千台以上,然而在业务数量的增长和服务器管理任务增加后,其负责和庞大的维护工作依然是由三位工程师组成的研发工程实验室小组负责管理,同时还需要为十几个产品组搭建、维护产品测试环境。和所有业务快速发展的组织一样,STB China正遭遇了IT基础设施缺乏战略规划所带来的困扰。

刘擎在研发工程实验室演示私有云实践

“目前STBC China在上海的运维团队,连同我在内,总共有三人,其中一人负责硬件保修,一人负责网络,两人为互备份”,对微软服务器与工具开发事业部在上海的研发工程实验室管理工程师刘擎而言,这个压力无疑是巨大的。2007年加入STBC的刘擎,目前主要负责微软服务器与工具开发事业部在上海的研发工程实验室管理,主要工作内容为向微软的开发、测试和产品经营的团队提供Lab服务,包括测试和搭建环境,以及产品构建和产品设计。

“STBC总共有近1500台服务器,平台基于System Center,总共包括虚拟化服务管理系统,服务器管理,管理客户端,备份管理共四个系统”,刘擎表示,云计算已经成为了解决当前运维瓶颈的唯一方式。

据了解,在STB China,刘擎花了近一年时间用412台服务器搭建了一个私有云,总共运行了5000多台虚拟机。而在整个管理平台上,团队的资源就是按照分组的方式,大概有超过13到15个产品组,会把他们分配到不同的组里面,每个用户会在自己的组里面分配虚拟机资源。

“几年的时间,服务器的数量增长了2.5倍,但我们运维团队的人数并未增加”,在谈到近几年机房的扩容时,刘擎认为,强大的管理平台再加上IT流程自动化管理工具Opalis是能达成的关键所在。

“研发的特点在于,经常需要服务器异地同时工作,也至少需要两个人工作在同一个平台上,北京或者美国的一些数据中心的服务器需要加到上海这边来,因此我们就需要把它整合到一起。”

“但我们我们其实还没有达到微软内部的指标,因为微软内部的指标是数据中心是1000台服务器配备一位工程师。”

云计算在研发团队

刘擎认为,对研发团队而言,私有云的好处首先在于能够让计算资源变得像电、水这样更方便的使用。

“在我们的库里提前准备好几千个虚拟机的模板,任何研发工程师可以通过自动化的机制,根据需要进行选择。”

在虚拟化领域,有两种工作模式,一个是资源优先,一个叫性能优先,通俗的说,就是少占资源多花时间和少花时间多用资源。对用户来说,最好的一个比较有弹性的,能来说处理各种紧急需求,非常灵活。“我们一直在追求资源利用率的最大化,过去每个团队把自己的资源放在一个实验室里面,相互之间没有一个很好的共享平台,在有了这个虚拟化管理,他可以很容易地去共享团队资源。就类似这个项目A,他有自己忙的时候,繁忙阶段。在另外一个团队繁忙,他没有更多的机器的时候,他除了购买新的机器的时候。现在有个选择,可以从别的团队调一部分资源过来,因为所有的机器都是虚拟化的话,他不会相互干扰。”

STB China虚拟机管理效率

据了解,在具体的实现上,VMM的SDK有一个基于Power shell的自动化脚本。作为运维工程师,需要首先了解需求,把共同的需求抽象出来作为一个服务包,然后通过VMM的自动化脚本将设备管理实现自动化。这样用户用起来就不需要重复自动化的工作,这也解决了团队和团队之间的重复劳动问题。

“原先自动化是基于硬件的,我们现在变成虚拟化以后,其实自动化还是需要做,但是我们把这些写了一个抽象的描述,用户就不需要再使用重复劳动这一层,对他来说就是他想要的,并且我们做了更多的工作,结合了一些自动化脚本”,“我们可以想象一下,开发者需要一个测试环境,首先你要需要两个CPU多少内存,然后需要几个Windows,再需要这个Windows是变成AD,那个Windows变成Exchange,你把这些选好之后,点一下,后面我们自动化会把虚拟机准备好,然后调用你所选择好的。这样的话,将运维实现完全自动化,研发人员就能够聚焦在他自己所关注的技术上。”

研发私有云需要先了解瓶颈问题

刘擎认为,对于研发而言,需要首先了解问题的瓶颈在哪。从去年接手工作以后,刘擎花半年时间在调研内部的流程、资源以及内部的工程师的工作习惯。因此在设计私有云的时候,目标就是解决最优先的三个问题。

“我们需要评估私有云如何提高生产利用率”,刘擎谈道,“对于研发而言,尤其是团队与团队之间有很多重复劳动,比如在做测试的时候,需要先把Windows部署到一个环境中,然后再构建一个网络环境,运行还没有正式上市的产品。而实际上构建环境的过程中,不同的团队经常需要做相同的事情。因此这是一个问题,我们需要资源共享。”

此外,工程师对于部署机器所花的时间也非常有意见。比如需要安装系统的时间至少要20分钟,如果还再安装所有的最新的补丁则至少要40分钟,这样的话,整套完成时间至少要一个小时。“如果物理机在做这个测试的时候需要做一个AD,而通过服务器,没有两个半小时是完不成的。一天八个小时,工程师一天最多只能做四套。而现在的虚拟化技术可以并行去部署,每一态虚拟器,从开始部署到结束只需要20分钟左右时间。从两个半小时缩减到30分钟,这是一个质变。”

Azure代表未来

实际上,微软的平台即服务云(PaaS)Windows Azure向企业开放已经有一年时间,但是,在国内由于众所周知的原因并没有在国内得到广泛应用。

对此,刘擎表示,微软的云计算目前是两条腿走路,一是针对超算中心的分布式计算,另一个就是Windows Azure,微软内部叫OS for Datacenter。Windows Azure不是服务单独的硬件,而是支持整个数据中心的设计,涵盖面就包括存储、网络等。

“微软并没有包袱,因为在微软看来,云计算的终极目标也是公有云,微软一直在理性地对待”,“而目前之所以采用公有云+私有云的模式,很大一定程度上是由于企业自己的IT基础架构,至少还会存在非常长的一段时间。”

“微软的下一代VMM会将二者结合起来,能够让用户同时管理到公有云和私有云资源,以此更自如地迁移应用”,刘擎透露道,“我相信每一个人都喜欢更多的选择,没有人喜欢只有一个选择。”