O blog da AWS

Migração de aplicativos AS/400 e IBM i para a AWS com Infinite

Por Bruce Acacio, CEO da Infinite Corporation
Phil de Valence, Arquiteto de Soluções para modernização de sistemas legados na AWS

 

Sistemas AS/400 ainda são usados por inúmeras organizações em setores como serviços financeiros. Normalmente, eles hospedam cargas de trabalho de núcleo de negócios, como software de contabilidade ou cadeia de suprimentos. Para clientes com AS/400 (e os sucessores iSeries, System i e IBM i systems), a solução de software Infinite, disponível no AWS Marketplace, ajuda a migrar cargas de trabalho AS/400 para Linux na AWS, minimizando o impacto no código de aplicativos.

Neste post, destacamos a solução Infinite na AWS, considerações de migração para usuários AS/400, bem como instruções passo a passo sobre como iniciar o Infinite i.

 

Desafios do cliente AS/400

Os clientes AS/400 de hoje estão enfrentando altos custos e uma arquitetura inflexível que muitos vêem como fim de vida útil. Eles estão usando aplicativos críticos implantados em hardware proprietário antigo da IBM. Programas e dados são bloqueados em hardware e software proprietários com custos de licenciamento inflacionados. O banco de dados também é proprietário e o compartilhamento de informações com outros ambientes de dados padrão SQL ou não estruturados é difícil. Encontrar pessoal qualificado para gerenciar sistemas AS/400 está se tornando um desafio. À medida que o restante do data center é migrado para a nuvem, os clientes não querem deixar seus aplicativos AS/400 localmente.

 

Infinite i na AWS

O conjunto de ferramentas Infinite i permite recompilar e implantar aplicativos AS/400 RPG e COBOL na AWS. Infinite i inclui compiladores para RPG, RPG/ILE, RPG/Free, COBOL, Control Language Programs (CLP) e Data Description Specifications (DDS). O ambiente de implantação gerencia dados, tarefas, filas de mensagens, executa chamadas de banco de dados e satisfaz comandos de linguagem de controle (CL) em um ambiente Linux. Uma vez recompilados e implantados no Infinite na AWS, os aplicativos são executados com a equivalência funcional do sistema IBM i ou AS/400 original.

Conforme mostrado no diagrama abaixo, as funções de negócios permanecem as mesmas ao migrar para o Infinite na AWS. O código do aplicativo, as dependências de utilitários e o formato de dados geralmente permanecem os mesmos, enquanto o middleware proprietário subjacente, o sistema operacional e o hardware são substituídos por Infinite na AWS.

 

 

O código-fonte do aplicativo é necessário e recompilado para execução no Infinite i. Se algum código-fonte estiver faltando, o Infinite tem alguns recursos para regenerar o código-fonte dos binários do módulo. Uma vez recompilado, o código é executado como instruções x86 nativas, evitando os desafios de desempenho dos emuladores de hardware que fazem a tradução de instruções do processador. Uma vez migrado para o Infinite na AWS, não há mais componente da IBM, portanto, não há suporte à IBM e não há taxas de licença da IBM.

No lado dos dados, o Infinite i suporta todas as funcionalidades de rotina do DB2/400, incluindo junções simples e lógicas, seleção e omitir, gatilhos, registro no diário, vários membros e lógicos de vários formatos. Os dados podem ser armazenados no banco de dados interno Infinite ou em um banco de dados externo, como Amazon Relational Database Service (RDS), Amazon Aurora, MySQL, banco de dados Oracle ou Microsoft SQL Server. Com o banco de dados externo, Infinite i cria os esquemas de banco de dados mapeando arquivos físicos para tabelas, arquivos lógicos para exibições e, em tempo de execução, traduz de forma transparente as chamadas de banco de dados do aplicativo (READ, READE, SETLL etc.) para as instruções SQL apropriadas, permitindo que o aplicativo seja executado sem alterações de código.

Infinite i inclui os seguintes componentes:

  • Tempo de execução com suporte a comandos OS/400, gerenciamento de tarefas, gerenciamento de spool
  • Compiladores para idiomas AS/400 incluindo DDS, RPG, COBOL, CL, comandos, grupos de painéis
  • Utilitários como Consulta/400, DFU, PDM
  • Ferramentas de migração para migrar aplicativos e dados por meio de arquivos SAVF
  • Banco de dados interno com suporte a PFs, LFs, arquivos com vários membros, Juntar arquivos lógicos, gatilhos, registro no diário
  • Conectores de banco de dados internos com drivers ODBC e JDBC para acessar PFs e LFs quando permanecer no banco de dados interno Infinite.
  • Suporte ao Gerenciamento de Dados Distribuído (DDM) para integração de dados
  • Compatibilidade IBM MQ para integração de mensagens
  • Database Connect para converter PFs e LFs em um banco de dados externo, como banco de dados Oracle do Amazon RDS ou MS SQL Server

