blog de domix

Grails, opción real y escalable para sitios web de alta carga.

 

He estado trabajando poco mas de un año en un proyecto que usa Grails, desde que lo comencé no pensé que se convertiría en lo que es ahora, es decir no pensé que llegara a tener tanta carga.

Básicamente es una tienda en linea, con diversas formas de pago. El stack de tecnologías se compone de varias cosas:

 

 

Usamos varios plugins de Grails entre ellos:

 

 

Y algunas librerías como:

 

 

 

Estamos modularizando la aplicacion en mas aplicaciones y tenemos una app que usa Scala con ScalaQuery para la base de datos, en el futuro haremos muchas mas cosas con Scala y Akka.

Para JavaScript usamos JQuery y varios plugins.

Para trabajar usamos IntelliJ IDEA 10, Gradle, Archiva, Jira, Git, GitHub y mucha cerveza y café.

Un miembro del equipo desarrollo herramientas de monitoreo que revisan la salud de los load balancers y reportan los errores con mensajes directos de Twitter con Shell Scripts. También usamos logstalgia para monitorear casi en tiempo real la carga en los web servers.

El hardware esta compuesta de 5 cajas RHEL 5 de 64 bits, un LoadBalancer y un Firewall físicos. El load balancer dirige el trafico a los Apache HTTPD de 4 cajas, en cada una de esas cajas, esta  configurado con mod_proxy usando AJP hacia 2 Tomcats con un fail over a otra caja. En total se tienen 8 Tomcats atendiendo todo el trafico. Una de esas cajas tiene instalado RabbitMQ y otra caja Terracotta. Se usa una caja exclusivamente como servidor de mySQL.

Las cajas tienen los siguientes specs:

 

  • Dual Quad Core Xeon 2.26 HGZ
  • 24 GB de RAM
  • 300 GB SAS X 3

 

Estas cajas están en el hospedaje dedicado de RackSpace en Chicago.

Con todo lo anterior hemos podido suscribir 1.5 Millones de personas, logrado una carga tope de 80,000 usuarios concurrentes y 30,000 http request por minuto.

Unas de las claves ha sido usar procesamiento asíncrono con RabbitMQ y usar muchísimo el cache distribuido con Terracotta. Ademas de contar con un equipo de 4 desarrolladores mexicanos (yo entre ellos) y un alemán, con mucho talento todos ellos.

Grails es una excelente opción para desarrollo web, nos ha permitido implementar rápidamente los requerimientos de negocio, hemos hecho en un día hasta 12 despliegues de la aplicación sin sufrir downtimes. Grails es una herramienta que facilita el desarrollo web sin perder poder en los frameworks en los que se basa como Spring, Hibernate y otros...

Les dejo un video del análisis casi en tiempo de real que hace logstalgia del log de acceso de los 4 webservers

 

Pllugin para Grails que permite integrar código Scala

Hola,

Acabo de publicar una nueva versión del plugin de Grails que permite tener código Scala en una aplicación Grails. En breve, lo que hace este plugin es invocar al compilador de Scala con los fuentes que encuentre en el directorio src/scala y src/java de una aplicación Grails, deja los binarios en el classpath para que sean usados por artefactos Grails. Cualquier controller, servicio, taglib, etc. de Grails puede usar los binarios de Scala. La única limitante por ahora, es que desde código Scala no es posible acceder a artefactos Grails, esto debido a que no se cuenta con un joint-compiler entre Grovy/Scala. Solo existe entre Java/Scala.

Esta ultima versión, incorpora soporte para la mas reciente versión estable de Scala, la 2.9.1. Espero les sea tan útil como lo es para mi.

Ya se encuentra publicado en el repositorio oficial de plugins de Grails:
http://grails.org/plugin/scala

Usar Gradle Wrapper para evitar instalar Gradle

 

Gradle es una excelente herramienta de construcción. Podría ser en conjunto son SBT las mas avanzadas en Java. Durante los años se ha aprendido mucho de la experiencia de herramientas similares como Ant y Maven. Gradle y SBT han sabido aprovechar muy bien esta experiencia para beneficio de nosotros los desarrolladores.

Entrevista sobre 'Estandares web' en el podcast de @ViveCodigo a Luis Hernandez @Juwe

Hemos publicado la nueva edición del podcast de ViveCodigo.org, en esta ocasión entrevistamos a Luis Hernandez (@Juwe) sobre 'Estandares Web'.

ViveCodigo 00x03 Entrevista sobre Estándares Web from SynergyJ on Vimeo.

Espero la entrevista les guste. Pueden ver las notas completas, así como las referencias en http://vivecodigo.org/2011/05/31/podcast-3-de-la-temporada-0/

Sus comentarios y retroalimentación son bienvenidos.

ViveCodigo ataca de nuevo con una emisión doble sobre Scala

