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