Pregunta

Buen día,

Estaba leyendo el artículo Cuantificar en el libro "97 cosas que cada El arquitecto de software debe saber"( desinfectado Amazon enlace ) y me hizo pensar cómo para cuantificar la escalabilidad.

Me han diseñado dos sistemas para una gran corporación de radiodifusión británica que se utilizan para:

  1. detecta el país de origen de las solicitudes HTTP entrantes, o
  2. determinar los formatos de vídeo adecuados para la geometría de la pantalla de un teléfono móvil y el tipo de conexión actual.

Tanto de los diseños fueron necesarios para proporcionar la escalabilidad.

Mis diseños para ambos sistemas son escalables horizontalmente detrás de capas de equilibrio de carga de almacenamiento en caché que se utilizan para manejar las peticiones entrantes para ambos servicios y distribuirlos a través de varios servidores, que realmente ofrecen el servicio en sí. aumentos iniciales en la capacidad de servicio se realizan mediante la adición de más servidores detrás de la capa de equilibrio de carga, por lo tanto, la escalabilidad horizontal plazo.

Hay un límite a la escalabilidad de esta arquitectura sin embargo, si la capa de equilibrio de carga comienza a tener dificultades para hacer frente al tráfico de solicitud entrante.

Por lo tanto, es posible cuantificar la escalabilidad? ¿Sería una estimación de la cantidad de servidores adicionales se podría añadir a escalar horizontalmente la solución?

¿Fue útil?

Solución

Creo que es posible en algunos contextos - por ejemplo, la escalabilidad de una aplicación web puede ser cuantificada en términos del número de usuarios, número de peticiones concurrentes, media y desviación estándar del tiempo de respuesta, etc También se puede conseguir en general, números para el ancho de banda y el almacenamiento, las transacciones por segundo, y los tiempos de recuperación (para copia de seguridad y DR).

Puede también suelen dar números dentro del dominio de aplicación - digamos que el sistema soporta comentando, se puede cuantificar cuál es el orden de magnitud de la cantidad de comentarios que tiene que ser capaz de almacenar

.

Sin embargo, es importante tener en cuenta que no todo lo que importa se pueden medir, y no todo lo que se puede medir las cosas. : -)

Otros consejos

Creo que esto se reduce a lo que significa la escalabilidad en un contexto dado y por lo tanto la respuesta sería Depende .

He visto escalabilidad de las necesidades de las cosas que simplemente no existían todavía. Por ejemplo, una nueva herramienta de solicitud de préstamo que llamó específicamente la necesidad de trabajar en el iPhone y otros dispositivos móviles en el futuro.

También he visto escalabilidad utilizado para describir el potencial de expansión de más centros de datos y servidores web en diferentes áreas del mundo para mejorar el rendimiento.

Ambos ejemplos anteriores pueden ser cuantificable si hay una diana conocida para el futuro. Pero escalabilidad puede que no sea cuantificable si realmente hay un objetivo conocido o plan que hace que sea un objetivo en movimiento.

La medida apropiada de escalabilidad (no la más sencilla ;-) es un conjunto de curvas de recursos exigió la definición (CPU, memoria, almacenamiento, ancho de banda locales, ...), y el rendimiento (por ejemplo, la latencia) entregado, ya que la carga crece (por ejemplo en términos de consultas por segundo, pero otras medidas tales como el caudal de datos total demandada también puede ser apropiado para algunas aplicaciones). Los tomadores de decisiones normalmente exigirán que tales medidas precisas, pero complejas reducirse a unos pocos números de clave (puntos específicos en algunas de las varias curvas), pero siempre tratar de negociar por más precisos en comparación simple de entender medidas de estos métricas clave -)

Cuando pienso en la escalabilidad pienso en:

  • Rendimiento - cómo responde la aplicación tiene que ser para una carga dada
  • lo grande que una carga de la aplicación puede crecer en ya qué costo unitario (si su servidor por incluir software, soporte, etc)
  • lo rápido que puede escalar la aplicación y la cantidad de memoria intermedia que desee sobre el uso periodo pico (que puede agregar un 50% más ancho de banda en 2-3 horas y requieren un buffer de 30% durante los picos de uso previsto)

La redundancia es otra cosa, pero también debe ser incluido y considerado.

"El sistema deberá escalar como para mantener una relación lineal de X para el coste / user".

Esto es una manera:

"asume que un único procesador puede procesar 100 unidades de trabajo por segundo ..."

http://www.information-management.com/ temas / 19971101 / 972-1.html

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