Reengenharia de aplicações batch de mainframe no Azure

Fábrica de dados do Azure
Azure Databricks
AKS (Serviço de Kubernetes do Azure)
Banco de Dados SQL do Azure
Armazenamento do Azure

Essa arquitetura de referência mostra como você pode usar o Azure para reger um aplicativo de lote de mainframe z/OS para fornecer um sistema seguro, escalonável e altamente disponível na nuvem usando o Azure. Devido às necessidades comerciais em constante evolução, os dados e os aplicativos precisam fornecer e dimensionar sem afetar sua infraestrutura. A nova engenharia para a nuvem pode ajudar as empresas em finanças, saúde, seguros e varejo a minimizar seus tempos de entrega de produtos ou recursos e reduzir custos.

Arquitetura do mainframe

O primeiro diagrama mostra a arquitetura de um aplicativo em lote típico em execução em um mainframe z/OS.

Diagrama de um aplicativo em lote típico em execução em um mainframe z/OS.

Baixe um arquivo do Visio dessa arquitetura.

Workflow

  1. Os processos em lotes de mainframe podem ser disparados em um horário agendado usando um Agendador de Operação, Planejamento e Controle (OPC). Eles também podem ser disparados por uma mensagem colocada em uma fila de mensagens, como uma mensagem que anuncia que um arquivo foi criado.

  2. Um DASD (dispositivo de armazenamento de acesso direto) de mainframe é usado para armazenar arquivos de entrada e saída; por exemplo, arquivos simples que são exigidos pelo aplicativo. Você pode disparar o processo em lote criando um arquivo no armazenamento DASD.

  3. O processo em lote é a execução de um conjunto de trabalhos, como um trabalho que executa internamente um programa de usuário ou de sistema para realizar uma tarefa específica. Normalmente, os processos em lotes são executados sem interação do usuário. Todos os trabalhos em lote em um mainframe são executados sob o controle de um JES (Sistema de Execução de Trabalho).

  4. Programas em processos em lotes podem ler/gravar dados de:

    • Um banco de dados baseado em arquivo, como o VSAM (Método de Acesso ao Armazenamento Virtual).
    • Um banco de dados relacional como Db2 ou Informix.
    • Um banco de dados não relacional, como o IMS (Sistema de Gerenciamento de Informações).
    • Uma fila de mensagens.
  5. A saída da execução do trabalho pode ser monitorada por meio de um agendador OPC ou do Tivoli Workload Scheduler (TWS). Um SDSF (System Display and Search Facility) no JES também é usado no mainframe para verificar o status de execução do trabalho.

  6. A camada de gerenciamento fornece os seguintes serviços:

    • Controle do código-fonte, como Endevor ou Changeman.
    • Segurança, como o RACF (Resource Controle de Acesso Facility). Essa segurança fornece autenticação para executar lotes, acessar arquivos e acessar o banco de dados.
    • Gerenciamento de saída que dá suporte ao armazenamento e pesquisa de logs de execução de tarefas.

Arquitetura do Azure

O segundo diagrama mostra como você pode usar os serviços do Azure para reger um aplicativo semelhante com funcionalidades e flexibilidade adicionais.

Diagrama de um aplicativo em lotes reenguido usando os serviços do Azure. Vários serviços de exemplo estão incluídos.

Baixe um arquivo do Visio dessa arquitetura.

