Estratégias de migração de aplicativos de mainframe
Quando a maioria das equipes migra aplicativos de ambientes de mainframe para o Azure, geralmente seguem uma abordagem pragmática: reutilizar onde e sempre que possível. Em seguida, eles iniciam uma implantação em fases, onde os aplicativos são reescritos ou substituídos.
A migração de aplicativos geralmente envolve 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 começa com a movimentação de aplicativos para um emulador baseado em nuvem e, em seguida, a migração do 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 rehospedar usando um provedor de hospedagem tradicional. Um dos principais benefícios da nuvem é a terceirização do gerenciamento de infraestrutura. Encontre um provedor de datacenter que hospede suas cargas de trabalho de mainframe para você. Este modelo pode ganhar algum tempo, reduzir a dependência do fornecedor e produzir economias de custos intermédias.
Aposentar: aposente os aplicativos que não são mais necessários antes da migração.
Reconstruir: Algumas organizações optam por reescrever completamente os programas usando técnicas modernas. Dado o custo adicional e a complexidade dessa abordagem, ela não é tão comum quanto uma abordagem de elevação e mudança. Muitas vezes, após esse tipo de migração, faz sentido começar a substituir módulos e código usando mecanismos de transformação de código.
Substituir: 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 empresarial, 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), lote e sistemas de 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. Esses aplicativos geralmente usam processamento de transações e software de manipulação de formulários de tela, como o Sistema de Controle de Informações do Cliente (CICS), o Sistema de Gerenciamento de Informações (IMS) e o Processador de Interface de Terminal (TIP).
Quando você move aplicativos OLTP para o Azure, 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 manipulação de tela e funcionalidade de formulário. Combine essa abordagem com APIs de banco de dados, como ActiveX Data Objects (ADO), Open Database Connectivity (ODBC) e Java Database Connectivity (JDBC) para acesso a dados e transações.
Atualizações em lote com restrição de tempo
Muitos sistemas de mainframe realizam atualizações mensais ou anuais de milhões de registros de contas, como aqueles usados em bancos, seguros e governos. Os mainframes lidam com esses tipos de cargas de trabalho oferecendo sistemas de tratamento de dados de alta taxa de transferência. Os trabalhos em lote de mainframes geralmente são de natureza serial e dependem das IOPS (operações de entrada e saída por segundo) fornecidas pelo backbone de mainframe para desempenho.
Os ambientes em lote baseados na nuvem utilizam computação paralela e redes de alta velocidade para obter desempenho. Se você precisar otimizar o desempenho em lote, o Azure fornece várias opções de computação, armazenamento e rede.
Sistemas de ingestão de dados
Os mainframes ingerem grandes lotes de dados de varejo, serviços financeiros, manufatura e outras soluções para 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 serviços de análise que podem aprimorar os ambientes de mainframe existentes.
Migrar cargas de trabalho OLTP para o Azure
A abordagem lift-and-shift é a opção sem código para migrar rapidamente 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 no código. O uso de um emulador para monitores de processamento de transações (TP) de mainframe no Azure dá suporte a essa abordagem.
Os monitores TP estão disponíveis em vários fornecedores e são executados em máquinas virtuais, uma opção de infraestrutura como serviço (IaaS) no Azure. Os diagramas a seguir mostram o antes e o depois de um aplicativo on-line apoiado 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 VSAM (Virtual Storage Access Method) para armazenar os dados e o ISAM (Indexed Sequential Access Method) para arquivos simples. Essa arquitetura também usa o CICS para monitoramento de transações.
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 suporta IMS, VSAM e SEQ. As ferramentas de gerenciamento de sistema do mainframe são substituídas por serviços do Azure e 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 IaaS do Azure a serem usados depende do sistema operacional de sua preferência. Por exemplo:
VMs baseadas no Windows: Internet Information Server (IIS) juntamente com ASP.NET para a manipulação de tela e lógica de negócios. Use 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 JDBC para acesso a dados e transações.
Migrar cargas de trabalho em lote para o Azure
As operações em lote no Azure diferem do ambiente de lote típico em mainframes. Os trabalhos em lote de mainframe geralmente são seriais por natureza e dependem das IOPS fornecidas pelo backbone de mainframe para desempenho. Os ambientes em lote baseados na nuvem utilizam computação paralela e redes de alta velocidade para obter desempenho.
Para otimizar o desempenho em lote usando o Azure, considere as opções de computação, armazenamento, rede e monitoramento da seguinte maneira.
Computação
Utilizar:
VMs com a maior velocidade de clock. Os aplicativos de mainframe geralmente são single-threaded e as CPUs de mainframe têm uma alta velocidade de clock.
VMs com grande capacidade de memória para permitir o armazenamento em cache de dados e áreas de trabalho do aplicativo.
VMs com vCPUs de maior densidade para aproveitar o processamento multithreaded se o aplicativo suportar vários threads.
Processamento paralelo, à medida que o Azure se expande facilmente para processamento paralelo, fornecendo mais poder de computação para uma execução em lote.
Armazenamento
Utilizar:
SSDs Premium do Azure ou Armazenamento em Disco Ultra do Azure para o máximo de IOPS disponíveis.
Striping com vários discos para mais IOPS por tamanho de armazenamento.
Particionamento para armazenamento para distribuir E/S por vários dispositivos de Armazenamento do Azure.
Rede
- Use a rede acelerada do Azure para minimizar a latência.
Monitorização
- 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 ambientes de desenvolvimento
As arquiteturas distribuídas da nuvem dependem de um conjunto diferente de ferramentas de desenvolvimento que oferecem a vantagem das práticas modernas e linguagens de programação. 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 opções da Microsoft e de outros fornecedores:
Componente | Opções do Azure |
---|---|
z/OS | Windows, Linux ou Unix |
CICS | Serviços do Azure oferecidos pela Micro Focus, Oracle, GT Software (Fujitsu), TmaxSoft, Raincode e NTT DATA, ou reescrever usando o Kubernetes |
IMS | Serviços do Azure oferecidos pela Micro Focus e Oracle |
Montador | Serviços Azure da Raincode e TmaxSoft; ou COBOL, C ou Java, ou mapear para funções do sistema operacional |
JCL | JCL, PowerShell ou outras ferramentas de script |
COBOL | COBOL, C ou Java |
Naturais | 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 |
Migrar bancos de dados e dados
A migração de aplicativos geralmente envolve a rehospedagem da camada de dados. Você pode migrar o SQL Server, o 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 usar:
IBM DB2 ou um banco de dados 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 Método de Acesso Sequencial Indexado (ISAM) para o Banco de Dados SQL do Azure, SQL Server, DB2 LUW ou Oracle.
Grupos de data de geração (GDGs), migrem para arquivos no Azure que usam uma convenção de nomenclatura e extensões de nome de arquivo que fornecem funcionalidade semelhante aos GDGs.
A camada de dados IBM inclui vários componentes-chave que também devem ser migrados. Por exemplo, ao migrar um banco de dados, você também migra uma coleção de dados contidos em pools, cada um contendo dbextents, que são conjuntos de dados VSAM z/OS. A migração deve incluir o diretório que identifica os locais de dados nos pools de armazenamento. Além disso, seu plano de migração deve considerar o log do banco de dados, que contém um registro das operações executadas no banco de dados. Um banco de dados pode ter um, dois (dual ou alternate) ou quatro (dual e alternate) logs.
A migração de banco de dados também inclui estes 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 z/OS.
- Solicitante de aplicativo: aceita solicitações de aplicativos antes de passá-las para um servidor de aplicativos.
- Adaptador de recursos online: Inclui componentes do solicitante de aplicativos para uso em transações CICS.
- Adaptador de recursos em lote: implementa componentes solicitantes de aplicativos 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 do operador.
- Aplicação CICS: Funciona sob o controlo do CICS, utilizando recursos e fontes de dados disponíveis 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 escala e a taxa de transferência 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 de mainframe em execução no Azure, é importante entender como os mainframes separam e isolam aplicativos. Um mainframe z/OS usa um recurso chamado partições lógicas (LPARs) para isolar e gerenciar os recursos de um aplicativo específico em uma única instância.
Por exemplo, um mainframe pode usar uma LPAR para uma região CICS com programas COBOL associados e uma LPAR separada para DB2. Outras LPARs são frequentemente usadas para ambientes de desenvolvimento, teste e preparação.
No Azure, é mais comum usar VMs separadas para atender a essa finalidade. As arquiteturas do Azure normalmente implantam VMs para a camada de aplicativo, um conjunto separado de VMs para a camada de dados, outro conjunto para 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, as VMs de produção e de banco de dados podem exigir uma recuperação quente ou quente, enquanto as VMs de desenvolvimento e teste oferecem suporte a uma recuperação a frio.
A figura a seguir mostra uma possível implantação do Azure usando um site primário e um site secundário. No local principal, as VMs de produção, preparo e teste são implantadas com alta disponibilidade. O site secundário é para backup e recuperação de desastres.
Executar uma migração em estágios 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 permitam que aplicativos e bancos de dados interoperem entre o mainframe e o Azure.
Um cenário comum é mover um aplicativo para o 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 ambientes de mainframe existentes, suporte para cenários híbridos e migração ao longo do tempo. Parceiros da Microsoft, fornecedores independentes de software e integradores de sistemas podem ajudá-lo em sua jornada.
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 de mainframe com Azure incluem soluções da IBM, Attunity, Codit, 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 escalável para sistemas que atualmente são executados 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 fizer, a Microsoft e os nossos parceiros podem ajudá-lo a otimizar para o Azure enquanto mantém a funcionalidade do software do sistema de mainframe.
Saber mais
Para obter mais informações, consulte os seguintes recursos: