WindRide: utilidad para la migración de servidores de aplicaciones Jboss

Como comenté en el anterior artículo, por una parte tenemos la utilidad windup para la migración de las aplicaciones a versiones más recientes de Jboss y por otra WindRide, que tiene por objetivo migrar la propia infraestructura del servidor de aplicaciones.

Entorno de migración

Lo primero que debemos tener en cuenta es las versiones de Jboss que podemos migrar y a qué versiones superiores podemos hacerlo. Según la documentación la utilidad WindRide puede migrar desde Jboss AS 5.1+ o Jboss EAP 5.x a Jboss AS 7.1.1+, Jboss EAP 6.x y Wildfly 8.x. Recordar que Wildfly es la versión upstream sin soporte de Red Hat mientras que la EAP es la que sí tiene soporte (previo pago) de la compañía del sombrero rojo.

Migración de Jboss con WindRide

Migración de Jboss con WindRide

En este caso voy a partir de un servidor Jboss AS 5.1.0 y migraré a Wildfly 8.2.0.Final. Mi servidor Jboss 5 está localizado en:

/opt/jboss/jboss-5.1.0.GA

Por su parte el servidor Wildfly está en:

/opt/jboss/wildfly-8.2.0.Final

La utilidad la está disponible en la web de Jboss.

Antes de ponerla en funcionamiento, tener en cuenta dos requisitos:

  • La variable JBOSS_HOME no puede estar definida.
  • El servidor destino (al que vamos a migrar) tiene que estar ejecutándose y es muy recomendable que sea una instalación limpia sin modificación alguna.

La sintaxis básica de la utilidad es:

java -jar WindRide-1.0.0.jar src.dir=<localización del servidor origen> dest.dir=<localización del servidor destino>

Echad no obstante un vistazo a la sección de las opciones al final de la web del proyecto en Github. Por defecto migra desde una instancia default a una standalone aunque podemos especificar por ejemplo desde una instancia all a una de dominio.

Una vez tenemos lo anterior entendido arrancamos el servidor wildfly:

cd /opt/jboss/wildfly-8.2.0.Final/bin
./standalone.sh > /dev/null &

Y posteriormente lanzamos WindRide que se encargará de llevar a cabo la migración entre servidores de aplicaciones:

java -jar WindRide-1.0.0.jar src.dir=/opt/jboss/jboss-5.1.0.GA dest.dir=/opt/jboss/wildfly-8.2.0.Final

Esperamos a que se complete el proceso. Si ocurre cualquier error de consideración WindRide hace un rollback para dejar intacto el servidor de destino. En cualquier caso, se haya completado o no satisfactoriamente, la utilidad creará un directorio MigrationReport con informes en formato XML y HTML que pueden resultar muy útiles para depurar el proceso.

Aquí tenéis una ligera demostración del uso de WindRide:

Como curiosidad, en este caso hacen uso (como podéis ver en la sintaxis) de la utilidad AsMigrator.jar que a efectos prácticos es lo mismo que el .jar de WindRide. De hecho en las versiones más actuales, utilizaremos siempre este último.