Migra aplicaciones de WebSphere a contenedores con Migrate to Containers

Last reviewed 2021-12-22 UTC

Este documento está dirigido a los propietarios de aplicaciones y arquitectos de la nube que buscan migrar aplicaciones de Java que se ejecutan en IBM WebSphere Application Server (WAS) a contenedores que se ejecutan en Google Kubernetes Engine (GKE) o GKE Enterprise. Te guía en el proceso de migración de aplicaciones tradicionales de WAS a contenedores desde un entorno de origen local, en un entorno de hosting privado o en otro proveedor de servicios en la nube. También se destacan los beneficios de usar Migrate to Containers para automatizar la migración.

Debes tener conocimientos previos de WebSphere antes de intentar migrar las VM de WebSphere a contenedores con Migrate to Containers.

En este documento, también se incluyen puntos importantes que debes tener en cuenta cuando planifiques una migración de aplicación de WAS a los contenedores. Este documento pertenece a una serie de varias partes sobre la migración a Google Cloud. Si te interesa ver una descripción general de la serie, consulta Migración a Google Cloud: Elige tu ruta de migración.

Lee este documento si planeas migrar aplicaciones tradicionales de WAS que ejecutan un WAS compatible en un sistema operativo compatible, como Linux, desde un entorno de origen compatible a un entorno de GKE o GKE Enterprise con Migrate to Containers. Estos entornos de origen pueden incluir los siguientes elementos:

Migrate to Containers automatiza el uso de IBM Migration Toolkit for Application Binaries para descubrir, inspeccionar y migrar todas tus aplicaciones tradicionales de WAS en tus máquinas virtuales tradicionales de WAS. Luego, divide esas aplicaciones tradicionales de WAS en contenedores tradicionales individuales de WebSphere.

Migrate to Containers descubre, inspecciona, migra y divide todas las aplicaciones tradicionales de WAS en contenedores individuales de WebSphere.

La migración de aplicaciones tradicionales de WAS con Migrate to Containers requiere una huella pequeña (mínimo de 1 GB de RAM y tamaño de imagen de 2 GB) y costos de licencia reducidos (hasta un 70% de suscripción de implementación de redes de WAS).

Cuando migras aplicaciones tradicionales de WAS con Migrate for Containers, te beneficias de varios aspectos de un entorno alojado en contenedores. Están los costos de licencia reducidos que se analizaron antes. También está la capacidad de modernizar aún más los marcos de trabajo integrados en la nube mediante la creación de contenedores de Open Liberty o WAS Liberty para tus aplicaciones.

WAS Liberty es un entorno de ejecución de producción ligero para el desarrollo y la implementación rápidos de aplicaciones basadas en la Web. Se basa en el proyecto de código abierto de Open Liberty. Las empresas usan WAS Liberty y Open Liberty para compilar microservicios de Java basados en la nube.

La migración a GKE Enterprise o GKE descarga la funcionalidad del administrador de implementaciones de redes de WAS en los siguientes productos:

En el siguiente diagrama, se muestra cómo GKE o GKE Enterprise administra la funcionalidad centralizada (por ejemplo, alta disponibilidad, posición de carga de trabajo y configuración centralizada), que antes se administraba mediante la implementación de redes de WAS. La configuración específica de la aplicación se administra durante el tiempo de compilación de la imagen de Docker. El uso de una configuración basada en imágenes de Docker permite la capacidad de repetición y automatización a través de procesos de CI/CD.

La migración transfiere las funciones del administrador de implementación de redes de WAS a Kubernetes, Anthos Service Mesh, Sincronizador de configuración y Google Cloud Operations Los entornos de implementación de redes de WAS y los entornos de base de WAS pueden migrar a contenedores de Open Liberty o WAS Liberty.

Migrar aplicaciones tradicionales de WAS a contenedores con Migrate to Containers es uno de los posibles pasos de tu proceso de modernización de la carga de trabajo. La migración te ayuda a transformar las aplicaciones para que se ejecuten en un entorno de nube y evitar las reescrituras costosas que se necesitan para modernizar las aplicaciones tradicionales de WAS.

Los candidatos de migración ideales son aplicaciones que se ejecutan en la implementación de redes de WebSphere compatible, en la base de WebSphere o en versiones de Java compatibles para las cuales la modernización a través de una reescritura completa es demasiado costosa, en términos de recursos, o no es posible en absoluto. Para obtener más información sobre los candidatos de migración ideales, consulta Migra las VM a contenedores con Migrate to Containers.

Diseña la migración a Google Cloud

Para migrar las aplicaciones tradicionales de WAS desde el entorno de origen a los contenedores que se ejecutan en Google Cloud, sigue el framework descrito en la serie de Migración a Google Cloud.

En el siguiente diagrama, se ilustra la ruta del recorrido de tu migración:

