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
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
ToMEE (Apache Tomcat con soporte adicional para contenedores) que se ejecuta en Amazon ECS (consulte también Implementación de aplicaciones web Java
y microservicios Java en Amazon) ECS Amazon Relational Database Service (RDSAmazon) para Oracle; para ver las versiones de Oracle compatibles con RDS Amazon, consulte RDSAmazon
for Oracle
Arquitectura de destino
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
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
Tarea | Descripción | Habilidades 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 |
Tarea | Descripción | Habilidades 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 |
Tarea | Descripción | Habilidades 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 |
Tarea | Descripción | Habilidades 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. SLA | Líder de pruebas, propietario de la aplicación, usuarios de la aplicación |
Tarea | Descripción | Habilidades 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 |
Tarea | Descripción | Habilidades 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 |
Recursos relacionados
Referencias
Tutoriales y videos