Migre de Oracle WebLogic a Apache Tomcat (ToMEE) en Amazon ECS - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Migre de Oracle WebLogic a Apache Tomcat (ToMEE) en Amazon ECS

Creada por Anya Epishcheva (AWS) y Harshad Gohil () AWS

Tipo R: redefinir la plataforma

Origen: contenedores

Objetivo: Apache Tomcat (ToMee) en Amazon ECS

Creado por: AWS

Entorno: PoC o piloto

Tecnologías: contenedores y microservicios; migración

Carga de trabajo: Oracle

AWSservicios: Amazon ECS

Resumen

Este patrón describe los pasos para migrar un SPARC sistema Oracle Solaris local que ejecute Oracle WebLogic a una instalación basada en contenedores de Docker que ejecute Apache ToMEE (Apache Tomcat con soporte adicional para contenedores) con Amazon Elastic Container Service (Amazon). ECS

Para obtener información sobre la migración de las bases de datos asociadas a las aplicaciones que va a migrar de Oracle a Tomcat, consulte los patrones de migración de bases de datos de este WebLogic catálogo. 

Prácticas recomendadas

Los pasos para migrar las aplicaciones web de Java y Java Enterprise Edition (Java EE) varían según la cantidad de recursos específicos del contenedor que utilice la aplicación. Las aplicaciones basadas en Spring suelen ser más fáciles de migrar, ya que tienen un número reducido de dependencias en el contenedor de implementación. Por el contrario, las aplicaciones Java EE que utilizan Enterprise JavaBeans (EJBs) y recursos de contenedores gestionados, como los grupos de subprocesos, el Servicio de autenticación y autorización de Java (JAAS) y la persistencia gestionada por contenedores (), requieren más esfuerzo. CMP 

Las aplicaciones desarrolladas para Oracle Application Server utilizan con frecuencia la suite Oracle Identity Management. Los clientes que migran a servidores de aplicaciones de código abierto suelen optar por volver a implementar la gestión de identidades y accesos mediante la federación basada en la federación. SAML Otros utilizan Oracle HTTP Server Webgate en casos en los que la migración desde la suite Oracle Identity Management no es una opción. 

Las aplicaciones web Java y Java EE son excelentes candidatas para su implementación en AWS servicios basados en Docker, como AWS Fargate y Amazon. ECS Los clientes suelen elegir una imagen de Docker con la última versión del servidor de aplicaciones de destino (como ToMEE) y el kit de desarrollo de Java () preinstalados. JDK Instalan sus aplicaciones sobre la imagen base de Docker, las publican en su registro de Amazon Elastic Container Registry (AmazonECR) y las utilizan para la implementación escalable de sus aplicaciones en AWS Fargate o Amazon. ECS 

Lo ideal es que la implementación de aplicaciones sea elástico, es decir, que el número de instancias de aplicaciones se amplíe o disminuya en función del tráfico o la carga de trabajo. Esto significa que las instancias de aplicaciones deben estar en línea o cancelarse para ajustar la capacidad a la demanda. 

Cuando traslade una aplicación Java a otraAWS, considere convertirla en apátrida. Este es un principio arquitectónico clave del AWS Well-Architected Framework que permitirá el escalado horizontal mediante la contenedorización. Por ejemplo, la mayoría de las aplicaciones web basadas en Java almacenan la información de las sesiones de los usuarios de forma en las instalaciones. Para sobrevivir a la finalización de la instancia de la aplicación debido al escalado automático en Amazon Elastic Compute Cloud (AmazonEC2) o por otros motivos, la información de las sesiones de los usuarios debe almacenarse de forma global para que los usuarios de aplicaciones web puedan seguir trabajando sin problemas y de forma transparente sin tener que volver a conectarse a una aplicación web ni volver a iniciar sesión en ella. Existen varias opciones de arquitectura para este enfoque, como Amazon ElastiCache for Redis o el almacenamiento del estado de la sesión en una base de datos global. Los servidores de aplicaciones, como ToMEE, tienen complementos que permiten almacenar y administrar las sesiones a través de Redis, bases de datos y otros almacenes de datos globales.

Utilice una herramienta común y centralizada de registro y depuración que se integre fácilmente con Amazon CloudWatch y AWS X-Ray. La migración brinda la oportunidad de mejorar las capacidades del ciclo de vida de las aplicaciones. Por ejemplo, es posible que desee automatizar el proceso de creación para que los cambios se puedan realizar fácilmente mediante una canalización de integración y entrega continuas (CI/CD). Esto puede requerir cambios en la aplicación para que pueda implementarse sin tiempo de inactividad. 

Requisitos previos y limitaciones

Requisitos previos 

  • Una cuenta activa AWS 

  • Código fuente de Java y JDK

  • Aplicación fuente creada con Oracle WebLogic

  • Solución definida para la gestión de identidades y accesos (SAMLu Oracle Webgate)

  • Solución definida para la gestión de las sesiones de la aplicación ( like-for-liketrasladarla o con Amazon ElastiCache, o hacer que la aplicación quede sin estado si es necesario)

  • Sepa si el equipo necesita refactorizar las bibliotecas específicas de J2EE para poder transferirlas a Apache ToMEE (consulte el estado de implementación de Java EE 7 en el sitio web de Apache)

  • Imagen reforzada de ToMEE en función de sus requisitos de seguridad

  • Imagen de contenedor con el objetivo ToMee preinstalado 

  • Se acuerda e implementa la corrección de la aplicación si es necesaria (por ejemplo, registro, depuración, compilación o autenticación)

Versiones de producto

  • Oracle WebLogic OC4J, 9i, 10 g 

  • Tomcat 7 (con Java 1.6 o versiones posteriores)

Arquitectura

 Pila de tecnología de origen

  • Aplicación web creada con Oracle WebLogic

  • Aplicación web mediante Oracle Webgate o autenticación SAML

  • Aplicaciones web conectadas a la versión 10g y posteriores de Oracle Database

Pila de tecnología de destino

Arquitectura de destino

Nube de AWS architecture diagram showing VPC, application subnets, and shared services integration.

Herramientas

Para funcionar en ToMEE, una aplicación Java debe reconstruirse en un archivo.war. En algunos casos, es posible que sea necesario realizar cambios en la aplicación para que funcione en ToMee; debe comprobar que las opciones de configuración y las propiedades del entorno necesarias estén definidas correctamente.  

Además, las búsquedas de la interfaz de nombres y directorios de Java (JNDI) y los espacios de nombres de JavaServer Pages (JSP) deben estar definidos correctamente. Considere la posibilidad de comprobar los nombres de los archivos utilizados por la aplicación para evitar colisiones de nombres con las bibliotecas T integradas. Por ejemplo, persistence.xml es un nombre de archivo utilizado por el JPA marco Apache Open (que se incluye con Open EJB en ToMEE) con fines de configuración. El archivo persistence.xml PUI contiene las declaraciones de Spring Framework Bean.  

La versión 7.0.3 y posteriores de ToMee (Tomcat 8.5.7 y posteriores) devuelve una respuesta HTTP 400 (solicitud errónea) en formato raw (sin codificar) con caracteres especiales. URLs La respuesta del servidor aparece como una página en blanco para el usuario final. Las versiones anteriores de ToMee y Tomcat permitían el uso de ciertos caracteres especiales no codificadosURLs; sin embargo, se considera inseguro, como se indica en el sitio web -2016-6816. CVE Para resolver el problema de URL codificación, los que se URLs transfieran directamente al navegador mediante el método encode () JavaScript deben codificarse con el método encode URI () en lugar de utilizarse como cadenas sin procesar.

Tras implementar el archivo.war en ToMEE, supervise el registro de inicio de Linux cat para ver si faltan bibliotecas compartidas y extensiones específicas de Oracle para añadir los componentes que falten de las bibliotecas de Tomcat. 

Procedimiento general

  • Configure la aplicación en ToMee.

  • Identifique y reconfigure los archivos y recursos de configuración específicos del servidor de aplicaciones desde el formato de origen al formato de destino.

  • Identifique y reconfigure los recursosJNDI.

  • Ajuste el espacio de EJB nombres y las búsquedas al formato requerido por el servidor de aplicaciones de destino (si corresponde).

  • Reconfigure las funciones de seguridad específicas del contenedor de JAAS aplicaciones y las asignaciones principales (si corresponde).

  • Empaquete la aplicación y las bibliotecas compartidas en un archivo.war.

  • Implemente el archivo.war en ToMEE mediante el contenedor de Docker proporcionado.

  • Supervise el registro de inicio para identificar cualquier biblioteca compartida o extensión descriptora de implementación que falte. Si encuentra alguna, vuelva a la primera tarea.

  • Pruebe la aplicación instalada con la RDS base de datos de Amazon restaurada.

  • Inicie la arquitectura completa con un balanceador de carga y un ECS clúster de Amazon siguiendo las instrucciones de Implementación de contenedores Docker.

  • Actualiza el punto URLs de referencia al balanceador de cargas.

  • Actualice la base de datos de administración de la configuración (CMDB).

