Rehosting é uma maneira de executar aplicativos de mainframe legados, intactos, em um sistema aberto. Esse caminho é a maneira mais rápida de tirar aplicativos do hardware de mainframe e executá-los em uma plataforma Windows ou Linux em um ambiente nativo da nuvem. O código do aplicativo escrito em linguagens herdadas como COBOL ou PL/1 é migrado como está e recompilado no novo ambiente sem alteração na lógica de negócios. A rehospedagem ajuda a preservar a lógica do aplicativo. Ao mesmo tempo, a rehospedagem minimiza o risco e o custo que vem com a recodificação do aplicativo para o novo ambiente.
A rehospedagem é um método econômico para enfrentar os desafios da manutenção de hardware de mainframe antigo. Comumente conhecido como lift and shift, o rehosting move aplicativos essenciais e essenciais para fora do mainframe e os migra para a nuvem. Com essa abordagem, o hardware subjacente muda, por exemplo, de um mainframe IBM para x86. No entanto, a lógica funcional e de negócios permanece intocada. Esta migração é a mais rápida e menos impactante do ponto de vista do utilizador final. O aplicativo mantém as mesmas interfaces e aparência com a qual os usuários se sentem confortáveis.
Para as equipes que exploram os recursos da nuvem, a rehospedagem de aplicativos é uma ótima maneira de usar recursos de nuvem, como dimensionamento automático, armazenamento gerenciado e contêineres. Essa arquitetura mostra um exemplo geral de rehospedagem que destaca duas metodologias para implantar cargas de trabalho. Você pode usar o Serviço Kubernetes do Azure (AKS) ou as Máquinas Virtuais do Azure. O método que você usa depende da portabilidade do aplicativo e da sua preferência.
Potenciais casos de utilização
Muitos cenários podem se beneficiar da rehospedagem no Azure. Aqui estão alguns casos de uso possíveis:
- Otimização de custos: você deseja reduzir significativamente os altos custos operacionais e de manutenção do hardware de mainframes e suas licenças ou software associados.
- Agnóstico de localização: você está planejando uma saída de datacenter e deseja uma plataforma alternativa altamente disponível, segura e confiável para hospedar seus aplicativos legados.
- Menor interrupção: você precisa migrar aplicativos de mainframe de missão crítica e, ao mesmo tempo, manter a continuidade das operações de negócios diárias.
- Impacto mínimo para o usuário: mova seus aplicativos de hardware antigo, mas continue a fornecer aos usuários as mesmas ou melhores interfaces.
- Aperfeiçoamento insignificante: os aplicativos são rehospedados na nuvem sem alterações significativas no código. Eles continuam a fornecer à sua equipe de desenvolvimento a base de código familiar e, ao mesmo tempo, eliminam o desenvolvimento, o teste e a requalificação dispendiosos em uma linguagem mais recente.
Arquitetura do mainframe
Esta é a arquitetura de pré-migração.
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de dados de mainframe
A entrada ocorre através de TCP/IP, incluindo TN3270, HTTP e HTTPS.
A entrada no mainframe usa protocolos de comunicação de mainframe padrão.
As candidaturas recebidas podem ser em lote ou em linha.
COBOL, PL/I, Assembler e outras linguagens compatíveis são executadas em um ambiente habilitado.
Os dados e serviços de banco de dados usados são bancos de dados hierárquicos, de rede e relacionais.
Os serviços comuns incluem execução de programas, operações de E/S, deteção de erros e proteção no ambiente.
Middleware e utilitários gerenciam serviços como armazenamento em fita, filas, saída e serviços Web dentro do ambiente.
Os sistemas operacionais fornecem a interface entre o mecanismo e o software que ele executa.
As partições são necessárias para executar cargas de trabalho separadas e segregar tipos de trabalho dentro do ambiente.
Arquitetura
Essa arquitetura mostra uma solução que é rehospedada no Microsoft Azure.
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de dados
A entrada normalmente vem via ExpressRoute de clientes remotos ou por outros aplicativos que atualmente são executados no Azure. Em ambos os casos, as conexões TCP/IP são o principal meio de conexão com o sistema. O acesso do usuário é fornecido pela porta TLS 443 para acessar aplicativos baseados na Web. A camada de apresentação do aplicativo baseado na Web pode ser mantida inalterada para minimizar o retreinamento do usuário final. Para acesso de administrador às VMs, você pode usar os hosts do Azure Bastion para maximizar a segurança minimizando as portas abertas.
O acesso aos clusters de computação do aplicativo é feito usando um balanceador de carga do Azure. Com essa abordagem, você pode dimensionar recursos de computação para processar o trabalho de entrada. Estão disponíveis os balanceadores de carga de nível 7 de nível de aplicativo e de nível 4 de protocolo de rede. O tipo que você usa depende de como a entrada do aplicativo atinge o ponto de entrada do cluster de computadores.
O uso de clusters de computação de aplicativos depende se o aplicativo oferece suporte a máquinas virtuais (VMs) em um cluster de computação ou se o aplicativo é executado em um contêiner que você implanta em um cluster de computação de contêiner como o Kubernetes. A maioria dos softwares de parceiros de mainframe para aplicativos escritos em idiomas herdados prefere usar VMs. Alguns softwares de parceiros de sistemas de mainframe também podem oferecer suporte à implantação em contêineres.
Os servidores de aplicativos recebem a entrada nos clusters de computação e compartilham o estado e os dados do aplicativo usando o Cache Redis do Azure ou o RDMA (acesso remoto direto à memória). Os servidores de aplicativos hospedam vários programas de aplicativos COBOL ou PL/1. Um gerenciador de sistema de transações é um emulador no Azure que pode lidar com cargas de trabalho de sistemas de controle de informações do cliente (CICS) e sistemas de gerenciamento de informações (IMS). Um emulador de sistema em lote no Azure faz a função de linguagem de controle de trabalho (JCL).
Você pode usar os serviços do Azure ou outro software de parceiro hospedado em VMs para gerenciamento de sistemas, utilitários e dados.
Os dados de mainframe são migrados para bancos de dados do Azure. O Azure fornece vários serviços eficientes de armazenamento de dados, como o Banco de Dados SQL do Azure, o SQL Server em Máquinas Virtuais do Azure e a Instância Gerenciada SQL do Azure. Há muitos fatores a serem considerados ao fazer uma escolha, como tipo de carga de trabalho, consultas entre bancos de dados e requisitos de confirmação em duas fases. Os serviços de dados do Azure fornecem armazenamento de dados escalável e altamente disponível que você pode compartilhar entre vários recursos de computação em um cluster. Você pode tornar esses serviços redundantes geograficamente e, em seguida, configurá-los para que, se ocorrer failover, a instância do banco de dados de recuperação de desastres fique ativa.
O AKS permite que você dimensione e reduza suas cargas de trabalho de modernização de mainframe no Azure, para aproveitar a plataforma de nuvem. Ao implantar vários clusters AKS, escolha as regiões onde o AKS está disponível. Em seguida, você pode usar regiões emparelhadas para uma arquitetura altamente resiliente. É importante executar várias instâncias de um cluster AKS em várias regiões e em configurações altamente disponíveis.
O Azure Data Factory fornece ingestão e sincronização de dados com várias fontes de dados, tanto no Azure quanto de fontes externas. O Armazenamento de Blobs do Azure é uma zona de aterrissagem comum para fontes de dados externas.
Use o Azure Site Recovery para recuperação de desastres dos componentes de cluster de VM e contêiner. O Azure Site Recovery replica e sincroniza o ambiente de produção com a região de failover.
Componentes
Máquinas Virtuais: As Máquinas Virtuais são um recurso de computação escalável e sob demanda. Uma VM do Azure fornece-lhe a flexibilidade de virtualização sem ter de comprar e manter o hardware físico que executa a VM.
Rede Virtual do Azure: a Rede Virtual é o bloco de construção fundamental para a sua rede privada no Azure. A Rede Virtual permite que muitos tipos de recursos do Azure, como Máquinas Virtuais, se comuniquem com segurança entre si, com a Internet e com redes locais. Rede Virtual é como uma rede tradicional que você opera em seu próprio data center. No entanto, ele traz consigo os benefícios da infraestrutura do Azure, como escala, disponibilidade e isolamento.
Cartões de Interface de Rede Virtual do Azure: uma interface de rede permite que uma VM do Azure se comunique com recursos da Internet, do Azure e locais. Conforme mostrado nesta arquitetura, você pode adicionar mais placas de interface de rede à mesma VM do Azure. Dessa forma, as VMs filhas do Solaris têm seu próprio dispositivo de interface de rede dedicado e endereço IP.
Armazenamento em Disco do Azure: Os discos gerenciados são volumes de armazenamento em nível de bloco gerenciados pelo Azure e usados com VMs do Azure. Os tipos de discos disponíveis são o Azure Ultra Disk Storage, o Azure Premium SSD, o Azure Standard SSD e o Azure Standard HDD. Para esta arquitetura, recomendamos SSD Premium ou Ultra Disk Storage.
Arquivos do Azure: o Azure Files oferece compartilhamentos de arquivos totalmente gerenciados na nuvem que podem ser acessados por meio do protocolo SMB (Server Message Block) padrão do setor. Você pode montar compartilhamentos de arquivos do Azure simultaneamente por implantações na nuvem ou locais do Windows, Linux e macOS.
Azure ExpressRoute: com o ExpressRoute, você pode estender suas redes locais para a nuvem da Microsoft por meio de uma conexão privada facilitada por um provedor de conectividade. Você também pode estabelecer conexões com os serviços de nuvem da Microsoft, como o Microsoft Azure e o Microsoft 365.
AKS: Implante e gerencie aplicativos em contêineres mais facilmente com um serviço Kubernetes totalmente gerenciado. O Azure Kubernetes Service (AKS) disponibiliza o Kubernetes sem servidor, uma experiência de integração contínua e entrega contínua (CI/CD) integrada, bem como segurança e governação de nível empresarial. Una as suas equipas de desenvolvimento e operações numa única plataforma para criar, fornecer e dimensionar aplicações com rapidez e confiança.
Azure Container Registry: crie, armazene, proteja, digitalize, replique e gerencie imagens e artefatos de contêiner com uma instância totalmente gerenciada e replicada geograficamente da distribuição OCI. Conecte-se entre ambientes como AKS e Azure Red Hat OpenShift e entre serviços do Azure como Serviço de Aplicativo, Machine Learning e Batch.
Recuperação de site: a recuperação de site oferece facilidade de implantação, economia e confiabilidade. Implemente processos de replicação, ativação pós-falha e recuperação através do Site Recovery para ajudar a manter as suas aplicações em execução durante interrupções planeadas e não planeadas.
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ê assume com seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para Confiabilidade.
- Para aproveitar ao máximo os recursos do Azure, use uma abordagem baseada em contêiner para implantação. Essa abordagem ajuda se o aplicativo precisar ser dimensionado sob demanda e obter provisionamento elástico de capacidade sem a necessidade de gerenciar a infraestrutura. Ele também permite que você adicione dimensionamento automático controlado por eventos e gatilhos. Um contêiner agrupa todo o software necessário para execução em um pacote executável. Ele inclui o código de um aplicativo juntamente com os arquivos de configuração relacionados, bibliotecas e dependências necessárias para executar o aplicativo.
- Você precisa orquestrar e gerenciar serviços em contêineres e seus componentes de rede e armazenamento associados. O AKS é uma excelente opção porque automatiza o gerenciamento de clusters e recursos. Você designa o número de nós de que precisa e o AKS ajusta seus contêineres aos nós certos para fazer o melhor uso dos recursos. O AKS também suporta rollouts e rollbacks automatizados, deteção de serviços, balanceamento de carga e orquestração de armazenamento. E o AKS apoia a auto-cura. Se um contêiner falhar, o AKS inicia um novo. Você também pode armazenar segredos e definições de configuração com segurança fora dos contêineres.
- A arquitetura usa o Site Recovery para espelhar VMs do Azure em uma região secundária do Azure para failover rápido e recuperação de desastres se um datacenter do Azure falhar.
- Para maximizar o tempo de atividade das cargas de trabalho na abordagem de implantação do AKS, é uma prática recomendada para a continuidade de negócios implantar o aplicativo em vários clusters AKS em diferentes regiões. O estado do seu aplicativo pode estar disponível em vários clusters porque o AKS permite a replicação de armazenamento em várias regiões.
- Para maximizar o tempo de atividade das cargas de trabalho em uma abordagem de implantação baseada em VM, considere o uso de Conjuntos de Escala de Máquina Virtual do Azure. Com os Conjuntos de Dimensionamento de Máquina Virtual, você pode criar e gerenciar um grupo de VMs com balanceamento de carga. O número de instâncias de VM pode aumentar ou diminuir automaticamente como resposta à procura ou horário definido. Os conjuntos de dimensionamento fornecem alta disponibilidade para seus aplicativos e permitem que você gerencie, configure e atualize centralmente muitas VMs.
Segurança
A segurança oferece 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 parade segurança .
- Esta solução utiliza um grupo de segurança de rede do Azure para gerir o tráfego entre recursos do Azure. Para obter mais informações, consulte Grupos de segurança de rede.
- O Azure Bastion maximiza a segurança de acesso de administrador minimizando as portas abertas. O Bastion fornece conectividade RDP/SSH segura e contínua para VMs de rede virtual diretamente do portal do Azure por TLS.
Otimização de Custos
A Otimização de Custos consiste em procurar 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 fornece otimização de custos executando em VMs do Windows. Com as VMs do Windows, você pode desativar as VMs quando não estiverem em uso e criar um script para padrões de uso conhecidos. O Azure identifica o número ou os tipos de recursos corretos, analisa os gastos ao longo do tempo e é dimensionado para atender às necessidades de negócios sem gastar demais.
Use a calculadora de preços do Azure para estimar o custo dos serviços nessa arquitetura.
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 arquitetura de destino é funcional com os Serviços de Nuvem do Azure.
- A implantação baseada em contêiner promove a adoção de princípios de trabalho DevOps e Agile.
- Você tem total flexibilidade de opções de implantação de desenvolvimento e produção.
Eficiência de desempenho
Eficiência de desempenho é a capacidade de sua carga de trabalho de escalar para atender às demandas colocadas pelos usuários de maneira eficiente. Para obter mais informações, consulte Lista de verificação de revisão de design para Eficiência de desempenho.
- A eficiência de desempenho é incorporada nesta solução por causa dos balanceadores de carga. Se um servidor de apresentação ou transação falhar, o servidor por trás do balanceador de carga arcará com a carga de trabalho.
- O Kubernetes fornece um autoscaler de cluster. O autoscaler ajusta o número de nós com base nos recursos de computação solicitados no pool de nós.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Sunnyma Ghosh - Brasil | Gestor de programa sénior
Outros contribuidores:
- Bhaskar Bandam - Brasil | Gestor de programa sénior
Próximos passos
- White papers do Azure sobre tópicos de mainframe
- Rehospedagem de mainframe em máquinas virtuais do Azure
- Cargas de trabalho de mainframe suportadas no Azure
Para obter mais informações, contacte legacy2azure@microsoft.com.