代码之家  ›  专栏  ›  技术社区  ›  Jon Schneider Stefan

在软件开发中使用虚拟化的关键用例是什么?

  •  7
  • Jon Schneider Stefan  · 技术社区  · 16 年前

    使用虚拟化的关键用例是什么——也就是说,使用诸如 VMWare Microsoft Virtual PC

    另外——还有没有其他的虚拟化实例/使用我在上面的定义中没有提到(使用像MS-Virtual-PC或VMWare这样的工具),并且对开发人员很有用?

    我问的动力是 StackOverflow comment Metro Smurf

    (请在每个响应中仅包含一个用例。谢谢!)

    16 回复  |  直到 8 年前
        1
  •  11
  •   Jon Schneider Stefan    16 年前

    在多个环境中进行应用程序测试是我所知道的虚拟化的一个明显用途。在其他操作系统上测试您的应用程序(不需要额外的物理计算机),以及测试通常只允许您在给定的计算机(如Internet Explorer浏览器)上安装单一版本的软件;在同一台计算机上同时运行IE6和IE7并不是官方支持的配置),是虚拟机使用的理想选择。

        2
  •  5
  •   JesperE    16 年前

    如果生成服务器在虚拟机中运行,则可以为每个软件版本制作该服务器的快照,以便100%确保可以重新创建生成环境(例如,如果希望对旧版本制作修补程序)。

        3
  •  4
  •   Tom Ritter    16 年前

        4
  •  2
  •   caskey    16 年前

    适用于我当前情况的最简单的情况是,我们有一个复杂的客户机-服务器环境,通过虚拟化,每个开发人员都可以非常快速地获得一组操作系统的基线,以便将其本地构建部署到并验证端到端的功能。

    在本地,您有自己的dev框和N个客户端框,它们在每次尝试构建时都被重新初始化为新的os。从本质上说,它是一个测试环境,相当于一个“清理”环境,在这个环境中,甚至客户机工作站都会被一个新的操作系统所取代。

        5
  •  2
  •   SaaS Developer    16 年前

        6
  •  2
  •   Tom Ritter    16 年前

    许多演示者将虚拟机用于演示文稿-它允许他们立即还原以重置第二天的演示文稿,在计算机之间快速传输所有演示文稿,并且不必向与会者显示您凌乱的“我的文档”文件夹。

        7
  •  2
  •   SaaS Developer    16 年前

    将虚拟化用于销售活动也是一个很好的用例。您可以在特定时间拍摄快照,并将其保存为演示基线。然后,一旦您运行了演示并更改了数据等,您就可以恢复到以前的基线,以便将来进行演示。您还可以捕获多个基线,并选择最适合即将到来的演示的基线。

        8
  •  1
  •   ConcernedOfTunbridgeWells    16 年前

    测试环境。如果您有多个系统需要针对的设置(如Windows&Linux、XP&Vista),那么具有大量RAM和VMWare的计算机(或其他计算机)是管理环境的好方法。

    另一个是在一个系统上开发并瞄准另一个系统。例如,有一次我在一个运行Linux的工作站上做了一些J2EE工作,其中客户端是5.5。使用Windows2000和IE5.5的虚拟机可以让我测试应用程序。

        9
  •  1
  •   Nathen Silver    16 年前

    我使用虚拟机进行开发的原因。

    • 隔离不同的开发环境。
    • 测试环境。
    • 由于计算机硬件故障/升级而容易恢复。

    目前,我正在使用VirtualBox进行虚拟机设置。我曾经使用过VirtualPC,但我真的很讨厌没有任何类型的“快照”功能(比如VMware和VirtualBox)。

        10
  •  1
  •   MarkR    16 年前

    我们开发用于SaaS应用程序的软件,我们的生产环境有大量的服务器,它们的软件环境必须是绝对可预测的;我们不能在我们的开发机器上安装任何额外的或缺少的东西。

    此外,我们的应用程序需要多种不同的服务器类型才能正常运行(我上次统计时至少需要7种服务器类型);大多数服务器类型都不能安装在同一台(虚拟)计算机上——至少在不违反“与生产软件相同”要求的情况下是这样。

    为了有一个一致的环境,有必要使用VMs。我不知道没有他们怎么办。

    快照和回滚也很好,但我只是偶尔使用它们(在安装/升级测试期间非常有用)。

    假设您正在开发一个新版本的软件,并检查以前版本的升级是否正常工作。。。做一个测试周期需要多长时间,而不能回滚盒子?你需要重新安装操作系统然后再安装旧版本吗?你能保证卸载真的卸载了所有东西吗?

        11
  •  1
  •   Chris Nava    16 年前

    能够测试/重新测试部署过程是一个巨大的节省。

        12
  •  1
  •   Ole Lynge    16 年前
    • 为不同版本的Microsoft Office开发外接程序(使用Visual Studio Tools for Office)。

        13
  •  1
  •   Marek Grzenkowicz    13 年前

    我很惊讶没有人提到VMware的记录/回放功能( awesome video demo )这对调试很有帮助。

    我有一个运行ESXi的无头服务器,它运行各种机器来构建安装程序(所以我不必放弃桌面上的处理能力),自动化测试(服务器比任何桌面都快)和各种测试环境(大约20种不同的配置),这样支持团队就可以轻松地跳转到与客户系统非常匹配的配置上。

    当您有一个真正强大的服务器运行VMs,可以在支持、测试和开发团队之间共享时,您将带来巨大的成本节约。总之,我们在ESXi(双核Xeon 2.5G+8Gb RAM)上运行约25个虚拟机,这些虚拟机由5-10人共享,一些开发人员使用虚拟PC,然后我在桌面上使用VMware Workstation。这里的所有Mac用户都使用VMware Fusion

        14
  •  1
  •   Joe R.    8 年前

    我很惊讶没有人提到通过隔离不同VM中的数据库服务器和web服务器来提高安全性的好处。

        15
  •  0
  •   Ikke    16 年前

    一些服务器应用程序也可以使用VMs。当一个虚拟机使用不多时,服务器可以将资源定位到其他虚拟机。

        16
  •  0
  •   Pavlo Svirin    15 年前