Blog de Amazon Web Services (AWS)

Migración de aplicaciones AS/400 e IBM i a AWS con Infinite

Por Bruce Acacio, CEO de Infinite Corporation, líder en migración de sistemas heredados de IBM i
Phil de Valence, Arquitecto Principal de Soluciones de AWS y líder técnico mundial en modernización de mainframe y legado

 

Numerosas organizaciones siguen utilizando sistemas AS/400 en sectores como los servicios financieros o la industria manufacturera. Por lo general, hospedan cargas de trabajo de núcleo empresarial, como software de contabilidad o cadena de suministro. Para los clientes con AS/400 (y los sistemas iSeries sucesores, System i e IBM i), la solución de software Infinite, disponible en AWS Marketplace, ayuda a migrar cargas de trabajo AS/400 a Linux en AWS al tiempo que minimiza el impacto en el código de las aplicaciones. En esta publicación, destacamos la solución Infinite en AWS, las consideraciones de migración para los usuarios de AS/400 y las instrucciones paso a paso sobre cómo iniciar Infinite i.

 

Desafíos del cliente AS/400

Los clientes de hoy en día AS/400 se enfrentan a altos costos y a una arquitectura inflexible que muchos consideran al final de su vida útil. Están utilizando aplicaciones críticas implementadas en hardware propietario de IBM envejecido. Los programas y los datos están bloqueados en hardware y software propietario con costos de licencia inflados. La base de datos también es propietaria y es difícil compartir información con otros entornos de datos SQL estándar o no estructurados. Encontrar personal calificado para administrar sistemas AS/400 es cada vez más difícil. Como el resto del centro de datos se migra a la nube, los clientes no desean dejar sus aplicaciones AS/400 en las instalaciones.

 

Infinite i en AWS

El conjunto de herramientas Infinite i le permite recompilar e implementar aplicaciones AS/400 RPG y COBOL en AWS. Infinite i incluye compiladores para RPG, RPG/ILE, RPG/Free, COBOL, Control Language Programs (CLP) y Data Description Specifications (DDS). El entorno de implementación administra datos, trabajos, colas de mensajería, ejecuta llamadas a bases de datos y satisface comandos de lenguaje de control (CL) dentro de un entorno Linux. Una vez recompiladas e implementadas en Infinite en AWS, las aplicaciones se ejecutan con la equivalencia funcional del sistema IBM i o AS/400 original.

Como se muestra en el diagrama siguiente, las funciones empresariales siguen siendo las mismas al migrar a Infinite en AWS. El código de la aplicación, las dependencias de las utilidades y el formato de datos siguen siendo los mismos, mientras que el middleware propietario subyacente, el sistema operativo y el hardware se reemplazan por Infinite en AWS.

 

El código fuente de la aplicación es necesario y recompilado para su ejecución en Infinite i. Si falta algún código fuente, Infinite tiene algunas capacidades para regenerar código fuente a partir de binarios de módulos. Una vez recompilado, el código se ejecuta como instrucciones x86 nativas evitando los desafíos de rendimiento de los emuladores de hardware que realizan la traducción de instrucciones del procesador. Una vez migrado a Infinite en AWS, ya no hay ningún componente de IBM, por lo que no hay soporte para IBM ni tarifas de licencia de IBM.

En el lado de los datos, Infinite i admite todas las funciones rutinarias de DB2/400, incluidas las uniones simples y lógicas, seleccionar y omitir, desencadenadores, registro en diario, múltiples miembros y lógicas multiformato. Los datos se pueden almacenar en la base de datos interna Infinite o en una base de datos externa, como Amazon Relational Database Service (RDS), Amazon Aurora, MySQL, Oracle database o Microsoft SQL Server. Con la base de datos externa, Infinite i crea los esquemas de base de datos que asignan archivos físicos a tablas, archivos lógicos a vistas y, en tiempo de ejecución, traduce de manera transparente las llamadas a la base de datos de aplicaciones (READ, READE, SETLL, etc.) a las instrucciones SQL apropiadas que permiten que la aplicación se ejecute sin cambios de código.

