我正在计划一个云上的开发环境。 我的目标平台是微软.net和首选的云ID亚马逊AWS(尽pipe我对开放的build议)。
我打算购买一个高内存按需实例,并为其中的每个开发人员部署一个访客虚拟机。 这是我的疑问:
谢谢。
不,这不可取 首先,在虚拟化之上运行虚拟化将performance不佳。 而且大多数开发人员不喜欢使用远程托pipe的虚拟机,每个小操作都有一点延迟(由于大约50 – 200毫秒的networking延迟)。
最常见的解决scheme是这样的:
您的CI服务器,testing和登台服务器可以愉快地生活在云中(使用虚拟私有云更容易)。 所以你的代码库可以,但是如果你不喜欢它的内部部署,那么你应该把它外包给一个托pipe的Subversion / Git服务。
编辑:你可以testing它(这是云计算的好处之一 – 你可以在几分钟内暂停服务器,并testing它如何为你实际执行)。 但是如何在内部运行Windows 2008 R2服务器,然后在该服务器上设置虚拟机呢? networking延迟几乎为零,并不难。
在我们走之前 – 为什么不问你的开发人员他们习惯于做什么,他们喜欢什么…
AWS实例已经是pipe理程序上运行的虚拟机。 然后再运行另一层虚拟化,这样就可以让开发人员在位于WAN连接另一端的硬件上的虚拟机内的虚拟机上工作,这不是一个好主意。 我怀疑这在技术上甚至是可能的 – 但如果是这样的话,我相信性能会变得糟糕透顶。
所有在此设置中使用的VM技术都需要在CPU级别进行硬件虚拟化。 由于EC2实例已在虚拟机pipe理程序上运行,因此您无法通过平台访问裸机来实现此目的。
如果你真的想要这个,我会推荐一个专用的服务器,并把它插入你的世界。
如果你正在寻找云的好处,你需要决定一个合适的单位(每个开发一个盒子,每个团队一个盒子等),然后select适合这些需求的实例大小。 为了从这里获得云安装的好处,您还需要根据需要上/下旋转实例。 开发团队的使用模式真的不适合这个设置。