Infinite i oferece suporte ao Amazon Linux 2. Quando os dados são migrados para um banco de dados relacional externo, como o Amazon Aurora ou o Amazon RDS, os dados são reformatados em tabelas e exibições ASCII. Uma vez fora do DB2/400, os dados estão disponíveis para relatórios, análises ou compartilhamento de dados com outros armazenamentos de dados. Os dados podem então ser acessados através dos programas existentes implantados no Infinite possivelmente usando um cliente TN5250, ou os dados podem ser acessados diretamente dentro do banco de dados relacional usando ferramentas e APIs comuns de Structured Query Language (SQL). Por exemplo, com dados no Amazon RDS ou no Amazon Aurora, um cliente pode criar um aplicativo sem servidor disponibilizando dados para usuários móveis.

O diagrama abaixo mostra os serviços da AWS usados em conjunto com o Infinite i, incluindo o Amazon Elastic Compute Cloud (EC2) para o aplicativo e execução Infinite i, o Amazon Relational Database Service (RDS) para o banco de dados externo Infinite, o AWS Identity and Access Management (IAM) para segurança e o Amazon CloudWatch para monitoramento. Se um sistema AS/400 hospedar várias partições lógicas (LPAR), cada LPAR pode ser migrado para uma instância do EC2 com Infinite i.

 

Infinite i pode participar de um pipeline de Integração Contínua e Implantação Contínua de DevOps para desenvolvimentos mais rápidos e ágeis. Infinite fornece as ferramentas para mover o código-fonte de e para membros de arquivos físicos, a fim de ter esse código gerenciado por um gerenciador de repositório GIT, como GitHub ou GitLab. O pipeline pode incluir análise de código RPG e COBOL com SonarQube para encontrar bugs e vulnerabilidades de segurança.

 

Segurança, disponibilidade e escalabilidade

A solução Infinite i na AWS oferece recursos de segurança corporativa prontamente disponíveis. Para segurança de dados em trânsito, o Infinite permite a criptografia SSL/TLS da comunicação TN5250. Além disso, o AWS VPN e o AWS Direct Connect fornecem criptografia e conectividade de rede dedicada da rede corporativa para a rede Amazon VPC. Para segurança de dados em repouso, os clientes podem se beneficiar da criptografia no nível da plataforma do Amazon RDS. Para identidade, autenticação e autorização, a segurança do Linux e o AWS IAM são usados.

Para segurança em nível de aplicativo, o Infinite i usa o comando CHGAUT manipulando segurança para bibliotecas e objetos. Ele depende do sistema operacional Linux subjacente ajustando as listas de controle de acesso Unix e atributos de segurança para conceder ou revogar permissões de recursos para usuários e grupos.

No nível da rede, a solução é ainda mais protegida pelas listas de controle de acesso à rede da AWS e pelos grupos de segurança. A auditoria é facilitada pelo AWS CloudTrail e pelo VPC Flow Logs. A AWS também fornece o Amazon Inspector para detecção de vulnerabilidades, o AWS Config para aplicação de políticas, o Amazon GuardDuty para inteligência de ameaças. Segurança é trabalho zero na AWS, assim as instituições financeiras se beneficiam dos recursos de segurança da AWS projetados para algumas das empresas e instituições mais sensíveis à segurança.

Para disponibilidade, o Infinite se beneficia das zonas de disponibilidade da AWS. Em caso de falha, ele efetua o failover de forma automática e transparente para os usuários finais. A configuração e os dados permanecem disponíveis no Amazon Elastic File System (EFS) e no Amazon RDS.

 

Com a nuvem AWS, o Infinite i pode escalar alterando o hardware subjacente em minutos. Infinite i pode escalar de alguns usuários para mais de 1000 usuários. A AWS fornece uma grande variedade de tipos de instância, desde o m5 de uso geral, até o c5 otimizado para computação ou o r5 otimizado para memória. Além disso, para cada tipo de instância, há vários tamanhos disponíveis: pequeno, médio, grande, xlarge, 2xlarge… Todos esses tipos de instância prontamente disponíveis, combinados com a capacidade de analisar o consumo de recursos no Amazon CloudWatch permite escolher e ajustar o tipo de instância certo para cada carga de trabalho do AS/400.

 

Processo de migração para programas e dados