Infinite i incluye los siguientes componentes:

  • Tiempo de ejecución compatible con comandos OS/400, administración de trabajos, administración de bobinas
  • Compiladores para idiomas AS/400, incluyendo DDS, RPG, COBOL, CL, Comandos, Grupos de paneles
  • Utilidades como Query/400, DFU, PDM
  • Herramientas de migración para migrar aplicaciones y datos a través de archivos SAVF
  • Base de datos interna compatible con PF, LF, archivos de varios miembros, unir archivos lógicos, desencadenadores, registro en diario
  • Conectores internos de base de datos con controladores ODBC y JDBC para acceder a PF y LF cuando permanezcan en la base de datos interna Infinite.
  • Soporte de administración de datos distribuidos (DDM) para la integración de datos
  • Compatibilidad de IBM MQ para la integración de mensajería
  • Conexión de base de datos para convertir PF y LF en una base de datos externa, como la base de datos Oracle de Amazon RDS o MS SQL Server

Infinite i es compatible con Amazon Linux 2. Cuando los datos se migran a una base de datos relacional externa como Amazon Aurora o Amazon RDS, los datos se vuelven a formatear en tablas y vistas ASCII. Una vez fuera de DB2/400, los datos están disponibles para generar informes, análisis o compartir datos con otros almacenes de datos. A continuación, se puede acceder a los datos a través de los programas existentes implementados en Infinite, posiblemente utilizando un cliente TN5250, o se puede acceder a los datos directamente dentro de la base de datos relacional utilizando herramientas y API comunes de lenguaje de consulta estructurado (SQL). Por ejemplo, con los datos de Amazon RDS o Amazon Aurora, un cliente puede crear una aplicación sin servidor que ponga los datos a disposición de los usuarios móviles.

El siguiente diagrama muestra los servicios de AWS utilizados junto con Infinite i, incluido Amazon Elastic Compute Cloud (EC2) para la aplicación y la ejecución de Infinite i, Amazon Relational Database Service (RDS) para la base de datos externa Infinite, AWS Identity and Access Management (IAM) para la seguridad y Amazon CloudWatch para la supervisión. Si un sistema AS/400 aloja varias particiones lógicas (LPAR), cada LPAR se puede migrar a una instancia EC2 con Infinite i.

Infinite i puede participar en un proceso de Integración Continua e Implementación Continua de DevOps para desarrollos más rápidos y ágiles. Infinite proporciona las herramientas para mover código fuente desde y hacia miembros de archivos físicos con el fin de tener este código administrado por un administrador de repositorio de GIT como GitHub o GitLab. La canalización puede incluir análisis de código RPG y COBOL con SonarQube para encontrar olores de código, errores y vulnerabilidades de seguridad.

 

Seguridad, disponibilidad y escalabilidad

La solución Infinite i en AWS proporciona funciones de seguridad empresarial fácilmente disponibles. Para la seguridad de los datos en tránsito, Infinite permite el cifrado SSL/TLS de la comunicación TN5250. Además, AWS VPN y AWS Direct Connect proporcionan cifrado y conectividad de red dedicada desde la red corporativa a la red de Amazon VPC. Para la seguridad de los datos en reposo, los clientes pueden beneficiarse del cifrado a nivel de plataforma de Amazon RDS. Para la identidad, la autenticación y la autorización, se utilizan la seguridad de Linux y AWS IAM.

Para la seguridad a nivel de aplicación, Infinite i utiliza el comando CHGAUT que maneja la seguridad para bibliotecas y objetos. Se basa en el sistema operativo Linux subyacente que ajusta las listas de control de acceso Unix y los atributos de seguridad para otorgar o revocar permisos de recursos a usuarios y grupos.

