作为一个系统devise师,你会把虚拟机负责核心基础设施(dns / dhcp / directory / web / wiki / repos /文件共享等)以及在同一台物理机器上用于开发和testing的虚拟机吗?
我的拿:
对于
反对
一般我会说不这样做。 我们认为开发是一个可以并且会因为工作性质而崩溃的领域(无限循环,严重优化的SQL语句以及所有有趣的东西)
我实际上把开发环境看作是运营/networking部门的testing环境。 尽pipe如果你的开发环境需要5个9的时间,这对你来说可能不适用。
如果你必须把他们放在同一个主机上,那么我就会严格限制他们分配的资源,这样如果他们有上面提到的任何问题,他们就不能把其他的服务关掉。
让他们在一个单独的主机上的另一个好处是,你可以用所有必需的软件devise一些模板,然后授予开发人员部署和安装软件的权限。 这样,如果他们需要启动新服务器或安装软件,他们不必打扰任何人。
还有一件需要注意的事情是磁盘争用是由写入磁盘或从磁盘读取的失控进程引起的。
谈谈你的“反对”观点:
诚然,它们可能是大公司的单独预算,但是一些小公司可能拥有更有限的资源 – 特别是在大幅削减开支的情况下。
借助VMware DRS或资源池等选项,您可以轻松地将虚拟机失控的风险降至最低。
在一家小商店,我会的。
我可能会尝试设置一些东西,以便开发虚拟机位于单独的vm-net上,并具有独立的物理适配器和VLAN,并将开发虚拟机locking到特定的CPU,以减less对核心服务虚拟机的影响。
另外,如果情况变得糟糕,你可以随时将虚拟机移动到另一台服务器上,对吧?
我可以想象一个场景,你可能希望有一个独立的testing环境。
假设您要testing您使用的虚拟机pipe理程序或虚拟工具的新版本来运行和pipe理您的虚拟环境。 你不想在你的生产环境中这样做。
您应该始终将生产和开发/质量保证环境分开
我们之前做过这个没有问题。
如果您正在使用Hyper-V,并希望开发人员能够pipe理自己的一组虚拟机,则需要查看授权pipe理器 。 这将允许您只允许他们访问某些虚拟机,并为这些虚拟机执行某些操作。