Hospede novamente o IMS DC e o IMS DB no Azure usando o Raincode IMSql
Essa arquitetura descreve como implementar uma carga de trabalho de aplicativo de mainframe IMS (Sistema de Gerenciamento de Informações) no Azure usando o IMSql do Raincode. Migrar um aplicativo de banco de dados (DB) IMS para uma solução nativa em nuvem é mais complexo do que migrar um aplicativo de banco de dados relacional. Este artigo descreve como hospedar novamente uma carga de trabalho do IMS de mainframe que tem recursos e funcionalidades críticos do IMS para o Azure. Você não precisa converter ou modificar o aplicativo existente.
Arquitetura de carga de trabalho do IMS DB/DC, antes da migração
Fluxo de dados
O fluxo de dados a seguir corresponde ao diagrama anterior:
- Os usuários se conectam ao mainframe por meio do Transmission Control Protocol ou do Internet Protocol usando protocolos de mainframe padrão, como TN3270 e HTTPS.
- Os gerenciadores de transações interagem com os usuários e invocam o aplicativo para atender às solicitações do usuário.
- No front-end da camada de aplicativo, os usuários interagem com telas IMS ou com páginas da Web.
- O código do aplicativo usa os recursos de armazenamento da camada de dados de backend do IMS DB (hierárquico).
- Todas as operações de Big Data offline são executadas por meio de trabalhos em lotes.
- Juntamente com o processamento de transações, outros serviços fornecem autenticação, segurança, gerenciamento, monitoramento e relatórios. Esses serviços interagem com todos os outros serviços no sistema.
Arquitetura IMSql no Azure
Baixe um arquivo do Visio dessa arquitetura.
Fluxo de Trabalho
O fluxo de dados a seguir corresponde ao diagrama anterior:
Servidor de terminal IMSql
Tradicionalmente, os usuários locais acessam a interface z/OS do mainframe por meio de um terminal interno da IBM ou por meio de software de emulação de terminal. Um aplicativo que possui uma rede geograficamente dispersa com milhares de usuários pode se conectar aos mainframes por meio de qualquer forma de terminal. Quando um aplicativo IMS Data Communications (DC) é hospedado novamente no sistema distribuído baseado em nuvem, é necessário hospedar centralmente o aplicativo e o recurso e publicá-los para os dispositivos clientes remotos. Você pode usar servidores de terminal IMSql para hospedar e publicar o aplicativo e o recurso no Azure.
Agente de serviços do SQL Server
No mainframe, o IMS DC orquestra a camada de comunicação entre os terminais do usuário e os programas de aplicativos transmitindo e processando mensagens em uma região de controle. Após a nova hospedagem, o agente de serviços do SQL Server orquestra essa camada de comunicação assíncrona. O agente de serviços permite a comunicação por meio de sua estrutura de entrega de mensagens e dimensiona as mensagens para separar os servidores de processamento, os usuários atuais e o processamento de transações.
Servidor de processamento IMSql
O servidor de processamento executa o código recompilado pelo Raincode para os programas IMS no .NET Framework ou no .NET Core. Ele contém a infraestrutura subjacente que permite que os programas recompilados sejam executados de forma eficaz com a equivalência funcional correta. O servidor de processamento IMSql pode gerar consultas dinâmicas e chamar procedimentos armazenados no SQL Server que são criados durante a recompilação de chamadas DL/I (Data Language/One).
SQL Server como um armazenamento de dados hierárquico
Os dados são armazenados como dados hierárquicos no IMS. O IMSql usa o mesmo modelo no SQL Server. Esse modelo permite que o IMSql aproveite o alto desempenho dos bancos de dados relacionais e implemente logicamente os segmentos hierárquicos do IMS. Ele também permite que o sistema seja dimensionado de forma independente com segmentos. Os dados do segmento são armazenados no formato EBCDIC bruto, portanto, não precisam ser convertidos para o aplicativo. Usando a PaaS (plataforma SQL como serviço), o IMSql pode aproveitar os recursos subjacentes de alta disponibilidade e recuperação de desastre que o Azure fornece.
API de chamada DL/I
A API do IMSql garante que as chamadas de DL/I do IMS Common Business-Oriented Language (COBOL) sejam convertidas em consultas SQL equivalentes. Em seguida, ele busca os dados e os retorna ao programa aplicativo no formato esperado. O IMSql também rastreia a posição do programa no registro da tabela para executar as operações de criação, leitura, atualização e exclusão, como o banco de dados hierárquico. O IMSql pode criar procedimentos armazenados no SQL Server durante a compilação para responder a chamadas DL/I com uso intensivo de desempenho.
Código de chuva JCL
A linguagem de controle de tarefas (JCL) do Raincode é um interpretador compatível com o z/OS JCL. O interpretador Raincode JCL torna a transição da intrincada lógica de negócios incorporada na JCL para as plataformas Azure e .NET Core o mais suave possível. O Raincode JCL foi projetado para executar código compilado pelos compiladores Raincode COBOL, Programming Language One (PL/I) e ASM370. Ele pode facilmente executar etapas escritas na maioria dos idiomas. Você pode configurá-lo e ajustá-lo implementando código escrito pelo usuário, para que possa adaptá-lo às suas próprias necessidades de agendamento em lote.
Visualização de dados IMSql
O IMSql define exibições SQL relacionais com base em copybooks ou layouts de registro, para que os segmentos do IMS possam ser acessados por meio de instruções SQL simples por qualquer serviço do Azure e por novos aplicativos. As exibições do IMSql também são graváveis, portanto, os aplicativos modernos podem interagir com o IMS de ambas as maneiras por meio do SQL Server.
Migração de dados via IMSql
Migração de objeto de banco de dados
A descrição original do banco de dados (DBD) do IMS DB é extraída e transferida do mainframe. O IMSql usa as informações do DBD para produzir scripts SQL para gerar um banco de dados de destino e tabelas no SQL do Azure.
Cada segmento em um DBD IMS é convertido como uma tabela no Azure.
As tabelas consistem em um campo-chave, campos de pesquisa e os dados completos do segmento IMS representados no EBCDIC.
A estrutura de árvore de segmentos do IMS é mantida com a relação de chave primária e estrangeira nas tabelas SQL do Azure.
Carregamento inicial de dados
Os dados do IMS DB são extraídos por meio de uma tarefa de mainframe e utilitários de download comumente disponíveis, como DFSRRC00 e DFSURGL0.
Você pode transferir os arquivos binários extraídos para o Azure usando conectores do Azure Data Factory, como FTP (Protocolo de Transferência de Arquivos) e SFTP (Protocolo de Transferência Segura de Arquivos) e uma solução baseada em Java que é executada nos Serviços de Subsistema Unix.
O IMSql tem um utilitário de carregamento integrado para concluir os carregamentos de dados iniciais. Essa ferramenta usa o utilitário bcp (programa de cópia em massa) do SQL Server. Ele garante que o bcp seja executado e que a integridade referencial necessária entre as tabelas corresponda à estrutura hierárquica esperada.
Essa migração aborda um carregamento de dados único do IMS DB. Ele não aborda a coexistência e a sincronização de dados associada.
Fluxo de dados para migração
O fluxo de dados a seguir corresponde ao diagrama anterior:
O armazenamento de dados não relacional de mainframe (IMS DB) tem dois componentes: o DBD e os dados reais do segmento.
Os utilitários IBM extraem e descarregam as informações do IMS DB.
O arquivo DBD e os arquivos de dados binários correspondentes são gerados separadamente.
Ingestão de dados:
- O conector FTP do Azure Data Factory copia conjuntos de dados IMS de mainframe para o armazenamento de dados do Azure.
- Os arquivos de dados IMS de mainframe são copiados para o Armazenamento de Blobs do Azure por meio do SFTP.
- A JCL de mainframe é usada para executar uma solução Java customizada que move dados entre o sistema de mainframe e o Armazenamento de Blobs SFTP.
Usando o arquivo DBD, o IMSql cria o banco de dados e as tabelas de destino, mantendo a integridade referencial necessária.
Depois que os objetos de dados são criados, o IMSql carrega os dados na tabela correspondente em ordem sequencial.
Todos os dados IMS migrados são hospedados na Instância Gerenciada de SQL do Azure.
O banco de dados do aplicativo consiste nos dados brutos do segmento para processamento do IMS on-line e processamento em lote.
As visualizações de leitura e gravação do IMS consistem em dados de segmento que se expandem com base no layout do copybook.
Migrar dados do IMS DB usando o Raincode zBridge
O Raincode zBridge facilita o acesso a dados não relacionais de mainframe no Azure, incluindo dados de segmentos IMS/DB. Esses dados ficam disponíveis em bancos de dados SQL do Azure para aplicativos distribuídos, relatórios e fins analíticos.
Os arquivos de dados de segmento IMS são importados para o zBridge com um copybook COBOL correspondente ou inclusão de PL/I. Os dados aparecem como linhas SQL que convertem tipos numéricos de mainframe em tipos SQL e convertem strings em ASCII, se necessário. O zBridge também suporta estruturas de dados complexas.
Componentes
Essa arquitetura consiste nos seguintes serviços de nuvem do Azure. As seções a seguir descrevem esses serviços e suas funções.
Os Aplicativos Lógicos do Azure são uma plataforma de nuvem em que você pode criar rapidamente soluções de integração poderosas. Os usuários de mainframe estão familiarizados com os terminais 3270 e a conectividade local. Eles podem usar o conector IBM 3270 dos Aplicativos Lógicos para acessar e executar aplicativos de mainframe IBM. No sistema migrado, eles interagem com aplicativos do Azure por meio da Internet pública ou de uma conexão privada implementada por meio do Azure ExpressRoute. A ID do Microsoft Entra fornece autenticação.
A Rede Virtual do Azure é o bloco de construção fundamental para sua rede privada no Azure. A Rede Virtual permite uma comunicação mais segura entre muitos tipos de recursos do Azure, como VMs (máquinas virtuais) do Azure, e com a Internet e as redes locais. A Rede Virtual é como uma rede tradicional que você opera em seu próprio datacenter, mas fornece os benefícios da infraestrutura do Azure, como escala, disponibilidade e isolamento.
O ExpressRoute estende suas redes locais para o Microsoft Cloud por meio de uma conexão privada facilitada por um provedor de conectividade. Você pode usar o ExpressRoute para estabelecer conexões com serviços de nuvem da Microsoft, como Azure e Microsoft 365.
Os Conjuntos de Dimensionamento de Máquinas Virtuais do Azure fornecem dimensionamento de VM automatizado e com balanceamento de carga que simplifica o gerenciamento de aplicativos e aumenta a disponibilidade.
A Instância Gerenciada de SQL faz parte do portfólio de serviços SQL do Azure. É uma instância SQL gerenciada, mais segura e de up-todata na nuvem.
O Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso corporativo baseado em nuvem. O logon único e a autenticação multifator do Microsoft Entra ajudam os usuários a entrar e acessar recursos, ajudando a proteger contra ataques de segurança cibernética.
Alternativas
Você pode usar o SQL Server em uma VM do Azure como uma alternativa à Instância Gerenciada de SQL. Recomendamos a Instância Gerenciada de SQL nessa arquitetura devido a benefícios como alta disponibilidade, integração perfeita com vários serviços do Azure e gerenciamento de manutenção e patches de segurança subjacentes.
Você pode usar uma arquitetura de VM única do Azure como alternativa aos Conjuntos de Dimensionamento de Máquinas Virtuais. Talvez você queira usar VMs únicas para cargas de trabalho que têm demandas constantes de carga e desempenho e sem necessidade de dimensionamento. Essa arquitetura usa Conjuntos de Dimensionamento de Máquinas Virtuais para processar cargas de trabalho IMS típicas.
Detalhes do cenário
Os sistemas de processamento de transações on-line (OLTP) de mainframe podem processar milhões de transações para um grande número de usuários. O IBM IMS é um gerenciador de transações de mainframe clássico robusto que as empresas usam para processamento de transações on-line. Ele tem dois componentes principais: o componente IMS DC e o componente hierárquico subjacente do DBMS IMS DB.
O IMSql fornece uma maneira de hospedar cargas de trabalho baseadas em IMS no Azure ou implementações distribuídas locais baseadas no SQL Server. O IMSql fornece uma solução holística para executar uma carga de trabalho do IMS, incluindo os componentes de aplicativo, dados e middleware. Ele pode ingerir as estruturas de dados hierárquicas (IMS DB) em um modelo de dados relacional no SQL Server, SQL Server em Máquinas Virtuais do Azure e Instância Gerenciada de SQL. Ele tem APIs integradas para chamadas DL/I do programa de aplicativos IMS e estende a camada de dados além da carga de trabalho hierárquica para aplicativos nativos da nuvem que são usados para dados relacionais.
Esta solução oferece os seguintes benefícios:
Ele moderniza a infra-estrutura e reduz os altos custos, as limitações e a rigidez associados às cargas de trabalho IMS de mainframe monolítico.
Ele reduz a dívida técnica implementando soluções nativas da nuvem e DevOps.
Ele envia dados do IMS DB para aplicativos baseados em nuvem que não usam um mainframe, incluindo aplicativos de IA e análise.
Possíveis casos de uso
Essa solução pode ser útil para:
Setores bancário, financeiro, de seguros, governamental e de varejo que usam o Mainframe IMS. Muitas dessas organizações executam seus aplicativos OLTP e em lote primários no IMS DB/DC.
Clientes de mainframe IBM zSeries que precisam migrar aplicativos de missão crítica. Esses clientes desejam manter a continuidade com outros aplicativos locais e evitar os efeitos de um redesenvolvimento completo.
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, um conjunto de princípios orientadores que você pode usar para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Well-Architected Framework.
Fiabilidade
A confiabilidade ajuda a garantir que seu aplicativo possa cumprir os compromissos que você faz aos seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para confiabilidade.
Você pode implantar essa arquitetura OLTP em várias regiões e incorporar uma camada de dados de replicação geográfica.
Os serviços de BD do Azure dão suporte à redundância de zona e podem fazer failover para um nó secundário durante interrupções ou para habilitar atividades de manutenção.
Segurança
A segurança fornece garantias contra ataques deliberados e o uso indevido de seus valiosos dados e sistemas. Para obter mais informações, consulte Lista de verificação de revisão de design para segurança.
O ExpressRoute fornece uma conexão privada e eficiente com o Azure do local.
Você pode usar a ID do Microsoft Entra para autenticar recursos do Azure. Você pode usar o controle de acesso baseado em função para gerenciar permissões.
Essa solução utiliza um grupo de segurança de rede do Azure para gerenciar o tráfego de e para os recursos do Azure. Para saber mais, confira Grupos de segurança de rede.
Estas opções de segurança estão disponíveis nos serviços de BD do Azure:
- Criptografia de dados em repouso
- Mascaramento de dados dinâmicos
- Dados Always Encrypted
Para obter diretrizes gerais sobre como criar soluções de dados altamente seguras, consulte Segurança para o Mecanismo de Banco de Dados do SQL Server e o Banco de Dados SQL do Azure.
Otimização de custos
A Otimização de Custos concentra-se em maneiras de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de design para otimização de custos.
Os Conjuntos de Dimensionamento de Máquinas Virtuais otimizam os custos minimizando o número de instâncias de hardware desnecessárias que executam seu aplicativo quando a demanda é baixa.
A Instância Gerenciada de SQL fornece várias camadas de preços, como uso geral e comercialmente crítico, para otimizar os custos com base no uso e na importância para os negócios.
As reservas do Azure e oplano de economia do Azure para computação com um contrato de um ou três anos fornecem economias significativas em comparação com os preços pagos conforme o uso. Em muitos casos, você pode reduzir ainda mais seus custos implementando a flexibilidade de tamanho da instância reservada.
O Benefício Híbrido do Azure é um benefício de licenciamento que pode ajudá-lo a reduzir significativamente os custos de execução de suas cargas de trabalho na nuvem. Ele funciona permitindo que você use suas licenças locais do Windows Server e do SQL Server habilitadas para o Software Assurance no Azure.
Use a Calculadora de preços do Azure para estimar o custo da implantação dessa solução. Aqui está uma estimativa baseada nos componentes desta solução, em uma escala razoável.
Eficiência de desempenho
A Eficiência de Desempenho refere-se à capacidade da carga de trabalho de dimensionar para atender às demandas do usuário com eficiência. Para obter mais informações, consulte Lista de verificação de revisão de design para eficiência de desempenho.
Os Conjuntos de Dimensionamento de Máquinas Virtuais garantem que VMs suficientes estejam disponíveis para atender às necessidades críticas de processamento online e em lotes.
O Armazenamento de Blobs é um sistema escalonável para armazenar backups, dados de arquivamento, arquivos de dados secundários e outros objetos digitais não estruturados.
O Orientador de Otimização do Mecanismo de Banco de Dados analisa bancos de dados e faz recomendações que você pode usar para otimizar o desempenho da consulta. Você pode usar o Orientador de Otimização do Mecanismo de Banco de Dados para selecionar e criar um conjunto ideal de índices, exibições indexadas ou partições de tabela.
A escalabilidade é uma das características mais importantes do PaaS. Ele permite que você adicione recursos dinamicamente ao seu serviço quando precisar deles. Você pode usar o Banco de Dados SQL para alterar facilmente os recursos, como energia da CPU, memória, taxa de transferência de entrada/saída e armazenamento, que são alocados para seus bancos de dados. Você pode usar a Instância Gerenciada de SQL para adicionar recursos dinamicamente ao seu banco de dados com tempo de inatividade mínimo.
In-Memory OLTP é uma tecnologia disponível no SQL Server e no Banco de Dados SQL para otimizar o desempenho do processamento de transações, ingestão de dados, carregamento de dados e cenários de dados transitórios.
Contribuidores
A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.
Autores principais:
- Nithish Aruldoss | Arquiteto de Engenharia
- Ametista Salomão | Arquiteto de Engenharia Sênior
Outros colaboradores:
- Mick Alberts | Escritor técnico
Para ver perfis não públicos no LinkedIn, entre no LinkedIn.
Próximas etapas
- Copiar arquivos do mainframe para o Azure Data Factory usando o conector FTP
- Transferir arquivos de mainframe para o Armazenamento de Blobs usando o SFTP
- O que é Rede Virtual?
- O que é o ExpressRoute?
- Documentação do Microsoft Fabric
Para obter mais informações, entre em contato com a Engenharia de Dados do Azure – Modernização de Mainframe.
Recursos relacionados
Consulte a arquitetura complementar:
Mais recursos relacionados: