Estratégias de migração de aplicativos de mainframe

Quando a maioria das equipes migra aplicativos de ambientes de mainframe para o Azure, elas geralmente seguem uma abordagem pragmática: reutilizar onde e sempre que possível. Em seguida, eles iniciam uma implantação em fases em que os aplicativos são reescritos ou substituídos.

Migração de aplicativos normalmente envolvem uma ou mais das seguintes estratégias:

  • Rehost: mova código, programas e aplicativos existentes do mainframe. Recompile o código para ser executado em um emulador de mainframe hospedado em uma instância de nuvem. Essa abordagem normalmente inicia com aplicativos de movimento para um emulador baseado em nuvem e, em seguida, migrar o banco de dados para um banco de dados baseado em nuvem. Alguma engenharia e refatoração são necessárias com essa estratégia, juntamente com conversões de dados e arquivos.

    Como alternativa, você pode hospedar novamente usando um provedor de hospedagem tradicional. Um dos principais benefícios da nuvem é terceirizar o gerenciamento da infraestrutura. Encontre um provedor de datacenter que hospede suas cargas de trabalho de mainframe para você. Esse modelo pode ganhar algum tempo, reduzir o bloqueio do fornecedor e produzir economias de custos intermediárias.

  • Retire: aposente aplicativos que não são mais necessários antes da migração.

  • Recompilação: algumas organizações optam por reescrever por completo os programas usando técnicas modernas. Dado o custo e a complexidade dessa abordagem, ela não é tão comum quanto uma abordagem lift-and-shift. Muitas vezes após esse tipo de migração, faz sentido começar substituindo módulos e o código usando mecanismos de transformação de código.

  • Substituição: essa abordagem substitui a funcionalidade de mainframe por recursos equivalentes na nuvem. Software como serviço (SaaS) é uma opção. Com o Saas, você está usando uma solução criada especificamente para uma preocupação corporativa, como finanças, recursos humanos, manufatura ou planejamento de recursos corporativos. Além disso, muitos aplicativos específicos do setor agora estão disponíveis para resolver problemas que as soluções de mainframe personalizadas costumavam resolver anteriormente.

Comece planejando as cargas de trabalho que você deseja migrar inicialmente e, em seguida, determine os requisitos para mover aplicativos associados, bases de código herdadas e bancos de dados.

Emulação de mainframe no Azure

Os serviços do Azure podem emular ambientes de mainframe tradicionais. Em seguida, você pode reutilizar o código e os aplicativos de mainframe existentes. Você pode emular componentes comuns do servidor, como OLTP (processamento de transações online), sistemas de lote e ingestão de dados.

Sistemas OLTP

Muitos mainframes têm sistemas OLTP que processam milhares ou milhões de atualizações para um grande número de usuários. Com frequência, esses aplicativos usam o processamento de transações e o software de manipulação de formulário de tela, como o CICS (Sistema de Controle de Informações do Cliente), o IMS (Sistema de Gerenciamento de Informações) e o TIP (Processador de Interface de Terminal).

Quando você move aplicativos OLTP para o Azure, os emuladores para monitores de processamento de transações de mainframe (TP) podem ser executados como infraestrutura como serviço (IaaS) usando máquinas virtuais (VMs) no Azure. Os servidores Web também podem implementar a manipulação de tela e a funcionalidade de formulário. Combine essa abordagem com APIs de banco de dados, como ActiveX Data Objects (ADO), ODBC (Open Database Connectivity) e JDBC (Java Database Connectivity) para acesso a dados e transações.

Atualizações em lotes de restrição de tempo

Muitos sistemas de mainframe executam atualizações mensais ou anuais de milhões de registros de conta, como aqueles usados em serviços bancários, seguros e governamentais. Mainframes lidam com esses tipos de cargas de trabalho, oferecendo a sistemas de manipulação de dados de alta taxa de transferência. Os trabalhos em lote de mainframes são normalmente de natureza serial e dependem das operações de entrada e saída por segundo (IOPS) fornecidas pelo backbone de mainframe para desempenho.

