虚拟化用于webapp开发的最佳用途

时间:2010-02-18 23:42:11

标签: ubuntu virtualization

我准备将我的主要开发系统升级到Ubuntu 9.10。以前它运行8.10没有虚拟化。我想开始利用新版本中内置的虚拟化技术,但不确定采用哪种最佳实践方法。虽然我使用的是Ubuntu,但其他平台的答案可能很有用。

我通常在开发过程中使用以下内容:

  • 的Maven
  • 的Eclipse
  • MySQL的
  • 火狐/萤火虫

在没有安装软件的情况下设置基本系统是否有意义?然后设置虚拟机进行开发?或者我应该只安装maven / eclipse / etc。进入主要主机系统?或者我应该为每个项目使用VM?或者我使用的每个工具的VM?我怎样才能最好地利用快照等?

例如,如果我在Chrome中测试/调试应用,我可能会多次重启浏览器。因此,让它在一个单独的VM中运行会很好,所以我可以运行另一个Chrome实例,并为我的问题跟踪器,javadocs,谷歌研究等打开标签,而不需要继续重新启动。

我想我正在寻找其他人如何配置事物的例子以及这样做的利弊。

1 个答案:

答案 0 :(得分:2)

您希望将虚拟化用于什么?这是一项技术,你需要它做什么?

如果您想了解并了解这项技术,只需创建一台虚拟机,安装BSD / Linux / OpenSolaris等。而操场是你的。尝试网络,快照等。

将开发环境分开 - 仅仅是因为虚拟机之间的冲突对我来说没有任何意义。快照非常重量级,不能替代Subversion和常规备份。

值得考虑虚拟化的场景:

  • 您在组织中拥有一台但功能强大的机器,并且您希望为每个团队提供完整的开发/构建环境,以便他们可以完全控制自己的环境,但也不会互相干扰。
  • 您的应用程序有许多层(包括Web服务器,数据库,voip服务器,auth服务器......),因此您将它们部署到虚拟机中。您有一个开发,测试和生产映像,您可以通过更改主机上的网络设置轻松推出新版本。
  • 由于安全性/可集成性要求,您必须将您的层部署到单独的状态空间,您可以选择虚拟化。
  • 不同的团队,项目或应用程序需要自己的IP地址或相同的端口,并为每个端口提供物理机器会浪费资源。

仅在需要在不同物理机器上分离内容时才使用虚拟化。它只是让你能够虚拟地做到这一点。