Modernização da aplicação de mainframe CardDemo usando o AWS Transform - Recomendações da AWS

Modernização da aplicação de mainframe CardDemo usando o AWS Transform

Santosh Kumar Singh e Cheryl du Preez, Amazon Web Services

Resumo

O AWS Transform foi projetado para acelerar a modernização das aplicações de mainframe. Ele usa IA generativa para agilizar o processo de modernização do mainframe. Ele automatiza tarefas complexas, como: análise de código legado, documentação de mainframe, extração de regras de negócios, decomposição de aplicações monolíticas em domínio comercial e refatoração de código. Ele acelera os projetos de modernização automatizando tarefas complexas, como análise de aplicações e planejamento da sequência de migração. Ao decompor aplicações monolíticas, o AWS Transform sequencia de forma inteligente a transformação da aplicação de mainframe, o que ajuda você a transformar as funções de negócios em paralelo. O AWS Transform pode acelerar a tomada de decisões e aprimorar a agilidade operacional e a eficiência da migração.

Este padrão oferece instruções passo a passo para ajudá-lo a testar os recursos de modernização do mainframe do AWS Transform usando o CardDemo, que é um exemplo de aplicação de mainframe de código aberto.

Pré-requisitos e limitações

Pré-requisitos

  • Uma Conta da AWS ativa

  • AWS IAM Identity Center, enabled

  • Permissões que permitem que os administradores habilitem o AWS Transform

  • Permissões que permitem que administradores aceitem solicitações de conexão do Amazon Simple Storage Service (Amazon S3) para a aplicação web AWS Transform

Limitações

  • O AWS Transform está disponível apenas em algumas Regiões da AWS. Para obter uma lista completa das regiões aceitas, consulte Supported Regions for AWS Transform.

  • O AWS Transform oferece suporte para a análise de código, geração de documentos, extração de regras de negócios, decomposição e refatoração da Common Business-Oriented Language (COBOL) para Java. Para obter mais informações, consulte Capabilities and key features e Supported file types for transformation of mainframe applications.

  • Há uma cota de serviço para recursos de transformação de mainframe no AWS Transform. Para mais informações, consulte Cotas para o AWS Transform.

  • Para colaborar em um espaço de trabalho compartilhado, todos os usuários devem ser usuários registrados da mesma instância de AWS IAM Identity Centerassociada à sua instância da aplicação web AWS Transform .

  • O bucket do Amazon S3 e o AWS Transform devem estar na mesma região e Conta da AWS.

Arquitetura

O diagrama a seguir mostra a arquitetura que é configurada neste padrão.

Usar o AWS Transform para modernizar uma aplicação de mainframe que é armazenada em um bucket do Amazon S3.

