I’m looking for approaches to estimate the resource utilization of an (web-)application in a JEE environment. The overall target is to get a forecast for hardware/software requirements while the application is still under development or even in planning stage.
Is this task too complex (many different factors) to get a fairly reliable proposition without spending too much time?
It’s not a question of too many factors as much as a computability problem. (The proof of this is left to the student)
You’ll have to benchmark a prototype of the fundamental operation or ‘kernel’ of the application of your application.
This is exactly the same thing engineers in other domains do.
If you don’t know what the kernel of your application looks like in the planning phase you can’t do this. Moreover you can’t plan a schedule either, as you don’t know how much work it is to complete.
It’s one of those things that experience helps with. You might be able to find a local expert to give you an estimate if you can describe the kernel.
If you can’t describe it yet you are best to just design for scalability and scale it up or down after you get a prototype working. ( Decide not to decide.)
Sites like highscalability.com document some industry practices for scalability.