Ruta de migración con cuatro fases

El framework que se ilustra en el diagrama anterior consta de las siguientes cuatro fases:

  1. Evalúa: En esta fase, debes evaluar tu entorno de origen, las aplicaciones que deseas migrar a Google Cloud y qué aplicaciones tradicionales de WAS son adecuadas para la migración.
  2. Plan: En esta fase, debes crear la infraestructura básica de Migrate to Containers. Para ello, tienes que aprovisionar la jerarquía de recursos y configurar el acceso a la red.
  3. Implementa: En esta fase, debes migrar las aplicaciones tradicionales de WAS del entorno de origen a GKE o GKE Enterprise con Migrate to Containers.
  4. Optimiza: En esta fase, debes comenzar a aprovechar las tecnologías y capacidades de la nube.

Evalúa el entorno de origen y las aplicaciones

En la fase de evaluación, debes recopilar información sobre tu entorno de origen y las aplicaciones que deseas migrar. Esto te ayuda a dimensionar correctamente los recursos que necesitas, tanto para la migración como para tu entorno de destino.

En la fase de evaluación, harás lo siguiente:

  1. Crea un inventario completo de tus aplicaciones.
  2. Cataloga tus aplicaciones según sus propiedades y dependencias.
  3. Capacita y educa a tus equipos en Google Cloud.
  4. Compila un experimento y prueba de concepto en Google Cloud.
  5. Calcula el costo total de propiedad (TCO) del entorno de destino.
  6. Elige las aplicaciones que deseas migrar primero.

Las siguientes secciones se basan en el documento Migración a Google Cloud: evalúa y descubre tus cargas de trabajo. Sin embargo, proporcionan información específica para evaluar las aplicaciones tradicionales de WAS que deseas migrar a contenedores con Migrate to Containers.

Compila tus inventarios

Para determinar el alcance de tu migración, debes comprender tu entorno tradicional de WAS. Para comprender el entorno, recopila información sobre las aplicaciones y sus dependencias.

En Compila un inventario de tus apps, se describe cómo compilar un inventario de tus cargas de trabajo en tu entorno tradicional de WAS y sus dependencias. Sigue esa guía y crea tus inventarios. Cuando hayas terminado con ese trabajo, continúa leyendo este documento.

Ahora que creaste un inventario de tus cargas de trabajo y sus dependencias, define mejor el inventario. Evalúa los aspectos y las funciones que le interesan a tu organización cuando migre las aplicaciones tradicionales de WAS con Migrate to Containers.

Antes de evaluar el entorno de WAS para la migración, completa el trabajo de evaluación en Migra las VM a contenedores con Migrate to Containers y Migración a Google Cloud: Evaluación y descubrimiento de tus cargas de trabajo. Cuando termines con ese trabajo, completa el inventario de tus cargas de trabajo.

Para completar el inventario de tus cargas de trabajo, considera lo siguiente:

  • Sistemas operativos que se ejecutan en tus VM de WAS: Recopila información sobre los sistemas operativos y sus licencias que se ejecutan en tus VM de WAS, y asegúrate de que el sistema operativo sea un sistema operativo Linux de 64 bits enumerado en Sistemas operativos compatibles y versiones de Kubernetes.
  • Versiones de WAS que ejecutan tus aplicaciones: Recopila información sobre las versiones de WAS que ejecutan tus aplicaciones, y asegúrate de que sean compatibles con Migrate to Containers. Migrate to Containers admite la migración de aplicaciones de WAS tradicionales (WebSphere Application Server tradicional 8.5.5.x y WebSphere Application Server tradicional 9.0.5.x) para los entornos de base de WAS y de implementación de redes de WAS.

  • Aplicaciones implementadas en tu WAS: Evalúa qué aplicaciones se implementan en cada WAS. Luego, asigna las dependencias entre tus aplicaciones, y entre tus aplicaciones y servicios externos. A continuación, recopila información sobre las fuentes de configuración de tus aplicaciones. Por ejemplo, ¿usas lo siguiente?

    • Variables de entorno
    • Rutas de instalación no estándar de WAS
    • Registros de usuarios de LDAP
    • Asignaciones de roles de seguridad
    • Modificaciones para aplicar una clase a tu pedido de cargador
  • Puntuación de ajuste de Migrate to Containers: Evalúa si tus aplicaciones tradicionales de WAS son adecuadas para migrar con Migrate to Containers. Migrate to Containers proporciona una herramienta de evaluación de ajuste que puedes ejecutar en tus aplicaciones tradicionales de WAS para calcular una puntuación adecuada. Migrate to Containers tiene un conjunto de requisitos mínimos para migrar correctamente las aplicaciones tradicionales de WAS. También tiene algunas limitaciones cuando se automatiza la migración de aplicaciones tradicionales de WAS. Para abordar estas limitaciones, configura las aplicaciones de forma manual cuando las migres.

  • Autenticación: WAS proporciona varios mecanismos de autenticación, como Mecanismos de autenticación simple de WebSphere (SWAM), Autenticación básica de terceros (LTPA) y Kerberos. Solo puedes configurar una implementación del registro de usuarios como el registro de usuario activo del dominio de seguridad de WAS. Migrate to Containers no migra de forma automática los detalles de autenticación. Esto significa que, por lo general, la configuración de la autenticación requiere cierta configuración manual durante la migración.

  • Acceso a los datos (JDBC): La arquitectura del conector J2EE define un adaptador de recursos estándar que conecta WAS a los sistemas de información de la empresa. El adaptador proporciona conectividad entre el sistema de información empresarial, el servidor de aplicaciones y las aplicaciones. Migrate to Containers migra de forma automática la configuración de JDBC al contenedor de WAS modernizado. Asegúrate de haber habilitado la conectividad entre las aplicaciones migradas y los almacenes de datos existentes.

  • Mensajería (JMS): WAS admite la comunicación asíncrona a través de la interfaz de programación del Servicio de mensajería de Java (JMS). Migrate to Containers migra de forma automática la información de configuración de JMS. Sin embargo, se requiere un trabajo de migración manual para la configuración específica, como SSL.

  • Correo electrónico: WAS admite el envío de correos electrónicos a través de la API de JavaMail. Migrate to Containers no migran de forma automática los archivos de configuración de JavaMail. Configura estos archivos de forma manual durante la fase de migración.

