是否建议开发人员在本地虚拟机上进行开发?

时间:2009-04-13 14:57:05

标签: virtualization

复制

  

Reasons to Use a VM For Development

我正在尝试在我的公司推出一项策略,其中所有开发人员都必须在具有开发人员的虚拟机(例如VMWare工作站)上工作。已经安装了IDE,工具,服务包等环境,以便新团队成员更容易,更容易配置新机器等......

你推荐这样的方法,还是你在公司以类似的方式工作?

10 个答案:

答案 0 :(得分:15)

我有一位喜欢这种方式工作的同事。他为他工作的每个项目都有一台虚拟机。

我个人不喜欢使用虚拟机进行开发。

  1. 比直接工作要慢 我的机器。
  2. 不做多次 监视得很好。
  3. 不要保护您的开发人员不要了解有关IDE,工具和Service Pack的细节。他们需要了解这些事情。

    另外,不要强迫你的开发者以某种方式工作。有些人可能对此并不满意,不快乐的开发者=效率较低的开发者。

答案 1 :(得分:4)

我已经使用这两种方法多年了。目前我使用虚拟机。它们有许多优点。但是,不要强迫任何人采用某种特定的方式。如果他们被迫,他们就不会有生产力。如果可以,请说服他们。

VM for Dev的优点:

  • 非常快速的部署:一名志愿者使用最新和定制更新图像,所有人都可以获益。
  • 每个项目都可以获得单独的副本,没有干扰,也没有冲突。
  • 非常简单地“冻结”一切并重启!无需保存,关闭,运行,加载......
  • 当出现问题时,这是一张图片,视图,克隆新图片并查看代码。
  • 在调试或测试时冻结(有时您想捕获特定的状态)。如果您想要返回并重复某些操作(想想测试),快照会有所帮助。
  • VMWare具有远程调试和后向执行功能!
  • 重复性!您的开发人员和测试人员可以重现错误,因为环境受到控制(假设图像上没有工作)和保存状态(假设他们使用快照)。

另一方面,有一些缺点:

  • 虚拟机更庞大,占用大量空间和内存。
  • 您无法获得100%的硬件性能。
  • 您将失去一些图像维护时间。
  • 有些人讨厌它。

答案 2 :(得分:1)

我强烈建议您使用虚拟机进行开发。本地虚拟机的性能损失非常小,使得尝试新的想法/软件更加安全。

确保有足够的RAM来容纳多个虚拟机和主机操作系统。

See also

答案 3 :(得分:1)

我在政策要求下工作,我们都有一台运行VM的物理机器。我们只拥有VM的管理员权限,而不是物理机。当我们必须运行多个开发应用程序时,这往往会产生问题,构建往往很慢,事实上一切都很慢。此外,当VM开始达到15gb限制(大约一个半月使用)时,由于VM开始崩溃而且我们需要请求VM压缩,事情变得复杂。

我的经历很糟糕所以我不推荐它。我们通常在VM中运行以下应用程序:文本编辑器,IDE,Weblogic实例,TOAD用于数据库访问。资源管理器和Firefox,办公应用程序等。

答案 4 :(得分:1)

就个人而言,虽然我觉得你提到的所有原因都是个好主意,但我也觉得它需要相当多的机器上的额外费用。我本周末在VMWare和一台中等机器(AMD X2 4600,2 GB RAM)上试用Windows 7我发现在虚拟机中工作可能比在真实硬件上工作更糟糕。

答案 5 :(得分:1)

在某些情况下,就像做开发工作一样,你或多或少需要在服务器上工作,而我只是不喜欢将笔记本电脑变成2003/2008服务器的想法: - )

我们有两个托管我们开发机器的VMWare ESX盒子,只要人们记得关闭那些未使用的图像,它就能很好地工作。另一个优点是我们在自己的域中拥有完整的ESX映像网络,这使我们能够做出很多有趣的事情:-)

答案 6 :(得分:0)

使用现代IDE,有很多图形和磁盘IO正在进行,但VM都没有很好地执行。所以 - 如果您的VM响应速度足以让开发人员使用,那么我会说没有理由不这样做。如果不是,您需要为它们获得更快的机器,或者回去记录如何设置构建环境。

针对虚拟机的另一个因素是,如果您更改环境,则必须为所有虚拟机执行此操作,并记录更改。如果你告诉大家如何设置他们的系统,你可以让他们在基本金属上设置他们自己的系统。

顺便说一句,我们确实有VMsa - 但它们往往是旧版本的产品,所以我们仍然可以构建它而无需安装旧的Service Pack,sdks和编译器。没关系,但我发现在本地安装所有内容并在它们之间切换(使用结点指向构建目录)更容易。

现在,IIRC VMware有一个名为thinApp的虚拟化项目,可以将操作系统环境透明地放在本地盒子上,这样就可以让多个冲突的应用程序并行运行。我没有使用它,但确实把它看作可能比在自己的窗口中运行的整个客户虚拟机更好的东西。

答案 7 :(得分:0)

在我们的商店,我们几乎使用所有VM进行开发。我们为提高VM性能而采用的一种有用策略是始终在高速外部硬盘上运行它们。这样做可以让它们以极快的速度运行,因为VM通常需要大量的磁盘IO,就像前面提到的那样。

答案 8 :(得分:0)

使用VM进行开发是有正当理由的。但是,如果您考虑这样做只是为了标准化整个组织的开发环境,那么有更好的方法来实现它(即,拥有标准的机器映像)。

答案 9 :(得分:0)

从一些开发人员开始,尝试收集一些有关生产力变化的实际数据。