Sono curioso di sapere come si avvicinano tutti alla domanda della seguente natura:Come valutare l'hardware necessario per supportare il numero X di utenti/transazioni?
'è necessario creare l'Applicazione A (ad esempio il sito di e-commerce). Utilizzerà la tecnologia B (ad esempio java). Deve supportare il numero C (ad esempio 200) di utenti concorrenti. Che tipo di hardware abbiamo bisogno? '
Le specifiche hardware comportano il numero di CPU necessario e forse la quantità di memoria per una risposta di base.
Per semplificare il mio esempio, rimarrò con la tecnologia Java nella mia domanda, ma mi piacerebbe davvero un consiglio neutro dal punto di vista tecnologico.
Capisco che una domanda del genere coinvolge molti fattori aggiuntivi. Ad esempio, un diverso framework (Wicket vs Struts vs Spring vs EJB pura architettura J2EE), numero di livelli distribuiti (una configurazione di casella o 3 livelli di installazione).
Ma dato che una persona potrebbe non avere alcuna esperienza precedente con la tecnologia data (o forse nessuna opportunità di fare un test di carico per scoprire quale sia l'hardware richiesto), e una tale domanda emerge sempre durante una discussione iniziale del progetto (e una risposta è essenziale come linea di base per andare avanti), come si fa a dare una risposta?
Avevo pensato di risolvere il problema richiesto dalla memoria stimando la quantità di memoria che ogni sessione utente poteva assumere, ma ci sarà sicuramente un sovraccarico di framework/virtual machine.
Ma in generale, non riesco a trovare una buona soluzione a questa domanda, che sembra sempre apparire. Un test di carico sicuramente aiuterà a risolverlo, ma a quel punto il progetto è già pronto, e questa è una domanda a cui un cliente di solito vorrebbe una risposta prima di impegnarsi in un progetto.
Spero che la comunità possa fornire consigli su un buon approccio a questo.
Grazie.