为多个用户共享一个Linux桌面服务器:远程桌面还是虚拟化?

我们是一个小型的networking软件公司(约10人)。 目前,每个开发者使用本地的apache在他的本地机器(一些windows,一些ubuntu)上工作。 我们有共享文件和中央SVN存储库的samba共享。

我想在将来集中我们的基础设施,使每个人都在一个中央服务器上工作。 有两个选项:

  • 虚拟化:每个人都可以在一个中心胖的服务器上获得一个虚拟的盒子。
    临:快速设置,隔离用户,新的框添加快。
    Con:由于每个用户都有自己的操作系统,对于硬件有点饿。 更新软件(新的Eclipse版本等)不会影响每个人,除非他们开始使用新的虚拟机,这会导致碎片化或再次失去工作时间。 由于缺less安全更新以及将用户作为根用户使用的潜在安全问题。
  • 远程桌面:每个人都使用远程桌面连接到中央的Ubuntu服务器。 选项是一个真正的X客户端,xrdp,VNC等。
    亲:易于使用,中央数据存储,软件更新立即生效,中央控制容易。 不需要太多的硬件。 用户不是root用户。 SVN版本库可能是本地的,这意味着加速。
    Con:用户不是孤立的(团队内潜在的安全问题),apache重启等等。

两种解决scheme都需要一个快速的networking和一个胖的服 目前,我倾向于使用xrdp作为远程桌面访问。 你有什么经验? 对另一种方法有什么缺点? 我错过的选项? 有没有人成功地虚拟了一个软件开发团队?

你所描述的缺点在现代IT世界中并不真实。 硬件相当便宜,而且使用虚拟化技术时所看到的投资回报率又高又快。 软件更新和pipe理使用厨师或木偶很容易pipe理。 安全问题本地化为单个VM,而不是整个terminal机器,如果您select了正确的解决scheme,则在更新级别的安全性由供应商处理。 顺便说一句,为了加快版本库访问,使用git – 开发人员一旦遇到最初的冲击,就会爱上它

使用terminal机器,资源pipe理可能会变得非常困难,使用虚拟机,您不仅可以获得更好的资源分配,还可以更好地获得更好的硬件。

为每个人提供自己的虚拟机的方法在内存方面远不如共享系统高效 – 但是这样做让人们可以同时运行不同的Apacheconfiguration。 pipe理可伸缩性也更简单 – 您可以根据需要将虚拟机迁移到新硬件上。 虽然你可能不希望突然接受更多的工作人员,但这两种方法都意味着你不能在你的应用程序中轻松地进行性能可伸缩性testing(所以能够将用户转移到专用机器上几天听起来像是好主意)。

有一些很好的pipe理“群集”的工具,其中大部分将用于维护多台桌面计算机,因为你已经在运行Ubuntu,所以Canonical的Landscape是一个明显的select。 但是,如果是我,我会采用标准构build,然后将虚拟机外部的用户主目录移到NFS共享上。 还有一些狡猾的/ etc / sudoers计划,以便用户可以在他们自己的机器上获得root权限。

尝试NoMachine(NX) 。 它有一个免费的提供以及商业解决scheme。 它轻巧,快速,有一套非常通用的客户端应用程序,并使用ssh作为传输。 如果需要,还可以将NoMachine与虚拟系统结合使用,以实现不同级别的隔离。 您可以在运行文本模式的服务器上运行NX。 只要安装了GUI元素,用户将获得全屏X会话(也可以跨越监视器)。

我们有3个开发人员,我们使用远程桌面(除非我们实际上不使用RD,因为我们正在开发一个网站,所以我们在Eclipse或Notepad ++或Coda上使用“远程文件浏览”来开发代码,并通过互联网)。 我认为它运作良好,同时更新的好处是真棒。 我们并不担心团队内的安全问题,所以我不能说这个问题。 Apache重启需要2.5秒,那么谁在乎呢?

编辑而我使用Windows而另外两个使用Mac。 它对每个人都很好。