Completa la evaluación

Después de compilar los inventarios relacionados con tu entorno y tus cargas de trabajo tradicionales de WAS, completa el resto de las actividades de la fase de evaluación documentadas en Migración a Google Cloud: evalúa y descubre tus cargas de trabajo. Cuando hayas terminado con ese trabajo, continúa leyendo este documento.

Planifica y compila tu base

Después de seguir las instrucciones en Planifica y compila tu base cuando migres las VM, completa tu base de WAS:

  1. Confirma el nombre del bucket de Cloud Storage
  2. Sube el archivo binaryAppScanner.jar disponible como parte de Migration Toolkit for Application Binaries de IBM WebSphere Application Server mediante estos pasos:

    1. Descarga el archivo de instalaciónbinaryAppScannerInstaller.jar. Debes aceptar el contrato de licencia como parte de la descarga.
    2. Ejecuta el siguiente comando para extraer el archivo binaryAppScanner.jar y aceptar el Contrato de licencia:

      java -jar binaryAppScannerInstaller.jar --acceptLicense --verbose
      
    3. Especifica el directorio de destino para la extracción, por ejemplo, /tmp. El instalador crea un directorio llamado /wamt dentro del directorio de destino.

    4. Navega al directorio /wamt. Por ejemplo:

      cd /tmp/wamt
      
    5. Sube el archivo binaryAppScanner.jar a la raíz de un bucket de Cloud Storage:

      gsutil cp binaryAppScanner.jar gs://BUCKET_NAME
      

      En el ejemplo anterior, BUCKET_NAME es el nombre del bucket de Cloud Storage.

En Configura Migrate to Containers, se describe cómo aprovisionar y configurar Migrate to Containers y sus dependencias. Sigue esa guía para configurar Migrate to Containers

Cuando hayas terminado con ese trabajo, continúa leyendo este documento.

Migra tus aplicaciones tradicionales de WAS a los contenedores

Para obtener más información sobre la fase de implementación de la migración, sigue las instrucciones de Migra tus VM a contenedores.

Genera y revisa el plan de migración

Crea un plan de migración de Migrate to Containers para tus aplicaciones tradicionales de WAS:

  1. Configura los entornos de origen como fuentes de migración de Migrate to Containers: Para migrar las aplicaciones tradicionales de WAS, Migrate to Containers necesitan información sobre los entornos de origen en los que se ejecutan tus VM. Para recopilar esa información, realiza las tareas descritas en la sección Compila tus inventarios en este documento. Para obtener más información sobre la configuración de entornos de origen, consulta Agrega una fuente de migración.
  2. Crear planes de migración: para especificar qué aplicaciones tradicionales de WAS deseas migrar de un entorno de origen a un entorno de destino compatible, crea un plan de migración, por ejemplo, puedes configurar en el que deseas almacenar tus datos persistentes.

    Para obtener más información sobre cómo crear y supervisar planes de migración, consulta Crea una migración.

    Para crear la migración, debes usar la línea de comandos. No puedes usar la consola de Google Cloud. El comando completo es el siguiente:

    migctl migration create my-migration
      --source my-was-src
      --vm-id PROJECT_ID
      --intent Image
      --os-type Linux
      --app-type websphere-traditional
    

    PROJECT_ID es el ID asignado a tu proyecto de migración y Image es el valor de la marca del intent. Usas “Image” debido a la naturaleza sin estado de la carga de trabajo.

  3. Revisa y personaliza los planes de migración: Después de generar planes de migración para cada una de las VM que deseas migrar, revisa y personaliza cada plan de migración a fin de asegurarte de que se adapte a tus requisitos. Para obtener más información sobre cómo personalizar los planes de migración, consulta Personaliza un plan de migración.

