Migración de aplicaciones de JBoss EAP a JBoss EAP en máquinas virtuales de Azure

En esta guía se describe lo que debe tener en cuenta cuando quiera migrar una aplicación JBoss EAP existente para que se ejecute en JBoss EAP en máquinas virtuales de Azure.

Antes de la migración

Para asegurarse de que la migración se realiza correctamente, antes de empezar, complete los pasos de evaluación e inventario descritos en las secciones siguientes.

Definición del significado de "migración completa"

Esta guía y las ofertas de Azure Marketplace correspondientes son un punto de partida para acelerar la migración de las cargas de trabajo de JBoss EAP a Azure. Es importante definir el ámbito del trabajo de migración. Por ejemplo, ¿está realizando una migración lift-and-shift estricta de la infraestructura existente a Azure Virtual Machines? Si es así, es posible que se sienta la tentación de realizar algunas mejoras mientras realiza la migración.

En la medida de lo posible, es mejor centrarse en un traslado lift-and-shift, teniendo en cuenta los cambios necesarios que se indican en esta guía. Defina lo que quiere decir con "migración completa" para que sepa cuándo ha alcanzado el objetivo. Cuando haya alcanzado el "proceso de migración completo", puede tomar una instantánea de las máquinas virtuales, tal como se describe en Creación de una instantánea de un disco duro virtual. Es más seguro realizar las mejoras después de comprobar que puede restaurar correctamente desde la instantánea. De este modo, puede continuar sin miedo a perder el progreso de la migración que ha logrado hasta ahora.

Determinar si las ofertas precompiladas de Azure Marketplace son un buen punto de partida

Red Hat y Microsoft se han asociado para incorporar un conjunto de plantillas de solución de Azure a Azure Marketplace para proporcionar un punto de partida sólido para migrar a Azure. Puede ver la lista de ofertas en la sección JBoss EAP en Azure Virtual Machines de Red Hat JBoss EAP en Azure.

Para obtener una idea de la oferta precompilada de Azure Marketplace, consulte Inicio rápido: Implementación del servidor JBoss EAP en máquinas virtuales de Azure mediante Azure Portal.

Si ninguna de las ofertas existentes es un buen punto de partida, debe reproducir la implementación mediante los recursos disponibles en Azure Virtual Machines. Para más información, consulte ¿Qué es IaaS?

Determinar si la versión de JBoss EAP es compatible

La versión existente de JBoss EAP debe ser compatible con la versión de las ofertas de infraestructura como servicio (IaaS). Las páginas de Azure Portal de las ofertas muestran qué versiones de JBoss EAP están disponibles. Para más información, consulte la oferta clúster de JBoss EAP en máquinas virtuales en Azure Portal. Si la versión existente de JBoss EAP no es compatible con las versiones disponibles en la oferta, tendrá que reproducir la implementación manualmente mediante recursos de IaaS de Azure. Para más información, consulte ¿Qué es IaaS?

Asegúrese de que tiene las licencias necesarias.

Al usar las ofertas precompiladas de Azure Marketplace, debe tener licencias actuales de Red Hat para todos los servidores de JBoss EAP. Moverlos a Azure, puede elegir entre las siguientes opciones de implementación para satisfacer sus necesidades:

  • Implemente en máquinas virtuales de pago por uso de Red Hat Enterprise Linux. Esta opción se conoce como PAYG.
  • Mueva las suscripciones de Red Hat JBoss EAP y Red Hat Enterprise Linux a Azure a través del programa Red Hat Cloud Access . Esta opción se conoce como BYOS.

En ambas opciones, para la portabilidad de licencias, se le pide el identificador de grupo de Red Hat. Asegúrese de que tiene este identificador a mano antes de probar las ofertas.

Las ofertas precompiladas de Azure Marketplace incluyen compatibilidad con Red Hat Satellite para la administración de licencias. Para obtener información general sobre Red Hat Satellite, consulte Red Hat Satellite.

Nota:

Si no tiene ningún derecho de EAP, puede registrarse para obtener una suscripción gratuita para desarrolladores a través de la suscripción Red Hat Developer Subscription for Individuals. Anote los detalles de la cuenta para su uso como nombre de usuario de RHSM y la contraseña de RHSM en las ofertas precompiladas de Azure Marketplace.

Los pasos para detectar el identificador de grupo se explican en la sección Requisitos previos del inicio rápido: Implementación de JBoss EAP Server en una máquina virtual de Azure mediante Azure Portal.

Capacidad del servidor de inventario