Workflow

  1. Use um dos gatilhos a seguir para iniciar o processo em lote do Azure.

    • Use o agendador de tarefas do Azure Databricks ou o agendador do Azure Function.
    • Crie uma tarefa de processo em lote recorrente com aplicativos lógicos do Azure.
    • Use um evento de armazenamento, como a criação ou exclusão de um arquivo em Azure Blob ou Armazenamento de Arquivos.
    • Utilize um gatilho baseado em mensagem, como a chegada de uma mensagem no Barramento de Serviço do Azure.
    • Crie um gatilho do Azure Data Factory.
  2. Armazene arquivos migrados do mainframe usando o Armazenamento de Blobs do Azure ou arquivos do Azure. Os processos em lote reprojetados no Azure podem ler e gravar dados desse armazenamento.

  3. O Azure fornece vários serviços para implementar uma carga de trabalho em lotes de mainframe. Selecione serviços específicos com base em seus requisitos de negócios. Por exemplo, a potência de computação necessária, o tempo de execução total, a capacidade de dividir o processo do lote de mainframe em unidades menores e a sensibilidade ao custo.

    1. O Azure Databricks é uma plataforma de análise baseada no Apache Spark. Trabalhos podem ser escritos nas linguagens R, Python, Java, Scala e Spark SQL. Ele fornece um ambiente de computação com tempos de início rápidos do cluster, terminação automática e dimensionamento automático. Ele tem integração nativa com serviços de armazenamento do Azure, como o Blob Storage e o Data Lake Storage. Use o Azure Databricks se precisar processar grandes quantidades de dados em pouco tempo. Também é uma boa opção se você precisar executar cargas de trabalho ETL (Extrair, Transformar e Carregar).

    2. O AKS fornece uma infraestrutura para implementar uma arquitetura de aplicativo baseada em serviço. Pode não ser econômico para um único aplicativo. Você pode refatorar seu aplicativo mainframe usando o Java Spring Boot. A melhor maneira de executar aplicativos spring boot no Azure é usar o Aplicativos Spring do Azure, um serviço Spring totalmente gerenciado. Os desenvolvedores java podem usá-lo para criar e executar facilmente microsserviços do Spring Boot no Azure.

      Importante

      O Aplicativos Spring do Azure está desativado a partir de 31 de março de 2028. Recomendamos os Aplicativos de Contêiner do Azure e o AKS (Serviço de Kubernetes do Azure) como os serviços de substituição. Para obter mais informações, consulte o comunicado de desativação do Aplicativos Spring do Azure.

    3. Você pode reestruturar sua aplicação batch de mainframe usando .NET ou Java. Batch fornece a infraestrutura para executar esse aplicativo em larga escala. Ele cria e gerencia um pool de VMs (máquinas virtuais), instala os aplicativos e agenda trabalhos para execução nas VMs. Não há nenhum software de agendador de trabalho ou cluster para instalar, gerenciar ou dimensionar. Escreva aplicativos em qualquer linguagem de programação compatível com Windows ou Linux.

    4. Você pode reengenheirar programas batch em COBOL ou PL/1 de execução curta. Para esses programas, use serviços do Azure como Functions, WebJobs ou Aplicativos Lógicos.

  4. O Azure fornece vários serviços de dados para armazenar e recuperar dados.

    • Você pode migrar bancos de dados relacionais de mainframe, como Db2 e Informix, com alterações mínimas na visibilidade das ofertas do banco de dados relacional do Azure. Por exemplo, serviços de banco de dados relacional, como SQL do Azure VM, SQL DB do Azure ou SQL MI do Azure. Você também pode usar qualquer RDBMS (Sistema de Gerenciamento de Banco de Dados Relacional) de software livre, como o PostgreSQL do Azure. A seleção de um banco de dados do Azure depende do tipo de carga de trabalho, consultas entre bancos de dados, requisitos de confirmação em duas fases e muitos outros fatores.
    • Você pode migrar bancos de dados não relacionais de mainframe, como IMS, IDMS (Sistema integrado de gerenciamento de dados) ou VSAM para o Azure Cosmos DB. O Azure Cosmos DB fornece tempos de resposta rápidos, escalabilidade automática e instantânea e velocidade garantida em qualquer escala. É uma opção econômica para cargas de trabalho imprevisíveis ou esporádicas de qualquer tamanho ou escala. Os desenvolvedores podem começar facilmente sem precisar planejar ou gerenciar a capacidade.
    • Você pode usar o Azure Redis Gerenciado para acelerar um aplicativo reengenheirado.
  5. Aplicativos, o OS e recursos do Azure podem usar agentes para enviar logs e métricas para Azure Monitor Logs.

    • Application Insight monitora seu aplicativo migrado. Ele detecta automaticamente anomalias de desempenho e inclui ferramentas de análise avançadas para ajudá-lo a diagnosticar problemas.
    • do Azure Log Analytics ajuda a armazenar, indexar, consultar e derivar análises dos dados de log coletados.

    Você pode usar a saída do Log Analytics e do Application Insights para criar alertas e dashboards ou exportar para serviços externos. Você também pode usar a saída para executar uma ação como o dimensionamento de uma VM.

  6. Essa camada fornece serviços do Azure para controle do código-fonte, segurança e gerenciamento de saída. Esses serviços podem consistir no Azure DevOps e na ID do Microsoft Entra.

Componentes

Essa solução usa os seguintes componentes.

Rede e identidade

  • O Azure ExpressRoute é um serviço de conectividade que estende suas redes locais para a nuvem da Microsoft por meio de uma conexão privada de um provedor de conectividade. Usando o ExpressRoute, você pode estabelecer conexões com serviços de nuvem da Microsoft, como o Microsoft Azure e o Microsoft 365. Nessa arquitetura, o ExpressRoute fornece conectividade segura e de alta largura de banda entre ambientes de mainframe locais e serviços do Azure.

  • O Gateway de VPN do Azure é um tipo específico de gateway de rede virtual usado para enviar tráfego criptografado entre uma rede virtual do Azure e um local pela Internet pública. Nessa arquitetura, o Gateway de VPN fornece uma opção de conectividade alternativa para acessar recursos do Azure quando o ExpressRoute não está disponível.

  • O Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso que pode ser sincronizado com um diretório local. Nessa arquitetura, a ID do Microsoft Entra fornece serviços de autenticação e autorização para usuários e aplicativos que acessam o sistema de lote reengenhado.

Aplicação

  • Os Aplicativos Lógicos são um serviço de nuvem que ajuda você a criar e executar tarefas e processos recorrentes automatizados em um agendamento. Você pode chamar serviços dentro e fora do Azure, como pontos de extremidade HTTP ou HTTPS. Você também pode enviar mensagens para serviços do Azure, como o Barramento de Serviço, ou fazer upload de arquivos para um compartilhamento de arquivos. Nessa arquitetura, os Aplicativos Lógicos fornecem recursos de orquestração e agendamento de fluxo de trabalho para disparar e coordenar processos em lotes.

  • Barramento de Serviço é um serviço de mensagens em nuvem que você pode usar para a comunicação entre uma interface do usuário e serviços de back-end. Esse sistema pode desacoplar aplicativos e serviços e aumentar a confiabilidade e o uso. Nessa arquitetura, o Barramento de Serviço fornece recursos de mensagens confiáveis para iniciar processos em lote e coordenar entre diferentes componentes do sistema reengenhado.

  • O Azure Databricks é uma plataforma de análise baseada no Apache Spark e uma ferramenta de engenharia de dados baseada em nuvem usada para processar e transformar grandes quantidades de dados. Em seguida, você pode explorar esses dados por meio de modelos de machine learning. Nessa arquitetura, o Azure Databricks fornece recursos de computação de alto desempenho para processar cargas de trabalho em lotes em grande escala com tempos de início rápidos do cluster e dimensionamento automático.

  • O Aplicativos Spring do Azure é um serviço totalmente gerenciado para implantar, gerenciar e executar microsserviços spring no Azure. Ele dá suporte ao Java e ao .NET Core. Nessa arquitetura, o Aplicativos Spring do Azure fornece uma plataforma para executar aplicativos de mainframe reengenhados escritos no Java Spring Boot como microsserviços.

  • O AKS (Serviço de Kubernetes do Azure) é um serviço gerenciado do Kubernetes que simplifica a implantação de um cluster kubernetes gerenciado no Azure descarregando a sobrecarga operacional para o Azure. Nessa arquitetura, o AKS fornece recursos de orquestração de contêiner para executar aplicativos em lotes reengenhados em uma arquitetura escalonável baseada em microsserviços.

  • O Lote do Azure é um serviço de nuvem projetado para executar a computação em lote de uso geral na nuvem em muitas VMs que podem ser dimensionadas com base na carga de trabalho. Ele dá suporte a casos de uso de ETL ou IA em que várias tarefas são implementadas em paralelo, independentes umas das outras. Nessa arquitetura, o Batch fornece infraestrutura de computação escalonável para executar processos em lote de mainframe reprojetados em várias VMs.

  • O Azure Functions é um serviço de computação sem servidor que você pode usar para executar pequenas partes de código. Usando Functions, a infraestrutura de nuvem fornece todos os servidores atualizados de que você precisa para manter seu aplicativo em execução em larga escala. Nessa arquitetura, o Functions fornece computação sem servidor para programas em lotes de execução curta que são originalmente escritos em COBOL ou PL/1.

  • O Serviço de Aplicativo do Azure é uma plataforma totalmente gerenciada para criar, implantar e dimensionar aplicativos Web e APIs. Usando o WebJobs, um recurso do Serviço de Aplicativo, você pode codificar a lógica de negócios em segundo plano reutilizável como trabalhos da Web. Nessa arquitetura, o Serviço de Aplicativo com WebJobs fornece uma plataforma para executar tarefas de processamento em lotes em segundo plano.

  • O Redis Gerenciado do Azure é um serviço de cache na memória totalmente gerenciado que permite que os aplicativos usem um alto volume de dados de back-end para dimensionar e fornecer um desempenho altamente otimizado integrando-se a um armazenamento de dados na memória como o Redis. Nessa arquitetura, o Redis Gerenciado do Azure fornece cache de alta velocidade para melhorar o desempenho de aplicativos em lotes reengenhados.

