Compartilhar via


Migrar cargas de trabalho OLTP do IBM z/OS para o Azure

Porta da frente do Azure
Gerenciador de Tráfego do Azure
AKS (Serviço de Kubernetes do Azure)
Azure Spring Apps
Cache Redis do Azure

Os sistemas de processamento de transações online (OLTP) são a cara do seu negócio porque interagem diretamente com os clientes. Ao migrar para uma infraestrutura dinamicamente adaptável, sua empresa pode criar e lançar produtos rapidamente para que os clientes possam usá-los mais cedo.

Arquitetura

O diagrama a seguir mostra uma arquitetura de um sistema OLTP que é executado em um mainframe z/OS antes da migração para o Azure:

Diagrama de uma arquitetura OLTP no z/OS.

Fluxo de Trabalho

O fluxo de dados a seguir corresponde ao diagrama anterior:

  1. Os usuários se conectam ao mainframe por meio do Transmission Control Protocol (TCP) ou do Internet Protocol (IP) usando protocolos de mainframe padrão, como TN3270 e HTTPS.

  2. Os gerenciadores de transações interagem com os usuários e invocam o aplicativo para atender às solicitações do usuário.

  3. No front-end da camada de aplicativo, os usuários interagem com as telas do Sistema de Controle de Informações do Cliente (CICS) ou do Sistema de Gerenciamento de Informações (IMS) ou com páginas da Web.

  4. Os gerenciadores de transações usam a lógica de negócios escrita em linguagem comum orientada a negócios (COBOL) ou Programming Language One (PL/I) para implementar as transações.

  5. O código do aplicativo usa os recursos de armazenamento da camada de dados, como DB2, IMS DB ou VSAM.

  6. Além do 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.

O diagrama a seguir mostra como migrar essa arquitetura para o Azure.

Diagrama que mostra uma arquitetura para migrar uma carga de trabalho OLTP do z/OS para o Azure.

O diagrama mostra como migrar uma carga de trabalho OLTP do z/OS para o Azure. A arquitetura é dividida em várias camadas que representam diferentes componentes e suas interações. Cada camada usa números e setas para destacar o fluxo de dados. A camada 1 representa um usuário local. Uma seta de dois lados conecta o usuário e o Azure ExpressRoute. A camada 2 representa solicitações de entrada. Essa camada contém duas caixas conectadas por uma seta pontilhada de dois lados rotulada como firewall do aplicativo Web do Azure. A caixa à esquerda contém ícones para o Azure Front Door e o Gerenciador de Tráfego do Azure. Uma seta de dupla face conecta a caixa esquerda com um ícone que representa a internet. Outra seta de dupla face conecta o ícone da Internet com o ID do Microsoft Entra. A caixa direita contém ícones para o Gateway de Aplicativo do Azure e o Azure Load Balancer. Uma seta de dupla face conecta esta caixa com uma caixa rotulada front-end. A caixa rotulada front-end está dentro da camada de aplicação. Ele contém ícones para Gerenciamento de API do Azure, Serviço de Aplicativo do Azure, AKS (Serviço de Kubernetes do Azure) e Azure Spring Apps. Três setas pontilhadas de dois lados conectam a caixa de front-end a uma caixa rotulada como lógica de negócios. Esta caixa contém ícones para Azure Functions, Azure WebJobs, AKS e Azure Spring Apps. Os ícones do Barramento de Serviço do Azure e do Armazenamento de Filas do Azure (assíncrono) estão acima e abaixo das três setas. Uma seta de dois lados conecta a camada de aplicativo com a camada de cache. A camada de cache contém o Cache do Azure para Redis. Uma seta aponta da camada de cache para a camada de monitoramento. Nessa camada, uma seta pontilhada passa do Azure Monitor por meio dos logs do Azure Monitor e para uma caixa azul que contém ícones rotulados como painel e alertas do Log Analytics. A camada de monitoramento também inclui o Application Insights. Uma seta pontilhada aponta do Application Insights para a caixa azul. Outra seta aponta da camada de aplicativo para o Application Insights. A camada de dados contém duas caixas. Uma caixa contém ícones para o Armazenamento de Tabelas do Azure e os Arquivos do Azure. A outra caixa contém SQL do Azure, Azure Cosmos DB, Banco de Dados do Azure para PostgreSQL e Banco de Dados do Azure para MySQL. Uma seta de dupla face conecta a camada de dados e a camada de aplicativo.

