sábado, 20 de julio de 2013

Redirigir un dominio propio a tu aplicación en OpenShift

OpenShift de Red Hat nos permite configurar un servidor web en el que podemos instalar nuestras propias aplicaciones. Cuando creas tu cuenta en OpenShift has de indicar el nombre del namespace que van a utilizar tus aplicaciones, con lo que la URL para acceder a ellas tendrá el formato nombreaplicacion-nombrenamespace.rhcloud.com. Esta URL puede estar bien para hacer pruebas o algo poco serio, pero si quieres, puedes asociar un dominio que ya tengas adquirido para que te redirija a tu servidor OpenShift.

Veamos un ejemplo práctico de como he configurado OpenShift para alojar la web, blog y foro de Ikaro Games y usar el dominio ikarogames.com que ya tenía registrado.

El blog y el foro de Ikaro Games son una instalación de Serendipity y phpBB respectivamente, por lo que vamos a necesitar crear un servidor PHP, con los cartridges de MySQL y phpMyAdmin dentro de OpenShift. La creación del servidor es un proceso muy simple, pero recomiendo que cada vez que hacemos un paso nos apuntemos los parametros de configuración y comandos que nos indican en pantalla, por si en algún momento nos hacen falta. De todas formas accediendo mediante SSH al servidor y ejecutando el comando env podremos ver muchos de estos parámetros de configuración y otros que nos pueden ser útiles a la hora de configurar nuestras aplicaciones.

Una vez tengamos la web funcionando sobre OpenShit, por ejemplo, la de Ikaro Games está en http://web-ikarogames.rhcloud.com/, podremos configurar la redirección de nuestro dominio a dicha URL. Para que todo esto funcione son necesarios 3 elementos:


  1. El servidor web donde está alojada la aplicación. En este caso el servidor OpenShift que acabamos de crear.
  2. El dominio que hayamos adquirido, en este caso ikarogames.com.
  3. Un servidor de DNS que nos redirija nuestro dominio a la dirección de nuestro servidor web.
Los puntos 2 y 3 dependen un poco de si el proveedor donde has comprado el dominio te ofrece también el servidor DNS o no. En mi caso no lo ofrecía gratuitamente, por lo que he utilizado para el tercer punto CloudFlare, que por el momento tiene un servicio gratuito de redirección DNS.

Añadimos nuestro dominio a la cuenta de CloudFlare y configuramos la redirección DNS de la siguiente manera:


Al realizar esta configuración en CloudFlare, nos indicará las direcciones de los DNS primario y secundario que tendremos que utilizar para configurar nuestro dominio. En mi caso han sido iris.ns.cloudflare.com y walt.ns.cloudflare.com. Vamos ahora a la web de nuestro proveedor del dominio, y en la configuración del dominio debe haber una sección donde nos permita indicar dichas direcciones DNS.

Una vez tengamos configurado el servidor de DNS y el dominio en la web de nuestro proveedor, nos vamos a la configuración de nuestro servidor en OpenShift y pulsamos sobre la opción Add Alias, indicamos el campo Domain name el nombre de nuestro la URL con la que queramos acceder al servidor, en este caso www.ikarogames.com.

Con esto ya tendremos todo listo para que al acceder a www.ikarogames.com se nos redireccione al servidor OpenShift. El proceso de actualizar las DNS puede tardar hasta 48 horas según nos indican en CloudFlare, pero a mi me tardó apenas un par de horas.

jueves, 18 de julio de 2013

Desplegar una aplicación Java en OpenShift

OpenShift
OpenShift es un servicio de Red Hat que nos ofrece una plataforma de fácil configuración en la nube, lo que se viene a llamar Platform as a Service o PaaS, en la que podremos desplegar nuestras aplicaciones o páginas web, blogs, servidores de pruebas, etc. Entre las opciones disponibles podemos montar servidores JBoss, Tomcat, PHP, Node.js, Ruby, usar bases de datos MySQL, MongoDB, o directamente configurar un blog Wordpress sin ningún esfuerzo.

Una vez registrados, nos ofrece la posibilidad de utilizar hasta 3 Gears gratuitamente. Con estos 3 Gears podremos montar hasta 3 pequeños servidores para poco tráfico, o usar los Gears en un sólo servidor para darle más capacidad de carga de trabajo. Si necesitamos montar servidores que requieran más carga de trabajo, podemos pagar por Gears adicionales.

La interfaz web nos permitirá crear, configurar y eliminar fácilmente los servidores con pocos clicks de ratón así como acceder a la documentación oficial de OpenShift. A parte de la interfaz web, tenemos una aplicación de línea de comandos llamada rhc con la que poder estas y otras operaciones.

Esta es una pequeña chuleta con las operaciones más útiles. Para utilizar los comandos abajo indicados tenemos que tener instaladas previamente las herramientas git y rhc en nuestro sistema.

  1. Creamos una aplicación Java con Tomcat 7:
    rhc app create -a nombreaplicacion -t jbossews-2.0
  2. Borramos el contenido por defecto de la aplicación:
    cd nombreaplicacion 
    git rm -rf src/ pom.xml 
    git commit -am 'removing default files'
  3. Añadimos el fichero WAR al directorio webapps y ejecutamos los siguientes comandos:
    git add . 
    git commit -am 'commit nombreaplicacion.war' 
    git push


Para reiniciar una aplicación tenemos varias opciones:
  1. Desde la interfaz web, vamos a la sección My Applications, seleccionamos la aplicación, y arriba a la derecha hay una opción que nos permite reiniciar la aplicación.
  2. Reiniciar la aplicación desde la consola de comandos:
    rhc app restart -a $your_app
  3. Si lo anterior no funciona, parar y arrancar la aplicación con:
    rhc app stop -a $your_app
    rhc app start -a $your_app
  4. Si la aplicación se ha quedado sin memoria y no funciona todo lo anterior, probar con:
    rhc app force-stop -a $your_app