Editar

Compartilhar via


Refatorar aplicativos de mainframe com Advanced

Arquivos do Azure
Azure Load Balancer
Banco de Dados SQL do Azure
Armazenamento do Azure
Máquinas Virtuais do Azure

A solução de refatoração automatizada COBOL da Advanced refatora aplicativos COBOL, bem como aqueles escritos em CA-Gen, CA-Telon, Natural, ADSO e outras linguagens herdadas, para entregar aplicativos e bancos de dados habilitados para nuvem funcionalmente equivalentes às suas contrapartes herdadas. Isso reduz os custos, permite uma integração mais profunda e permite que a personalização atenda aos requisitos de negócios. Além disso, ele desbloqueia um mundo totalmente novo de qualidade e escalabilidade, desde testes automatizados até a garantia de qualidade e a capacidade de se beneficiar de implantações e orquestrações em contêineres com Docker e Kubernetes.

Arquitetura de mainframe

Aqui está um sistema de exemplo em que a fatoração automatizada pode ser usada:

Diagrama de arquitetura que mostra um sistema de mainframe que inclui aplicativos de linguagem herdada.

Workflow

R. Os usuários fornecem entrada sobre TCP/IP, usando protocolos como TN3270, HTTP e HTTPS.

B. A entrada chega usando protocolos de mainframe padrão.

C. Os aplicativos de lote e online processam a entrada.

D. As linguagens COBOL, PL/I, Assembler e compatíveis são executadas em um ambiente habilitado.

E. Os arquivos e os bancos de dados fornecem armazenamento. Os tipos de banco de dados incluem hierárquico, de rede e relacional.

F. Os serviços executam tarefas para os aplicativos. Os serviços que são comumente habilitados incluem execução do programa, operações de E/S, detecção de erros e proteção.

G. Os serviços de middleware e utilitário gerenciam o armazenamento em fita, o enfileiramento, a saída e suporte Web.

H. Os sistemas operacionais fornecem a interface entre o mecanismo e o software que ele executa.

I. As partições executam cargas de trabalho separadas ou segregam tipos de trabalhos dentro do ambiente.

Arquitetura do Azure

Esta é a arquitetura do sistema de exemplo mostrado acima quando refatorado para o Azure. Observe que os textos explicativos das letras nos diagramas revelam onde a solução refatorada manipula a funcionalidade correspondente do mainframe.

Diagrama de arquitetura que mostra o sistema no Azure após a refatoração.

Baixe um Arquivo Visio dessa arquitetura.

