当前位置:首页 > 经验学习 > 设计思想

虚拟化——互联网时代的产品开发加速器

所属栏目:设计思想 时间:2013-12-26 来源: 作者:admin 点击:

高技术高竞争的互联网时代,对产品的交付时间逐步变短,而对交付质量的要求逐步提高,各种新创意、新产品层出不穷,市场允许的产品推出周期也越来越短,传统的软件开发模型已经无法跟上当前的需求,高效、便捷、可迭代的产品开发模式也越来越为人们所关注,虚拟化技术正是体现这种开发模式最重要的工具。
从功能上讲,虚拟化的优势一是提高资源的利用率;二是提供多样化的配置管理;三是提供快照的保存和恢复功能;四是提供产品动态扩展的能力,这些也都是互联网产品开发模式所需要的重要特性。
我通过一年前的项目经历和目前应用虚拟化技术后的项目经历的对比,来说说虚拟化技术如何在开发、测试、上线部署各个过程中的作用。
简要介绍一下当时跟现在的开发条件。
一年前我所在的项目组一共有6台开发机,2台测试机,6个开发人员和2个测试人员,机器由团队公用,每个开发人员会被分配一个以自己名字命名的独立账号,开发人员使用这个账号登录系统并进行开发工作。相信这也是大部分公司的标准配置。
现在我所在的项目组有10台开发测试机,在功能上没有做特别的区分,一共有24名开发兼测试人员,没有专门的测试人员。开发人员通过登录属于自己的虚拟机进行开发工作。
开发阶段的作用
虚拟化在开发阶段的作用有两个关键点:
第一,快速的环境搭建
开发初始,需要一个资源分配的过程,而开发人员往往无法得到需要的灵活的硬件资源,一般可以得到的是一个账号,和一个确定操作系统的机器,这有三个原因,首先是硬件资源有限,无法保证每个开发人员能有一台独立的开发机,只能采用公用机器,通过不同账号进行隔离的方式;其次由于机器共同使用,多人同时开发,所以无法依照自己的意愿进行环境调整;第三是因为服务器进行操作系统变更的代价很高。如果开发确实需要定制的环境,需要变更操作系统,在我们以前的团队里,需要提交单独的变更单,经重重审核后到系统工程师,系统工程师到周五安排下周的操作,所以从提起申请到操作一般要经历一周时间。即使进入实际操作阶段,系统重装耗费的时间也很长,安装系统的时间占用在30分钟左右,服务器系统重启的时间在8-15分钟,重新下载和配置软件的时间在1小时-3小时不等。总体说来,重建一次系统环境至少需要半天时间。
在这种情况下,开发人员在开发伊始就没有得到期望的良好开发环境,只能在整个开发过程中带着镣铐跳舞。
再来看一下目前的状况,我们应用Xen虚拟化技术,很好的解决了这些问题。开发人员在开发进行之初,提交需要的环境配置列表,配置管理人员按照开发的请求,从镜像库里选择对应的虚拟机镜像,再找一台合适的物理机由该镜像生成虚拟机,交付给开发人员使用,虽然硬件资源依然有限,但由于虚拟机所占的物理资源较少,可以保障每个开发人员都拥有自己独立操控的环境。而整个虚拟机的创建时间在1-5分钟即可完成。
由于拥有的是独立的一台虚拟机,其资源跟其他的开发人员完全隔离,开发人员可以自主进行系统配置。在需要的时候也可以随时进行重装请求,重装操作非常简单,删除虚拟机,从镜像库生成一台新的虚拟机即可,原先需要一周多提供的初始系统现在在1-5分钟即可完成。



图一:目前一个开发人员的的开发测试机
第二,独立的运行环境
在以前的配置下,由于系统被多人共用,或者已历经开发多个项目的时候,很多系统环境参数已经经过了多轮配置,导致整个开发环境暗流汹涌,隐藏着诸多冲突因素。同时,由于多个账号同时使用,分属于不同账号的模块之间也会产生冲突,最常见的如端口冲突,这往往通过开发人员之间协调好彼此模块使用的端口号解决,但也不可避免的遗留下一些问题,比如我们遇到过一次故障,就是开发在提交产品时忘了修改内部某个模块的通信端口导致的。还有一次开发人员在程序出错之后花费了大量时间精力查找原因,最后悲催的发现是另一个开发人员在系统上做了某个工具库的升级。此外,由于某个开发人员的程序问题把机器跑死从而导致其他程序无法运行的问题更是家常便饭。
迁移到虚拟化的环境下,共享开发环境的问题也迎刃而解。由于虚拟机自身的独立性,每台虚拟机都是一整套完整而隔离的系统,虚拟机之间有充分的隔离,开发人员不用再担心端口问题,系统参数问题等,用自己的机器自然对系统的一切变化均了然于心,当出现bug时,开发人员也可以把时间精力集中在程序功能的调试上。

请站长喝杯咖啡?

站长一直坚持白天工作、晚上熬夜更新素材,付出了巨大的精力和时间,其中的辛酸难以言述。

坚持免积分、免登录、无任何限制下载!如果本站素材对你有用,不妨考虑请站长喝杯咖啡鼓励一下!

标签:

你应该也喜欢这些吧

共有 0 条评论

给个评价吧

验证码: