使用虚拟机进行软件分发的新方法?

时间:2012-04-08 11:59:52

标签: architecture virtual-machine virtualbox software-distribution

当我作为实习生工作时,我遇到了这个想法。

那时我将我们的web服务器从nginx转移到了node.js.我需要做很多修改和“脏工作”,鉴于这种情况我不确定是否可以在不破坏现有系统的情况下完成它(基于nginx)。 因此,我创建了一个包含基于nodejs的新服务器的虚拟机映像,并将映像传递给其他人进行测试 - 人们只需使用他们的浏览器连接驻留在我的虚拟机映像中的应用程序的本地端口。

我认为,鉴于HTML5,WebGL,Canvas等前端技术的巨大改进,这是分发普通桌面GUI应用程序的一种有吸引力的方式。

一个很大的优点是我可以摆脱不同操作系统中GUI框架的不同外观。 (假设我们可以在不久的将来使用浏览器获得统一的外观)。

但是我需要解决一些问题:

  • 虚拟机映像的大小。我需要一个紧凑的Linux发行版来构建一个小尺寸的图像。有什么建议? LFS是一个不错的选择吗?
  • 基于虚拟机的应用程序可以带来多少性能?也就是说,以这种方式部署计算密集型应用程序是一个好主意吗?

任何建议表示赞赏。谢谢。

P.S。我知道有一些类似的想法用不同的方法,比如chakra linux的捆绑系统(bundle system)。你能给我一些比较它们的提示吗?

1 个答案:

答案 0 :(得分:1)

第一个问题:

我经常使用的系统是Linux Live Distro(或构建自己的系统)。使用

等工具非常简单
  

Debian的活

与“真正的”虚拟机相比,它们非常紧凑。要让它真正变得极简,这是一项艰巨的工作,但它确实有效。你必须决定这种方法是否毫无价值。还取决于您的客户以及他们接受的下载大小高达300 MB。

第二个问题:

如果您将Intel-VT或AMD-V的CPU与伪半虚拟化Linux系统结合使用,则可以获得高达99%的CPU速度(计算)。通过使用真正的半虚拟化Linux系统(如KVM或XEN),您可以获得更多。 (所有这些通常都需要root / admin权限,通常不适用于客户计算机)