O diagrama mostra o seguinte fluxo de trabalho:

  1. O AWS Transform usa um conector para acessar a aplicação de mainframe CardDemo, que é armazenado em um bucket do Amazon S3.

  2. O AWS Transform usa AWS IAM Identity Center para gerenciar o acesso e a autenticação. O sistema implementa várias camadas de controles de segurança para autenticação, autorização, criptografia e gerenciamento de acesso para ajudar a proteger códigos e artefatos durante o processamento. Os usuários interagem com o agente AWS Transform por meio de uma interface de chat. Você pode fornecer instruções ao agente de IA para tarefas específicas em inglês. Para obter mais informações, consulte Human-in-the-loop (HITL) na documentação do AWS Transform.

  3. O agente de IA interpreta as instruções do usuário, cria um plano de trabalho, divide o trabalho em tarefas executáveis e o executa de forma autônoma. Os usuários podem revisar e aprovar a transformação. As tarefas de transformação incluem o seguinte:

    • Análise de código: o AWS Transform analisa o código em cada arquivo para obter detalhes como nome do arquivo, tipo de arquivo, linhas de código e seus caminhos. O agente analisa o código-fonte, executa classificações, cria mapeamentos de dependências e identifica quaisquer artefatos ausentes. Ele também identifica componentes duplicados.

    • Geração de documentos: o AWS Transform gera documentação para a aplicação de mainframe. Ao analisar o código, ele pode criar automaticamente uma documentação detalhada dos programas de aplicações, incluindo descrições da lógica de negócios, fluxos, integrações e dependências presentes em seus sistemas legados.

    • Extração da lógica de negócios: o AWS Transform analisa os programas COBOL para documentar sua lógica de negócios principal, para ajudá-lo a entender a lógica comercial fundamental.

    • Decomposição de código: o AWS Transform decompõe o código em domínios que respondem pelas dependências entre programas e componentes. O agrupamento de arquivos e programas relacionados no mesmo domínio melhora a organização e ajuda a preservar a estrutura lógica da aplicação ao dividi-la em componentes menores.

    • Planejamento da onda de migração: com base nos domínios que você criou durante a fase de decomposição, o AWS Transform gera um plano de onda de migração com a ordem de modernização recomendada.

    • Refatoração de código: o AWS Transform refatora o código em todos os arquivos de domínio ou em arquivos de domínio selecionados em código Java. O objetivo dessa etapa é preservar a lógica comercial essencial da aplicação e, ao mesmo tempo, refatorá-la em uma aplicação Java modernizada e otimizada para a nuvem.

  4. O AWS Transform armazena o código refatorado, documentos gerados, artefatos associados e bibliotecas de runtime no bucket do Amazon S3. Você pode fazer o seguinte:

    • Acesse a pasta de runtime no bucket do Amazon S3.

    • Crie e implante a aplicação seguindo a seção Build and deploy your modernized application post-refactoring na documentação do AWS Transform.

    • Por meio da interface de chat, solicite e baixe uma amostra do AWS CloudFormation, AWS Cloud Development Kit (AWS CDK) ou modelo do Hashicorp Terraform. Esses modelos podem ajudá-lo a implantar os recursos da AWS necessários para dar suporte à aplicação refatorada.

    • Use o Reforge para melhorar a qualidade do código refatorado usando grande modelos de linguagem (LLMs). O mecanismo de refatoração preserva a equivalência funcional do COBOL enquanto o transforma em código Java. O Reforge é uma etapa opcional que está disponível após a transformação. Essa etapa usa LLMs para reestruturar o código para que se assemelhe muito ao Java nativo, o que pode melhorar a legibilidade e a capacidade de manutenção. O Reforge também adiciona comentários legíveis para ajudar você a entender o código e implementa padrões de codificação modernos e práticas recomendadas.

Ferramentas

Serviços da AWS

  • O AWS Transform usa IA agêntica para ajudar você a acelerar a modernização de workloads legadas, como as workloads do.NET, mainframe e VMware.

  • O AWS IAM Identity Center ajuda você a gerenciar centralmente o acesso à autenticação única (SSO) a todas as suas aplicações na nuvem e Contas da AWS.

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

Repositório de código

Você pode usar a aplicação de mainframe da AWS CardDemo de código aberto como uma aplicação de exemplo para começar a modernizar o mainframe.

Práticas recomendadas

  • Comece pequeno: comece com um código pequeno e menos complexo (15 mil a 20 mil linhas de código) para entender como o AWS Transform analisa e transforma aplicações de mainframe.

  • Combine com a experiência humana: use o AWS Transform como um acelerador enquanto aplica a experiência humana para obter os melhores resultados.

  • Revise e teste minuciosamente: sempre revise cuidadosamente o código transformado e execute testes abrangentes para validar a equivalência funcional após a transformação.

  • Forneça feedback: para fornecer feedback e sugestões de melhoria, use o botão Enviar feedback no Console de gerenciamento da AWS ou crie um caso com o AWS Support. Para obter mais informações, consulte Criar um caso de suporte. Sua opinião é valiosa para aprimoramentos de serviços e desenvolvimento futuro.

Épicos

TarefaDescriçãoHabilidades necessárias

Crie um bucket.

Crie um bucket do Amazon S3 na mesma Conta da AWS e região em que o AWS Transform está habilitado. Você usa esse bucket para armazenar o código da aplicação de mainframe, e o AWS Transform usa esse bucket para armazenar os documentos gerados, o código refatorado e outros arquivos associados à transformação. Para obter instruções, consulte Criação de um bucket na documentação do Amazon S3.

AWS geral

Prepare a amostra da aplicação de mainframe.

  1. Insira o seguinte comando para clonar o repositório CardDemo em sua estação de trabalho local:

    git clone https://github.com/aws-samples/aws-mainframe-modernization-carddemo.git

  2. Crie uma nova pasta chamada carddemo.

  3. Copie a pasta app, que contém o código-fonte do mainframe, do repositório clonado para a pasta carddemo.

  4. Compacte a pasta cardemo em um arquivo ZIP.

  5. Faça upload do arquivo ZIP no bucket do Amazon S3 que você criou. Para obter instruções, consulte Fazer uploads de objetos na documentação do Amazon S3.