Ambientes de lote baseados em nuvem usam a computação paralela e redes de alta velocidade para o desempenho. Se você precisa o desempenho do lote, o Azure fornece várias opções de rede, armazenamento e computação.

Sistemas de ingestão de dados

Os mainframes ingerem lotes grandes de dados de varejo, serviços financeiros, fabricação e outras soluções para o processamento. Com o Azure, você pode usar utilitários de linha de comando simples, como o AzCopy , para copiar dados de e para um local de armazenamento. Você também pode usar o serviço Azure Data Factory para ingerir dados de armazenamentos de dados diferentes e para criar e agendar fluxos de trabalho controlados por dados.

Além dos ambientes de emulação, o Azure fornece plataforma como serviço (PaaS) e análise de serviços que podem melhorar os ambientes existentes do mainframe.

Migre cargas de trabalho OLTP para o Azure

A abordagem de lift-and-shift é a opção sem código para migrar rapidamente os aplicativos existentes para o Azure. Cada aplicativo migra como está, o que fornece os benefícios da nuvem sem os riscos ou custos de fazer alterações de código. Usar um emulador para monitores de processamento de transação de mainframe (TP) no Azur com suporte a essa abordagem.

Os monitores TP estão disponíveis de vários fornecedores e executados em máquinas virtuais, uma infraestrutura como uma opção de serviço (IaaS) no Azure. Os diagramas a seguir mostram o antes e depois de um aplicativo on-line suportado pelo IBM DB2, um sistema de gerenciamento de banco de dados relacional (DBMS), em um mainframe IBM z/OS. O DB2 para z/OS usa arquivos do VSAM (Método de Acesso de Armazenamento Virtual) para armazenar os dados e o ISAM (Método de Acesso Sequencial Indexado) para arquivos simples. Essa arquitetura também usa CICS para monitoramento de transação.

Diagram of a

No Azure, os ambientes de emulação executam o gerenciador TP e os trabalhos em lote que usam JCL. Na camada de dados, o DB2 é substituído pelo Banco de Dados SQL do Azure, embora você também possa usar o Microsoft SQL Server, DB2 LUW ou Banco de Dados Oracle. Um emulador dá suporte a IMS, VSAM e SEQ. As ferramentas de gerenciamento do sistema de mainframe são substituídas por serviços do Azure e programas de software de outros fornecedores, que são executados em VMs.

Os servidores Web geralmente implementam a funcionalidade de manipulação de tela e entrada de formulário, que você pode combinar com APIs de banco de dados, como ADO, ODBC e JDBC para acesso a dados e transações. A linha exata de componentes de IaaS do Azure para usar depende do sistema operacional que você preferir. Por exemplo:

  • VMs baseadas em Windows: IIS (Servidor de Informações da Internet), juntamente com o ASP.NET para a manipulação de tela e a lógica de negócios. Use o ADO.NET para acesso a dados e transações.

  • VMs baseadas em Linux: servidores de aplicativos baseados em Java, como manipulação de tela de processo Apache Tomcat e funcionalidade de negócios baseada em Java. Use o JDBC para transações e acesso a dados.

Migre cargas de trabalho de lote para o Azure

Operações em lote no Azure são diferentes do ambiente de lote típico em mainframes. Trabalhos em lotes de mainframes são normalmente seriais por natureza e dependem dos IOPS fornecidos pelo backbone de mainframe por desempenho. Ambientes de lote baseados em nuvem usam a computação paralela e redes de alta velocidade para o desempenho.

Para otimizar o desempenho do lote usando o Azure, considere as opções de computar, armazenar, rede, e monitoramento da seguinte maneira.

Computação

Use:

  • VMs com a velocidade de relógio mais alta. Os aplicativos de mainframe geralmente são single-threaded e as CPUs de mainframe têm uma alta velocidade de clock.

  • VMs com capacidade de memória grande para permitir o armazenamento em cache de dados e áreas de trabalho do aplicativo.

  • VMs com vCPUs de maior densidade para aproveitar o processamento multi-threaded se o aplicativo der suporte a vários threads.

  • Processamento paralelo, como Azure facilmente pode ser dimensionado para processamento paralelo, oferecendo mais poder de computação para um execução de lote.

