A solução de refatoração automatizada de COBOL da Advanced refatora aplicativos COBOL, bem como aqueles escritos em CA-Gen, CA-Telon, Natural, ADSO e outras linguagens legadas, para fornecer aplicativos e bancos de dados habilitados para nuvem que são funcionalmente equivalentes aos seus homólogos legados. Isso reduz custos, permite uma integração mais profunda e permite a personalização para atender aos requisitos de negócios. Além disso, ele desbloqueia um mundo totalmente novo de qualidade e escalabilidade, desde testes automatizados até garantia de qualidade, e a capacidade de se beneficiar de implantações e orquestração em contêineres com Docker e Kubernetes.
Arquitetura do mainframe
Aqui está um exemplo de sistema onde o factoring automatizado pode ser usado:
Fluxo de Trabalho
A. 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. Lotes e aplicativos on-line processam a entrada.
D. COBOL, PL/I, Assembler e linguagens compatíveis são executados em um ambiente habilitado.
E. Arquivos e bancos de dados fornecem armazenamento de dados. Os tipos de banco de dados incluem hierárquico, rede e relacional.
F. Os serviços executam tarefas para os aplicativos. Os serviços normalmente habilitados incluem execução de programas, operações de E/S, deteção de erros e proteção.
G. Os serviços de middleware e utilitários gerenciam tarefas como armazenamento em fita, enfileiramento, 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 trabalho 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 nos diagramas revelam onde a solução refatorada lida com a funcionalidade de mainframe correspondente.
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
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 ao sistema. O acesso do usuário a aplicativos da Web é feito pela porta TLS 443. Você pode manter a interface do usuário dos aplicativos Web igual para minimizar o retreinamento do usuário final ou atualizá-la usando estruturas de UX modernas. O Azure Bastion fornece acesso de administrador às máquinas virtuais (VMs), maximizando a segurança minimizando as portas abertas.
Uma vez no Azure, o acesso aos clusters de computação do aplicativo é feito por meio de um balanceador de carga do Azure. Essa abordagem permite recursos de computação escaláveis para processar o trabalho de entrada. Dependendo da entrada, você pode balancear a carga no nível do aplicativo ou no nível do protocolo de rede.
Advanced suporta a implantação em contêineres, VMs ou Conjuntos de Dimensionamento de Máquina Virtual. Os contêineres e os conjuntos de dimensionamento de máquinas virtuais, ao contrário das VMs, podem ser dimensionados rapidamente. Mudar a unidade de dimensionamento para contêineres otimiza a utilização da infraestrutura.
Os servidores de aplicativos recebem a entrada nos clusters de computação e compartilham o estado e os dados do aplicativo usando o Cache do Azure para Redis ou o RDMA (Acesso Remoto Direto à Memória).
Os serviços de dados nos clusters de aplicativos permitem várias conexões com fontes de dados persistentes. As possíveis fontes de dados incluem:
- Base de Dados SQL do Azure.
- Azure Cosmos DB.
- Bancos de dados em VMs, como Oracle e Db2.
- Repositórios de Big Data, como o Azure Databricks e o Azure Data Lake.
- Serviços de streaming de dados, como Kafka e Azure Stream Analytics.
Os servidores de aplicativos hospedam vários programas de aplicativos com base na capacidade da linguagem, como classes Java ou programas COBOL.
Os serviços de dados utilizam uma combinação de:
Armazenamento de alto desempenho: SSD Premium do Azure e Armazenamento em Disco Ultra do Azure.
Armazenamento de ficheiros: Azure NetApp Files e Azure Files.
Armazenamento padrão: Armazenamento, arquivamento e backup de Blobs do Azure. O backup pode ser:
- Armazenamento com redundância local (LRS).
- Armazenamento com redundância entre zonas (ZRS).
- Armazenamento georredundante (GRS).
- Armazenamento com redundância de zona geográfica (GZRS).
Para obter mais informações sobre redundância, consulte Redundância de armazenamento do Azure.
Os serviços de dados da plataforma Azure como serviço (PaaS) fornecem armazenamento de dados escalável e altamente disponível para compartilhar entre vários recursos de computação em um cluster. Estes também podem ser redundantes geograficamente.
O Azure Data Factory pode ingerir dados e sincronizar com várias fontes de dados dentro e de fontes externas. O armazenamento de Blob do Azure é uma zona de aterrissagem comum para fontes de dados externas.
O Azure Site Recovery fornece recuperação de desastres dos componentes de cluster de VM e contêiner.
Os aplicativos se conectam a pontos de extremidade privados dos vários serviços 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 estende suas redes locais para o Azure por meio de uma conexão de fibra privada e dedicada de um provedor de conectividade. O ExpressRoute estabelece conexões com os serviços de nuvem da Microsoft, como o Azure e o Microsoft 365.
- O Azure Bastion 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 (Transport Layer Security). O Azure Bastion maximiza a segurança de acesso de administrador 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 Serviço Kubernetes do Azure (AKS) é um serviço Kubernetes totalmente gerenciado para implantar e gerenciar aplicativos em contêineres. O AKS oferece 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 oferecem vários tamanhos e tipos de recursos de computação escaláveis sob demanda. Com as VMs do Azure, você obtém a flexibilidade da virtualização sem precisar comprar e manter hardware físico.
- A Rede Virtual do Azure é o bloco de construção fundamental das redes privadas do Azure. As VMs em redes virtuais podem se comunicar com segurança entre si, com a Internet e com 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 Azure Private Link fornece conectividade privada de uma rede virtual para os serviços do Azure. O Private Link elimina a exposição pública à Internet para simplificar a arquitetura de rede e proteger as conexões entre os pontos de extremidade do Azure.
- O Cache Redis do Azure adiciona uma camada de cache rápida à arquitetura do aplicativo para lidar com grandes volumes em alta velocidade. O Cache Redis do Azure dimensiona o desempenho de forma simples e econômica, com os benefícios de um serviço totalmente gerenciado.
- O Armazenamento do Azure é um armazenamento em nuvem escalável e seguro para todos os seus dados, aplicativos e cargas de trabalho.
- O Armazenamento em Disco do Azure é um 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 gerenciados pelo Azure em VMs do Azure. Os tipos de armazenamento em disco disponíveis são Ultra Disk Storage, SSD Premium, SSD Standard e HDD Standard. Essa arquitetura usa SSD Premium ou Ultra Disk Storage.
- 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. Implantações de Windows, Linux e macOS locais e na nuvem podem montar compartilhamentos de arquivos simultaneamente.
- Os Arquivos NetApp do Azure fornecem compartilhamentos de arquivos do Azure de nível empresarial que são alimentados pela NetApp. Os Arquivos NetApp do Azure facilitam para as empresas a migração e a execução de aplicativos complexos baseados em arquivos sem alterações de código.
- O Armazenamento de Blobs do Azure é 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.
- 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 do Azure é um mecanismo de banco de dados 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 corrigido com alta disponibilidade. Os recursos integrados de gerenciamento de banco de dados PaaS incluem atualização, aplicação de patches, backups e monitoramento. Você pode 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 baseado no mecanismo de banco de dados relacional PostgreSQL de código aberto. A opção de implantação Hyperscale (Citus) dimensiona consultas em várias máquinas usando fragmentação, para aplicativos que exigem maior escala e desempenho.
- O Azure Cosmos DB é um banco de dados NoSQL rápido e totalmente gerenciado com APIs abertas para qualquer escala.
- O Azure Site Recovery espelha as VMs do Azure em uma região secundária do Azure para failover rápido e recuperação de dados se um datacenter do Azure falhar.
- O Azure Data Factory é um serviço de extração, transformação e carregamento (ETL) para expansão, integração de dados sem servidor e transformação de dados. Este serviço oferece uma IU sem código para criação intuitiva e monitorização e gestão num único painel de transparência.
Detalhes do cenário
Há muitas razões para procurar alternativas aos aplicativos de mainframe baseados em COBOL que ainda são comuns:
- Os desenvolvedores COBOL e CA-Gen/Natural/Telon/ASDO estão se aposentando e ninguém é treinado para substituí-los, resultando em um pool de talentos cada vez menor. À medida que a escassez de talentos cresce, os custos e riscos de confiar no COBOL e em outros idiomas legados aumentam.
- Os aplicativos não foram projetados para TI moderna, resultando em integrações difíceis e flexibilidade limitada.
- O hardware e o software de mainframe da IBM são caros, e as taxas de licenciamento e manutenção para aplicativos e bancos de dados auxiliares de mainframe estão aumentando.
A solução de refatoração automatizada COBOL da Advanced refatora aplicativos COBOL, bem como aqueles escritos em outras linguagens legadas, para fornecer aplicativos habilitados para nuvem e bancos de dados que são funcionalmente equivalentes aos seus homólogos legados. Isso reduz custos, permite uma integração mais profunda e permite a personalização para atender aos requisitos de negócios. Além disso, ele desbloqueia um mundo totalmente novo de qualidade e escalabilidade, desde testes automatizados até garantia de qualidade, e a capacidade de se beneficiar de implantações e orquestração em contêineres com Docker e Kubernetes.
As aplicações refatoradas:
- São funcionalmente equivalentes aos originais.
- São fáceis de manter — atingem classificações SonarQube A e seguem conceitos e paradigmas orientados a objetos.
- Desempenho tão ou melhor do que os originais.
- Estão prontos para a nuvem e são fornecidos usando uma cadeia de ferramentas de DevOps padrão e práticas recomendadas.
O processo de refatoração inclui normalização de fluxo, reestruturação de código, extração de camada de dados, remodelação de dados e 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. Dados complexos e análise de dependência de controle localiza e remove código morto.
Uma vez que a solução avançada refatora os aplicativos COBOL e bancos de dados associados, os desenvolvedores Java e C# podem usar ferramentas padrão de DevOps e 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 granular de serviço e fácil integração com serviços nativos da nuvem.
A refatoração automatizada de COBOL está disponível para a maioria dos dialetos e plataformas COBOL, incluindo z/OS, OpenVMS e VME.
Potenciais casos de utilização
A refatoração avançada beneficia muitos cenários, incluindo:
- Empresas que procuram:
- Modernize a infraestrutura e escape dos custos, limitações e rigidez exorbitantes associados aos mainframes.
- Evite o risco associado à escassez de habilidades em torno de sistemas e aplicativos legados adotando nativos da nuvem e DevOps.
- Reduzir os custos operacionais e de despesas de capital.
- Organizações que desejam migrar cargas de trabalho de mainframe para a nuvem sem regravações manuais dispendiosas e propensas a erros.
- Organizações que precisam migrar aplicativos críticos para os negócios enquanto mantêm a continuidade com outros aplicativos locais.
- Equipas que procuram a escalabilidade horizontal e vertical que o Azure oferece.
- Empresas que privilegiam soluções com opções de recuperação de desastres.
Considerações
Incorpore os seguintes pilares do Microsoft Azure Well-Architected Framework para um sistema altamente disponível e seguro:
Disponibilidade
- A arquitetura usa o Azure 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.
- A replicação de grupo de failover automático do Azure gerencia a replicação de banco de dados e o failover para a região secundária.
Operações
A refatoração não só suporta uma adoção mais rápida da nuvem, mas também 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.
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 Link Privado para o Banco de Dados SQL do Azure fornece uma conexão privada e direta que é isolada ao 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 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.
Resiliência
A resiliência é incorporada nesta solução pelos balanceadores de carga. Se um servidor de apresentação ou 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 testes de integridade. Conjuntos de disponibilidade e armazenamento com redundância geográfica são altamente recomendados.
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. Consulte o Azure Well-Architected Framework para obter mais informações sobre otimização de custos para instâncias de VM.
- As VMs nessa arquitetura usam SSD Premium ou Ultra Disk Storage. Para obter mais informações sobre opções de disco e preços, consulte Preços de discos gerenciados.
- O Banco de dados SQL otimiza os custos com computação sem servidor e recursos de armazenamento Hyperscale que são dimensionados automaticamente. Para obter mais informações sobre 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 desta solução.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Bhaskar Bandam - Brasil | TPM Sénior
Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.
Próximos passos
- Para mais informações, por favor contacte legacy2azure@microsoft.com.
- Plataforma de Modernização como Serviço (ModPaaS)
- Solução de refatoração COBOL automatizada da Advanced
- Estudo de caso: Modernizando-se para a nuvem enquanto corre o relógio.