Desenvolvedor de aplicativos, engenheiro de DevOps
TarefaDescriçãoHabilidades necessárias

Adicione usuários ao Centro de Identidade do IAM.

Adicione seus usuários em potencial ao Centro de Identidade do IAM. Siga as instruções em Adding users in IAM Identity Center na documentação do AWS Transform.

Administrador da AWS

Habilite o AWS Transform e adicione usuários.

  1. Habilitar AWS Transform. Siga as instruções em Enable AWS Transform.

  2. Adicionar usuários ao AWS Transform. Siga as instruções em Adding users to AWS Transform.

Administrador da AWS

Configure o acesso do usuário à aplicação web AWS Transform.

Cada usuário deve aceitar o convite para acessar a aplicação web AWS Transform. Siga as instruções em Accepting the invitation na documentação do AWS Transform.

Desenvolvedor do aplicativo, proprietário do aplicativo

Faça login na aplicação web AWS Transform.

Siga as instruções em Signing in to AWS Transform.

Desenvolvedor do aplicativo, proprietário do aplicativo

Configure um espaço de trabalho.

Configure um espaço de trabalho onde os usuários possam colaborar na aplicação web AWS Transform. Siga as instruções em Setting up your workspace na documentação do AWS Transform.

Administrador da AWS
TarefaDescriçãoHabilidades necessárias

Crie um trabalho de transformação.

Crie um trabalho de transformação para modernizar a aplicação de mainframe CardDemo. Para obter instruções, consulte Create and start a job na documentação do AWS Transform. Quando você for solicitado a definir os objetivos na interface de chat do AWS Transform, escolha Perform mainframe modernization (IBM z/OS to AWS) e, em seguida, escolha Analyze code, Generate technical documentation, Business logic, Decompose code, Plan Migration sequence and Transform code to Java.

Desenvolvedor do aplicativo, proprietário do aplicativo

Configure o conector.

Estabeleça um conector ao bucket do Amazon S3 que contenha a aplicação de mainframe CardDemo. Esse conector permite ao AWS Transform acessar recursos no bucket e executar funções de transformação consecutivas. Para obter instruções, consulte Set up a connector na documentação do AWS Transform.

Administrador da AWS

Realizar a análise do código.

  1. Na página Specify asset location, insira o caminho do bucket do Amazon S3 para o arquivo ZIP carddemo que você carregou.

  2. Escolha Approve and send to AWS Transform. Ele começa a analisar o código.

  3. Monitore o status na guia Worklog.

  4. Quando a análise estiver concluída, em Analyze code no painel de navegação esquerdo, escolha View code analysis results.

  5. (Opcional) Escolha Download para baixar a lista completa de ativos, o código-fonte ausente e o arquivo de dependência.

Para obter mais informações, consulte Code analysis na documentação do AWS Transform.

Desenvolvedor do aplicativo, proprietário do aplicativo

Gere documentação técnica.

  1. No painel de navegação esquerdo, em Generate technical documentation, escolha Select files and configure settings.

  2. Expanda COBOL ou JCL e selecione um ou vários arquivos.

  3. Escolha o nível de detalhes da documentação:

    • Summary: fornece uma visão geral de alto nível de cada arquivo no escopo. Além disso, fornece um resumo de uma linha de cada arquivo.

    • Detailed functional specification: fornece detalhes abrangentes de cada arquivo no escopo de transformação da aplicação de mainframe. Alguns detalhes incluem lógica e fluxo, regras de negócios identificadas, fluxo de dados, dependências, processamento de entrada e saída e vários detalhes da transação.

  4. Escolha Send to AWS Transform.

  5. Monitore o progresso na guia Worklog.

    nota

    O tempo de geração de documentos varia de minutos a horas, dependendo do número de arquivos e linhas de código.

  6. Ao concluir, escolha Review documentation results.

  7. Acesse o documento gerado por meio da aplicação web ou baixe-o. A documentação gerada também é armazenada no bucket do Amazon S3.

  8. Explore a documentação gerada fazendo perguntas específicas na interface de chat. Por exemplo, você pode dizer “Diga-me os recursos do CBACT01C”.

Para obter mais informações, consulte Generate technical documentation na documentação do AWS Transform.

Desenvolvedor do aplicativo, proprietário do aplicativo

