Estoy buscando hacer un sitio web que probablemente reciba un tráfico pesado y repetitivo. ¿Grails está a la altura de la tarea?¿Cuán escalable es Grails?
Respuesta
Estoy de acuerdo con lael, también porque está basada en las tecnologías de Java, hay una gran cantidad de herramientas comprobadas de clustering y 'enterprise' disponibles que le permiten escalar fácilmente en múltiples servicios de aplicaciones.
Las herramientas en la nube alrededor de Grails también se están volviendo muy buenas y hacen que la implementación en una nube como EC2 sea muy fácil. Recientemente he estado usando Cloud Foundry y me pareció muy bueno.
Como el primer póster señala, sin embargo, puede escribir una aplicación de bajo rendimiento en cualquier marco/lenguaje. Una cosa que recomendaría es obtener una buena comprensión de Hibernate, que es la biblioteca de persistencia subyacente. Si entiendes cómo funciona eso, te ayudará a evitar cometer errores tontos en el nivel DB. Por este lado, una herramienta como p6spy es ideal para verificar el funcionamiento de la base de datos durante el uso normal. Debería ayudarlo a detectar cualquier consulta repetitiva.
La escalabilidad de su aplicación web no dependerá realmente del idioma/marco que elija usar, sino más bien de cómo se construye su aplicación. Puede crear una aplicación web escalable en Grails, del mismo modo que puede crear una aplicación increíblemente lenta en C++. Si Grails es el marco que le gustaría usar, entonces úselo; siempre puede volver a escribir las partes lentas en Java u otro idioma rápido, si es necesario. (Después de todo, eso es lo que hizo con Twitter Scala.)
de responsabilidad: En realidad nunca he utilizado Grails.
Twitter usó Schala. http://www.artima.com/scalazine/articles/twitter_on_scala.html. Aún así JVM sin embargo. – GmonC
Bueno, me refería más al hecho de que reescribieron una parte en un lenguaje más rápido. Al final, el lenguaje real no importa, siempre y cuando sea "lo suficientemente rápido". No creo que hubiera sido muy diferente para ellos si hubiera sido Java. –
Acepto, es por eso que dije que puede estar en JVM porque en este caso particular, al final no importa, como dijiste. Editaría tu publicación solo para agregar esta pequeña aclaración (sigue siendo interesante señalar exactamente lo que hicieron para evitar futuros errores), pero no tengo suficiente reputación. – GmonC
Grails es esencialmente una capa delgada en la parte superior de Spring Framework, que muchos consideran un marco muy escalable en el mundo empresarial. Spring + Hibernate se ha convertido en un estándar en muchas tiendas Java de todo el mundo.
Si se encuentra con cuellos de botella de rendimiento en Groovy, siempre puede volver a escribir esas partes en Java.
Eche un vistazo a Success Stories para ver ejemplos de sitios escritos en Grails. El Testamonials también es un buen lugar para buscar ejemplos. Utilizará un poco más de memoria (montón y permgen) que una aplicación Java vainilla, pero puede sintonizarla como lo haría con cualquier otra aplicación Java.
En el extremo inferior no encontrará $ 3/mes opciones de alojamiento que podría con la pila de PHP (por ejemplo). Dicho esto, hay algunas buenas soluciones de almacenamiento en caché para las aplicaciones de Grails EhCache, MemCache, etc. Además, también puedes configurar una capa de Apache para almacenar en caché recursos estáticos o lo que necesites.
Grails se ejecuta en la JVM. En pocas palabras, no encontrará una plataforma de tiempo de ejecución más escalable, sólida y robusta que la JVM, en cualquier lugar. Esa es la gran ventaja de Grails sobre, digamos, PHP o RoR.
No significa apilar aquí. Ya has obtenido algunas excelentes respuestas, pero solo quiero agregar cosas que me recordaron recientemente. La escalabilidad depende no solo del software que escribe (independientemente del idioma/marco) sino también del entorno de despliegue. Una aplicación muy bien escrita implementada en un servidor de tamaño insuficiente o mal configurado no se escalará en absoluto. Si usa Grails o cualquier otro framework basado en Java, la configuración predeterminada en su contenedor (Tomcat, JBoss, etc.) probablemente no sea lo que necesita.
Sólo es algo a tener en cuenta, de Dave
- 1. ¿Cuán escalable es Codeigniter V Otros marcos PHP?
- 2. cuán seguro es tomcat
- 3. ¿Cuán maduro es dblinq?
- 4. ¿Qué tan escalable es Jetty?
- 5. ¿Qué tan escalable es System.Threading.Timer?
- 6. ¿Qué tan escalable es ZeroMQ?
- 7. ¿Cuán exacto es Thread.Sleep (TimeSpan)?
- 8. Cuán maduro es PHP: SVN
- 9. ¿Cuán flexible es Oracle ADF?
- 10. Ejecución escalable escalable de tareas con Redis
- 11. ¿Cuán precisa es la precisión de CLLocation?
- 12. ¿Cuán robusto es nodejs como servidor http?
- 13. ¿Cuán importante es la portabilidad de SQL?
- 14. ¿Cuán importante es firmar digitalmente nuestros ejecutables?
- 15. ¿Cuán maduro es Ebean o Siena?
- 16. OSGi: ¿Cuán madura es esta tecnología?
- 17. ¿Cuán preciso es el reloj GPS?
- 18. ¿Cuán diferente es Qt4 de Qt3?
- 19. ¿Cuán importante es apoyar navegadores antiguos?
- 20. ¿Cuán seguro es mi regreso seguro?
- 21. ¿Cuán maduro es apache sshd (MINA)?
- 22. ¿Cuán importante es escribir especificaciones funcionales?
- 23. ¿Cuán difícil es el multihilo de Haskell?
- 24. ¿Cuán universalmente es compatible con C99?
- 25. ¿Cuán probable es md5 sumas positivas falsas?
- 26. ¿Cuán exacto es GeoIP y $ _SERVER ['REMOTE_ADDR']?
- 27. Programación móvil: cuán seguro es el SMS
- 28. cuán rápido es el segmento de python
- 29. Cola escalable de trabajo/mensaje escalable con retraso
- 30. recorte escalable máscara
Lo que es pesado? ¿Cuántas solicitudes de inspección por segundo? ¿Cuántos en promedio?¿Cuántos servidores frontend? ¿Qué especificaciones? Lo mismo para servidores de bases de datos. Equilibradores de carga? ¿Sesiones pegajosas? Tu pregunta es muy falta. –