Essa arquitetura mostra como o compilador Raincode COBOL moderniza aplicativos herdados de mainframe migrando e integrando-os perfeitamente a uma pilha de tecnologia moderna baseada no Azure sem alterar uma única linha de código. Com a tecnologia de compilador do Raincode, você pode manter os aplicativos de mainframe otimizados atuais e implantá-los na nuvem, permitindo preservar décadas de desenvolvimento e, ao mesmo tempo, melhorar consideravelmente o desempenho e a flexibilidade. A solução da Raincode visa transformar o mainframe em uma arquitetura nativa do Azure, preservando a lógica de negócios e transformando toda a arquitetura. O Raincode oferece suporte à flexibilidade de aplicativos no Linux e no Windows com implantações de máquinas virtuais ou em contêineres no Azure.
Arquitetura
Arquitetura herdada do IBM z/OS
O diagrama a seguir mostra um exemplo de uma arquitetura de mainframe baseada em COBOL herdada, antes da migração para o Azure.
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
As seguintes anotações são mapeadas do IBM z/OS de origem para o Azure:
A. A emulação de terminal do IBM 3270 para usuários on-line e de demanda é substituída por um navegador da Web para acessar recursos do sistema no Azure.
B. COBOL e outro código de aplicativo herdado é convertido em C#/.NET. O Raincode gera código gerenciado e 100% seguro para threads para .NET e .NET Core.
C. O compilador Raincode COBOL moderniza aplicativos legados de mainframe migrando e integrando-os perfeitamente a uma pilha de tecnologia moderna e baseada em nuvem sem alterar uma única linha de código.
D. As funções de automação de carga de trabalho, agendamento, relatórios e monitoramento do sistema podem manter as plataformas atuais, como são capazes do Azure hoje.
E. Estruturas de banco de dados herdadas, como DB2 e IDMS, podem ser migradas para o Banco de Dados SQL do Azure com todos os recursos de DR/HA fornecidos pelo Azure. O Raincode também dá suporte a consultas SQL estáticas ou dinâmicas por meio do SQL Server ou no Banco de Dados SQL do Azure.
F. As estruturas de arquivo (VSAM, arquivos simples, fita virtual e similares) são mapeadas facilmente para construções de dados do Azure em arquivos estruturados e/ou armazenamento de blobs. Recursos como replicação geográfica redundante e Replicação de Grupo de Failover Automático do Azure estão disponíveis para fornecer proteção de dados.
G. Um subsistema de impressora opcional gerencia impressoras locais.
H. z/OS em execução em partições lógicas (LPARs).
I. As LPARs representam um subconjunto dos recursos de hardware de um computador. Cada LPAR pode hospedar um sistema operacional separado. Embora este exemplo mostre apenas instâncias do Z/OS, outras LPARs em execução no mesmo hardware podem hospedar outros ambientes operacionais, como z/VM, ou outros mecanismos, como zIIP ou IFL.
Pós-migração, arquitetura baseada no Azure
Este diagrama mostra como a arquitetura herdada pode ser migrada para o Azure, aproveitando o compilador Raincode e muitos outros serviços modernos do Azure.
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
Acesso de usuário fornecido pela porta TLS 443 para acessar aplicativos baseados na Web. A camada de apresentação de aplicativos baseados na Web pode ser mantida praticamente inalterada para minimizar o retreinamento do usuário final. Como alternativa, a camada de apresentação do aplicativo Web pode ser atualizada com estruturas modernas de UX, conforme necessário.
No Azure, o acesso aos clusters de computação de aplicativos é feito por meio do Balanceador de Carga do Azure, permitindo recursos de computação em expansão para processar o trabalho de entrada.
O software de emulação do sistema Raincode também pode suportar a implantação em contêineres. Com a tecnologia de compilador de ponta do Raincode, você pode manter os aplicativos de mainframe otimizados atuais e implantá-los no .NET Core.
Os aplicativos nativos da nuvem são uma coleção de serviços independentes e autônomos empacotados como contêineres leves.
Ao contrário das máquinas virtuais, os contêineres podem ser dimensionados e dimensionados rapidamente. Como a unidade de dimensionamento muda para contêineres, a utilização da infraestrutura é otimizada.
Os serviços de dados usam uma combinação de armazenamento de alto desempenho em discos de estado sólido (SSDs) Ultra ou Premium, armazenamento de arquivos em Arquivos NetApp do Azure ou Arquivos do Azure e armazenamento padrão de blob, arquivamento e backup que pode ser localmente redundante ou com redundância geográfica.
Banco de Dados SQL do Azure usando camadas de Hiperescala ou Críticas de Negócios para IOPS altas e SLA de alto tempo de atividade. Além disso, o Private Link for Azure SQL Database é usado para fornecer uma conexão privada e direta isolada ao Backbone de Rede do Azure da VM do Azure para o Banco de Dados SQL do Azure. As ferramentas de migração de dados Raincode podem converter esquemas DMS/RDMS em SQL.
O Armazenamento de Blobs do Azure é uma zona de aterrissagem comum para fontes de dados externas.
Uma implementação do Ative Directory precisa ser criada ou já estar em vigor. O Raincode fornece integração de identidade RACF e Top Secret usando extensões do Ative Directory.
Componentes
O Serviço Kubernetes do Azure (AKS) é um serviço Kubernetes totalmente gerenciado para implantar e gerenciar aplicativos em contêineres em clusters de computação baseados em contêiner.
A Rede Virtual do Azure (VNet) é o bloco de construção fundamental para a sua rede privada no Azure. A VNet permite que muitos tipos de recursos do Azure, como as Máquinas Virtuais (VM) do Azure, se comuniquem com segurança entre si, com a Internet e com redes locais. A VNet é semelhante a uma rede tradicional que você operaria em seu próprio datacenter, mas traz mais benefícios da infraestrutura do Azure, como escala, disponibilidade e isolamento.
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. As partilhas de ficheiros do Azure podem ser montadas em simultâneo por implementações na cloud ou no local do Windows, Linux e macOS.
O Azure ExpressRoute permite-lhe expandir as redes no local para a cloud da Microsoft através de uma ligação privada facilitada por um fornecedor de conectividade. Com o ExpressRoute, você pode estabelecer conexões com serviços de nuvem da Microsoft, como o Microsoft Azure e o Office 365.
O Azure Load Balancer opera na camada quatro do modelo OSI (Open Systems Interconnection). É o único ponto de contacto para os clientes. O Load Balancer distribui fluxos de entrada que chegam ao front-end do balanceador de carga para instâncias do pool de back-end. Esses fluxos estão de acordo com regras de balanceamento de carga e testes de integridade configurados. As instâncias do pool de back-end podem ser Máquinas Virtuais do Azure ou instâncias em um conjunto de dimensionamento de máquina virtual.
O Banco de Dados SQL do Azure é um mecanismo de banco de dados de plataforma como serviço (PaaS) totalmente gerenciado que sempre executa a versão estável mais recente do SQL Server e do sistema operacional corrigido, com 99,99% de disponibilidade. O Banco de dados SQL lida com atualização, aplicação de patches, backups, monitoramento e a maioria das outras funções de gerenciamento de banco de dados sem o envolvimento do usuário. Esses recursos de PaaS permitem que você se concentre na administração e otimização de bancos de dados críticos para os negócios e específicos do domínio.
O Azure Cosmos DB é um serviço PaaS do Azure para bancos de dados NoSQL.
O Banco de Dados do Azure para PostgreSQL é um serviço PaaS do Azure para bancos de dados PostgreSQL.
Detalhes do cenário
Essa arquitetura ilustra como a solução Raincode é executada no Azure. O Raincode no Azure suporta os seguintes recursos:
Código gerenciado e 100% seguro para threads para .NET e .NET Core.
Uma solução destinada principalmente a transformar mainframes em uma arquitetura nativa da nuvem.
Suporte nativo para consultas SQL estáticas ou dinâmicas por meio do SQL Server local ou no Banco de Dados SQL do Azure.
Suporte para DB2 (através do HIS da Microsoft) e SQL Server.
Integração com Visual Studio, com um depurador, compilador, configurações,# IntelliSense, colorizador de código e gerenciamento de projetos.
Suporte para todos os tipos de dados COBOL, com representação de memória de mainframe.
Integração perfeita com compiladores PL/I e ASM370.
Um repositório com gráficos de chamadas, estatísticas e outras informações em tempo de compilação.
Suporte EBCDIC nativo em tempo de compilação e tempo de execução.
A migração para uma infraestrutura de nuvem moderna e distribuída usando o Raincode permite:
Facilitar novos desenvolvimentos e manutenções em C#.
Liberte-se do fardo financeiro dos custos de licenciamento COBOL.
Adote uma plataforma flexível e escalável usando as tecnologias mais recentes por meio do .NET Core.
Integre com aplicações modernas, como web e dispositivos móveis, para melhorar a experiência do cliente.
Transforme seus aplicativos legados monolíticos em arquitetura micro ou orientada a serviços (SOA).
Controle seu custo total de propriedade (TCO) usando os recursos de escalabilidade e disponibilidade do Azure.
Potenciais casos de utilização
Muitos casos de uso podem se beneficiar do compilador Raincode; As possibilidades incluem:
Empresas que buscam modernizar a infraestrutura e escapar dos altos custos, limitações e rigidez associados aos mainframes.
Reduzindo a dívida técnica com a adoção de nuvem nativa e DevOps.
Redução dos custos operacionais e de despesas de capital.
Organizações que optam por mover cargas de trabalho de mainframe IBM zSeries para a nuvem sem os efeitos colaterais de um redesenvolvimento completo.
Clientes de mainframe IBM zSeries que precisam migrar aplicativos de missão crítica 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 que oferecem opções de recuperação de desastres.
Aproveitando as mais recentes inovações de desenvolvimento de software: ferramentas, frameworks, linguagens e práticas.
Considerações
As considerações a seguir se aplicam a esta solução.
Disponibilidade
- A arquitetura Raincode 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 (DR) se um datacenter do Azure falhar.
Operações
Cada serviço de um aplicativo nativo da nuvem passa por um ciclo de vida independente, que é gerenciado por meio de um processo ágil de DevOps.
Vários pipelines de integração contínua/entrega contínua (CI/CD) podem trabalhar em conjunto para implantar e gerenciar um aplicativo nativo da nuvem.
Eficiência de desempenho
Os aplicativos nativos da nuvem são uma coleção de serviços independentes e autônomos que são empacotados como contêineres leves.
Ao contrário das máquinas virtuais, os contêineres podem ser expandidos e dimensionados rapidamente.
Como a unidade de dimensionamento muda para contêineres, o uso da infraestrutura é otimizado.
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.
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.
Otimização de custos
O compilador Raincode COBOL facilita o novo desenvolvimento em C# e elimina a carga financeira dos custos de licenciamento COBOL.
Suporte nativo para SQL e CICS. O código-fonte depurado é o mesmo que o código-fonte que está sendo mantido, em vez da saída de um pré-processador.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Jonathon Frost - Brasil | Engenheiro de Software Principal
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 ou consulte os seguintes recursos:
Leia o panorama técnico do Raincode.