Armazenamento

Use:

Rede

Monitoramento

  • Use ferramentas de monitoramento, Azure Monitor, Application Insights e logs do Azure. Essas ferramentas ajudam a monitorar execuções em lote com desempenho excessivo e a reduzir gargalos.

Migrar os ambientes de desenvolvimento

As arquiteturas distribuídas da nuvem se baseiam em um conjunto diferente de ferramentas de desenvolvimento que oferecem a vantagem de práticas e linguagens de programação modernas. Para facilitar essa transição, use um ambiente de desenvolvimento com outras ferramentas projetadas para emular ambientes IBM z/OS. A lista a seguir mostra as opções da Microsoft e outros fornecedores:

Componente Opções do Azure
z/OS Windows, Linux ou UNIX
CICS Serviços do Azure oferecidos pela Micro Focus, pela Oracle, pela GT Software (Fujitsu), pela TmaxSoft, pela Raincode e pela NTT DATA ou reescrita por meio do Kubernetes
IMS Serviços do Azure oferecidos pela Micro Focus e Oracle
Assembler Serviços do Azure de Raincode e TmaxSoft; ou COBOL, C ou Java, ou são mapeados para funções do sistema operacional
JCL JCL, PowerShell ou outras ferramentas de script
COBOL COBOL, C ou Java
Natural Natural, COBOL, C ou Java
FORTRAN e PL/I Fortran, PL/I, COBOL, C ou Java
REXX e PL/I REXX, PowerShell ou outras ferramentas de script

Migre bancos de dados e dados

A migração de aplicativo geralmente envolve a nova hospedagem da camada de dados. Você pode migrar o SQL Server, de código aberto e outros bancos de dados relacionais para soluções totalmente gerenciadas no Azure. Você pode usar a Instância Gerenciada SQL do Azure, o Banco de Dados do Azure para PostgreSQL e o Banco de Dados do Azure para MySQL com o Serviço de Migração de Banco de Dados do Azure.

Por exemplo, você pode migrar se a camada de dados de mainframe usa:

  • Um banco de dados do IBM DB2 ou um IMS, use o Banco de Dados SQL do Azure, o SQL Server, o DB2 LUW ou o Oracle Database no Azure.

  • VSAM e outros arquivos simples, use arquivos simples do ISAM (Método de Acesso Sequencial Indexado) para o Banco de Dados SQL do Azure, o SQL Server, o DB2 LUW ou o Oracle.

  • GDGs (grupos de data de geração), migre para os arquivos no Azure que usam uma convenção de nomenclatura e extensões de nome de arquivo que fornecem a funcionalidade semelhante aos GDGs.

A camada de dados do IBM inclui vários componentes principais que também devem migrar. Por exemplo, ao migrar um banco de dados, você também migrar uma coleção de dados contidos em pools, cada um contendo dbextents, que são conjuntos de dados z/OS VSAM. A migração deve incluir o diretório que identifica os locais de dados nos pools de armazenamento. Além disso, o plano de migração deve considerar o log de banco de dados, que contém um registro das operações executadas no banco de dados. Um banco de dados pode ter um, dois (duplo ou alternativo) ou quatro logs (duplo ou alternativo).

A migração de banco de dados também inclui os seguintes componentes:

  • Gerenciador de banco de dados: fornece acesso aos dados no banco de dados. O gerenciador de banco de dados é executado em sua própria partição em um ambiente de z/OS.
  • Solicitante do aplicativo: aceita solicitações de aplicativos antes de transmiti-las para um servidor de aplicativos.
  • Adaptador de recursos online: inclui componentes do solicitante de aplicativo para uso em transações do CICS.
  • Adaptador de recursos em lote: implementa componentes do solicitante de aplicativo para aplicativos em lote z/OS.
  • SQL interativo (ISQL): é executado como um aplicativo e interface CICS e permite que os usuários insiram instruções SQL ou comandos de operador.
  • Aplicativo do CICS: é executado sob o controle do CICS, usando recursos disponíveis e fontes de dados no CICS.
  • Aplicativo em lote: executa a lógica do processo sem comunicação interativa com os usuários para, por exemplo, produzir atualizações de dados em massa ou gerar relatórios de um banco de dados.