Workflow

  1. A entrada normalmente vem por meio do Azure ExpressRoute de clientes remotos ou de outros aplicativos do 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 a aplicativos Web é pela porta TLS 443. Você pode manter a interface do usuário dos aplicativos Web da mesma forma para minimizar o retreinamento de usuários finais ou pode atualizá-la usando estruturas de UX modernas. O Azure Bastion fornece acesso de administrador às VMs (máquinas virtuais), maximizando a segurança ao minimizar as portas abertas.

  2. Uma vez no Azure, o acesso aos clusters de computação do aplicativo se dá por meio de um balanceador de carga do Azure. Essa abordagem permite que os recursos de computação de expansão processem o trabalho de entrada. Dependendo da entrada, você pode balancear a carga no nível do aplicativo ou do protocolo de rede.

  3. O Advanced oferece suporte à implantação em contêineres, VMs ou conjuntos de dimensionamento de máquinas virtuais. Contêineres e conjuntos de dimensionamento de máquinas virtuais, diferentemente das VMs, podem ser rapidamente escaladas horizontalmente e verticalmente. A mudança da unidade de dimensionamento para contêineres otimiza a utilização da infraestrutura.

  4. Os servidores de aplicativos recebem a entrada nos clusters de cálculo e compartilham dados e estado do aplicativo usando o cache do Azure para Redis ou o RDMA (Acesso remoto direto à memória).

  5. Os serviços de dados nos clusters de aplicativos dão suporte a várias conexões com fontes de dados persistentes. As fontes de dados possíveis incluem:

    • Banco de dados SQL do Azure.
    • Azure Cosmos DB.
    • Bancos de dados em VMs, como Oracle ou Db2.
    • Repositórios de Big Data como o Azure Databricks e o Azure Data Lake.
    • Serviços de dados de streaming como o Apache Kafka e o Azure Stream Analytics.
  6. Os servidores de aplicativos hospedam vários programas de aplicativos com base na capacidade da linguagem, como classes Java ou programas COBOL.

  7. Os serviços de dados usam uma combinação de:

    1. Armazenamento de alto desempenho: SSD Premium do Azure e Armazenamento em Disco Ultra do Azure.

    2. Armazenamento de arquivos: Azure NetApp Files e Arquivos do Azure.

    3. Armazenamento Standard: Armazenamento de Blobs do Azure, arquivo e backup. O backup pode ser:

      1. Armazenamento com redundância local (LRS).
      2. Armazenamento com redundância de zona (ZRS).
      3. Armazenamento com redundância geográfica (GRS).
      4. Armazenamento com redundância de zona geográfica (GZRS).

      Para obter mais informações sobre redundância, confira Redundância do Armazenamento do Azure.

  8. Os serviços de dados de PaaS (plataforma como serviço) do Azure fornecem um armazenamento de dados escalonável e altamente disponível para compartilhamento entre vários recursos de computação em um cluster. Eles também podem ter redundância geográfica.

  9. O Azure Data Factory pode ingerir dados e sincronizar com várias fontes de dados no Azure e com fontes externas. O Armazenamento de Blobs do Azure é uma zona de destino comum para fontes de dados externas.

  10. O Azure Site Recovery fornece a recuperação de desastre dos componentes da VM e do cluster de contêineres.

  11. Os aplicativos se conectam a pontos de extremidade privados dos vários serviços de PaaS.

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 Azure ExpressRoute permite que você estenda sua rede local ao Azure por meio de conexão por fibra privada e dedicada advinda de um provedor de conectividade. O ExpressRoute estabelece conexões com serviços de nuvem da Microsoft, como Azure e Microsoft 365.
  • O Azure Bastion fornece conectividade contínua de protocolo RDP (Protocolo de Área de Trabalho Remota) ou Secure Shell (SSH) para VMs de rede virtual do portal do Azure sobre TLS. O Azure Bastion maximiza a segurança de acesso administrativo minimizando as portas abertas.
  • O Azure Load Balancer distribui o tráfego de entrada para os clusters de recursos de computação. Você pode definir regras e outros critérios para distribuir o tráfego.
  • O AKS (Serviço de Kubernetes do Azure) é o serviço Kubernetes totalmente gerenciado para implantar e gerenciar aplicativos conteinerizados com facilidade. O AKS oferece Kubernetes sem servidor, uma experiência integrada de CI/CD (integração contínua, entrega contínua) e segurança e governança de nível corporativo.
  • As máquinas virtuais do Azure oferecem muitos tamanhos e tipos de recursos de computação sob demanda e escalonáveis. Com as VMs do Azure, você tem a flexibilidade da virtualização sem a necessidade de comprar e manter o hardware físico.
  • A Rede Virtual do Azure é o componente fundamental para redes privadas do Azure. As VMs em redes virtuais podem se comunicar de forma segura entre si, com a Internet e as redes locais. Uma rede virtual é como uma rede local tradicional, mas com benefícios de infraestrutura do Azure, como escalabilidade, alta disponibilidade e isolamento.
  • O Link Privado do Azure fornece conectividade privada de uma rede virtual aos serviços do Azure. O Link Privado elimina a exposição pública na Internet para simplificar a arquitetura de rede e proteger as conexões entre os pontos de extremidade do Azure.
  • O Cache do Azure para Redis adiciona uma camada de cache rápido à arquitetura do aplicativo para lidar com grandes volumes em alta velocidade. O Cache do Azure para Redis dimensiona o desempenho de forma simples e econômica, com os benefícios de um serviço totalmente gerenciado.
  • O Armazenamento do Azure oferece armazenamento em nuvem escalonável e seguro para todos os seus dados, aplicativos e cargas de trabalho.
    • O Armazenamento em Disco do Azure oferece armazenamento de bloco durável e de alto desempenho para aplicativos críticos e comercialmente críticos. Os discos gerenciados do Azure são volumes de armazenamento em nível de bloco que são gerenciados pelo Azure e usados com VMs do Azure. Os tipos disponíveis de armazenamento em disco são o Armazenamento de Disco Ultra, o SSD Premium, o SSD Standard e o HDD Standard. Essa arquitetura usa SSDs Premium ou Armazenamento de Disco Ultra.
    • Os Arquivos do Azure oferecem compartilhamentos de arquivos totalmente gerenciados na nuvem que são acessíveis por meio do protocolo SMB padrão do setor. Implantações locais ou na nuvem do Windows, Linux e macOS podem montar compartilhamentos de arquivo ao mesmo tempo.
    • O Azure NetApp Files fornece compartilhamentos de arquivos do Azure de nível empresarial que são fornecidos pela NetApp. O Azure NetApp Files torna mais fácil para as empresas migrar e executar aplicativos complexos baseados em arquivos sem mudanças de código.
    • O Armazenamento de Blobs do Azure é um armazenamento de objetos escalonável e seguro para arquivos, data lakes, computação de alto desempenho, machine learning e cargas de trabalho nativas de nuvem.
  • Os bancos de dados do Azure oferecem uma opção de bancos de dados relacionais e NoSQL totalmente gerenciados para atender às necessidades do aplicativo moderno. O gerenciamento automatizado de infraestrutura fornece escalabilidade, disponibilidade e segurança.
    • O Banco de Dados SQL do Azure é um mecanismo de banco de dados de PaaS totalmente gerenciado. O Banco de Dados SQL sempre é executado na versão estável mais recente do SQL Server e em um sistema operacional com patch com alta disponibilidade. Os recursos internos de gerenciamento de banco de dados de PaaS incluem atualização, aplicação de patches, backups e monitoramento. Você pode se concentrar em administração e otimização de banco de dados de negócios e crítico para o domínio.
    • O Banco de Dados do Azure para PostgreSQL é um banco de dados totalmente gerenciado com base no mecanismo de banco de dados relacional PostgreSQL de código aberto. A opção de implantação do Hiperescala (Citus) dimensiona as consultas entre vários computadores usando a fragmentação a fim de atender a aplicativos que exigem maiores escala e desempenho.
    • OAzure Cosmos DB é um banco de dados NoSQL rápido e totalmente gerenciado com APIs abertas para qualquer escala.
  • OAzure Site Recovery espelha as VMs do Azure para uma região secundária do Azure, a fim de realizar rapidamente failover e recuperação de dados em caso de falha de um datacenter do Azure.
  • O Azure Data Factory é o serviço de ETL (extração, transformação e carregamento) para integração e transformação de dados sem servidor em expansão. Ele oferece uma interface do usuário livre de código para criação intuitiva e gerenciamento e monitoramento em painel único.

