Pregunta

He estado discutiendo con algunos amigos en la universidad, y no podemos llegar a un punto en el que se encuentre el marco con más escalabilidad para aplicaciones web (y aún muy rápido).

Uno pide jsp, el otro para ruby ??otro para php y así sucesivamente. ¿Puedo pedirle que nos aclare cuál es el mayor potencial de escalabilidad?

Tks, espero que no esté duplicando nada de lo que he buscado pero no encontré ninguna pregunta anterior como esta.

Editar: si pudieras apuntar una comparación sobre esto, sería bueno :)

¿Fue útil?

Solución 4

(cinco años después ...)

Encontré esta publicación de blog que evalúa los marcos web dependientes de múltiples idiomas. Y ahora esto responde bastante bien a la pregunta que tuve en 2008.

http://www.techempower.com/blog/2013 / 03/28 / framework-benchmarks /

Otros consejos

Ruby y PHP no son frameworks de aplicaciones web. Son lenguajes de programación que son populares para el desarrollo web.

En términos generales, la escalabilidad de la aplicación web no es una propiedad de un lenguaje de programación, y un marco de aplicación web dado puede, a lo sumo, una escalabilidad no obstaculizada . Una buena escalabilidad es más una propiedad del diseño de la aplicación.

Hay demasiados marcos webapp para una comparación punto por punto que no es enciclopédica.

Además, puede abordar la escalabilidad de una aplicación determinada de varias maneras. Una forma es tener un alcance estrecho y bien definido y apuntar un increíble rendimiento en bruto, de modo que una sola máquina pueda servir a mil millones de unidades de trabajo. El mejor ejemplo es Mailinator .

Otra forma es hacer que sea más fácil servir cargas crecientes con " simplemente " Añadiendo más hardware. Casi cualquier estructura de aplicación web respaldada por bases de datos puede escalarse de esta manera: solo agregue más servidores de aplicaciones entre un equilibrador de carga y un servidor de bases de datos compartido. Si encuadra el problema de esta manera, su principal preocupación es diseñar la aplicación para minimizar 1. la contención de la base de datos 2. la carga de la base de datos.

La última forma es diseñar el sistema para que sea increíblemente paralelo en todo el camino. Google es el mejor ejemplo.

En resumen: los idiomas o los marcos no hacen aplicaciones escalables, los arquitectos de software sí lo hacen.

EDITAR: Para ser claro, mi respuesta se centra en escalabilidad , que es la capacidad de manejar cargas crecientes sin cambiar el diseño. Esta es una propiedad diferente a la velocidad de ejecución.

Los algoritmos contarán más para la escalabilidad que el lenguaje utilizado.

Dicho esto, habrá diferencias en la velocidad de ejecución entre los idiomas. Creo que Java (los Servlets y los JSP se compilan en servlets, es decir, código nativo) será más rápido que Ruby y PHP en cierta cantidad). También hay una gran cantidad de marcos web para Java que lo alentarán a hacer las cosas de la mejor manera para la escalabilidad.

También diseñe su aplicación para que pueda ejecutarse felizmente detrás de un equilibrador de carga, y la escalabilidad se vuelve mucho más sencilla :) Sin embargo, este no es mi campo de experiencia.

La escalabilidad del marco web es una pregunta demasiado pensada (algunos dirían que es el concurso p155ing). A menos que esté obteniendo mega bucks (buena suerte con eso en estos días) y pueda garantizar que millones de visitantes al día todos esos marcos puedan manejarlo bien (como ASP.NET).

Personalmente siempre elegiría ASP.NET. Es tan escalable como cualquier cosa y tiene las mejores herramientas de desarrollo. El único inconveniente es el alojamiento y los costos del sistema operativo.

También puede consultar " ¿Qué es más rápido? PHP vs ASP vs JSP vs CGI, etc. "

Creo que Java / Java EE es el único " framework " diseñado desde cero para desarrollar aplicaciones distribuidas / agrupadas y que fomenta las buenas prácticas para lograrlo a partir de especificaciones (EJB, JTA ...).

Pero como de costumbre, depende. Este tipo de preguntas a menudo tienden a provocar guerras :)

No estoy seguro de que ninguno de los marcos que mencionas obstaculicen seriamente la escalabilidad.

Todo depende de la implementación.

Primero me concentraría en que su aplicación web funcionara bien y luego me preocuparía por la escalabilidad cuando se convierta en un problema. En otras palabras, " crucemos ese puente cuando lleguemos a él " ;.

A: C ISAPI dll (o módulo de apache personalizado) :)

Incluso entonces, la sobrecarga del servidor web, el análisis de las solicitudes http y el servicio a las páginas html hace que el tiempo de ejecución de sus aplicaciones sea casi irrelevante. Si ejecuta su aplicación como una aplicación CGI, espere incluso menos rendimiento.

Para la escalabilidad en la web, realmente está hablando de agregar más servidores y equilibrar la carga, quitar la carga del servidor al colocar la base de datos (si se usa mucho) en un servidor separado.

El rendimiento en bruto de esos idiomas no es casi nada de qué preocuparse. Use el que quiera usar con el que será más productivo. Preocúpese por los otros problemas que encontrará: red io, seguridad, corrección.

Varios buenos puntos ya. Mi punto principal sería este: una persona que conoce python por dentro y por fuera probablemente podrá hacer un código más escalable usando python que usando Java. Y hay muchos sitios masivamente grandes que utilizan todas las tecnologías que mencionas, por lo que no creo que de ninguna manera haya una gran ventaja.

En la mayoría de los casos, debes apegarte a lo que estás familiarizado, a menos que haya una razón realmente importante para ir por otro lado.

Me encontré con esta pregunta y noté que algunos hablan de velocidad, otros de escalabilidad. Escribí una publicación en el blog explicando la diferencia:

http://www.fransekman.com/scalability -o-rendimiento-qué-quiere decir /

" Un sitio web de alta escalabilidad es un sitio web cuyo nivel de rendimiento se puede mantener agregando más capacidad cuando la carga aumenta " Esto se puede lograr en cualquier lenguaje de programación y en casi cualquier marco. Algunos marcos tienen funcionalidad incorporada, lo que puede hacer que algunas cosas comunes de escalabilidad sean más rápidas de implementar.

Un lenguaje compilado generalmente se ejecutará más rápido que un lenguaje interpretado, así que creo que Ruby y PHP comienzan detrás de la bola ocho, pero realmente se trata de cómo se usa el idioma y cómo se estructura el código.

Todos los idiomas tendrán sus propias mejores prácticas y patrones para crear aplicaciones escalables y, a menudo, habrá compromisos según la funcionalidad de la aplicación propuesta.

Si desea saber cómo los sitios principales utilizan LAMP para lograr la escalabilidad, debe consultar fragmentación de la base de datos .

La elección de un marco web tiene menos impacto en la escalabilidad (la capacidad de escalar) que la arquitectura de su sitio. La mayoría de los marcos web modernos se prestan muy bien para escalar, por lo que es realmente su configuración de implementación lo que necesita atención.

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