Os compiladores usam instruções de compilação a partir do código de objeto e suas dependências, muito parecido com as fornecidas no AS/400. Eles compilam várias linguagens de cada vez, incorporando várias versões de RPG e COBOL com CL e DDS. O sistema cria objetos nativos de 64 bits, a serem implantados em tempo de execução no ambiente Infinite i. Aqui está o processo para uma migração típica:

  • Criar o backup AS/400 (arquivos salvados SAVF) — As bibliotecas são salvas usando SAVLIB (com COMPACT (*no)). Documentos e pastas usam SAVDLO, enquanto objetos individuais usam SAVOBJ. O backup deve incluir:

    • Todas as bibliotecas de distribuição de aplicativos, incluindo código-fonte e código de objeto como Programas (*PGM com atributos CLP, RPG, RPGLE, COBOL, etc.), juntamente com Programas de Serviço (*SRVPGM), Diretórios de Vinculação (*BNDDIR), Áreas de Dados (*DTAARAS), etc exatamente como as bibliotecas estão estruturadas no AS/400.
    • As bibliotecas Q*LIB não são necessárias a menos que haja objetos de aplicativo (OutQs, JobDs, JobQs, DTAARAS, DTAQs, Arquivos de referência de campo, etc) em bibliotecas como QSYS ou QUSRSYS.
    • Todos os arquivos de banco de dados físicos e lógicos DB2/400 do aplicativo.
    • Informações de perfil de usuário que permitem a execução dos programas gerados pelo DSPUSRPRF.
    • Objetos compactados usando o comando CPBJ, que deve ser descompactado usando o DCPOBJ antes de salvar os objetos.
    • Todos os programas que usam o AUTOREATING que devem ser compilados usando o RPTOPT (*source) OUTFILE (<library> /QRPGSRC).
    • Código fonte do (s) arquivo (s) de referência de campo.
  • Implantar Infinite i na AWS — Implantar Infinite i no AWS Marketplace; onde uma avaliação gratuita está disponível. Dependendo do tipo de ambiente, você pode configurar várias topologias nas zonas de disponibilidade da AWS e com o banco de dados interno versus externo.
  • Transferir o backup para o Infinite i na AWS — A transferência do (s) arquivo (s) SAVF do AS/400 para a instância do Amazon EC2 geralmente é feita em uma conexão TCP/IP segura ou via AWS Snowball. Esta transferência inclui o programa e os dados do aplicativo AS/400 original.
  • Restaurar o backup no Infinite i — Com o comando de aplicativo de restauração (RSTAPP), os componentes do aplicativo são carregados dentro do Infinite i, incluindo todos os arquivos de origem, membros, dados, informações de catálogo para recompilação e outros tipos de objeto, como descrições de tarefas e arquivos de mensagem. A estrutura da biblioteca AS/400 é recriada dentro do sistema de arquivos Infinite Linux.
  • Criar o aplicativo — Com o comando run build instructions (RUNBIF), Infinite chama os comandos create correspondentes (CRTPF, CRTRPGPGM, CRTBNDRPG etc.) recompilando todos os membros de origem para execução nativa nas vCPUs AWS.
  • Integração com outros componentes — cada aplicativo AS/400 é diferente e pode ser integrado a vários servidores front-end, dependências de terceiros, middleware de mensagens. O aplicativo ou componentes externos são configurados para se comunicar conforme o esperado para executar sua função de negócios. Durante essa atividade, um cliente pode optar por mover dados de aplicativos no banco de dados relacional externo em vez do banco de dados interno Infinite. Infinite não usa scripts para converter arquivos físicos e lógicos para o banco de dados relacional. É um processo mais intrínseco no qual o comando CNVSQLTBL lê o DDS PF ou LF e usa chamadas OCI para enviar as instruções CREATE apropriadas para gerar os componentes do banco de dados relacional usando os tipos de dados mais apropriados. A implementação no Infinite usando um banco de dados de terceiros é totalmente transparente para os programas de aplicativos.
  • Testar o aplicativo — Durante essa atividade, os casos de teste do cliente são executados validando a equivalência funcional entre o sistema AS/400 original e a solução Infinite na AWS.

 

Cronograma do projeto de migração

Uma migração AS/400 para o Infinite na AWS geralmente leva de 4 a 10 semanas, dependendo da complexidade, do tamanho e dos potenciais ativos ausentes. Normalmente, o Infinite ou um Integrador de Sistemas ajudará com a migração de código e testes. A imagem abaixo mostra atividades típicas do projeto para uma migração do AS/400 local para o Infinite na AWS.

 

O cliente fornece as contas da AWS onde os ambientes Infinite Development, Integration e Production são implantados. Consequentemente, os programas e os dados permanecem sob as políticas de segurança do cliente aplicadas localmente e na AWS. O cliente fornece acesso a instâncias do Infinite EC2 conforme necessário para a assistência do Infinite ou do System Integrator.

 

Como executar e acessar o Infinite i do AWS Marketplace