Detalhes do cenário

Há muitos motivos para procurar alternativas para os aplicativos de mainframe baseados em COBOL que ainda são comuns:

  • Os desenvolvedores de COBOL e de CA-Gen/Natural/Telon/ASDO estão se aposentando e ninguém é treinado para substituí-los, o que tem levado a uma diminuição constante desse grupo de talentos. Conforme a escassez de talentos aumenta, aumentam também os custos e os riscos de depender do COBOL e de outras linguagens herdadas.
  • Os aplicativos não foram projetados para a TI moderna, resultando em integrações difíceis e de flexibilidade limitada.
  • O hardware e o software de mainframe IBM são caros, e as taxas de licenciamento e manutenção para aplicativos de mainframe e bancos de dados auxiliares estão aumentando.

A solução de refatoração automatizada COBOL da Advanced refatora aplicativos COBOL, bem como aqueles escritos em outras linguagens herdadas, para entregar aplicativos e bancos de dados habilitados para nuvem funcionalmente equivalentes às contrapartes herdadas. Isso reduz os custos, permite uma integração mais profunda e permite que a personalização atenda aos requisitos de negócios. Além disso, ele desbloqueia um mundo totalmente novo de qualidade e escalabilidade, desde testes automatizados até a garantia de qualidade e a capacidade de se beneficiar de implantações e orquestrações em contêineres com Docker e Kubernetes.

Os aplicativos refatorados:

  • São funcionalmente equivalentes aos originais.
  • São fáceis de manter — eles atingem a classificação A do SonarQube e seguem conceitos e paradigmas orientados a objeto.
  • Executam tão bem quanto ou melhor do que os originais.
  • Estão prontos para a nuvem e são entregues usando uma cadeia de ferramentas de DevOps padrão e melhores práticas.

