Servidores

14 January
2012
escrito por admin

Resulta curioso lo de la memoria en java, nunca había tenido problema con ella, y sigo sin tenerlos. Lo único que he tenido ha sido un problema que parecia que era de memoria con una aplicación para un cliente. Al final ha resultado ser una tontería que no ha implicado ningún problema.

Pero la situación me ha hecho investigar un poco sobre el asunto de la memoria y como optimizar Tomcat para producción. Hasta ahora si tenia un problema de memoria, solo la incrementaba y se solucionaba el problema. No se si por que mis requerimientos siempre han sido de andar por casa (nunca he tenido una aplicación con tantos usuarios como Facebook, ya quisiera), o por que siempre he desarrollado las aplicaciones siguiendo una arquitectura estandar y aplicando patrones y tecnologías actualizadas. Pero nunca he tenido problemas.

He descubierto un par de paginas interesantes para aprender las bases de la gestión de la memoria en java. Una es de David Bonilla, una persona a la que sigo desde hace tiempo, artículo.

Esta otra página trata de que hacer cuando tienes un problema y como tratar de solucionarlo. Yo lo he hecho y resulta un poco complicado, supongo que sera práctica.

Y por último una página con pasos claros de como mejorar el rendimiento de nuestro Tomcat. Algunas muy elementales, como gestionar los log con alguna librería y nunca con System.out. Y otras que desconocía completamente como la opción -server.

Un post corto pero cargado de información. Cualquier sugerencia siempre sera bien recibida.

 

1 April
2011
escrito por admin

Desde que Amazon ofreciera la instancia micro por un año de forma gratuita, llevo tiempo queriendo montarme una, y ahora que estamos terminando el proyecto tenemos la escusa perfecta.

Así que me he puesto manos a la obra, tutoriales un montón. Solo aportare los problemas que he tenido y sus soluciones. Aquí y aquí tenéis unos buenos tutoriales. Yo comenzé siguiendo los pasos que te da Amazon, pero hay algunas diferencias que hacían que no me funcionara.

Lo primero es aclarar algunos términos y condiciones a tener en cuenta:

  • AMI (Amazon Machine Image): Es decir, las imágenes de los sistemas operativos. Hay muchas, unas son las que proporciona Amazon pero parece que son un poco mas complicadas de administrar, y otras son las de la comunidad. Yo he utilizado ubuntu y me he guiado por esta lista actualizada de imágenes de ubuntu. Importante, elegir la zona correcta, por temas de latencia.
  • EBS (Elastic Block Store): Es un volumen, como un disco duro, que no se pierde al apagar o terminar la instancia. Por que realiza snapshot en S3 (Simple Storage Service). Con este volumen podeis asociarlo a cualquier instancia, si cambiais la instancia podeis mantener el EBS, eso si, asociado a una sola instancia a la vez.
  • Estados, reboot, stop y start, que no requieren de explicación, salvo que si paráis una instancia se perderán los datos almacenados, salvo que se almacenen en EBS. Y Terminate, que se para la instancia y posteriormente se elimina, tarda un tiempo pero desaparecerá.

Una vez creada la instancia y almacenado en un buen sitio la key part, ojo que no se puede volver a descargar, así que guardarla muy bien, si no nos toca crear una nueva y  crear una nueva instancia, porque tampoco se puede cambiar la key de una instancia creada. Una vez la tengais en el ordenador hay que darle permisos al archivo, amazon nos dice de hacer chmod 400 pero a mi me ha funcionado chmod 600, que lo indican en la guia de ubuntu. Si queréis usar putty deberéis convertir las claves de pem a ppk, lo cual se puede hacer con puttygen.

Modificamos la seguridad en Security Groups para añadir el puerto ssh (22). Y ya solo nos queda conectarnos al servidor para seguir con lo que queramos hacer, solo un ultimo apunte, Amazon nos dice que nos conectemos por root, pero las imagenes de ubuntu utilizan el usuario ubuntu y sin contraseña.

Ya os ire contado la experiencia con estos servidores en la nube, que resultado dan y si realmente es algo interesante, por el momento lo parece, montar un servidor dedicado en pocas horas y aun coste que parece bajo, ya te lo dire cuando se termine la promoción.

¿Alguno a utilizado estos servicios en alguna aplicación? seria interesante saber con que condiciones de carga y programación funcionan estos servidores.

 

NOTA: He estado probando instancias ubuntu lucid de 32 bits, y hay un error conocido al instalar java. Las soluciones son instalarlo con la instancia que no sea micro y luego cambiar a micro. O si se puede reinstalar una instancia de 64bis.