虚拟化在软件开发中的实际应用与实现它的技术一样多种多样。
无论是在虚拟机中运行您喜欢的编辑器,还是使用容器系统来托管各种服务,哪些用例已经证明值得付出努力并提高您的工作效率,哪些是浪费时间?
我将编辑我的问题,以提供此处给出的答案的摘要。 另外,阅读有关所采用的虚拟化范例也很有趣,因为他们多年来已经获得quite numerous。
编辑:我特别感兴趣的是听到人们如何虚拟化开发过程中所需的“服务”,而不是目前为止提到的更明显的系统虚拟化场景,因此标题编辑。
答案摘要:
开发环境
测试
答案 0 :(得分:1)
我们将应用程序部署到主机(Amazon EC2)的虚拟实例中。令人惊讶的是,它能够轻松地管理我们的测试,质量检查和生产环境。
版本升级?只需启动一些新的虚拟服务器,安装要在生产中测试/质量保证/使用的软件,验证部署进展顺利,并丢弃旧的实例。
需要更多容量?启动新的虚拟服务器并部署软件。
高峰用量超过?只需处置不再需要的虚拟服务器。
答案 1 :(得分:0)
我们正在测试我们的应用程序在每次开发迭代后在新机器上的行为方式,方法是将其安装到多个Windows虚拟机上并测试功能。这样,我们可以避免重新安装操作系统,并且我们可以更频繁地进行测试。
答案 2 :(得分:0)
我们需要测试一个协作网络应用程序的设置,其中一些节点上生成的数据在网络上的协作节点之间共享,在一台设备中有大约30台机器,这在逻辑上(以及其他方面)禁止部署和建立。测试运行时间可能很长,在某些情况下长达48小时。根据测试结果部署更改也很繁琐,因为我们必须到每个工作站进行相应的更改,这是一个涉及多个疲惫的开发人员的手动且容易出错的过程。
我们成功使用的一种方法是将包含要测试的软件的精简虚拟机部署到各种人的PC,并在这些PC上以模拟数据生成/共享模式运行软件,作为后台任务。虚拟机。他们可以继续处理他们的日常任务(主要包括生成文档,编写电子邮件和/或浏览网页,尽可能接近),同时我们可以更有效地利用备用CPU周期“伤害”他们的PC配置。简化了软件的部署(和重新部署),因为我们基本上只需更新一个映像并在所有PC上重复使用它。这不是我们测试的全部内容,但它确实使这一特定方面变得更加容易。
答案 3 :(得分:0)
我们将旧版本软件的开发环境放在虚拟机中。这对Delphi开发特别有用,因为我们不仅使用不同的单元,而且使用不同版本的组件。使用虚拟机使得管理变得更加容易,我们可以确保我们为旧版本系统发布的任何更新的exes或dll都是针对正确的东西构建的。我们不会浪费时间将编译器设置更改为指向正确的共享,或者卸载并重新安装组件。这对生产力有好处。
这也意味着我们不必保持旧的开发机器设置和挂在盒子里。开发机器可以重新用作测试机器,如果关键的旧开发机器在一堆云中到期,它就不再是灾难。
答案 4 :(得分:0)
虚拟化主要用于我工作的各种服务器用途:
Web服务器 - 如果我们创建一个新的非生产环境,它的服务器往往是虚拟环境,因此有一个虚拟开发服务器,虚拟测试服务器等。
版本控制和QA应用程序 - Quality Center和SVN在虚拟服务器上运行。 SVN框也在我们的CI中运行CC.Net。
可能还有其他用途,但目前似乎是最重要的用途。