O processo de refatoração inclui a normalização do fluxo, a reestruturação do código, a extração da camada de dados, a remodelação dos dados e o empacotamento para reconstrução. O processo identifica o código clonado e cria objetos de substituição compartilhados, simplificando a manutenção e a capacidade de gerenciamento. A análise complexa de dependência de dados e de controle localiza e remove o código morto.

Depois que a solução do Advanced refatorar os aplicativos COBOL e os bancos de dados associados, os desenvolvedores Java e C# poderão usar as ferramentas de DevOps padrão e os conceitos de CI/CD para estender a funcionalidade do aplicativo. O processo de refatoração preserva a lógica de negócios e otimiza o desempenho. Os benefícios adicionais incluem elasticidade, definição de serviço granular e fácil integração com serviços nativos de nuvem.

A refatoração de COBOL automatizada está disponível para a maioria das plataformas e dialetos COBOL, incluindo z/OS, OpenVMS e VME.

Possíveis casos de uso

A refatoração do Advanced beneficia muitos cenários, incluindo:

  • Empresas que buscam:
    • Modernizar a infraestrutura e escapar os custos exorbitantes, as limitações e a rigidez associada aos mainframes.
    • Evitar o risco associado à escassez de habilitades em relação a sistemas e aplicativos herdados ao adotar a nuvem nativa e DevOps.
    • Reduzir os custos de despesas operacionais e de capital.
  • Organizações que desejam migrar cargas de trabalho de mainframe para a nuvem sem regravações manuais dispendiosas e sujeitas a erros.
  • Organizações que precisam migrar aplicativos críticos para os negócios e, ao mesmo tempo, manter a continuidade com outros aplicativos locais.
  • Equipes procurando a escalabilidade horizontal e vertical que o Azure oferece.
  • Empresas que preferem soluções que tenham opções de recuperação de desastre.

Considerações

Incorpore os pilares a seguir do Microsoft Azure Well-Architected Framework para um sistema seguro e altamente disponível:

Disponibilidade

Operações

A refatoração não apenas dá suporte à adoção mais rápida da nuvem, mas também promove a adoção de princípios de trabalho DevOps e Agile. Você tem flexibilidade total nas opções de implantação de desenvolvimento e produção.

Segurança

Essa solução usa um grupo de segurança de rede do Azure para gerenciar o tráfego entre os recursos do Azure. Para saber mais, confira Grupos de segurança de rede.

O Link Privado para Banco de Dados SQL do Azure fornece uma conexão direta e privada isolada para o backbone de rede do Azure das VMs do Azure para o Banco de Dados SQL do Azure.

O Azure Bastion maximiza a segurança de acesso administrativo minimizando as portas abertas. O Bastion fornece conectividade de RDP/SSH segura e contínua para VMs de rede virtual diretamente do portal do Azure sobre TLS.

Resiliência

A resiliência é incorporada a essa solução pelos balanceadores de carga. Se uma apresentação ou um servidor de transação falhar, outros servidores por trás dos balanceadores de carga poderão executar as cargas de trabalho de acordo com as regras e investigações de integridade. Os conjuntos de disponibilidade e o armazenamento com redundância geográfica são altamente recomendados.

Otimização de custo

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 dos negócios sem gastar muito.

  • O Azure fornece a otimização de custos ao executar em VMs. Você pode desativar as VMs quando não estiverem em uso e criar um script de agendamento para padrões de uso conhecidos. Confira o Azure Well-Architected Framework para obter mais informações sobre a otimização de custos para instâncias de VM.
  • As VMs nesta arquitetura usam SSDs Premium ou Armazenamento de Disco Ultra. Para obter mais informações sobre as opções de disco e preços, consulte Preços do Managed Disks.
  • O Banco de Dados SQL otimiza os custos com computação sem servidor e recursos de armazenamento do Hiperescala que são dimensionados automaticamente. Para obter mais informações sobre as opções e preços do Banco de Dados SQL, consulte Preços do Banco de Dados SQL do Azure.
  • Use a Calculadora de preços para estimar os custos para a implementação dessa solução.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

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

Próximas etapas