Otimizar a taxa de transferência e escala para o Azure

De um modo geral, os mainframes aumentam a escala, enquanto a nuvem se expande. Para otimizar a escala e a taxa de transferência de aplicativos no estilo mainframe em execução no Azure, é importante entender como os mainframes separam e isolam aplicativos. Um mainframe z/OS usa um recurso chamado LPARs (partições lógicas) para isolar e gerenciar os recursos de um aplicativo específico em uma só instância.

Por exemplo, um mainframe pode usar um LPAR para uma região CICS com programas COBOL associados e um LPAR separado para DB2. Outras LPARs são frequentemente usadas para ambientes de desenvolvimento, teste e preparação.

No Azure, é mais comum usar VMs separadas para essa finalidade. Normalmente, as arquiteturas do Azure implantam VMs para a camada de aplicativo, um conjunto separado de VMs para a camada de dados, outro conjunto para o desenvolvimento e assim por diante. Você pode otimizar cada camada de processamento usando o tipo mais adequado de VMs e recursos para esse ambiente.

Além disso, cada camada também pode fornecer serviços de recuperação de desastres apropriados. Por exemplo, VMs do banco de dados e produção podem requerer uma recuperação ativa ou passiva, enquanto as VMs de desenvolvimento e teste dão suporte a uma recuperação fria.

A figura a seguir mostra uma possível implantação do Azure usando um site principal e um secundário. No site primário, as VMs de produção, preparação e teste são implantadas com alta disponibilidade. O site secundário é feito para backup e recuperação de desastres.

Diagram of a possible Azure deployment using a primary and a secondary site.

Executar uma migração em etapas para o Azure

Mover soluções de um mainframe para o Azure pode envolver uma migração em estágios. Você move alguns aplicativos primeiro, enquanto outros permanecem no mainframe temporária ou permanentemente. Essa abordagem normalmente requer sistemas que permitem que aplicativos e bancos de dados interoperem entre o mainframe e o Azure.

Um cenário comum é mover um aplicativo no Azure enquanto mantém os dados usados pelo aplicativo no mainframe. Um software específico permite que os aplicativos no Azure acessem dados do mainframe. Felizmente, uma ampla gama de soluções fornece integração entre o Azure e os ambientes existentes de mainframe, suporte para cenários híbridos e migração ao longo do tempo. Parceiros da Microsoft, fornecedores independentes de software e integradores de sistema podem ajudá-lo em seu percurso.

Uma opção é o Microsoft Host Integration Server. Esta solução fornece a arquitetura de banco de dados relacional distribuído (DRDA) necessária para aplicativos no Azure. Ele permite que os aplicativos acessem dados no DB2 que permanecem no mainframe. Outras opções para integração ao mainframe no Azure incluem soluções da IBM, da Attunity, da Codit, de outros fornecedores e opções de código aberto.

Soluções de parceiros

Se você está considerando uma migração de mainframe, o ecossistema de parceiros pode ajudar.

O Azure fornece uma infraestrutura comprovada, altamente disponível e escalonável para sistemas que atualmente executam em mainframes. Algumas cargas de trabalho podem migrar com relativa facilidade. Você pode rehospedar outras cargas de trabalho que dependem de software de sistema herdado, como CICS e IMS. Use soluções de parceiros e migre-as para o Azure ao longo do tempo. Independentemente da escolha que você fizer, a Microsoft e nossos parceiros podem ajudá-lo a otimizar para o Azure enquanto mantém a funcionalidade do software do sistema de mainframe.

Saiba mais

Para saber mais, consulte os recursos a seguir: