Pregunta

A menudo me preguntan para realizar dimensionamiento y planificación de capacidad para nuestros clientes. Cuando nuestros clientes compran nuestros productos (básicamente aplicaciones web J2EE), a menudo se preguntan qué tipo de hardware que se necesita para ejecutar esos productos. Nuestras recomendaciones a menudo resultan en adquisiciones de hardware de alto costo.

Hasta el momento, los mejores heurísticas que he desarrollado es comparar las proyecciones de la utilización (número de usuarios registrados y concurrentes que la aplicación debe asistir) con los datos obtenidos en nuestras instalaciones existentes. Algo así como:. Si la instalación Un atiende a 100 usuarios concurrentes con el hardware de X, entonces la instalación B necesitará 2 * X hardware para asistir a 200 usuarios concurrentes

Este enfoque, sin embargo, tiene una serie de problemas. Los clientes a menudo utilizan diferentes plataformas de hardware y software. El conjunto de productos que compran de nosotros por lo general nunca es el mismo y, en general partes de aplicación se basan en la orden para el cliente específico. Pusieron en cuenta que las versiones de software están cambiando, etc., y hay tantos parámetros que pueden hacer que la tarea de dimensionar muy difícil.

he estudiado algunos libros sobre el tema y algunos proponen el uso de modelos matemáticos complejos. El número de parámetros de estos enfoques requieren como entrada (por ejemplo, clasificación detallada de las características de aplicación) me hace pensar que estos son apenas útil. Hardware generalmente se ordenó antes de definir incluso los requisitos básicos para no mencionar que estos varían en todo el desarrollo de aplicaciones y ciclo de vida. Entonces, ¿cómo se puede ir sobre el dimensionamiento y la planificación de capacidad? Algunos consejos y tutoriales apreciados.

¿Fue útil?

Solución

Si el hardware se debe pedir antes de definir la reqs básica, así, lo mejor que puede hacer es la capacidad del estadio de béisbol al mirar en su base instalada de un conjunto similar de proyectos (como lo están haciendo ahora). Un seguimiento de su experiencia de los clientes existentes en las necesidades de escala y capacidad a medida que crecen sus instalaciones, y si usted tiene una base lo suficientemente grande, es probable que pueda hacerlo apropiado mediante la agrupación de proyectos similares con un hardware similar y mirando a las necesidades de capacidad curva aproximada. Ver cómo la capacidad de los clientes existentes que cambian las necesidades durante el crecimiento, así como para los puntos de datos adicionales.

Lo ideal sería que el HW / SW de compra inicial es para una instalación piloto, y la configuración de referencia piloto, una vez que está en marcha y especificaciones reunión. Utilizar estos resultados para proyectar las necesidades de capacidad para el traslado de piloto para la producción. Por supuesto, esto requiere tiempo en el horario-piloto a la producción de referencia de la aplicación entonces el orden y recibir la entrega de los equipos. Pero le dará una estimación más precisa que la capacidad de hacerlo todo por adelantado.

Otros consejos

No existe una fórmula fácil o matemático para predecir la escala en la descripción que dio, si usted (o su empresa) es serio acerca de esto, entonces la mejor manera es construir un entorno en el que se puede configurar fácilmente y desgarros el rendimiento y la escalabilidad de prueba se adoptan diversas configuraciones de cliente y enviar carga a ellos para ver cómo lo harán. Debido a que usted está construyendo componentes personalizados, un componente mal escrito o desaparecidos índice puede ensuciar todo para arriba, por lo que tener un entorno como este es donde se puede limar estas cosas antes de dar al cliente. Una vez que tenga este tipo de entorno, puede añadir memoria y CPU de los servidores y bases de datos de aplicaciones para ver cómo sus escalas de aplicación.

Yo sugeriría un entorno de máquina virtual, donde pueden agregar fácilmente la CPU y la memoria en base a las necesidades de la aplicación, junto con algunas pruebas realistas de carga / escala externo utilizando un servicio como WatchMouse o browsermob.

Si la aplicación escalas horizontalmente de una manera gracefull, una estimación inicial aproximada está bien como punto de partida. Adición o eliminación de cajas adicionales según sea necesario debe ser fácil una vez que la aplicación se ejecuta en la producción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top