Genera artefactos de migración y descriptores de implementación

A fin de generar los artefactos de WAS de destino para tus aplicaciones, Migrate to Containers extrae las aplicaciones que se ejecutan en las VM que configuraste en los planes de migración. Luego, crea varios artefactos y los coloca en un bucket de Cloud Storage. Migrate to Containers también genera descriptores de implementación que puedes personalizar y usar para implementar instancias de las imágenes de contenedor en el entorno de destino.

Para cada aplicación migrada, Migrate to Containers crea una carpeta que contiene el contexto de Docker, los objetos binarios de la aplicación, una secuencia de comandos de compilación y una de configuración de WAS.

Puedes supervisar el progreso de los artefactos del contenedor que creas y migras. Para obtener más información sobre cómo supervisar una migración, consulta la sección sobre cómo supervisar las cargas de trabajo migradas.

Verifica y valida los descriptores y recursos generados

Después de generar artefactos de contenedor y descriptores de implementación con Migrate to Containers, revisa y actualiza esos artefactos y descriptores para asegurarte de que cumplan con tus requisitos, por ejemplo, los siguientes aspectos:

  • Descriptores de imágenes de contenedor: Revisa los descriptores de imágenes de contenedor que generaste con Migrate to Containers, y verifica que sean adecuados para la carga de trabajo del contenedor. Si necesitas actualizar los descriptores de imágenes de contenedor, consulta Compila una imagen de aplicación. Puedes agregar propiedades y, luego, instalar iFixes.
  • Registro a nivel de la aplicación: Migrate to Containers escriben de forma automática los registros de WAS en formato JSON. Para cambiar al registro básico, consulta Configuración del registro.

Para obtener más información sobre cómo revisar artefactos de contenedores y descriptores de implementación, consulta Revisa los archivos de implementación generados.

Implementa y valida las cargas de trabajo alojadas en contenedores en GKE o GKE Enterprise

Cuando los descriptores de implementación para tus cargas de trabajo estén listos, debes hacer lo siguiente:

  1. Compila una imagen de contenedor de la aplicación: Compila una imagen de contenedor de la aplicación para la carga de trabajo migrada en la carpeta de artefactos de la aplicación que deseas compilar:

    bash ./build.sh
    
  2. Implementa tus aplicaciones migradas en el entorno de destino: Implementa tus aplicaciones migradas:

    kubectl apply -f deployment_spec.yaml
    
  3. Supervisa tus cargas de trabajo migradas: Después de implementar el contenedor de aplicación tradicional de WAS, puedes recopilar información sobre el rendimiento en el entorno de destino. Para obtener más información, consulta Supervisa las cargas de trabajo migradas.

  4. Integra tus cargas de trabajo migradas: Una vez que las cargas de trabajo que implementaste en el entorno de destino funcionen, integra los procesos de generación y de implementación de artefactos de contenedores de las cargas de trabajo con tus canalizaciones y procesos de implementación. Si en este momento no tienes un proceso de implementación automatizado e implementas tus cargas de trabajo de forma manual, se recomienda que migres de implementaciones manuales a implementaciones automatizadas..

Desinstala Migrate to Containers

Después de completar la migración de tus cargas de trabajo con Migrate to Containers, te recomendamos hacer lo siguiente:

  1. Asegúrate de tener todas las referencias a los artefactos que Migrate to Containers generó durante la migración.
  2. Desinstala Migrate to Containers.

Cuando termines el trabajo descrito en esta sección, regresa a este documento.

Optimiza tu entorno después de la migración

Para completar la migración, consulta los lineamientos en Optimiza tu entorno después de la migración.

Puedes realizar estas optimizaciones específicas de WAS para las aplicaciones tradicionales de WAS que se migraron:

  • Externaliza tu configuración: Cuando compilas un contenedor de WAS tradicional, puede haber cambios de configuración entre los entornos. A fin de evitar la necesidad de volver a compilar el contenedor para cada entorno, te recomendamos que externalices la configuración de WAS a las propiedades y que uses ConfigMaps para establecer esas propiedades en el inicio del contenedor.
  • Protege tus datos sensibles: Las contraseñas y cualquier otro dato sensible deben colocarse en Secrets de Kubernetes. Usa los Secrets de Kubernetes para reemplazar los marcadores de posición de configuración cuando se inicia el contenedor.

¿Qué sigue?