Tengo curiosidad sobre cómo todos se acercan a la pregunta de la siguiente naturaleza:¿Cómo proceder para estimar el hardware requerido para admitir X cantidad de usuarios/transacciones?
'tenemos que crear la Aplicación A (por ejemplo, sitio de comercio electrónico). Utilizará la tecnología B (por ejemplo, java). Tiene que admitir C (por ejemplo, 200) número de usuarios simultáneos. ¿Qué tipo de hardware necesitamos?
La especificación de hardware implicaría la cantidad de CPU requerida, y tal vez la cantidad de memoria para una respuesta básica.
Para simplificar mi ejemplo, me quedo con la tecnología Java en mi pregunta, pero realmente me gustaría un consejo de tecnología neutral.
Entiendo que dicha pregunta implica muchos factores adicionales. Por ejemplo, un marco diferente (Wicket vs Struts vs Spring vs arquitectura EJB J2EE pura), número de niveles distribuidos (configuración de un solo cuadro o configuración de 3 niveles).
Pero dado que una persona puede no tener experiencia previa con la tecnología dada (o quizás no tener la oportunidad de hacer una prueba de carga para averiguar cuál es el hardware requerido), dicha pregunta siempre surge durante una discusión inicial del proyecto (y una respuesta es esencial como línea de base para avanzar), ¿cómo se puede dar una respuesta?
Pensé en resolver el problema de memoria requerido estimando la cantidad de memoria que podría tomar cada sesión de usuario, pero definitivamente habrá sobrecarga de la estructura/máquina virtual.
Pero, en general, parece que no puedo razonar una buena solución a esta pregunta, que siempre parece surgir. Una prueba de carga definitivamente ayudaría a resolverlo, pero para entonces el proyecto ya está listo, y esta es una pregunta que un cliente normalmente querría una respuesta antes de comprometerse con un proyecto.
Espero que la comunidad pueda asesorar sobre buenos enfoques para esto.
Gracias.