Me complace nuevamente anunciar que ViveCodigo.org el podcast con screencast, ha publicado un nuevo episodio en el cual entrevistamos a Julio Carlos Sanchez (@TheGeekInside) que nos habla sobre Scala. Fue una entrevista muy interesante ya que ademas platicamos de la creación de una empresa llamada TypeSafe (http://typesafe.com) que se va a encargar del desarrollo de Scala y Akka (libreria de actores para Scala y Java). La platica se puso muy buena, tanto que tuvimos que partir el episodio en 2 partes, en le primer parte es la entrevista y la segunda un screencast de introducción a Scala.

Aqui la entrevista

Acá la parte practica de introducción a Scala.

Acá podrán ver todas las ligas que comentamos, así como el código fuente del screencast: http://vivecodigo.org/2011/05/18/podcast-2-de-la-temporada-0/
Muchas gracias por ver el podcast, esperamos sus comentarios.
Saludos

Nuevo episodio del podcast/screencast ViveCodigo.org

Muchas gracias por la buena recepción que le dieron a ViveCodigo, ahora hacemos entrega episodio 1 de la temporada 0, en el cual mencionamos algunas noticias sobre agilidad, la liberación de Groovy 1.8,0 y hacemos promoción del podcast de "El Geek Errante" que entrevista a el buen Gerardo Horvilleur "Mago".

El screencast es sobre Git y GitHub, esta vez se nos fue la pinza, pues casi dura una hora, pero espero les sea útil.
Pueden ver a detalle los temas y ligas en http://vivecodigo.org/2011/05/05/podcast-1-de-la-temporada-0/

El video aqui:

El podcast/screencast ViveCodigo lanza su primer episodio

Me complace anunciar ViveCodigo, el nuevo proyecto en el que Jose Juan Reyes Zuñiga (@neodevelop) y su servidor hemos estado trabajando.

Es un podcast en video que incluye screencast de algún proyecto/herramienta/framework en cada emisión. En nuestro episodio inaugural hablamos un poco sobre Ceylon y CloudFoundry. En la demostración practica (screencast) hacemos un repaso de algunos plugins de JQuery para visualización de datos.

Espero les agrade, aqui les dejo la entrada completa http://vivecodigo.org/2011/04/21/podcast-0-de-la-temporada-0/

El video del podcast aqui:

ViveCodigo 00x00 from SynergyJ on Vimeo.

Ceylon: El proyecto secreto de RedHat que ha mantenido a Gavin King muy ocupado

Hace mucho tiempo, Gavin King anuncio en su blog que se iba a retirar a trabajar a un proyecto secreto que le llevaría bastante tiempo. Este lunes ha hecho un sneak peek de dicho proyecto: El proyecto Ceylon.

Aqui pueden ver muchos de los detalles de las presentaciones de Gavin King en el QCon Beijing http://blog.talawah.net/2011/04/gavin-king-unviels-red-hats-top-secret.html

Y tambien ya hay entrada en la wikipedia http://en.wikipedia.org/wiki/Ceylon_Project Revisen al final de la entrada, hay unos PDFs que uso Gavin para presentarlo, no tienen desperdicio

Creo que RedHat se esta equivocado mucho con este proyecto. Se han tardado 2 años en hacerlo y dicen que a finales de año estará listo el compilador. Existen muchos lenguajes para la JVM como Groovy, Scala, Clojure, etc. que tienen mucha mas masa critica de usuarios y desarrolladores. No hace falta otro lenguaje, menos aún con lo horrible que es Ceylon.

¿Necesitamos otro lenguaje? ¿Gavin King olvido como hacer proyectos (Hibernate fue muy exitoso por ser abierto, Ceylon ha sido desarrollado a piedra y lodo)?

SpringHispano.org y grails.org.mx te llevan gratis a Campus Party Mexico 2010

El staff de SpringHispano.org y grails.org.mx nuevamente te llevan gratis a Campus Party Mexico 2010

Los pases incluyen la entrada y camping durante toda la semana completa del evento, Conviértete en uno de los 6000 campuseros que disfrutarán de 24 horas de convivencia, talleres, conferencias, mesas redondas, competencias y videojuegos por cortesía de SpringHispano.org y grails.org.mx.

Tienes que apresurarte ya sólo tienes hasta el 27 de junio para participar. Después de esta fecha la única forma de asistir a Campus Party será adquiriendo tu entrada la cuál tiene un costo de $1000 pesos, más $100 pesos si quieres quedarte a acampar.

Usa cualquiera de estas dos ligas para obtener mas información sobre como obtener las entradas gratis.

Saludos

Webminar: Java como plataforma Poliglota

Si están interesados en diversos lenguajes y como estos pueden corren en la plataforma Java los invito a que se registren al Webminar sobre 'Java como plataforma Poliglota', así que si les interesa conocer acerca de este tema por favor visiten el blog de SynergyJ y lean la información completa

Saludos
--
Domingo

Distribuir contenido