Refatoração geral de mainframe para o Azure
A arquitetura a seguir ilustra uma abordagem geral de refatoração que pode usar o Serviço Kubernetes do Azure (AKS) ou máquinas virtuais (VMs) do Azure. Esta escolha depende da portabilidade das aplicações existentes e da sua preferência. A refatoração pode acelerar a mudança para o Azure convertendo automaticamente o código em Java ou .NET e convertendo bancos de dados pré-relacionais em bancos de dados relacionais.
Arquitetura do mainframe
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
O fluxo de trabalho a seguir corresponde ao diagrama anterior:
Um: Os usuários locais acessam o mainframe por TCP/IP (Transmission Control Protocol/Internet Protocol) usando protocolos de mainframe padrão, como TN3270 e HTTPS.
Não: Os pedidos recebidos podem ser sistemas em lote ou sistemas online.
Não: Os ambientes habilitados suportam linguagem comum orientada a negócios (COBOL), Programming Language One (PL/I), Assembler ou linguagens compatíveis.
D: Os dados típicos e os serviços de banco de dados incluem sistemas de banco de dados hierárquicos ou de rede, arquivos de dados de índice ou simples e bancos de dados relacionais.
E: Os serviços comuns incluem implementação de programas, operações de entrada/saída, deteção de erros e proteção.
Não: Os serviços de middleware e utilitários gerenciam o armazenamento em fita, a fila, a saída e os serviços Web.
G: Os sistemas operativos são a interface entre o motor de computação e o software.
H: As partições executam cargas de trabalho separadas ou segregam tipos de trabalho dentro do ambiente.
Arquitetura refatorada do Azure
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
O fluxo de trabalho a seguir corresponde ao diagrama anterior:
A entrada vem de clientes remotos por meio do Azure ExpressRoute ou de outros usuários do Azure. O TCP/IP é a principal forma de ligação ao sistema.
Os usuários locais podem acessar aplicativos baseados na Web pela porta 443 do Transport Layer Security (TLS). As camadas de apresentação dos aplicativos Web podem permanecer inalteradas para minimizar o retreinamento do usuário. Ou você pode atualizar as camadas de apresentação com estruturas de UX modernas.
O acesso administrativo local usa hosts do Azure Bastion para maximizar a segurança, minimizando as portas abertas.
Os usuários do Azure se conectam ao sistema por meio do emparelhamento de rede virtual.
No Azure, o Balanceador de Carga do Azure gerencia o acesso aos clusters de computação do aplicativo. O Load Balancer suporta recursos de computação escaláveis para lidar com a entrada. Você pode usar um balanceador de carga de nível de aplicativo de nível 7 ou de nível de rede de nível 4, dependendo de como a entrada do aplicativo atinge o ponto de entrada do cluster de computação.
Os clusters de computação de aplicativos podem ser executados em VMs do Azure ou em contêineres em clusters AKS. A emulação de sistema de mainframe para aplicativos PL/I ou COBOL normalmente usa VMs. Aplicativos refatorados para Java ou .NET usam contêineres. Alguns softwares de emulação de sistemas de mainframe também suportam a implantação em contêineres. Os recursos de computação usam discos SSD Premium do Azure ou o Armazenamento em Disco Ultra do Azure com rede acelerada e RDMA (acesso remoto direto à memória).
Os servidores de aplicativos nos clusters de computação hospedam os aplicativos baseados na capacidade de linguagem, como classes Java ou programas COBOL. Os servidores recebem entrada de aplicativo e compartilham o estado e os dados do aplicativo usando o Cache do Azure para Redis ou RDMA.
Os serviços de dados nos clusters de aplicativos oferecem suporte a várias conexões com fontes de dados persistentes. O Azure Private Link fornece conectividade privada de dentro da rede virtual para os serviços do Azure. As fontes de dados podem incluir:
Serviços de dados de plataforma como serviço (PaaS), como o Banco de Dados SQL do Azure, o Azure Cosmos DB e o Banco de Dados do Azure para PostgreSQL - Hyperscale.
Bancos de dados em VMs, como Oracle ou DB2.
Repositórios de Big Data como o Azure Databricks e o Azure Data Lake Storage.
Serviços de streaming de dados como Apache Kafka e Azure Stream Analytics.
O armazenamento de dados pode ser redundante local ou georredundante, dependendo do uso. O armazenamento de dados pode usar uma combinação de:
Armazenamento de alto desempenho com Ultra Disk Storage ou SSD Premium.
Armazenamento de ficheiros com os Ficheiros NetApp do Azure ou os Ficheiros do Azure.
Armazenamento padrão, incluindo opções de blob, arquivamento e backup.
Os serviços de dados PaaS do Azure fornecem armazenamento de dados escalável e altamente disponível que você pode compartilhar entre recursos de cluster de computação. Esse armazenamento também pode ser redundante geograficamente.
O Armazenamento de Blobs do Azure é uma zona de aterrissagem comum para fontes de dados externas.
O Azure Data Factory dá suporte à ingestão e sincronização de dados de várias fontes de dados do Azure e externas.
O Azure Site Recovery fornece recuperação de desastres (DR) para componentes de cluster de VM e contêiner.
Serviços como Microsoft Entra ID, Azure Networking, Stream Analytics, Azure Databricks e Power BI podem ser facilmente integrados ao sistema modernizado.
Componentes
Este exemplo apresenta os seguintes componentes do Azure. Vários desses componentes e fluxos de trabalho são intercambiáveis ou opcionais, dependendo do seu cenário.
O ExpressRoute é um serviço que estende suas redes locais para o Azure por meio de uma conexão de fibra privada e dedicada de um provedor de conectividade. Nessa arquitetura, o ExpressRoute estabelece conexões com serviços de nuvem da Microsoft, como Azure e Microsoft 365.
O Azure Bastion é um serviço PaaS que fornece conectividade perfeita de protocolo de área de trabalho remota (RDP) ou shell seguro (SSH) para VMs de rede virtual do portal do Azure sobre TLS. Nessa arquitetura, o Azure Bastion maximiza a segurança do acesso administrativo minimizando as portas abertas.
O Balanceador de Carga é um serviço que distribui o tráfego de entrada para os clusters de recursos de computação. Use este componente para definir regras e outros critérios para distribuir o tráfego. O Load Balancer permite recursos de computação escaláveis para processar o trabalho de entrada, o que ajuda a garantir uma distribuição de carga eficiente.
O AKS é um serviço Kubernetes totalmente gerenciado para implantar e gerenciar aplicativos em contêineres. Nessa arquitetura, o AKS fornece Kubernetes sem servidor, uma experiência integrada de integração contínua e entrega contínua (CI/CD) e segurança e governança de nível empresarial.
As Máquinas Virtuais do Azure são um serviço que fornece vários tamanhos e tipos de recursos de computação escaláveis sob demanda. Este componente fornece a flexibilidade da virtualização sem a necessidade de comprar e manter hardware físico.
A Rede Virtual do Azure serve como o bloco de construção fundamental das redes privadas do Azure. Uma rede virtual é como uma rede local tradicional, mas tem benefícios de infraestrutura do Azure, como escalabilidade, alta disponibilidade e isolamento. Esse componente permite que as VMs do Azure em redes virtuais se comuniquem com mais segurança entre si, com a Internet e com redes locais.
Private Link é um serviço que fornece conectividade privada de uma rede virtual para serviços do Azure. Nessa arquitetura, o Private Link simplifica a arquitetura de rede e protege a conexão entre os pontos de extremidade do Azure, eliminando a exposição à Internet pública.
O Cache Redis do Azure é um serviço totalmente gerenciado que adiciona uma camada de cache rápido à arquitetura do aplicativo para lidar com grandes volumes em alta velocidade. Este componente de arquitetura dimensiona o desempenho de forma simples e econômica.
O Armazenamento do Azure é um serviço baseado em nuvem que fornece armazenamento em nuvem escalável e seguro para todos os seus dados, aplicativos e cargas de trabalho. Nessa arquitetura, o Storage fornece a infraestrutura de armazenamento necessária para vários tipos de dados e aplicativos.
O Armazenamento em Disco do Azure é um serviço de armazenamento em bloco durável e de alto desempenho para aplicativos críticos para os negócios. Os discos gerenciados do Azure são volumes de armazenamento em nível de bloco que o Azure gerencia em VMs do Azure. Os tipos de discos disponíveis são Ultra Disk Storage, Premium SSD, Azure Standard SSD e Azure Standard HDD. Esta arquitetura utiliza discos SSD Premium ou Ultra Disk Storage.
O Azure Files é um serviço de armazenamento de arquivos totalmente gerenciado baseado em nuvem que fornece compartilhamentos de arquivos na nuvem. Esses compartilhamentos de arquivos podem ser acessados por meio do protocolo SMB (Server Message Block) padrão do setor. Nessa arquitetura, o Azure Files fornece compartilhamentos de arquivos gerenciados para implantações locais e na nuvem. As implantações de Windows, Linux e macOS locais e na nuvem podem montar compartilhamentos de arquivos do Azure Files simultaneamente.
O Azure NetApp Files é um serviço de armazenamento de arquivos totalmente gerenciado que fornece compartilhamentos de arquivos do Azure de nível empresarial com tecnologia NetApp. Use-o para migrar e executar aplicativos complexos baseados em arquivos sem exigir alterações de código.
O Blob Storage é um armazenamento de objetos escalável e seguro para arquivos, data lakes, computação de alto desempenho, aprendizado de máquina e cargas de trabalho nativas da nuvem. Nessa arquitetura, o Armazenamento de Blobs serve como uma zona de aterrissagem comum para fontes de dados externas.
Os bancos de dados do Azure oferecem uma escolha de bancos de dados relacionais e NoSQL totalmente gerenciados para atender às necessidades modernas de aplicativos. O gerenciamento automatizado de infraestrutura oferece escalabilidade, disponibilidade e segurança.
O Banco de dados SQL é um mecanismo de banco de dados PaaS totalmente gerenciado. Nessa arquitetura, ele fornece armazenamento de dados escalável e altamente disponível para compartilhar entre vários recursos de computação em um cluster. O Banco de dados SQL sempre é executado na versão estável mais recente do SQL Server e em um sistema operacional com patches que tem disponibilidade de 99,99%. Os recursos integrados de gerenciamento de banco de dados PaaS incluem atualização, aplicação de patches, backups e monitoramento. Você pode usar o Banco de dados SQL para se concentrar na administração e otimização de bancos de dados específicos do domínio e críticos para os negócios.
O Banco de Dados do Azure para PostgreSQL é um banco de dados totalmente gerenciado com base no mecanismo de banco de dados relacional Postgres de código aberto. Nessa arquitetura, ele fornece a opção de implantação Hyperscale (Citus), que dimensiona consultas em várias máquinas usando fragmentação. Esse recurso é útil para aplicativos que exigem maior escala e desempenho.
O Azure Cosmos DB é um banco de dados NoSQL rápido e totalmente gerenciado que possui APIs abertas para qualquer escala. Nessa arquitetura, o Azure Cosmos DB fornece armazenamento de dados escalável e altamente disponível para vários aplicativos.
A Recuperação de Site é um serviço de DR que espelha VMs do Azure para uma região secundária do Azure. Esse recurso permite failover e recuperação rápidos se ocorrer uma falha no datacenter do Azure. Nessa arquitetura, o Site Recovery oferece suporte a DR para os componentes de cluster de VM e contêiner.
Detalhes do cenário
A refatoração de cargas de trabalho para o Azure pode transformar aplicativos de mainframe executados no Windows Server ou Linux. Você pode executar esses aplicativos de forma mais econômica usando a infraestrutura do Azure como um serviço baseada em nuvem e PaaS.
A abordagem geral de refatoração para aplicativos de mainframe impulsiona a transformação da infraestrutura e muda os sistemas de tecnologias proprietárias legadas para soluções padronizadas, comparadas e abertas. Essa transformação suporta princípios ágeis de DevOps, que são a base dos atuais padrões de alta produtividade e sistemas abertos. A refatoração substitui infraestruturas, processos e aplicativos herdados isolados por um ambiente unificado que aprimora o alinhamento de negócios e TI.
Essa abordagem geral de refatoração pode usar AKS ou VMs do Azure. A escolha depende da portabilidade das aplicações existentes e da sua preferência. A refatoração pode acelerar a mudança para o Azure convertendo automaticamente o código em Java ou .NET e convertendo bancos de dados pré-relacionais em bancos de dados relacionais.
A refatoração dá suporte a vários métodos para mover cargas de trabalho de cliente para o Azure. Um método é converter e migrar todo o sistema de mainframe para o Azure em um processo único e abrangente. Essa abordagem elimina a necessidade de manutenção provisória de mainframe e custos de suporte de instalações. No entanto, esse método acarreta algum risco porque todos os processos de conversão de aplicativos, migração de dados e testes devem ser alinhados para garantir uma transição suave do mainframe para o Azure.
Outro método é migrar aplicativos do mainframe para o Azure gradualmente, com o objetivo de fazer a transição ao longo do tempo. Essa abordagem proporciona economia de custos para cada aplicativo. Também oferece uma oportunidade de aprender com cada conversão para informar e melhorar as migrações subsequentes. Esse método fornece uma alternativa mais gerenciável e menos intensiva para migrar tudo de uma vez, modernizando cada aplicativo de acordo com seu próprio cronograma.
Potenciais casos de utilização
A refatoração no Azure pode ajudar as organizações a:
- Modernize a infraestrutura e evite os altos custos, limitações e rigidez dos mainframes.
- Migre cargas de trabalho de mainframe para a nuvem, evitando as complexidades de um redesenvolvimento completo.
- Migre aplicativos críticos para os negócios enquanto mantém a continuidade com outros aplicativos locais.
- Beneficie-se da escalabilidade horizontal e vertical no Azure.
- Obtenha recursos de DR.
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que você pode usar para melhorar 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ê assume com seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para Confiabilidade.
Nessa arquitetura, o Site Recovery espelha as VMs do Azure em uma região secundária do Azure para failover rápido e DR se o datacenter primário do Azure falhar.
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 parade segurança .
Esta solução utiliza um grupo de segurança de rede (NSG) do Azure para gerir o tráfego entre recursos do Azure. Para obter mais informações, consulte NSGs.
O Private Link fornece conexões privadas e diretas isoladas ao backbone de rede do Azure entre as VMs do Azure e os serviços do Azure.
O Azure Bastion maximiza a segurança de acesso administrativo minimizando as portas abertas. O Azure Bastion fornece conectividade RDP e SSH altamente segura e contínua para VMs de rede virtual a partir do portal do Azure por TLS.
Otimização de Custos
A Otimização de Custos concentra-se em formas 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 projeto para Otimização de custos.
O Azure evita custos desnecessários identificando o número correto de tipos de recursos, analisando os gastos ao longo do tempo e dimensionando para atender às necessidades de negócios sem gastos excessivos. O Azure fornece otimização de custos executando em VMs. Você pode desativar as VMs quando elas não estiverem em uso e criar um script para padrões de uso conhecidos. Para obter mais informações, consulte Azure Well-Architected Framework e Recomendações para otimizar os custos de componentes.
As VMs nessa arquitetura usam discos SSD Premium ou Ultra Disk Storage. Para obter mais informações, consulte Preços de discos gerenciados.
O Banco de dados SQL otimiza os custos usando computação sem servidor e recursos de armazenamento Hyperscale que são dimensionados automaticamente. Para obter mais informações, consulte Preços do Banco de dados SQL.
Utilize a calculadora de preços do Azure para estimar os custos da implementação desta solução.
Excelência Operacional
A Excelência Operacional abrange os processos operacionais que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, consulte Lista de verificação de revisão de projeto para o Operational Excellence.
A refatoração suporta uma adoção mais rápida da nuvem e promove a adoção de princípios de trabalho DevOps e Agile. Você tem total flexibilidade nas opções de implantação de desenvolvimento e produção.
Eficiência de desempenho
A Eficiência de Desempenho refere-se à capacidade da sua carga de trabalho de escalar para atender às demandas dos usuários de forma eficiente. Para obter mais informações, consulte Lista de verificação de revisão de design para Eficiência de desempenho.
Os balanceadores de carga integram a eficiência de desempenho nesta solução. Se um servidor de apresentação ou transação falhar, os outros servidores por trás dos balanceadores de carga lidam com as cargas de trabalho.
Contribuidores
A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.
Autor principal:
- Jonathon Frost - Brasil | Engenheiro de Software Principal
- Philip Brooks | TPM Sénior
Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.
Próximos passos
- Para obter mais informações, contacte legacy2azure@microsoft.com.
- O que é a Rota Expressa?
- O que é Rede Virtual?
- Introduction to Azure managed disks (Introdução aos discos geridos do Azure)
- O que é Private Link?
- O que é o Banco de Dados SQL?
- O que é o Azure Files?