

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.

# Almacenamiento en contenedores de las cargas de trabajo de mainframe que Blu Age ha modernizado
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age"></a>

*Richard Milner-Watts, Amazon Web Services*

## Resumen
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-summary"></a>

Este patrón proporciona un ejemplo de entorno de contenedores para ejecutar cargas de trabajo de mainframe que se han modernizado con la herramienta [Blu Age](https://www.bluage.com/). Blu Age convierte las cargas de trabajo de mainframe heredadas en código Java moderno. Este patrón proporciona un envoltorio alrededor de la aplicación de Java para que pueda ejecutarla mediante servicios de orquestación de contenedores como [Amazon Elastic Container Service (Amazon ECS)](https://aws.amazon.com/ecs/) o [Amazon Elastic Kubernetes Service (Amazon EKS)](https://aws.amazon.com/eks/).

Para obtener más información sobre la modernización de sus cargas de trabajo mediante el uso de Blu Age y los servicios de AWS, consulte estas publicaciones en las recomendaciones de AWS:
+ [Ejecución de cargas de trabajo de mainframe modernizadas de Blu Age en una infraestructura de AWS sin servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implementar un entorno para aplicaciones de Blu Age en contenedores mediante Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)

Si necesita ayuda para utilizar Blu Age para modernizar las cargas de trabajo de sus mainframes, póngase en contacto con el equipo de Blu Age seleccionando la opción **Contactar con nuestros expertos** en el [sitio web de Blu Age](https://www.bluage.com/). Si necesita ayuda para migrar sus cargas de trabajo modernizadas a AWS, integrarlas con los servicios de AWS y pasarlas a producción, póngase en contacto con su administrador de cuentas de AWS o rellene el [formulario de AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Requisitos previos y limitaciones
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-prereqs"></a>

**Requisitos previos **
+ Una aplicación Java modernizada creada por Blu Age. Para fines de prueba, este patrón proporciona un ejemplo de aplicación Java que puede utilizar como prueba de concepto.
+ Un entorno de [Docker](https://aws.amazon.com/docker/) que puede utilizar para crear el contenedor.

**Limitaciones**

Según la plataforma de orquestación de contenedores que utilice, es posible que los recursos que se puedan poner a disposición del contenedor (como la CPU, la RAM y el almacenamiento) estén limitados. Por ejemplo, si utiliza Amazon ECS con AWS Fargate, consulte la [documentación de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) para conocer los límites y las consideraciones.

## Arquitectura
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-architecture"></a>

**Pila de tecnología de origen**
+ Blu Age
+ Java

**Pila de tecnología de destino**
+ Docker

**Arquitectura de destino**

En el siguiente diagrama, se muestra la arquitectura de la aplicación Blu Age dentro de un contenedor de Docker.

![Aplicación Blu Age en un contenedor de Docker](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/c1747094-357b-4222-b4eb-b1336d810f83/images/0554332d-eff5-49ca-9789-da39b5a10045.png)


1. El punto de entrada al contenedor es el script contenedor. Este script bash es responsable de preparar el entorno de tiempo de ejecución para la aplicación Blu Age y de procesar los resultados.

1. Las variables de entorno del contenedor se utilizan a fin de configurar variables en el script del contenedor, como los nombres de bucket de Amazon Simple Storage Service (Amazon S3) y las credenciales de la base de datos. Las variables de entorno las proporcionan AWS Secrets Manager o Parameter Store, una funcionalidad de AWS Systems Manager. Si utiliza Amazon ECS como servicio de orquestación de contenedores, también puede codificar las variables de entorno en la definición de tareas de Amazon ECS.

1. El script contenedor se encarga de introducir todos los archivos de entrada del bucket de S3 en el contenedor antes de ejecutar la aplicación Blu Age. La interfaz de la línea de comandos de AWS (AWS CLI) se instala en el contenedor. Esto proporciona un mecanismo de acceso a los objetos que se almacenan en Amazon S3 a través del punto de conexión de la nube privada virtual (VPC) de la puerta de enlace.

1. Es posible que el archivo Java Archive (JAR) de la aplicación Blu Age necesite comunicarse con otras orígenes de datos, como Amazon Aurora.

1. Una vez finalizado, el script contenedor entrega los archivos de salida resultantes a un bucket de S3 para su posterior procesamiento (por ejemplo, por parte de Amazon CloudWatch Logging Services). El patrón también permite enviar archivos de registro comprimidos a Amazon S3, si utiliza una alternativa al CloudWatch registro estándar.

## Tools (Herramientas)
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-tools"></a>

**Servicios de AWS**
+ [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) es un servicio de registro de imágenes de contenedor administrado que es seguro, escalable y fiable.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) es un servicio de administración de contenedores escalable y rápido que ayuda a ejecutar, detener y administrar contenedores en un clúster.

**Herramientas**
+ [Docker](https://aws.amazon.com/docker/) es una plataforma de software para crear, probar e implementar aplicaciones. Docker agrupa el software en unidades estandarizadas denominadas [contenedores](https://aws.amazon.com/containers/), que contienen todo lo que el software necesita para ejecutarse, incluidas las bibliotecas, las herramientas del sistema, el código y el tiempo de ejecución. Puede usar Docker a fin de implementar y escalar aplicaciones en cualquier entorno.
+ [Bash](https://www.gnu.org/software/bash/manual/) es una interfaz de lenguaje de comandos (shell) para el sistema operativo GNU.
+ [Java](https://www.java.com/) es el lenguaje de programación y el entorno de desarrollo utilizados en este patrón.
+ [Blu Age](https://www.bluage.com/) es una herramienta de AWS Mainframe Modernization que convierte las cargas de trabajo de mainframe heredadas, incluidos el código de las aplicaciones, las dependencias y la infraestructura, en cargas de trabajo modernas para la nube.

**Repositorio de código**

El código de este patrón está disponible en el [repositorio de contenedores de muestras de GitHub Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container).

## Prácticas recomendadas
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-best-practices"></a>
+ Externalice las variables para alterar el comportamiento de su aplicación mediante variables de entorno. Estas variables permiten que la solución de orquestación de contenedores modifique el entorno de tiempo de ejecución sin tener que volver a construir el contenedor. Este patrón incluye ejemplos de variables de entorno que pueden ser útiles para las aplicaciones de Blu Age.
+ Valide cualquier dependencia de la aplicación antes de ejecutar la aplicación Blu Age. Por ejemplo, compruebe que la base de datos esté disponible y que las credenciales sean válidas. Escriba las pruebas en el script contenedor para comprobar las dependencias y, si no se cumplen, no las consiga antes de tiempo.
+ Utilice el registro detallado dentro del script contenedor. Interactuar directamente con un contenedor en ejecución puede resultar difícil, dependiendo de la plataforma de orquestación y del tiempo que lleve el trabajo. Asegúrese de que los resultados útiles estén escritos para ayudar a `STDOUT` a diagnosticar cualquier problema. Por ejemplo, el resultado puede incluir el contenido del directorio de trabajo de la aplicación antes y después de ejecutarla.

## Epics
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-epics"></a>

### Obtenga un archivo JAR de la aplicación Blu Age
<a name="obtain-a-blu-age-application-jar-file"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Opción 1: trabajar con Blu Age a fin de obtener el archivo JAR de su aplicación. | El contenedor de este patrón requiere una aplicación Blu Age. Como alternativa, puede usar la aplicación Java de ejemplo que viene con este patrón para un prototipo.<br />Trabaje con el equipo de Blu Age para obtener un archivo JAR para su aplicación que pueda incluir en el contenedor. Si el archivo JAR no está disponible, consulte la siguiente tarea para usar la aplicación de ejemplo en su lugar. | Arquitecto de la nube | 
| Opción 2: Cree o utilice el archivo JAR de la aplicación de muestra suministrado. | Este patrón proporciona un archivo JAR de muestra prediseñado. Este archivo genera las variables de entorno de la aplicación a `STDOUT` antes de dormir durante 30 segundos y salir.<br />Este archivo recibe un nombre `bluAgeSample.jar` y se encuentra en la [carpeta docker](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/docker) del GitHub repositorio.<br />[Si desea modificar el código y crear su propia versión del archivo JAR, utilice el código fuente que se encuentra en. /java\_ sample/src/sample \_java\_app.java](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample/src) en el repositorio. GitHub Puede usar el script de compilación en [./java\_sample/build.sh](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample) para compilar el código fuente de Java y crear un nuevo archivo JAR. | Desarrollador de aplicaciones | 

### Construya el contenedor de Blue Age
<a name="build-the-blu-age-container"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clona el repositorio. GitHub  | Clone el repositorio de código de muestra mediante el comando:<pre>git clone https://github.com/aws-samples/aws-blu-age-sample-container</pre> | AWS DevOps | 
| Utilice Docker para crear el contenedor. | Utilice Docker para crear el contenedor antes de enviarlo a un registro de Docker, como Amazon ECR:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) | AWS DevOps | 
| Pruebe el contenedor Blu Age. | (Opcional) Si es necesario, pruebe el contenedor en las instalaciones mediante el comando:<pre>docker run -it <tag> /bin/bash</pre> | AWS DevOps | 
| Autenticar en su repositorio de Docker. | Si planea usar Amazon ECR, siga las instrucciones de la [documentación de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) para instalar y configurar la AWS CLI y autenticar la CLI de Docker en su registro predeterminado.<br />Le recomendamos que utilice el [get-login-password comando](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html) para la autenticación.  La [consola de Amazon ECR](https://console.aws.amazon.com/ecr/) proporciona una versión rellenada previamente de este comando si utiliza el botón **Ver comandos de extracción**. Para obtener más información, consulte la [documentación de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-console.html).<pre>aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com</pre><br />Si no piensa utilizar Amazon ECR, siga las instrucciones que se proporcionan para su sistema de registro de contenedores. | AWS DevOps | 
| Cree un repositorio de contenedores. | Cree un repositorio en Amazon ECR. Para obtener instrucciones, consulte el patrón [Implementar un entorno para aplicaciones de Blu Age en contenedores mediante Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html).<br />Si utiliza otro sistema de registro de contenedores, siga las instrucciones que se proporcionan para ese sistema. | AWS DevOps | 
| Etiquete su contenedor y colóquelo en el repositorio de destino. | Si utiliza Amazon ECR:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)<br />Para obtener más información, consulte [Insertar una imagen de Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) en la *Guía del usuario de Amazon ECR*. | AWS DevOps | 

## Recursos relacionados
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-resources"></a>

**Recursos de AWS**
+ [Repositorio de contenedores de muestras de AWS Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container)
+ [Ejecución de cargas de trabajo de mainframe modernizadas de Blu Age en una infraestructura de AWS sin servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implementar un entorno para aplicaciones de Blu Age en contenedores mediante Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)
+ [Uso de Amazon ECR con la AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) (*Guía del usuario de Amazon ECR*)
+ [Autenticación de registro privado](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) (*Guía del usuario de Amazon ECR*)
+ [Documentación de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)
+ [Documentación de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Recursos adicionales**
+ [Sitio web de Blu Age](https://www.bluage.com/)
+ [Sitio web de Docker](https://docker.com/)