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

Sha*_*adi 3 virtualization

重复

使用VM进行开发的原因

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

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

Mat*_*ell 15

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

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

  1. 它比直接在我的机器上工作慢.
  2. 它不能很好地做多个监视器.

不要保护您的开发人员不要了解有关IDE,工具和Service Pack的细节.他们需要了解这些事情.

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


小智 7

多年来,我一直使用这两种方法。目前我使用虚拟机。他们有很多很多优点。但是,不要强迫任何人采用一种特定的方式。如果他们被迫,他们将不会有成效。如果可以,请说服他们。

VM for Dev 的优势:

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

另一方面,也有缺点:

  • 虚拟机体积更大,占用大量空间和内存。
  • 您不会获得 100% 的硬件性能。
  • 您将在图像维护上浪费一些时间。
  • 有些人只是讨厌它。


gbj*_*anb 1

现代 IDE 会进行大量图形和磁盘 IO,而虚拟机无法很好地执行这两项操作。因此,如果您的虚拟机响应速度足够快,可供开发人员使用,那么我认为没有理由不这么做。如果没有,您要么需要为它们购买更快的机器,要么返回记录如何设置构建环境。

对虚拟机不利的另一个因素是,如果更改环境,则必须对所有虚拟机执行此操作,并记录更改。如果您告诉每个人如何设置他们的系统,您不妨让他们在基础金属上设置自己的系统。

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

现在IIRC VMware有一个名为thinApp的虚拟化项目,它可以透明地将操作系统环境放置到您的本地机器上,因此您可以同时运行多个冲突的应用程序。我没有使用过它,但确实研究过它可能比在自己的窗口中运行的整个来宾虚拟机更好。