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.
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.