Baixe um arquivo do Visio dessa arquitetura.

  1. Os usuários de mainframe estão familiarizados com os terminais 3270 e a conectividade local. No sistema migrado, eles interagem com aplicativos do Azure por meio da Internet pública ou por meio de uma conexão privada implementada por meio do Azure ExpressRoute. A ID do Microsoft Entra fornece autenticação.

  2. As solicitações de entrada vão para um serviço de balanceador de carga global, como o Azure Front Door ou o Gerenciador de Tráfego do Azure. O balanceador de carga pode atender a uma base de usuários distribuída geograficamente. Ele roteia as solicitações de acordo com as regras definidas para as cargas de trabalho com suporte. Esses balanceadores de carga podem coordenar com o Gateway de Aplicativo do Azure ou o Azure Load Balancer para balancear a carga da camada de aplicativo. O serviço Rede de Distribuição de Conteúdo do Azure armazena em cache o conteúdo estático em servidores de borda para resposta rápida. Um firewall de aplicativo Web (WAF) ajuda a proteger o serviço.

  3. O front-end da camada de aplicativo usa serviços do Azure, como o Serviço de Aplicativo do Azure, para implementar telas de aplicativo e interagir com os usuários. As telas são versões migradas das telas de mainframe.

  4. O código COBOL e PL/I no back-end da camada de aplicativo implementa a lógica de negócios. O código pode usar serviços e recursos como microsserviços do Azure Functions, WebJobs e Azure Spring Apps. Os aplicativos podem ser executados em um contêiner do AKS (Serviço de Kubernetes do Azure).

  5. Um armazenamento de dados na memória acelera aplicativos OLTP de alta taxa de transferência. Os exemplos incluem In-Memory OLTP, que é um recurso do Banco de Dados SQL do Azure e da Instância Gerenciada de SQL do Azure, e o Cache do Azure para Redis.

  6. A camada de dados pode incluir:

    • Arquivos, tabelas e blobs implementados usando o Armazenamento do Azure.
    • Bancos de dados relacionais da família SQL do Azure.
    • Implementações do Azure dos bancos de dados de software livre PostgreSQL e MySQL.
    • Azure Cosmos DB, que é um banco de dados NoSQL.

    Esses armazenamentos contêm dados migrados do mainframe para uso da camada de aplicativo.

  7. Os serviços nativos do Azure, como o Application Insights e o Azure Monitor, monitoram proativamente a integridade do sistema. Você pode integrar os Logs do Azure Monitor usando um painel do Azure.

Componentes

Essa arquitetura consiste em vários serviços de nuvem do Azure. Ele é dividido em quatro categorias de recursos: rede e identidade, aplicativo, armazenamento e monitoramento. As seções a seguir descrevem os serviços para cada recurso e suas funções.

Networking e identidade

Ao projetar a arquitetura de aplicativos, é crucial priorizar os componentes de rede e identidade para ajudar a garantir a segurança, o desempenho e a capacidade de gerenciamento durante as interações pela Internet pública ou conexões privadas. Os componentes a seguir na arquitetura são essenciais para atender a esse requisito de forma eficaz.

  • O ExpressRoute transporta conexões privadas entre infraestruturas locais e datacenters do Azure.

  • O Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso que pode ser sincronizado com um diretório local.

  • O Azure Front Door fornece balanceamento de carga HTTP global com failover instantâneo. Sua opção de cache pode acelerar a entrega de conteúdo estático.

  • O Gerenciador de Tráfego direciona as solicitações de entrada do Sistema de Nomes de Domínio com base em sua escolha de métodos de roteamento de tráfego.

  • Um WAF do Azure ajuda a proteger aplicativos Web contra ataques mal-intencionados e vulnerabilidades comuns da Web, como injeção de SQL e scripts entre sites.

  • A Rede de Distribuição de Conteúdo armazena em cache o conteúdo estático em servidores de borda para permitir respostas rápidas e usa otimizações de rede para melhorar a resposta ao conteúdo dinâmico. A Rede de Distribuição de Conteúdo é especialmente útil quando a base de usuários é global.

  • O Gateway de Aplicativo é um serviço de controlador de entrega de aplicativos. Ele opera na camada 7, a camada de aplicação, e possui vários recursos de balanceamento de carga.

  • O Load Balancer é um balanceador de carga de camada 4 (TCP ou User Datagram Protocol). Nessa arquitetura, ele fornece opções de balanceamento de carga para o Azure Spring Apps e o AKS.

Aplicação

O Azure fornece serviços gerenciados que dão suporte à implantação de aplicativos mais segura, escalonável e eficiente. Os serviços da camada de aplicativo que a arquitetura anterior usa podem ajudá-lo a otimizar a arquitetura do aplicativo.

  • O Gerenciamento de API do Azure dá suporte à publicação, roteamento, proteção, registro em log e análise de APIs. Você pode controlar como os dados são apresentados e estendidos e quais aplicativos podem acessá-los. Você pode restringir o acesso aos seus aplicativos ou permitir terceiros.

  • O Serviço de Aplicativo é um serviço totalmente gerenciado para criar, implantar e colocar em escala aplicativos Web. Você pode criar aplicativos usando .NET, .NET Core, Node.js, Java, Python ou PHP. Os aplicativos podem ser executados em contêineres ou no Windows ou Linux. Em uma migração de mainframe, as telas de front-end ou a interface da Web podem ser codificadas como APIs REST baseadas em HTTP. Eles podem ser segregados de acordo com o aplicativo de mainframe e podem ser sem estado para orquestrar um sistema baseado em microsserviços.

  • WebJobs é um recurso do Serviço de Aplicativo que executa um programa ou script na mesma instância que um aplicativo Web, aplicativo de API ou aplicativo móvel. Um trabalho da Web pode ser uma boa opção para implementar a lógica de programa compartilhável e reutilizável. Para obter mais informações, consulte Executar tarefas em segundo plano com WebJobs no Serviço de Aplicativo.

  • O AKS é um serviço Kubernetes totalmente gerenciado para implantar e gerenciar aplicativos em contêineres. O AKS simplifica a implantação de um cluster AKS gerenciado no Azure descarregando a sobrecarga operacional para o Azure.

  • O Azure Spring Apps é um serviço Spring totalmente gerenciado, criado e operado em conjunto pela Microsoft e pela VMware. Você pode usar o Azure Spring Apps para implantar, gerenciar e executar facilmente microsserviços do Spring e escrever aplicativos do Spring usando Java ou .NET.

  • O Barramento de Serviço do Azure é um serviço de mensagem de nuvem confiável para integração híbrida simples. As filas do Barramento de Serviço e do Armazenamento podem conectar o front-end com a lógica de negócios no sistema migrado.

  • O Azure Functions fornece um ambiente para executar pequenas partes de código, chamadas funções, sem precisar estabelecer uma infraestrutura de aplicativo. Você pode usá-lo para processar dados em massa, integrar sistemas, trabalhar com Internet das Coisas e criar APIs e microsserviços simples. Use microsserviços para criar servidores que se conectam aos serviços do Azure e estão sempre atualizados.

  • O Cache do Azure para Redis é um serviço de cache na memória totalmente gerenciado para compartilhar dados e estado entre recursos de computação. Ele inclui o Redis de código aberto e o Redis Enterprise, um produto comercial da Redis Labs, como um serviço gerenciado. Você pode melhorar o desempenho de aplicativos OLTP de alta taxa de transferência projetando-os para dimensionar e usar um armazenamento de dados na memória, como o Cache do Azure para Redis.

