Pregunta

Al leer acerca de los marcos (.net. Ruby on Rails, Django, muelles, etc.), sigo viendo esto y lo hace o no escala bien.

¿Qué significa cuando alguien dice que un marco de "escala bien" y qué significa decir un marco "no escala bien"?

Gracias.

¿Fue útil?

Solución

Cuando se traza un cierto uso de recursos (memoria, tiempo, espacio en disco, ancho de banda) en contra de usuarios concurrentes, se obtiene una función que describe cómo funciona la aplicación a diferentes factores de escala.

pequeña escala - unos pocos usuarios -. Utiliza unos recursos

a gran escala - un gran número de usuarios -. Usa un gran número de recursos

La cuestión clave es "cómo cerca de lineal es la escala?" Si se escala linealmente, a continuación, que sirve 2.000 usuarios simultáneos cuesta 2 veces más que servir a 1.000 usuarios y 4 veces más que servir 500 usuarios. Se trata de una herramienta / marco / lenguaje / plataforma / os que se adapta bien. Es previsible, y la predicción es lineal.

Si no escala linealmente, a continuación, sirviendo 4.000 usuarios cuesta 1.000 veces más que servir a 2.000 usuarios que cuestan 100 veces sirven a 500 usuarios. Esto no escala bien. Algo salió mal como el uso subió; no parece previsible y no es lineal.

Otros consejos

Esto significa que un marco concreto hace (o no) a satisfacer la creciente demanda que más usuarios ponen en ella. Si usted tiene una aplicación escrita en VBScript, podría no hacer un buen trabajo de manejar los 40.000.000 de usuarios de Facebook, por ejemplo.

Esta entrada de blog explica algunas de los dolores de escalabilidad Twitter experimentó un año o así que hace. Se podría proporcionar una cierta visión más clara en la respuesta a su pregunta.

A veces la falta de escalabilidad se utiliza para denigrar a un idioma o marco, así que cuidado con eso. Se adhieren a los estudios que muestran las métricas reales. Esto se aplica a mi ejemplo de VBScript en el párrafo anterior también.

Si un marco o una aplicación escalas bien, significa que se puede manejar cargas más grandes. A medida que su sitio se vuelve más popular entre los visitantes más y más visitas por día, un marco que se adapta bien manejará la carga más grande sea la misma que maneja una carga más pequeña. Un marco que se adapta bien actuará de la misma cuando recibe 200.000 visitas por hora como lo hace cuando se pone 1 hit de una hora. No sólo golpes, pero al ser desplegado a través de múltiples servidores, posiblemente detrás de balanceo de carga, posiblemente con varios servidores de bases de datos diferentes. Un marco que se adapta bien puede manejar bien estas demandas crecientes.

Por ejemplo, Twitter explotó casi toda la noche el año pasado. Fue desarrollado usando Ruby on Rails, y se contó con vehemencia en el debate en curso sobre si rieles escala bien o no.

sustituir la frase "expansión mango" para "escala"

Hay un par de elementos a él en mi mente. La primera es la obvia - escalado de rendimiento. Puede su marco se utilizará para construir la capacidad de altura, sistema de alto rendimiento o puede que sólo sea utilizado para construir aplicaciones más pequeñas. Va a escalar verticalmente en el hardware (bibliotecas paralelas, por ejemplo) y tendrá que escalar horizontalmente (granjas de servidores web, por ejemplo).

La segunda es que se puede escalar a equipos más grandes o la empresa. Es decir, funciona bien con grandes bases de código? los equipos de desarrollo grandes? ¿Tiene un buen soporte de herramientas? ¿Es fácil de implementar? Se puede lanzar a decenas o cientos o incluso miles de usuarios? Todo el camino hasta es más fácil contratar a las personas que tienen esta habilidad. Pensar en tratar de armar un equipo de desarrollo de 20 o 50 personas que todo el trabajo en este marco. ¿Sería fácil o casi imposible?

En mi humilde opinión, diciendo que un marco de "escala bien" generalmente significa que alguien en la cadena de oídas era capaz de usarlo para manejar una gran cantidad de volumen.

En la escalabilidad programación paralela por lo general se usa para describir cómo un algoritmo lleva a cabo a medida que se parallelized. Un algoritmo que tiene una relación 1: 1 aumento de velocidad es una bestia rara pero se duplicará en dos veces el rendimiento en el hardware / CPU, agudos en tres veces el hardware / CPU, etc ...

En mi experiencia prácticamente cualquier estructura puede hacerse a escala dada la experiencia suficiente.

El más fácil el marco es utilizar la mayor es la probabilidad de que un desarrollador con experiencia insuficiente a tener problemas de escalabilidad.

Esto significa que alguna empresa respetada está haciendo algo serio con ella y no está teniendo ningún problema con él.

Escala significa lo fácil que es para satisfacer una mayor demanda mediante el uso de más hardware.

Ejemplo: Usted tiene un sitio web escrito en un lenguaje que recibe 1000 visitas diarias. Uno se destacaba en magazin prominente y su número de usuarios crece. De repente usted tiene 1000000 visitas al día, eso es 1000 veces más. Si sólo se puede utilizar más de 1000 servidores para satisfacer la necesidad de los recursos crecido, su sitio web escala bien. Si por el contrario se agrega servidores 2000, pero todavía no puede conectarse a los usuarios, debido a que su base de datos sólo puede manejar 1.000 solicitudes por día, que su sitio web no escala bien.

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