Armazenamento

O armazenamento do Azure fornece diversas camadas de dados quentes, frios e de arquivamento. O uso efetivo dessas camadas de armazenamento pode oferecer uma vantagem de preço para o desempenho.

  • O Azure Cosmos DB é um serviço de banco de dados NoSQL totalmente gerenciado que você pode usar para migrar dados não tabulares dos mainframes. Nessa arquitetura, o Azure Cosmos DB fornece serviços de banco de dados NoSQL distribuídos globalmente para migrar bancos de dados não relacionais de mainframe, como IMS, IDMS e VSAM.

  • Os Arquivos do Azure são um serviço de compartilhamento de arquivos totalmente gerenciado que fornece compartilhamentos de arquivos de nuvem simples, seguros e sem servidor. Arquivos do Azure são especialmente úteis para soluções de mainframe reengenhadas. Ele fornece um complemento eficaz para o armazenamento sql gerenciado. Nessa arquitetura, os Arquivos do Azure fornecem armazenamento de arquivos compartilhados que vários nós de processamento em lotes podem acessar.

  • O Armazenamento de Filas do Azure é um serviço de fila de mensagens durável e econômico para cargas de trabalho grandes. Nessa arquitetura, o Armazenamento de Filas fornece enfileiramento de mensagens confiáveis para coordenar a execução do trabalho em lotes e o gerenciamento de fluxo de trabalho.

  • O SQL do Azure é uma família de serviços totalmente gerenciada para o SQL Server. Você pode migrar e usar os dados relacionais com eficiência com outros serviços do Azure, como a Instância Gerenciada de SQL do Azure ou o SQL Server em Máquinas Virtuais do Azure. Nessa arquitetura, o SQL do Azure fornece serviços de banco de dados relacional gerenciado para bancos de dados de mainframe migrados, como Db2 e Informix.

  • O Armazenamento de Blobs é um serviço de armazenamento de objetos escalonável e seguro para cargas de trabalho nativas de nuvem, arquivos, data lakes, computação de alto desempenho e machine learning. Nessa arquitetura, o Armazenamento de Blobs fornece armazenamento de objetos escalonável para arquivos de entrada em lote, dados de saída e resultados de processamento intermediários.

  • O Armazenamento de Tabelas do Azure é um repositório de chave-valor NoSQL para desenvolvimento rápido usando grandes conjuntos de dados semiestruturados. Nessa arquitetura, o Armazenamento de Tabelas fornece armazenamento NoSQL rápido para dados de pesquisa e metadados de processamento em lote.

Monitorização

  • O Azure Monitor é um serviço de monitoramento que fornece uma solução abrangente para coletar, analisar e agir sobre telemetria de ambientes locais e de nuvem. Ele contém Application Insights, Azure Monitor Logs e recursos do Log Analytics. Nessa arquitetura, o Azure Monitor fornece monitoramento de ponta a ponta e observabilidade para os aplicativos em lotes reengenhados, incluindo métricas de desempenho, logs e alertas.

Gestão

  • O Azure DevOps é um conjunto de ferramentas de desenvolvimento que ajudam você a reengenhar aplicativos mainframe no Azure durante todas as fases de desenvolvimento de software e colaboração em equipe. Nessa arquitetura, o Azure DevOps fornece funcionalidades abrangentes de DevOps para controle do código-fonte, CI/CD (integração contínua/implantação contínua) e gerenciamento de projetos em todo o processo de reengenharia de mainframe. O DevOps fornece os seguintes serviços:

    • O Azure Artifacts é um serviço de gerenciamento de pacotes que dá suporte a feeds de pacotes Maven, npm, Python e NuGet de fontes públicas ou privadas. Nessa arquitetura, o Azure Artifacts gerencia as dependências e bibliotecas necessárias para os aplicativos mainframe reengenhados.

    • O Azure Boards é uma ferramenta ágil de gerenciamento de projetos que fornece recursos de acompanhamento, planejamento de sprint, visualização e relatórios de itens de trabalho. Nessa arquitetura, o Azure Boards ajuda a gerenciar o projeto de reengenharia de mainframe acompanhando tarefas de desenvolvimento, histórias de usuário e marcos de migração.

    • O Azure Pipelines é um serviço de CI/CD que dá suporte a vários idiomas, plataformas e ambientes de nuvem, incluindo contêineres e Kubernetes. Nessa arquitetura, o Azure Pipelines automatiza os processos de build, teste e implantação para aplicativos mainframe reengenhados.

    • O Azure Repos é um serviço de repositório Git hospedado na nuvem que fornece repositórios privados ilimitados com solicitações de pull colaborativas e gerenciamento avançado de arquivos. Nesta arquitetura, o Azure Repos fornece controle de versão para os arquivos de configuração e código de aplicativo reengenhados.

    • Os Planos de Teste do Azure são um serviço de gerenciamento de teste que fornece testes manuais, testes exploratórios e recursos de teste de aceitação do usuário. Nessa arquitetura, os Planos de Teste do Azure garantem a qualidade e a funcionalidade de aplicativos mainframe reengenhados por meio de fluxos de trabalho de teste abrangentes.