A nivel de red, la solución está protegida por las listas de control de acceso a la red de AWS y los grupos de seguridad. CloudTrail y VPC Flow Logs facilitan la auditoría. AWS también proporciona Amazon Inspector para la detección de vulnerabilidades, AWS Config para la aplicación de políticas y Amazon GuardDuty para la inteligencia de amenazas. La seguridad es el trabajo cero en AWS. Los clientes se benefician de las características de seguridad de AWS diseñadas para algunas de las empresas e instituciones más sensibles a la seguridad.

Para la disponibilidad, Infinite se beneficia de las zonas de disponibilidad de AWS (ubicaciones físicas aisladas distintas). En caso de fallo, se conmuta por error de forma automática y transparente para los usuarios finales. La configuración y los datos permanecen disponibles en Amazon Elastic File System (EFS) y Amazon RDS.

 

Con AWS Cloud, Infinite i puede escalar cambiando el hardware subyacente en cuestión de minutos. Infinite i puede escalar desde unos pocos usuarios a más de 1000 usuarios. AWS ofrece una amplia variedad de tipos de instancia, desde el propósito general m5, hasta el c5 optimizado calculado o el r5 optimizado para memoria. Además, para cada tipo de instancia, hay varios tamaños disponibles (tamaños de camiseta): pequeño, mediano, grande, xlarge, 2xlarge… Todos estos tipos de instancias disponibles en combinación con la capacidad de analizar el consumo de recursos en Amazon CloudWatch permite elegir y ajustar el tipo de instancia correcto para cada AS/400 cargas de trabajo.

 

Proceso de migración para programas y datos

Los compiladores usan instrucciones de compilación del código objeto y buscan las dependencias, al igual que las proporcionadas en AS/400. Compilan varios idiomas a la vez, incorporando múltiples versiones de RPG y COBOL con CL y DDS. El sistema crea objetos nativos de 64 bits que se implementarán en tiempo de ejecución en el entorno Infinite i. Aquí está el proceso para una migración típica:

  • Crear la copia de seguridad AS/400 (archivos de guardado SAVF): las bibliotecas se guardan utilizando SAVLIB (con COMPACT (*no)). Los documentos y carpetas utilizan SAVDLO, mientras que los objetos individuales utilizan SAVOBJ. La copia de seguridad debe incluir:
    • Todas las bibliotecas de distribución de aplicaciones incluyendo código fuente y objeto como Programas (*PGM con atributos CLP, RPG, RPGLE, COBOL, etc.) junto con Programas de Servicio (*SRVPGM), Directorios de Enlace (*BNDDIR), Áreas de Datos (*DTAARAS), etc. exactamente como las bibliotecas están estructuradas en AS/400.
    • Las bibliotecas Q*LIB no son necesarias a menos que haya objetos de aplicación (OutQs, JOBDs, JOBQs, DTAARA, DTAQs, Field Reference Files, etc.) en bibliotecas como QSYS o QSRSYS.
    • Todos los archivos de base de datos DB2/400 físicos y lógicos de la aplicación.
    • Información de perfil de usuario que permite la ejecución de los programas generados por DSPUSRPRF.
    • Objetos comprimidos con el comando CPOBJ, que debe descomprimirse con el DCPOBJ antes de guardar los objetos.
    • Todos los programas que utilizan AUTO-INFORMES que deben compilarse utilizando RPOPT (*source) OUTFILE (<library> /QRPGSRC).
    • Código fuente de los archivos de referencia de campo.
  • Implemente Infinite i en AWS : despliegue Infinite i desde AWS Marketplace; donde esté disponible una prueba gratuita. Dependiendo del tipo de entorno, puede configurar varias topologías en las zonas de disponibilidad de AWS y con la base de datos interna frente a la externa.
  • Transferir la copia de seguridad a Infinite i en AWS : la transferencia de los archivos SAVF desde AS/400 a la instancia de Amazon EC2 se realiza normalmente a través de una red TCP/IP segura o a través de AWS Snowball. Esta transferencia incluye tanto el programa como los datos de la aplicación AS/400 original.
  • Restaurar la copia de seguridad en Infinite i : con el comando restore application (RSTAPP), los componentes de la aplicación se cargan dentro de Infinite i, incluidos todos los archivos de origen, miembros, datos, información del catálogo para la recompilación y otros tipos de objetos, como descripciones de trabajos y archivos de mensajes. La estructura de la biblioteca AS/400 se vuelve a crear dentro del sistema de archivos Infinite Linux.
  • Crear la aplicación : con el comando run build instructions (RUNBIF), Infinite llama a los comandos create correspondientes (CRTPF, CRTRPGPGM, CRTBNDRPG, etc.) recompilando todos los miembros de origen para su ejecución nativa en las vCPU de AWS.
  • Integración con otros componentes : cada aplicación AS/400 es diferente y puede integrarse con varios servidores front-end, dependencias de terceros, middleware de mensajería. La aplicación o los componentes externos están configurados para comunicarse como se espera para ejecutar su función de negocio. Durante esta actividad, un cliente puede optar por mover los datos de la aplicación en la base de datos relacional externa en lugar de la base de datos interna Infinite. Infinite no utiliza scripts para convertir archivos físicos y lógicos en la base de datos relacional. Es un proceso más intrínseco en el que el comando CNVSQLTBL lee el DDS PF o LF y utiliza llamadas OCI para enviar las instrucciones CREATE apropiadas para generar los componentes de la base de datos relacional utilizando los tipos de datos más apropiados. La implementación en Infinite utilizando una base de datos de terceros es totalmente transparente para los programas de aplicación.
  • Probar la aplicación : durante esta actividad, los casos de prueba del cliente se ejecutan validando la equivalencia funcional entre el sistema AS/400 original y la solución Infinite en AWS.

 

