

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Implante um ambiente para aplicativos Blu Age conteinerizados usando o Terraform
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform"></a>

*Richard Milner-Watts, Amazon Web Services*

## Resumo
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-summary"></a>

A migração de workloads de mainframe legadas para arquiteturas de nuvem modernas pode eliminar os custos de manutenção de um mainframe — custos que só aumentam à medida que o ambiente envelhece. No entanto, migrar trabalhos de um mainframe pode representar desafios únicos. Os recursos internos podem não estar familiarizados com a lógica do trabalho, e o alto desempenho dos mainframes nessas tarefas especializadas pode ser difícil de replicar quando comparado ao padrão generalizado. CPUs Reescrever esses trabalhos pode ser uma grande tarefa e exigir um esforço significativo.

O Blu Ags converte as workloads antigas de mainframe em código Java moderno, que você pode então executar como um contêiner.

Esse padrão fornece um exemplo de arquitetura de tecnologia sem servidor para executar um aplicativo em contêiner que foi modernizado com a ferramenta Blu Age. Os arquivos HashiCorp Terraform incluídos criarão uma arquitetura segura para a orquestração de contêineres Blu Age, suportando tarefas em lote e serviços em tempo real.

Para obter mais informações sobre a modernização de suas workloads usando o Blu Age e os serviços da AWS, consulte estas publicações de Recomendações da AWS:
+ [Executando workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

[Para obter ajuda com o uso do Blu Age para modernizar suas workloads de mainframe, entre em contato com a equipe da Blu Age escolhendo Entre **em contato com nossos especialistas** no site da Blu Age.](https://www.bluage.com/) Para obter ajuda para migrar suas workloads modernizadas para a AWS, integrá-las aos serviços da AWS e colocá-las em produção, entre em contato com seu gerente de contas da AWS ou preencha o [formulário AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Pré-requisitos e limitações
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-prereqs"></a>

**Pré-requisitos **
+ O exemplo do aplicativo Blu Age conteinerizado fornecido pelo padrão [Workloads do mainframe Containerize que foram modernizadas pelo Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html). O aplicativo de amostra fornece a lógica para lidar com o processamento de entrada e saída para o aplicativo modernizado e pode se integrar a essa arquitetura.
+ O Terraform é necessário para implantar esses recursos.

**Limitações**
+ O Amazon Elastic Container Service (Amazon ECS) impõe limites aos recursos de tarefa que podem ser disponibilizados para o contêiner. Esses recursos incluem CPU, RAM e armazenamento. Por exemplo, ao usar o Amazon ECS com o AWS Fargate, os [limites de recursos da tarefa se aplicam](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html).

**Versões do produto**

Essa solução foi testada com as seguintes versões:
+ Terraform 1.3.6
+ Provedor Terraform AWS 4.46.0

## Arquitetura
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-architecture"></a>

**Pilha de tecnologia de origem**
+ Blu Age
+ Terraform

**Pilha de tecnologias de destino**
+ Amazon Aurora Edição Compatível com PostgreSQL
+ AWS Backup
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon ECS
+ AWS Identity and Access Management Service (IAM)
+ AWS Key Management Server (AWS KMS)
+ AWS Secrets Manager
+ Amazon Simple Notiﬁcation Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Step Functions
+ AWS Systems Manager

**Arquitetura de destino**

O diagrama a seguir mostra a arquitetura da solução.

![\[A descrição segue o diagrama.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/12825490-2622-4f0b-80c9-2c5076d50fa3/images/c0708b0a-aa36-458a-8d6c-d42e3dec7727.png)


1. A solução implanta os seguintes perfis do IAM:
   + Perfil da tarefa de lote
   + Perfil de execução de tarefas em lote
   + Perfil da tarefa de serviço
   + Perfil de execução da tarefa do serviço
   + Perfil dos Perfis da etapa
   + Perfil do AWS Backup
   + Perfil de monitoramento avançado do RDS.

   Os perfis estão em conformidade com os princípios de acesso com privilégio mínimo.

1. O Amazon ECR é usado para armazenar a imagem do contêiner que é orquestrada por esse padrão.

1. O AWS Systems Manager Parameter Store fornece dados de configuração sobre cada ambiente para a definição de tarefa do Amazon ECS em runtime.

1. O AWS Secrets Manager fornece dados de configuração confidenciais sobre o ambiente para a definição de tarefas do Amazon ECS em runtime. Os dados foram criptografados pelo AWS KMS.

1. Os módulos do Terraform criam definições de tarefas do Amazon ECS para todas as tarefas em tempo real e em lote.

1. O Amazon ECS executa uma tarefa em lote usando o AWS Fargate como mecanismo de computação. Essa é uma tarefa de curta duração, iniciada conforme exigido pelo AWS Step Functions.

1. Compatível com o Amazon Aurora PostgreSQL fornece um banco de dados para dar suporte ao aplicativo modernizado. Isso substitui bancos de dados de mainframe, como IBM Db2 ou IBM IMS DB.

1. O Amazon ECS executa um serviço de longa duração para fornecer uma workload modernizada em tempo real. Esses aplicativos sem estado são executados permanentemente com contêineres espalhados pelas zonas de disponibilidade.

1. Um Network Load Balancer é usado para conceder acesso à workload em tempo real. O Network Load Balancer é compatível com protocolos anteriores, como o IBM CICS. Como alternativa, você pode usar um Application Load Balancer para workloads baseadas em HTTP.

1. O Amazon S3 fornece armazenamento de objetos para entradas e saídas de trabalhos. O contêiner deve lidar com as operações de pull e push no Amazon S3 para preparar o diretório de trabalho para o aplicativo Blu Age.

1. O serviço AWS Step Functions é usado para orquestrar a execução das tarefas do Amazon ECS para processar workloads em lote.

1. Os tópicos do SNS para cada workload em lote são usados para integrar o aplicativo modernizado a outros sistemas, como e-mail, ou para iniciar ações adicionais, como entregar objetos de saída do Amazon S3 para o FTP.

**nota**  
Por padrão, a solução não tem acesso à internet. Esse padrão supõe que a nuvem privada virtual (VPC) será conectada a outras redes usando um serviço como o [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/). Dessa forma, vários endpoints da VPC de interface são implantados para conceder acesso aos serviços da AWS usados pela solução. Para ativar o acesso direto à Internet, você pode usar o botão no módulo Terraform para substituir os endpoints da VPC por um gateway da Internet e os recursos associados.

**Automação e escala**

O uso de recursos de tecnologia sem servidor em todo esse padrão ajuda a garantir que, ao escalar, haja poucos limites na escala desse design. Isso reduz as *preocupações ruidosas dos vizinhos*, como a competição por recursos computacionais que podem existir no mainframe original. As tarefas em lote podem ser programadas para serem executadas simultaneamente, conforme necessário.

Os contêineres individuais são limitados pelos tamanhos máximos suportados pelo Fargate. Para obter mais informações, consulte a seção [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size) na documentação do Amazon ECS.

Para [escalar cargas de trabalho em tempo real horizontalmente](https://nathanpeck.com/amazon-ecs-scaling-best-practices/), você pode adicionar contêineres.

## Ferramentas
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-tools"></a>

**Serviços da AWS**
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e compatível com ACID que ajuda você a configurar, operar e escalar implantações do PostgreSQL.
+ O [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) é um serviço totalmente gerenciado que ajuda você a centralizar e automatizar a proteção de dados na nuvem e no local. Serviços da AWS
+ O [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) é um serviço gerenciado de registro de imagens de contêineres seguro, escalável e confiável.
+ O [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) é um serviço de gerenciamento de contêineres escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster.
+ [O AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos, controlando quem está autenticado e autorizado a usá-los.
+ O [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ajuda você a criar e controlar chaves criptográficas para proteger seus dados.
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda você a substituir credenciais codificadas em seu código, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo programaticamente.
+ O [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [O AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) é um serviço de orquestração sem servidor que ajuda você a combinar AWS Lambda funções e outras Serviços da AWS para criar aplicativos essenciais para os negócios.
+ O [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) oferece armazenamento hierárquico seguro para o gerenciamento de dados de configuração e gerenciamento de segredos.

**Outros serviços**
+ O [HashiCorp Terraform](https://www.terraform.io/docs) é uma ferramenta de infraestrutura como código (IaC) que ajuda a provisionar e gerenciar recursos e infraestrutura de nuvem por meio de código. Esse padrão usa o Terraform para criar a arquitetura de amostra.

**Repositório de código**

O código-fonte desse padrão está disponível no repositório GitHub [Blu Age Sample ECS Infrastructure (Terraform)](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform#aws-blu-age-sample-ecs-infrastructure-terraform).

## Práticas recomendadas
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-best-practices"></a>
+ Para ambientes de teste, use atributos como a opção `forceDate` de configurar o aplicativo modernizado para gerar resultados de teste consistentes, sempre executando por um período de tempo conhecido.
+ Ajuste cada tarefa individualmente para consumir a quantidade ideal de recursos. Você pode usar o [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) para obter orientação sobre possíveis gargalos.

## Épicos
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-epics"></a>

### Prepare o ambiente para implantação
<a name="prepare-the-environment-for-deployment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o código-fonte da solução. | Clone o código da solução do [GitHub projeto](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform). | DevOps engenheiro | 
| Inicialize o ambiente implantando recursos para armazenar o estado do Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps engenheiro | 

### Implante a infraestrutura da solução
<a name="deploy-the-solution-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Revise e atualize a configuração do Terraform. | No diretório raiz, abra o arquivo `main.tf,`, revise o conteúdo e considere fazer as seguintes atualizações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps engenheiro | 
| Implantar o arquivo Terraform. | No seu terminal, executar o `terraform apply` comando para implantar todos os recursos. Revise as alterações geradas pelo Terraform e digite **sim** para iniciar a construção.Observe que a implantação dessa infraestrutura pode levar mais de 15 minutos. | DevOps engenheiro | 

### (Opcional) Implante uma aplicação conteinerizada Blu Age válida
<a name="optional-deploy-a-valid-blu-age-containerized-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie a imagem do contêiner do Blu Age para o Amazon ECR. | Envie o contêiner para o repositório do Amazon ECR que você criou no épico anterior. Para obter instruções, consulte a [Documentação do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).Anote o URI da imagem do contêiner. | DevOps engenheiro | 
| Atualize o Terraform para referenciar a imagem do contêiner Blu Age. | Atualize o arquivo `main.tf`**** para referenciar a imagem do contêiner que você carregou. | DevOps engenheiro | 
| Reimplante o arquivo Terraform. | No seu terminal, executar `terraform apply` para implantar todos os recursos. Analise as atualizações sugeridas pelo Terraform e, em seguida, insira **sim** para continuar com a implantação. | DevOps engenheiro | 

## Recursos relacionados
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-resources"></a>
+ [Blu Age](https://www.bluage.com/)
+ [Como executar workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)