Arquitectura de soluciones para ejecutar cargas de trabajo modernizadas de Blu Age en AWS - AWS Guía prescriptiva

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.

Arquitectura de soluciones para ejecutar cargas de trabajo modernizadas de Blu Age en AWS

La solución ejecuta la aplicación modernizada dentro de un contenedor Docker gestionado por Amazon Elastic Container Service (Amazon ECS). El script wrapper shell que se ejecuta dentro de la imagen del contenedor administra la aplicación Java modernizada, por ejemplo, la recopilación de entradas, el funcionamiento del código Java y el procesamiento y la entrega de las salidas.

El código de la aplicación Java contenido en el contenedor queda fuera del ámbito de aplicación de esta guía. En un nivel superior, el script de shell del contenedor actúa como punto de entrada al contenedor y organiza diversas tareas. En tiempo de ejecución, la definición de la tarea de ECS proporciona los metadatos del entorno, como los buckets de Amazon Simple Storage Service (Amazon S3), mediante integraciones nativas AWS Secrets Managercon Parameter Store, una capacidad de. AWS Systems Manager

La siguiente arquitectura está diseñada para ejecutar cargas de trabajo de mainframe modernizadas sin servidores Servicios de AWS, lo que elimina la necesidad de administrar y mantener la infraestructura local.

Diagrama de arquitectura de una aplicación de mainframe modernizada que se ejecuta en una infraestructura sin servidor. AWS

El diagrama muestra el proceso siguiente:

  1. Cree y almacene la imagen del contenedor en Amazon Elastic Container Registry (Amazon ECR). La definición de tarea de Amazon ECS hace referencia a la imagen mediante la etiqueta de imagen.

  2. Utilice uno de los siguientes tipos de recursos de Elastic Load Balancing para proporcionar un punto de entrada para las solicitudes:

    • Para los servicios basados en HTTP, utilice un Application Load Balancer. Esto permite el uso de certificados TLS para proporcionar cifrado en tránsito y comprobar el estado de las aplicaciones.

    • Para otros servicios, como IBM CICS, utilice un Network Load Balancer. Esto crea de forma transparente conexiones TCP proxy (capa 4) a los contenedores del clúster de Amazon ECS.

      nota

      En el caso de los balanceadores de carga de red, las comprobaciones de estado de los contenedores requieren establecer una conexión TCP.

  3. Guarde las configuraciones del entorno, como los puntos finales y las credenciales de la base de datos, en Secrets Manager o Parameter Store. Con Secrets Manager, pagas en función de la cantidad de secretos almacenados y de las llamadas a la API realizadas. Este servicio es el más adecuado para cualquier dato confidencial, como las credenciales de las bases de datos. Con Parameter Store, los parámetros estándar y el rendimiento estándar de las interacciones de la API no suponen ningún coste adicional. Este servicio es el más adecuado para otros datos no confidenciales, como los parámetros de registro de Java.

  4. Utilice Amazon S3 para almacenar las entradas y salidas de las tareas. El AWS Command Line Interface (AWS CLI) que se encuentra dentro del contenedor bash gestiona la integración del contenedor con Amazon S3. Los eventos de Amazon S3, como PutObject las solicitudes, se pueden utilizar para activar flujos de trabajo, como ejecutar la tarea de Amazon ECS para un trabajo por lotes o entregar los resultados a los consumidores intermedios.

  5. Utilice la edición compatible con PostgreSQL de Amazon Aurora como reemplazo del motor de base de datos de mainframe, como IBM Db2 o IBM IMS. Los detalles de la conexión, como los puntos finales y las credenciales, se proporcionan durante el tiempo de ejecución de la tarea. Uno de los aspectos más difíciles a la hora de modernizar las cargas de trabajo del mainframe es garantizar que las entradas coincidan entre el mainframe y las versiones modernizadas de la aplicación. Existen pocas soluciones de captura de datos modificados (CDC) en tiempo real que puedan replicar datos de un mainframe a un motor de base de datos moderno como PostgreSQL. Asegúrese de comprender bien los datos que necesita la aplicación modernizada y la forma en que estarán disponibles.

  6. La definición de tareas para los servicios en tiempo real incluye detalles sobre la imagen del contenedor, los puertos TCP/IP que deben presentarse a los recursos de equilibrio de carga y el número de contenedores necesarios en un momento dado. El disyuntor de despliegue integrado de Amazon ECS (entrada del AWS blog) proporciona un mecanismo de implementación gestionado y de actualización continua que elimina la sobrecarga operativa de la gestión de las implementaciones de servicios.

  7. La definición de tareas para los trabajos por lotes incluye detalles sobre la imagen del contenedor y cualquier variable de entorno necesaria para la configuración. Estos pueden incluir los recursos disponibles (como la CPU, la RAM o el almacenamiento efímero), las entradas, las salidas y otros ajustes.

  8. Utilice Amazon S3 Event Notifications o Amazon EventBridge para iniciar los flujos de trabajo. Estos servicios pueden iniciar un AWS Step Functions flujo de trabajo o procesar objetos en función de los eventos de Amazon S3, como cuando un trabajo escribe un objeto de salida en un bucket.

  9. Se utiliza AWS Step Functionspara empaquetar la operación de los trabajos por lotes en Amazon ECS. El flujo de trabajo puede iniciar una tarea por lotes, supervisar su progreso y gestionar cualquier error.

En el caso de las cargas de trabajo de mainframe, es probable que se requiera cierto grado de personalización. Esta arquitectura está pensada para ser compatible con los casos de uso más comunes y se puede ampliar para que sea compatible con muchos requisitos.