Detalhes do cenário

Mainframes são usados principalmente para processar grandes quantidades de dados. O processamento em lote é uma maneira de processar um alto volume de transações agrupadas e, em seguida, fazer atualizações em massa no banco de dados. Depois de disparados, eles exigem uma interação mínima ou nenhuma do usuário. Por exemplo, os sistemas de mainframe possibilitam que bancos e outras instituições financeiras façam processamento e produzam relatórios de fim de trimestre, como ações trimestrais ou demonstrações de pensão.

Possíveis casos de uso

Essa solução é ideal para as indústrias de finanças, seguros, saúde e varejo. Use essa arquitetura para reengenheirar aplicações de mainframe no Azure. A arquitetura funciona melhor para:

  • Aplicativos de lote de mainframe com uso intensivo de recursos.
  • Aplicativos em lote que precisam de computação alta durante um determinado período, como fim de mês, trimestre ou ano.
  • Processos em lote de mainframe que são repetitivos e não com uso intensivo de recursos, mas podem precisar de utilização por sistemas externos.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.

Fiabilidade

A confiabilidade garante que seu aplicativo possa atender aos compromissos que você faz aos seus clientes. Para obter mais informações, consulte a Lista de verificação de revisão de design para a Confiabilidade.

  • Você pode usar o Azure Monitor e o Application Insights, além do Log Analytics, para monitorar a integridade de um recurso do Azure. Defina alertas para gerenciar a saúde do recurso de forma proativa.
  • Para obter mais informações sobre resiliência no Azure, consulte Criando aplicativos confiáveis do Azure.

Segurança

A segurança fornece garantias contra ataques deliberados e o abuso de seus valiosos dados e sistemas. Para obter mais informações, consulte Lista de verificação de revisão de design de segurança.

  • Essa arquitetura de referência usa o ExpressRoute para uma conexão privada e eficiente com o Azure a partir do ambiente local. No entanto, você também pode criar uma VPN de site para site.
  • Você pode autenticar recursos do Azure usando a ID do Microsoft Entra. Você pode gerenciar permissões com o controle de acesso baseado em função (RBAC) do Azure.
  • Os serviços de banco de dados no Azure dão suporte a várias opções de segurança, como a Criptografia de Dados em Repouso.
  • Para obter mais informações sobre como criar soluções seguras, consulte documentação de segurança do Azure.

Otimização de custos

A Otimização de Custos trata-se de procurar 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.

Use a calculadora de preços do Azure para estimar os custos dos recursos do Azure.

Consulte aplicação em lote de mainframes do Azure para ver um exemplo de estimativa de custo dos serviços.

Excelência Operacional

A Excelência Operacional abrange os processos de operações que implantam um aplicativo e o mantêm em execução em produção. Para obter mais informações, consulte Lista de verificação de revisão de design para Excelência Operacional.

  • A arquitetura do lote neste artigo usa computação de vários nós ou serviços de PaaS, que fornecem alta disponibilidade.
  • Os serviços de banco de dados do Azure dão suporte à redundância de zona e você pode projetá-los para fazer failover para um nó secundário se houver uma interrupção ou durante uma janela de manutenção.

Eficiência de desempenho

A Eficiência de Desempenho é a capacidade da sua carga de trabalho de dimensionar para atender às demandas colocadas nele pelos usuários de maneira eficiente. Para obter mais informações, consulte a Lista de verificação de revisão de design para Eficiência de Desempenho.

  • Os seguintes serviços do Azure nesta arquitetura têm recursos de dimensionamento automático:

    • Azure Databricks
    • AKS
    • Aplicativos Spring
    • Lote
    • Azure Functions
    • Aplicativos Lógicos
  • Para obter mais informações sobre dimensionamento automático no Azure, consulte o guia de dimensionamento automático do .

Colaboradores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

  • Ashish Khandelwal | Gerente de Arquitetura de Engenharia Principal

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas

  • Para obter mais informações, entre em contato com datasqlninja@microsoft.com.
  • Consulte os guias de migração de banco de dados do Azure.