Cronología del proyecto de migración

Una migración AS/400 a Infinite en AWS suele tardar entre 4 y 10 semanas, dependiendo de la complejidad, el tamaño y los posibles activos faltantes. Normalmente, Infinite o un Integrador de Sistemas le ayudará con la migración de código y las pruebas. La siguiente imagen muestra las actividades típicas del proyecto para una migración de AS/400 local a Infinite en AWS.

 

El cliente proporciona las cuentas de AWS donde se implementan los entornos de desarrollo infinito, integración y producción. Por consiguiente, los programas y los datos se mantienen bajo las políticas de seguridad de los clientes que se aplican tanto en las instalaciones como en AWS. El cliente proporciona acceso a instancias de Infinite EC2 según sea necesario para la asistencia de Infinite o System Integrator.

 

Cómo iniciar y acceder a Infinite i desde AWS Marketplace

AWS Marketplace es una tienda en línea de listas de software que facilita la búsqueda, prueba, compra e implementación de software que se ejecuta en AWS. Infinite i en AWS Marketplace está disponible con un período de prueba gratuito de 30 días. Puede implementarlo en minutos con unos pocos clics siguiendo estos pasos:

  • Paso 1: Vaya a la página del producto AWS Marketplace para Infinite i.
  • Paso 2 — Continúe para suscribirse al producto.
  • Paso 3: acepte los términos de la suscripción y continúe con la configuración.

Paso 4 — Configure este software comprobando que la opción de gestión logística es adecuada y que la versión del software es la más reciente. Seleccione la región donde desea iniciar Infinite i como se muestra a continuación. A continuación, continúe con Launch.

 

  • Paso 5 — Seleccione todas las opciones de inicio deseadas como se muestra a continuación.

 

En Configuración de grupo de seguridad, selecciona Crear nuevo basado en la configuración del vendedor como se muestra a continuación.

Introduzca un nombre de grupo de seguridad, una descripción, un límite de IP de origen según sea necesario y haga clic en Guardar.
A continuación selecciona Iniciar y verás el siguiente mensaje.

Paso 6: vaya a la consola de Amazon EC2 para ver las instancias, como se muestra a continuación.

  • Espere a que la nueva instancia de EC2 esté en estado de ejecución con las comprobaciones pasadas.
    Mantenga una nota del DNS público o la IP pública de esta instancia.
  • Paso 7: Conéctese a esta instancia de EC2 de acuerdo con estos dispositivos Conectar a su instancia de Linux
  • Paso 8 — Cambiar a superusuario y establecer una contraseña para el usuario qsecofr. El qsecofr se usa posteriormente para conectarse a Infinite I desde el cliente TN5250.

sudo su —
passwd qsecofr

  • Paso 9 — Inicie su cliente TN5250. Si no tiene un cliente TN5250, puede instalar TN5250j, o utilizar la interfaz web Infinite 5250 o las soluciones de cliente de IBM i Access.

Paso 10: con TN5250j, agregue una sesión de conexiones. En la configuración TCP/IP, especifique el DNS público de instancia EC2 anteriormente señalado o la IP pública, e introduzca el puerto 5250, como se muestra a continuación.

Añada esta nueva sesión y conéctela a Infinite i.

  • Paso 11 — Iniciar sesión con el usuario qsecofr y la contraseña que estableció previamente para él como se muestra a continuación.

 

Felicitaciones, ahora está utilizando Infinite i en AWS! La siguiente imagen muestra la pantalla final.

  • Puede continuar navegando por el menú o puede implementar y compilar una aplicación de ejemplo, como la aplicación de ejemplo de facturación infinita.

 

Beneficios para el cliente

Muchas empresas hoy buscan una plataforma alternativa para sus aplicaciones AS/400. Encontran muchas ventajas al mover estas aplicaciones a Infinite i en AWS:

  • Menor coste con Infinite y AWS siguiendo un modelo de pago por uso disponible a través de AWS Marketplace. Una vez migrado, ya no hay licencia de IBM ni costo de hardware.
  • Mayor disponibilidad con conmutación por error automatizada en las zonas de disponibilidad de AWS (ubicaciones físicas aisladas distintas).
  • Mejor escalabilidad con una gran variedad de tipos de instancia con numerosas opciones de CPU, memoria y ancho de banda de red que se pueden cambiar con unos pocos clics.
  • Mayor agilidad de la infraestructura al poder iniciar o finalizar una instancia Infinite en cuestión de minutos e incluir aplicaciones Infinite en una tubería de integración continua/entrega continua (CI/CD).
  • Un código de aplicación similar (COBOL y RPG) y un entorno de ejecución similar que reproduce funciones AS/400 permite mantener al personal calificado AS/400 mientras se pasa la infraestructura subyacente a prácticas modernas.
  • Acceso a datos y conocimiento de datos mediante la migración de los datos AS/400 a la base de datos Amazon RDS, Amazon Aurora, Oracle o Microsoft SQL Server de fácil acceso.

 

Conclusión

En esta publicación, enumeramos consideraciones para migrar cargas de trabajo AS/400 e IBM i a Linux en AWS, así como instrucciones para iniciar Infinite i desde AWS Marketplace. Los clientes que trasladan estas aplicaciones a su nube de AWS suelen experimentar costes más bajos, mayor disponibilidad y escalabilidad y un proceso de migración más seguro, debido al uso de códigos de aplicación similares (COBOL y RPG) y entorno. Para probar Infinite i, utilice la prueba gratuita en AWS Marketplace.

 


Revisor técnico

João Paulo Aragão Pereira es Arquitecto de soluciones de AWS, enfocado en el sector de servicios financieros (LATAM) y sus temas principales: prevención y detección de fraude, Open Banking, modernización de sistemas legados, prueba de vida, sistemas de pago instantáneo. He trabajado con arquitecturas bancarias y de seguros por más de 15 años.

 

 

 

Si tiene preguntas sobre AWS o cualquier proyecto que desee discutir, complete este formulario y un representante se pondrá en contacto con usted.