Extraia a lógica de negócios.

  1. No painel de navegação esquerdo, expanda Extract business logic e escolha Select files for business logic extraction.

  2. Expanda COBOL ou JCL e selecione um ou vários arquivos.

  3. Escolha Send to AWS Transform.

  4. Monitore o progresso na guia Worklog.

    nota

    O tempo de extração da lógica de negócios varia de minutos a horas, dependendo do número de arquivos e linhas de código.

  5. Quando a extração estiver concluída, escolha Review business logic extraction results.

  6. Selecione um arquivo COBOL ou JCL e escolha View.

  7. Altere o escopo em Flow diagram and functional rules para revisar os diferentes níveis dos fluxogramas, incluindo o código de suporte.

  8. (Opcional) Revise a lógica de negócios gerada, que é armazenada no formato JSON no bucket do Amazon S3.

Para obter mais informações, consulte Extract business logic na documentação do AWS Transform.

Desenvolvedor do aplicativo, proprietário do aplicativo

Decomponha o código.

  1. No painel de navegação esquerdo, expanda Decompose code e escolha Decompose into domains.

  2. Na lista Actions, escolha Create domain.

  3. Insira um nome para o novo domínio, por exemplo Bill payment.

  4. (Opcional) Forneça uma descrição.

  5. Na barra de pesquisa Find files, pesquise CB00 e selecione o arquivo.

  6. Escolha Mark as seed.

  7. Verifique se o sinalizador inicial muda de No para Yes.

  8. Escolha Criar.

  9. Escolha Salvar.

  10. Escolha Decompose.

  11. Revise a saída da decomposição escolhendo o nome do domínio.

  12. Quando a decomposição estiver concluída, escolha Send to AWS Transform.

Para obter mais informações sobre decomposição e sementes, consulte Decomposition na documentação do AWS Transform.

Desenvolvedor do aplicativo, proprietário do aplicativo

Planejar as ondas de migração.

Planeje as ondas de migração para a aplicação CardDemo. Siga as instruções em Migration wave planning na documentação do AWS Transform para revisar e editar o plano de ondas.

Desenvolvedor do aplicativo, proprietário do aplicativo

Refatore o código.

  1. Refatore a aplicação de mainframe CardDemo em código Java em todos os arquivos de domínio ou em arquivos de domínio selecionados. Siga as instruções em Refactor code na documentação do AWS Transform.

  2. Depois que o processo de refatoração estiver concluído, crie e implante a aplicação Java modernizada. Siga as instruções em Build and deploy your modernized application post-refactoring na documentação do AWS Transform.

Desenvolvedor do aplicativo, proprietário do aplicativo

(Opcional) Use o Reforge para melhorar o código Java.

  1. Crie um novo trabalho e, em seguida, insira um objetivo de Reforge the code.

  2. Insira o de um projeto que foi modernizado por meio do AWS Transform. Esse projeto deve estar no bucket do Amazon S3.

  3. Insira a lista de classes Java que especifica quais classes de serviço devem ser reforjadas.

  4. Revise a saída gerada no bucket do Amazon S3.

Para obter mais informações, consulte Reforge, na documentação do AWS Transform.

Desenvolvedor do aplicativo, proprietário do aplicativo

Simplifique a implantação.

O AWS Transform pode fornecer modelos de infraestrutura como código (IaC) para o CloudFormation, o AWS CDK ou o Terraform. Esses modelos ajudam você a implantar componentes principais, incluindo recursos de computação, banco de dados, armazenamento e segurança.

  1. Na interface de chat do AWS Transform, solicite os modelos inserindo Share the mainframe refactor <service> templates, onde <service> é um dos serviços de IaC compatíveis.

  2. Implante o modelo usando seu serviço preferido. Por exemplo, consulte os seguintes recursos:

Para obter mais informações, consulte Deployment capabilities na documentação do AWS Transform.

Desenvolvedor do aplicativo, proprietário do aplicativo

Solução de problemas

ProblemaSolução

Você não consegue visualizar o código-fonte ou o documento gerado na aplicação web AWS Transform.

Adicione uma política à permissão do CORS para que o bucket do Amazon S3 permita AWS Transform como origem. Para obter mais informações, consulte S3 bucket CORS permissions na documentação do AWS Transform.

Recursos relacionados

AWS Documentação do

Outros recursos da AWS

Vídeos e tutoriais

nota

O AWS Transform era conhecido anteriormente como Amazon Q Developer transform for mainframe.