8

Es la primera vez que lanzo un sitio web en vivo (con el framework web Grails bajo la plataforma Amazon EC2 y Cloud Foundry) y me di cuenta rápidamente de que no estoy listo para monitorear y mantener correctamente mi aplicación en modo de producción (afortunadamente el sitio web es accesible para un número muy limitado de usuarios).¿Cómo supervisar y mantener mi aplicación de grails en vivo/entorno de producción?

Los temas que he enfrentado hasta el momento son:

  • No se puede cambiar mi punto de vista. Necesito volver a implementar mi aplicación
  • No tengo monitoreo. No sé quién está conectado, cuándo inician sesión o cierran sesión ...
  • Redplegar mi aplicación (cargar WAR + implementar) lleva al menos 30 minutos.
  • No sé cómo reiniciar mi servidor Tomcat sin una redistribución a través de Cloud Foundry.
  • ...

Por lo tanto, mi pregunta es muy simple:

Lo herramientas (incluyendo Grails plugins) y métodos me puede recomendar por sacarme de mi actual ¿ceguera?

Respuesta

1

Intenté Cloud Foundry en sus comienzos y me pareció un poco difícil. Suena como que sigue siendo así con implementaciones de más de 30 minutos y la incapacidad de reiniciar su servidor Tomcat. La mitad de sus problemas podrían resolverse si acaba de crear su propia instancia EC2, instaló tomcat y administró sus propias implementaciones. Eso va a dejar que rebote Tomcat a través del acceso shell:

sudo /etc/init.d/tomcat6 restart 

y volver a implementar la aplicación

sudo /etc/init.d/tomcat6/stop 
cp my.war /to/tomcat/dir 
sudo /etc/init.d/tomcat6 start 

o de lo contrario podría hacerlo a través de la consola de administración de Tomcat, pero me parece que es escamosa.

En cuanto a la supervisión, hay varias formas de hacerlo. Lo más fácil es agregar el monitoreo CloudWatch a su sistema. Eso te dará más información sobre el rendimiento de la aplicación.

Para una vigilancia más detallada con respecto a quién se conecta a su aplicación, sugeriría mirar Google Analytics o Mint. Si necesita ir más allá de eso (con la supervisión por usuario), es probable que deba realizar su propio registro/seguimiento para lo que se ajuste a sus necesidades. También hay otros paquetes pagados que se pueden integrar en Google Analytics y Mint, pero no puedo decir qué se adapta mejor a sus necesidades.

1

Para la supervisión real del sistema implementado también puede usar Hiperic HQ. Es una solución de monitoreo de Spring Source, quienes también son propietarios de Grails Framework.

Puede gestionar, en su caso:

  1. servidor Tomcat
  2. base de datos
  3. Linux
  4. red
  5. etc

por cierto redistribución de aplicación con los cambios está bien. es una práctica muy mala para modificar la aplicación en ejecución, en el servidor de producción.

5

No estoy seguro de cómo mucho que esto le ayudará, sin embargo utilizo el JavaMelody Grails Plugin (http://www.grails.org/plugin/grails-melody) lo uso para ver si el sitio está siendo utilizado antes de que tire hacia abajo el servicio.

Espero que ayude.

1

No sé si JMX y JConsole pueden ayudar, pero esa podría ser una buena forma de ver cuál es el estado de los POJO habilitados para JMX. Spring lo hace fácil de hacer.

1
  1. Sí, necesita volver a implementar su aplicación cuando cambia cosas, no hay forma de evitar eso.
  2. El tiempo de implementación/reintroducción se ha reducido significativamente recientemente si se utiliza el complemento grails (por cierto, ¿qué versión del complemento usa?) En algunos casos, el tiempo de carga es tan corto como 15 segundos. Agregue 2-3 minutos para que Amazon acelere las instancias y el tiempo de despliegue aún es bastante manejable. Para volver a implementar las instancias, no es necesario iniciarlas, por lo que es incluso menos que eso.
  3. Para reiniciar Tomcat inicie sesión en su cuenta de CloudFoundry, haga clic en Detalles de la implementación, haga clic en la instancia que ejecuta su Tomcat, y habrá un botón "Reiniciar servicio" que hará precisamente eso - reinicie el servicio Tomcat.
  4. No tiene que iniciar sus propias instancias de EC2 para obtener acceso de shell. Copie el nombre DNS público de la instancia de DeploymentDetails y SSH en él con la clave privada que ingresó al registrarse en Cloudfoundry. Ejemplo:

    ssh -i raíz /path/to/gsg-keypair.pem @ your_instance_DNS_name

Cuestiones relacionadas