Documente el hardware (memoria, CPU, disco) de los servidores de producción actuales, así como el promedio y máximo del número de solicitudes y el uso de recursos. Necesitará esta información independientemente de la ruta de migración que elija. Es útil, por ejemplo, ayudar a guiar la selección del tamaño de las máquinas virtuales del grupo de nodos, la cantidad de memoria que usará el contenedor y el número de recursos compartidos de CPU que necesita el contenedor.

Es posible cambiar el tamaño de los grupos de nodos en AKS. Para más información, consulte Cambio de tamaño de los grupos de nodos en Azure Kubernetes Service (AKS).

Inventario de todos los secretos

Compruebe todas las propiedades y los archivos de configuración en el servidor de producción o los servidores para ver los secretos y contraseñas. Asegúrese de comprobar el archivo jboss-web.xml en sus WAR. Los archivos de configuración que contienen contraseñas o credenciales también se pueden encontrar dentro de la aplicación.

Considere la posibilidad de almacenar dichos secretos en Azure KeyVault. Para más información, consulte Conceptos básicos de Azure Key Vault.

Inventario de todos los certificados

Documente todos los certificados usados para los puntos de conexión SSL públicos. Para ver todos los certificados de los servidores de producción, ejecute el siguiente comando:

keytool -list -v -keystore <path to keystore>

Comprobación de que la versión compatible de Java funciona correctamente

JBoss EAP en máquinas virtuales de Azure requiere una versión compatible de Java. Para obtener instrucciones sobre qué versión del JDK se va a usar, consulte Configuraciones admitidas en la documentación de Red Hat.

Nota:

Esta validación es especialmente importante si el servidor actual se está ejecutando en un JDK no compatible (como Oracle JDK o IBM OpenJ9).

Para obtener la versión actual de Java, inicie sesión en el servidor de producción y ejecute el siguiente comando:

java -version

Recursos externos de inventario

Los recursos externos, tales como los orígenes de datos, los agentes de mensajes JMS y otros, se insertan a través de la interfaz de directorio y nomenclatura de Java (JNDI). Algunos de estos recursos pueden requerir una migración o reconfiguración.

Dentro de la aplicación

Inspeccione los archivos WEB-INF/jboss-web.xml y WEB-INF/web.xml. Busque elementos <Resource> dentro del elemento <Context>.

Orígenes de datos

Los orígenes de datos son recursos de JNDI con el atributo type establecido en javax.sql.DataSource. Para cada origen de datos, documente la siguiente información:

  • ¿Cuál es el nombre del origen de datos?
  • ¿Cuál es la configuración del grupo de conexiones?
  • ¿Dónde puedo encontrar el archivo JAR del controlador JDBC?

Para más información, consulte Acerca de los orígenes de datos de JBoss EAP en la documentación de JBoss EAP.

Todos los demás recursos externos

No es factible documentar todas las dependencias externas posibles en esta guía. Es responsabilidad del equipo comprobar que puede cumplir todas las dependencias externas de la aplicación después de la migración.

Determinación de si se usa el sistema de archivos y cómo

Cualquier uso del sistema de archivos en el servidor de aplicaciones requiere reconfiguración o, en raras ocasiones, cambios arquitectónicos. Los módulos de JBoss EAP o el código de la aplicación pueden usar el sistema de archivos. Es posible que identifique algunos o todos los escenarios descritos en las secciones siguientes.

Contenido estático de solo lectura

Si su aplicación actualmente sirve contenido estático, necesitará una ubicación alternativa para él. Quizás quiera considerar la posibilidad de mover el contenido estático a Azure Blob Storage y agregar Azure CDN para tener descargas de alta velocidad globalmente. Para más información, consulte Hospedaje de sitios web estáticos en Azure Storage e Inicio rápido: Integración de una cuenta de una instancia de Azure Storage con Azure CDN. También puede implementar directamente el contenido estático en una aplicación en el plan Enterprise de Azure Spring Apps. Para obtener más información, consulte Implementación de archivos estáticos web.

Contenido estático publicado dinámicamente

Si su aplicación permite que haya contenido estático que la aplicación carga o produce, pero que es inmutable una vez creado, puede usar Azure Blob Storage y Azure CDN con una función de Azure para controlar las cargas y la actualización de la red CDN. Hemos proporcionado una implementación de ejemplo para su uso en Cargar y carga previa en CDN de contenido estático con Azure Functions. También puede implementar directamente el contenido estático en una aplicación en el plan Enterprise de Azure Spring Apps. Para obtener más información, consulte Implementación de archivos estáticos web.

Determinación de si se necesita una conexión al entorno local

Si su aplicación necesita acceder a cualquiera de los servicios locales, deberá aprovisionar uno de los servicios de conectividad de Azure. Para obtener más información, consulte. Elección de una solución para conectar una red local a Azure. También tendrá que refactorizar la aplicación para que use las API disponibles públicamente que exponen los recursos locales.