O AWS Marketplace é uma loja on-line de listagens de software que facilita a localização, teste, compra e implantação de software executado na AWS. O Infinite i no AWS Marketplace está disponível com um período de avaliação gratuito de 30 dias. Você pode implantá-lo em minutos com alguns cliques seguindo estas etapas:

  • Etapa 1 — Vá para a página de produtos do AWS Marketplace para Infinite i.
  • Passo 2 — Continue a subscrição o produto.
  • Etapa 3 — Aceite os termos da assinatura e continue para a configuração.
  • Etapa 4 — Configure este software verificando que a AMI é apropriada e a Versão do Software é a mais recente. Selecione a região onde você deseja iniciar Infinite i como mostrado abaixo. Em seguida, continue para Launch.

 

  • Passo 5 — Selecione todas as opções de lançamento desejadas, como mostrado abaixo.

 

Para Configurações do grupo de segurança, selecione Criar novo com base nas configurações do vendedor conforme mostrado abaixo.

 

Insira um nome de grupo de segurança, descrição, limite o IP de origem conforme necessário e clique em Save.
Em seguida selecione Iniciar e você verá a seguinte mensagem.

  • Etapa 6 — Vá para o console do Amazon EC2 para visualizar Instâncias, conforme mostrado abaixo.

 

Aguarde até que a nova instância do EC2 esteja em estado de execução com as verificações passadas.
Mantenha um IP Público para esta instância.

  • Etapa 7 — Conecte-se a esta instância do EC2 de acordo com estas Conecte-se à sua instância do Linux
  • Passo 8 — Mude para superusuário e defina uma senha para o usuário qsecofr. O qsecofr é usado posteriormente para se conectar ao Infinite I do cliente TN5250.

sudo su —
passwd qsecofr

  • Passo 9 — Inicie seu cliente TN5250. Se você não tiver um cliente TN5250, você pode instalar o TN5250j, ou usar a interface web Infinite 5250 ou o IBM i Access Client Solutions.
  • Passo 10 — Com TN5250j, adicione uma sessão de conexões. Na configuração TCP/IP, especifique o DNS público da instância do EC2 ou o IP público anteriormente observado e insira a porta 5250, conforme mostrado abaixo.

 

Adicione esta nova sessão e conecte-o ao Infinite i.

  • Passo 11 — Entrar com o usuário qsecofr e a senha que você definiu anteriormente para ele, como mostrado abaixo.

  • Parabéns, agora você está usando o Infinite i na AWS! A imagem abaixo mostra sua tela final.

 

  • Você pode continuar navegando no menu ou você pode implantar e compilar um aplicativo de exemplo, como o aplicativo de exemplo de faturamento.

 

Benefícios para o cliente

Muitas Instituições Financeiras atualmente estão buscando uma plataforma alternativa para seus aplicativos AS/400. Eles encontram muitos benefícios ao mover esses aplicativos para o Infinite i na AWS:

  • Menor custo com Infinite e AWS seguindo um modelo de pagamento conforme o uso disponível no AWS Marketplace. Depois da migração, não há mais custo de licença ou hardware da IBM.
  • Maior disponibilidade com failover automatizado nas zonas de disponibilidade da AWS.
  • Melhor escalabilidade com uma grande variedade de tipos de instância com várias opções de CPU, memória e largura de banda de rede, que podem ser alteradas com apenas alguns cliques.
  • Maior agilidade da infraestrutura sendo capaz de iniciar ou encerrar uma instância Infinite em minutos e incluir aplicativos Infinite em um pipeline de Integração Contínua/Entrega Contínua (CI/CD).
  • Código de aplicativo semelhante (COBOL e RPG) e ambiente de execução semelhante reproduzindo funções AS/400 permite manter o pessoal qualificado AS/400 enquanto faz a transição da infraestrutura subjacente para práticas modernas.
  • Acesso a dados e insights de dados migrando os dados AS/400 para o Amazon RDS, Amazon Aurora, banco de dados Oracle ou Microsoft SQL Server facilmente acessível.

 

Conclusão

Nesta publicação, listamos considerações sobre a migração de cargas de trabalho AS/400 e IBM i para Linux na AWS, bem como instruções sobre como executar o Infinite i a partir do AWS Marketplace. Os clientes que transferem esses aplicativos para a AWS geralmente apresentam custos mais baixos, maior disponibilidade e escalabilidade, além de um processo de migração mais seguro, devido ao uso de códigos de aplicativo semelhantes (COBOL e RPG). Para experimentar o Infinite i, use o teste gratuito no AWS Marketplace.

 


Revisor técnico

João Paulo Aragão Pereira é Arquiteto de soluções da AWS, focado no setor de serviços financeiros (LATAM) e seus principais tópicos: prevenção e detecção de fraudes, Open Banking, modernização de sistemas legados, Prova de Vida, Sistemas de Pagamentos Instantâneos. Trabalho com arquiteturas de bancos e seguradoras há mais de 15 anos.

 

 

 

Se você tem perguntas sobre a AWS ou algum projeto que queira discutir, preencha este formulário e um representante entrará em contato com você.