Essa arquitetura de referência mostra como você pode usar o Azure para refazer a engenharia de um aplicativo de lote de mainframe z/OS para oferecer um sistema seguro, escalonável e altamente disponível na nuvem usando o Azure. Por conta da evolução constante das necessidades de negócios, os dados e aplicativos precisam ser fornecidos e dimensionados sem afetar sua infraestrutura. A reengenharia para a nuvem pode ajudar empresas do setor de finanças, saúde, seguros e varejo a minimizar os tempos de entrega de produtos ou recursos e reduzir os custos.
Arquitetura de mainframe
O primeiro diagrama mostra a arquitetura de um aplicativo em lote típico em execução em um mainframe z/OS.
Baixe um Arquivo Visio dessa arquitetura.
Workflow
Os processos em lote 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 que anuncia que um arquivo foi criado.
Um dispositivo de armazenamento de acesso direto ao mainframe (DASD) é usado para armazenar arquivos de entrada e saída. Por exemplo, arquivos simples exigidos pelo aplicativo. Você pode disparar o processo em lote ao criar um arquivo no armazenamento do DASD.
O processo em lote é uma execução de um conjunto de trabalhos, como um trabalho que executa internamente um programa de usuário ou sistema para realizar uma tarefa específica. Geralmente, os processos em lote são executados sem interação do usuário. Todos os trabalhos do lote em um mainframe são executados sob o controle de um sistema de execução de trabalho (JES).
Programas em processos em lote podem ler/gravar dados de:
- Um banco de dados baseado em arquivo, como o Mecanismo de acesso de armazenamento virtual (VSAM).
- Um banco de dados relacional, como DB2 ou Informix.
- Um banco de dados não relacional, como o Sistema de gerenciamento de informações (IMS).
- Uma fila de mensagens.
A saída da execução do trabalho pode ser monitorada por meio de um agendador do OPC ou um Agendador de carga de trabalho Tivoli (TWS). Uma Instalação de Exibição e Pesquisa de Sistema (SDSF) no JES também é usado no mainframe para verificar o status de execução do trabalho.
A camada de gerenciamento oferece os seguintes serviços:
- Controle do código-fonte, como Endevor ou Changeman.
- Segurança, como Instalação de Controle de Acesso de Recurso (RACF). Essa segurança oferece autenticação para executar lotes, acessar arquivos e acessar o banco de dados.
- Gerenciamento de saída que apoia o armazenamento e a pesquisa de logs de execução de trabalho.
Arquitetura do Azure
O segundo diagrama mostra como você pode usar os serviços do Azure para reprojetar um aplicativo semelhante com recursos e flexibilidade adicionais.
Baixe um Arquivo Visio dessa arquitetura.
Workflow
Use um dos seguintes gatilhos para iniciar o processo do lote do Azure.
- Use o agendador de trabalhos do Azure Databricks ou do Azure Function.
- Crie uma tarefa de processo de lote recorrente com os Aplicativos Lógicos do Azure.
- Use um evento de armazenamento, como a criação ou a exclusão de um arquivo no Blob do Azure ou armazenamento de arquivos.
- Use um gatilho baseado em mensagem, como a chegada de uma mensagem no Barramento de Serviço do Azure.
- Cria um gatilho do Azure Data Factory.
Armazene arquivos migrados do mainframe com o Armazenamento de Blobs do Azure ou os Arquivos do Azure. Os processos de lote recriados no Azure podem ler/gravar dados desse armazenamento.
O Azure oferece vários serviços para implementar uma carga de trabalho de lote de mainframe. Escolha serviços específicos que se baseiam nos seus requisitos de negócios. Por exemplo, poder de computação necessária, tempo total de execução, capacidade de dividir o processo em lote do mainframe em unidades menores e a sensibilidade ao custo.
- O Azure Databricks é uma plataforma de análise baseada no Apache Spark. Os trabalhos podem ser escritos nas linguagens de R, Python, Java, Scala e Spark SQL. Ele oferece um ambiente de computação com tempos de início de cluster rápidos, terminação automática e dimensionamento automático. Ele tem integração interna com o armazenamento do azure, como Armazenamento de Blobs do Azure e o armazenamento do data lake do Azure. Use o Azure Databricks se precisar processar grandes quantidades de dados em um curto período. Também é uma boa opção se você precisar executar cargas de trabalho de extração, transformação e carregamento (ETL).
- O AKS e o Service Fabric oferecem uma infraestrutura para implementar uma arquitetura de aplicativos baseada em serviços. Pode não ser econômico para um único aplicativo. Você pode refatorar seu aplicativo de mainframe o Spring Boot Java. A melhor maneira de executar aplicativos Spring Boot no Azure é usar o Azure Spring Apps, um serviço Spring totalmente gerenciado. Os desenvolvedores de Java podem usá-lo para compilar e executar facilmente microsserviços Spring Boot no Azure.
- Você pode reprojetar o seu aplicativo de lote de mainframe usando .NET ou Java. O lote oferece a infraestrutura para executar esse aplicativo em escala. Ele cria e gerencia um pool de VMs (máquinas virtuais), instala os aplicativos e agenda os trabalhos para serem executados nas VMs. Não há nenhum software de cluster ou de agendador de trabalho para instalar, gerenciar ou escalar. Grave aplicativos em uma linguagem de programação compatível com Windows ou Linux.
- Você pode reprojetar programas de lote COBOL ou PL/1 de curta execução. Para esses programas, use os serviços do Azure, como Azure Functions, WebJobs ou Aplicativos Lógicos.
O Azure oferece 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 mudanças mínimas na visibilidade das ofertas de banco de dados relacional do Azure. Por exemplo, os serviços de banco de dados relacional, como o VM do SQL do Azure, DB do SQL do Azure ou MI do SQL do Azure. Você também pode usar um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS), como o Azure PostgreSQL. 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 de duas fases e muitos outros fatores.
- Você pode migrar bancos de dados não relacionais de mainframe como IMS, Sistema de Gerenciamento de Dados integrado (IDMS) ou VSAM para o Azure Cosmos DB. O Azure Cosmos DB oferece tempos de resposta rápidos, escalabilidade automática e instantânea e velocidade garantida em qualquer escala. Ele é 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 a necessidade de planejar ou gerenciar a capacidade.
- Você pode usar o Cache do Azure para Redis para acelerar um aplicativo reprojetado.
Os aplicativos, o sistema operacional e os recursos do Azure podem usar agentes para enviar logs e métricas para os logs do Azure Monitor.
- O Application Insight monitora seus aplicativos migrados. Ele detecta automaticamente anomalias de desempenho e inclui ferramentas de análise avançadas para ajudar a diagnosticar problemas.
- O 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 Application Insights para criar alertas e painéis 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.
Essa camada oferece 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
Rede e identidade
- Azure ExpressRoute: o ExpressRoute permite estender suas redes locais até a nuvem da Microsoft por meio de uma conexão privada de um provedor de conectividade. Com o ExpressRoute, você pode estabelecer conexões com os serviços em nuvem da Microsoft, como o Microsoft Azure e o Office 365.
- Gateway de VPN do Azure: um gateway de VPN é um tipo específico de gateway de rede virtual usado para enviar o tráfego criptografado entre uma rede virtual do Azure e um local na Internet pública.
- O Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso que pode sincronizar com o diretório local.
Aplicativo
- Aplicativos Lógicos: os Aplicativos Lógicos ajudam a criar e executar tarefas e processos automatizados recorrentes em um agendamento. Você pode chamar serviços dentro e fora do Azure, como pontos de extremidade HTTP ou HTTPS. Você também pode postar mensagens nos serviços do Azure, como o Barramento de Serviço do Azure, ou obter arquivos carregados em um compartilhamento de arquivos.
- Barramento de Serviço: você pode usar o Barramento de Serviço para mensagens entre uma interface do usuário e serviços de back-end. Esse sistema pode dissociar aplicativos e serviços e aumentar a confiabilidade e o uso.
- Azure Databricks: o Azure Databricks é 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.
- Aplicativos Spring do Azure: o Aplicativos Spring do Azure facilita implantar, gerenciar e executar microsserviços Spring para o Azure. Ele é compatível com Java e .NET Core.
- AKS: o AKS simplifica a implantação de um cluster do Kubernetes gerenciado no Azure, transferindo a sobrecarga operacional para o Azure.
- Lote: o lote é projetado para executar computação em lote de uso geral na nuvem em várias VMs que podem ser dimensionadas com base na carga de trabalho em execução. É uma opção perfeita para casos de uso de ETL ou de IA em que várias tarefas são executadas em paralelo, independentemente umas das outras.
- Functions: use o Functions para executar pequenas partes de código sem se preocupar com a infraestrutura do aplicativo. Com o Functions, a infraestrutura de nuvem fornece todos os servidores atualizados de que você precisa para manter seu aplicativo em execução em escala.
- Serviço de Aplicativo do Azure: com o WebJobs, um recurso do Serviço de Aplicativo, você pode programar lógica de negócios reutilizável em segundo plano como trabalhos web.
- Cache do Azure para Redis: aplicativos que usam um grande volume de dados de back-end podem ser desenvolvidos para escala e oferecer desempenho altamente otimizado ao integrar com um armazenamento de dados na memória como o Redis. O Cache do Azure para Redis oferece o OSS Redis (software livre do Redis) e um produto comercializado da Redis Labs (Redis Enterprise) como serviço gerenciado.
Armazenamento
O armazenamento do Azure oferece várias camadas de dados quentes, frias e de arquivo. O uso eficaz dessas camadas de armazenamento pode oferecer uma vantagem de preço-benefício.
- Armazenamento de Blobs: armazenamento escalonável e seguro de objeto para cargas de trabalho nativas de nuvem, arquivos, data lakes, computação de alto desempenho e aprendizado de máquina.
- Arquivos do Azure: compartilhamentos de arquivos em nuvem de nível corporativo simples, seguros e sem servidor. Os Arquivos do Azure podem ser particularmente úteis para soluções de mainframe reprojetadas. Eles oferecem um complemento eficaz para o armazenamento SQL gerenciado.
- Armazenamento de Tabelas: um repositório de chave-valor NoSQL para desenvolvimento rápido usando grandes conjuntos de dados semiestruturados.
- Armazenamento de Filas do Azure: filas de mensagens simples, econômicas e duráveis para cargas de trabalho grandes.
- SQL do Azure: família do Azure totalmente gerenciada de serviços para 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, SQL Server em máquinas virtuais do Azure e Banco de Dados do Azure para MariaDB.
- Azure Cosmos DB: uma oferta sem SQL que você pode usar para migrar dados não tabulares de mainframes.
Monitoramento
- Azure Monitor: o Azure Monitor oferece uma solução abrangente para coleta, análise e ação com base na telemetria dos ambientes de nuvem e locais. Ele contém os recursos Application Insights, Logs do Azure Monitor e Análise de logs do Azure.
Gerenciamento
Azure DevOps: reprojete aplicativos de mainframe no Azure durante cada fase de desenvolvimento de software e colaboração em equipe. O DevOps oferece os seguintes recursos:
- Azure Boards: planejamento ágil, acompanhamento de itens de trabalho, visualização e ferramenta de relatório.
- Azure Pipelines: uma plataforma de CI/CD independente de linguagem, plataforma e nuvem com suporte para contêineres ou Kubernetes.
- Azure Repos: oferece repositórios git privados hospedados na nuvem.
- Azure Artifacts: oferece gerenciamento de pacotes integrado com suporte para os feeds de pacote Maven, npm, Python e NuGet de fontes públicas ou privadas.
- Azure Test Plans: oferece uma solução integrada e planejada de teste exploratório.
Detalhes do cenário
Os mainframes são usados principalmente para processar grandes quantidades de dados. O processamento em lotes é 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 acionados, eles exigem pouca interação do usuário. Por exemplo, os sistemas de mainframe possibilitam que bancos e outras instituições financeiras façam o processamento final do trimestre e produzam relatórios, como instruções trimestrais de ações ou de aposentadoria.
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 reprojetar aplicativos de mainframe no Azure. A arquitetura funciona melhor para:
- Aplicativos de lote de mainframe com uso intensivo de recursos.
- Aplicativos em lotes que precisam de alta computação durante um determinado momento, como o fim do mês, trimestre ou ano.
- Processos em lote de mainframe repetitivos e que não fazem uso intensivo de recursos, mas que podem precisar de utilização por sistemas externos.
Considerações
Disponibilidade
- A arquitetura do lote neste artigo usa os serviços de computação de vários nós ou PaaS, que oferecem alta disponibilidade.
- Os serviços de banco de dados do Azure permitem redundância de zona, e você pode projetá-los para fazer failover em um nó secundário se houver uma interrupção ou durante uma janela de manutenção.
Escalabilidade
Os seguintes serviços do Azure nessa arquitetura têm recursos de dimensionamento automático:
- Azure Databricks
- AKS
- Aplicativos Spring
- Lote
- Funções do Azure
- Aplicativos Lógicos
Para obter mais informações sobre o dimensionamento automático no Azure, consulte o Guia de dimensionamento automático.
Segurança
- Essa arquitetura de referência usa o ExpressRoute para uma conexão privada e eficiente para o Azure do ambiente local. No entanto, você também pode criar uma VPN site a site.
- Os recursos do Azure podem ser autenticados com o Microsoft Entra ID. Você pode gerenciar permissões com controle de acesso baseado em função (RBAC).
- Os serviços de banco de dados no Azure dão suporte a várias opções de segurança, como criptografia de dados em repouso.
- Para obter mais informações sobre como projetar soluções seguras, consulte a documentação de segurança do Azure.
Resiliência
- Você pode usar o Azure Monitor e o Application Insights, além de Log Analytics, para monitorar a integridade de um recurso do Azure. Defina alertas para gerenciar proativamente a integridade do seu recurso.
- Para obter orientação sobre resiliência no Azure, consulte Projetar aplicativos confiáveis do Azure.
Otimização de custo
Use a calculadora de preços do Azure para estimar custos dos recursos do Azure.
Veja Aplicativo de lote de mainframes do Azure para um exemplo de estimativa de cursos dos serviços.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele 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, contate datasqlninja@microsoft.com.
- Consulte os guias de migração de banco de dados do Azure.