Determinación de si las colas o los temas de Java Message Service (JMS) están en uso

Si la aplicación utiliza colas o temas de JMS, deberá migrarlos a un servidor de JMS hospedado externamente. Azure Service Bus y Advanced Message Queuing Protocol (AMQP) pueden ser una estrategia de migración excelente para los usuarios que usan JMS. Para más información, consulte Uso de JMS con Azure Service Bus y AMQP 1.0.

Si se han configurado almacenes persistentes de JMS, debe capturar su configuración y aplicarla después de la migración.

Determinación de si se están usando conectores de JCA

Si su aplicación usa conectores de JCA, valide que puede usar el conector de JCA en JBoss EAP. Si puede usar el conector de JCA en JBoss EAP, para que esté disponible tendrá que agregar los archivos JAR a la ruta de acceso del servidor y colocar los archivos de configuración necesarios en la ubicación correcta de los directorios del servidor de JBoss EAP.

Determinación de si JAAS está en uso

Si la aplicación usa JAAS, deberá capturar cómo está configurado JAAS. Si utiliza una base de datos, puede convertirla en un dominio de JAAS en JBoss EAP. Si se trata de una implementación personalizada, deberá validar que se puede usar en JBoss EAP.

Determinación de si la aplicación se compone de varios WAR

Si la aplicación se compone de varios WAR, debe tratar cada uno como aplicaciones independientes y seguir esta guía para cada una de ellas.

Determinación de si la aplicación está empaquetada como EAR

Si la aplicación está empaquetada como un archivo EAR, examine el archivo application.xml y capture la configuración.

Nota:

Si desea poder escalar cada una de las aplicaciones web de forma independiente para un mejor uso de los recursos de máquina virtual de Azure, debe dividir ear en aplicaciones web independientes.

Identificación de todos los procesos externos y los demonios que se ejecutan en los servidores de producción

Si tiene procesos que se ejecutan fuera del servidor de aplicaciones, como los demonios de supervisión, tendrá que eliminarlos o migrarlos a otro lugar.

Migración

Selección de una oferta de JBoss EAP en Azure Virtual Machines

Las ofertas descritas en las secciones siguientes están disponibles para JBoss EAP en Azure Virtual Machines.

Durante la implementación de una oferta, se le pedirá que elija el tamaño de la máquina virtual para los nodos de servidor de JBoss EAP. Es importante tener en cuenta todos los aspectos (memoria, procesador y disco) a la hora de elegir el tamaño de la máquina virtual. Para más información, consulte Tamaños de Cloud Services (clásico).

JBoss EAP en conjuntos de escalado de máquinas virtuales de Azure

Los conjuntos de escalado de máquinas virtuales proporcionan grupos de máquinas virtuales de carga equilibrada y altamente escalables para cargas de trabajo de cualquier tamaño. Para más información, consulte ¿Qué son los conjuntos de escalado de máquinas virtuales?

JBoss EAP en máquinas virtuales en clúster

Si lo prefiere, un clúster tradicional de máquinas virtuales que usa el mecanismo de agrupación en clústeres de JBoss EAP es adecuado para una migración mediante lift-and-shift de implementaciones que ya usan esta característica. Para obtener más información, consulte Configuración de un clúster de Red Hat JBoss EAP 7 en la documentación de JBoss EAP. La oferta precompilada de Azure Marketplace incluye compatibilidad con el modo de dominio. Para obtener información general sobre los dominios EAP y el modo de dominio, consulte Administración de dominios.

Servidor único de JBoss EAP

Si solo necesita un único servidor, quizás para pruebas y evaluación, o para cargas de trabajo ligeras, hay una oferta que implementa un servidor único de JBoss EAP en una sola máquina virtual.

Kit de herramientas de migración de Red Hat para aplicaciones

Red Hat Migration Toolkit for Applications es una extensión gratuita para Visual Studio Code. Esta extensión analiza el código y la configuración de la aplicación para proporcionar recomendaciones para migrar a la nube desde el entorno local. Para obtener más información, consulte Introducción al Kit de herramientas de migración para aplicaciones.

El contenido de esta guía le ayuda a abordar los otros componentes del recorrido de migración, como elegir el tamaño de máquina virtual correcto y externalizar el estado de sesión.

Después de la migración

Una vez alcanzados los objetivos de migración que se han definido antes de la migración, realice pruebas integrales de aceptación para comprobar que todo funciona según lo previsto. Para obtener información sobre algunas posibles mejoras posteriores a la migración, consulte los siguientes artículos: