0

我们有一个Web应用产品,我们将其出售给托管在我们服务器上的公司。 该产品包含几个Web应用程序,Windows服务和SQL服务器数据库。 现在我们只有一个客户使用我们的产品。我们有两台服务器 - 一台用于Web应用程序和服务,另一台用于数据库。在多个服务器上托管重复的Web产品时规划服务器基础架构

为了将产品添加到另一个客户端,我们必须“复制”所有应用程序和数据库并分别运行。

随着我们开始扩展和一些公司需要更多的服务器电源,然后其他公司,我需要规划服务器基础设施。

每个客户端有两台服务器听起来很荒谬。托管成本将是巨大的。当我有10个客户时会发生什么?而且可能有些服务器比其他服务器耗电更多,服务器使用容量的30%,而其他服务器则使用70%。

我真正关心的一件事情是将数据库从每个产品中分离出来,以便在服务器遭到破坏的情况下,只有一个数据库处于危险之中。

所以...我想过虚拟机... 听起来不错吗? 我是否需要两个超级服务器来容纳虚拟机实例? (一个用于Web和其他数据库?) 负载平衡/等..什么? 仅仅因为我使用虚拟机器而需要更多维护时间吗? 有没有硬件建议?

任何帮助将不胜感激

非常感谢

+0

您可能还想看看多租户作为长期选择;这可能意味着需要重新构建您的整个应用程序,但如果您尚不熟悉该应用程序,则肯定值得了解将来的参考。 – 2011-06-07 08:16:39

+0

一些网络应用程序可以在同一个操作系统上运行,但是数据库又是什么?因为我想将它与每个客户端的服务器分开。 – Shay 2011-06-07 09:23:40

回答

1

虚拟机绝对是分开的客户端最安全的方式,将让您可以灵活地资源的特定百分比分配给特定的客户端。但是,在同一物理机器上使用不同的进程将会表现得更好(但并不总是显着),并且将允许更动态地使用资源(即,如果出现尖峰,它将使用它所需的资源)。然而,这种设置不会让您尽可能轻松地控制资源分配。您还必须构建自己的监视工具,以查看和分析哪些进程(客户端)正在使用哪些资源(在perfmon上搭载)。

如果您的应用程序不是为此设计的,则使用单独的进程也很危险。任何地方,应用程序都可以在文件系统上缓存数据或访问除内存以外的任何内容,并且需要彻底清理数据库以确保来自客户端的数据不会共同混合或共享。

单独的虚拟机需要管理更多工作 - 每个虚拟机都非常像它自己的计算机。所以你必须管理所有的虚拟机和物理机器。

您可能还想考虑托管在更加动态的环境中,例如Amazon AWS或Microsoft Azure,这将允许您比传统主机上的虚拟机更容易按需扩展/缩小。