Architecture 扩展应用程序

Architecture 扩展应用程序,architecture,distribution,Architecture,Distribution,我有一个需要扩展的应用程序(IP会议服务)。它有很多独立的组件/应用程序,用不同的语言编写(主要是C++和PHP,一些Perl)。目前,单个安装在5台机器上运行,1-2个组件共享一个机箱。因此,每个盒子的配置是不同的,因此扩展整个盒子是一件痛苦的事情,更不用说维护了 各个组件从媒体代理到消息代理和数据库都有所不同,因此负载几乎是全部 我在考虑将所有组件放在一台机器上,并在前面使用某种负载平衡器时添加更多的框。其他人建议我以另一种方式扩展——在应用程序负载较高的地方添加专用框——但这又会导致维护噩

我有一个需要扩展的应用程序(IP会议服务)。它有很多独立的组件/应用程序,用不同的语言编写(主要是C++和PHP,一些Perl)。目前,单个安装在5台机器上运行,1-2个组件共享一个机箱。因此,每个盒子的配置是不同的,因此扩展整个盒子是一件痛苦的事情,更不用说维护了

各个组件从媒体代理到消息代理和数据库都有所不同,因此负载几乎是全部

我在考虑将所有组件放在一台机器上,并在前面使用某种负载平衡器时添加更多的框。其他人建议我以另一种方式扩展——在应用程序负载较高的地方添加专用框——但这又会导致维护噩梦


你知道我应该从哪里开始吗?理想情况下,我需要一些基准测试,哪种方法在性能方面更好?(大声想一想,当我有X数量的负载和Y数量的内存和处理能力时,如何分配它又有什么关系呢?

我会选择虚拟化。通过这种方式,您可以拥有各种类似的配置机器,并根据需要在它们之间分配负载,即使您将模块保留在单独的虚拟机中。

您需要确定最高负载或瓶颈在何处。如果不这样做,则很难正确规划

我想再看看虚拟化。它使您的应用程序: 快速部署 易于备份 发生故障时快速恢复