Armazenamento e banco de dados

Essa arquitetura aborda o armazenamento em nuvem escalável e mais seguro, bem como bancos de dados gerenciados para gerenciamento de dados flexível e inteligente.

Monitorização

As ferramentas de monitoramento a seguir fornecem análise de dados abrangente e informações valiosas sobre o desempenho do aplicativo.

  • O Azure Monitor coleta, analisa e age com base em dados pessoais de seus ambientes locais e do Azure.

    Os alertas do Azure Monitor são um recurso do Monitor. Para obter mais informações, consulte Criar, exibir e gerenciar alertas de métrica usando o Azure Monitor.

  • O Log Analytics é uma ferramenta no portal do Azure que você usa para consultar os Logs do Azure Monitor usando uma linguagem de consulta avançada. Você pode interagir com os resultados de suas consultas ou usá-los com outros recursos do Azure Monitor, como alertas de consulta de log ou pastas de trabalho. Para saber mais, consulte Visão geral do Log Analytics no Azure Monitor.

  • O Application Insights é um recurso do Azure Monitor que fornece monitoramento em nível de código do uso, disponibilidade e desempenho do aplicativo. Ele monitora o aplicativo, detecta anomalias como desempenho medíocre e falhas e envia dados pessoais para o portal do Azure. Você também pode usar o Application Insights para registro em log, rastreamento distribuído e métricas de aplicativo personalizadas.

Detalhes do cenário

Devido à evolução das necessidades de negócios e dos dados, os aplicativos devem ser dimensionados e produzir resultados sem criar problemas de infraestrutura. Este exemplo de carga de trabalho mostra como você pode migrar um aplicativo OLTP de mainframe z/OS para um sistema mais seguro, escalonável e altamente disponível na nuvem usando os serviços de PaaS (plataforma como serviço) do Azure. Essa migração ajuda as empresas de finanças, saúde, seguros e varejo a minimizar os cronogramas de entrega de aplicativos. Também ajuda a reduzir os custos de execução dos aplicativos.

Possíveis casos de uso

Essa arquitetura é ideal para cargas de trabalho OLTP que têm as seguintes características:

  • Eles atendem a uma base de usuários internacional.

  • Seu uso varia muito ao longo do tempo, portanto, eles se beneficiam de escalabilidade flexível e preços baseados em uso.

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. Ele também pode ter uma camada de dados replicada geograficamente.

  • Os serviços de banco de dados do Azure dão suporte à redundância de zona e podem fazer failover para um nó secundário se ocorrer uma interrupção ou para permitir 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 cria uma conexão privada com o Azure de um ambiente local. Você também pode usar a VPN site a site.

  • A ID do Microsoft Entra pode autenticar recursos e controlar o acesso usando o controle de acesso baseado em função do Azure.

  • 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 diretrizes gerais sobre como criar soluções mais seguras, consulte Links rápidos de segurança.

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.

Use a calculadora de preços do Azure para estimar os custos de sua implementação.

Excelência operacional

A Excelência operacional abrange os processos de operações que implantam uma aplicação e as 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.

Esse cenário usa o Azure Monitor e o Application Insights para monitorar a integridade dos recursos do Azure. Você pode definir alertas para gerenciamento proativo.

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.

  • Essa arquitetura usa serviços de PaaS do Azure, como o Serviço de Aplicativo, que tem recursos de dimensionamento automático.

  • Para saber mais, confira Dimensionamento automático.

Contribuidores

A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.

Autores principais:

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

Próximas etapas

Consulte as seguintes arquiteturas relacionadas e informações técnicas relacionadas.