Epics

TareaDescripciónHabilidades requeridas
Realice el descubrimiento de aplicaciones (estado actual del entorno y punto de referencia de rendimiento).BA, líder de migración
Validar versiones y motores de las bases de datos de origen y destino.DBA
Valide el diseño de la aplicación de origen y destino (gestión de identidades y sesiones).DBA, ingeniero de migración, propietario de la aplicación
Identifique los requisitos de hardware y almacenamiento para la instancia del servidor de destino.DBA, SysAdmin
Elija el tipo de instancia adecuado en función de la capacidad, las características de almacenamiento y las características de red.DBA, SysAdmin
Identifique los requisitos de seguridad de acceso a la red de las bases de datos de origen y destino.DBA, SysAdmin
Identifique la estrategia y las herramientas de migración de aplicaciones.DBA, jefe de migración
Complete el diseño de la migración y la guía de migración de la aplicación.Responsable de compilación, líder de migración
Complete el manual de procedimientos de migración de aplicaciones.Responsable de compilación, líder de transición, líder de pruebas, líder de migración
TareaDescripciónHabilidades requeridas
Cree una nube privada virtual (VPC).SysAdmin
Cree grupos de seguridad.SysAdmin
Configure e inicie la instancia de Amazon RDS DB.DBA, SysAdmin
Configure la ECS implementación de Amazon.SysAdmin
Empaquete su aplicación como una imagen de Docker.SysAdmin
Envía la imagen al ECR registro de Amazon (u omite este paso y envíala al ECS clúster de Amazon).SysAdmin
Configura la definición de tareas para la aplicación y las opciones de ECS servicio de Amazon.SysAdmin
Configure el clúster, revise los ajustes de seguridad y establezca las funciones de AWS Identity and Access Management (IAM).SysAdmin
Inicie la configuración y ejecute las pruebas de acuerdo con el manual de procedimientos de migración de aplicaciones.SysAdmin
TareaDescripciónHabilidades requeridas
Obtenga el permiso de su equipo de control de seguridad para transferir los datos de producción aAWS.DBA, ingeniero de migración, propietario de la aplicación
Cree puntos de conexión y obtenga acceso a ellos para recuperar los archivos de copia de seguridad de la base de datos.DBA
Utilice el motor de base de datos nativo o herramientas de terceros para migrar los objetos y datos de la base de datos.DBA
Ejecute las pruebas necesarias del manual de procedimientos de migración de aplicaciones para confirmar que la migración de datos se realizó correctamente.DBA, ingeniero de migración, propietario de la aplicación
TareaDescripciónHabilidades requeridas
Cree una solicitud de cambio (CR) para la migración.Líder de transición
Obtenga la aprobación de CR para la migración.Líder de transición
Siga la estrategia de migración de aplicaciones del manual de procedimientos de migración de aplicaciones.DBA, ingeniero de migración, propietario de la aplicación
Actualice la aplicación (si es necesario).DBA, ingeniero de migración, propietario de la aplicación
Realice pruebas funcionales, no funcionales, de validación de datos y de rendimiento. SLALíder de pruebas, propietario de la aplicación, usuarios de la aplicación
TareaDescripciónHabilidades requeridas
Obtenga la aprobación del propietario de la aplicación o de la empresa.Líder de transición
Realiza un ejercicio sobre un tema de mesa para repasar todos los pasos del manual de procedimientos de transición.DBA, ingeniero de migración, propietario de la aplicación
Cambie los clientes de aplicaciones a la nueva infraestructura.DBA, ingeniero de migración, propietario de la aplicación
TareaDescripciónHabilidades requeridas
Cierre los AWS recursos temporales.DBA, ingeniero de migración, SysAdmin
Revise y valide los documentos del proyecto.Líder de migración
Recopile métricas sobre el tiempo de migración, el porcentaje de migraciones manuales en comparación con las realizadas con herramientas, el ahorro de costos, etc.Líder de migración
Cerrar el proyecto y enviar comentarios.Líder de migración, propietario de la aplicación

Referencias

Tutoriales y videos