我经常被要求为我们的客户进行规模和容量规划。当我们的客户购买我们的产品(基本上是 J2EE Web 应用程序)时,他们经常会问他们需要什么硬件来运行这些产品。我们的建议通常会导致高成本的硬件采购。
到目前为止,我开发的最佳启发式方法是将利用率预测(应用程序应该参与的注册用户和并发用户的数量)与我们现有安装中收集的数据进行比较。类似于:如果安装 A 使用 X 硬件参加 100 个并发用户,那么安装 B 将需要 2*X 硬件来参加 200 个并发用户。
然而,这种方法存在许多问题。客户经常使用不同的硬件和软件平台。他们从我们这里购买的产品集通常不会相同,并且通常部分应用程序是根据特定客户的订单构建的。考虑到软件版本正在发生变化等,并且有很多参数可以使调整大小的任务变得非常困难。
我研究了一些关于该主题的书籍,有些建议使用复杂的数学模型。这些方法需要作为输入的参数数量(例如应用程序功能的详细分类)使我认为这些几乎没有用。硬件通常在定义基本要求之前就已订购,更不用说这些在应用程序开发和生命周期中会有所不同。那么,您如何进行规模和容量规划呢?任何提示和操作方法表示赞赏。