Esta arquitetura de referência mostra como você pode usar o Azure para reprojetar um aplicativo em lote de mainframe z/OS para fornecer um sistema seguro, escalável e altamente disponível na nuvem usando o Azure. Devido às necessidades de negócios em constante evolução, os dados e aplicativos precisam ser fornecidos e dimensionados sem afetar sua infraestrutura. A reengenharia para a nuvem pode ajudar as empresas de finanças, saúde, seguros e varejo a minimizar os prazos de entrega de produtos ou recursos e reduzir custos.
Arquitetura de mainframe
O primeiro diagrama mostra a arquitetura de um aplicativo em lote típico em execução em um mainframe z/OS.
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
Os processos em lote de mainframe podem ser acionados em um horário agendado usando um Agendador de Operação, Planejamento e Controle (OPC). Eles também podem ser acionados por uma mensagem colocada em uma fila de mensagens, como uma mensagem que anuncia que um arquivo foi criado.
Um dispositivo de armazenamento de acesso direto (DASD) de mainframe é usado para armazenar arquivos de entrada e saída; por exemplo, arquivos simples que são exigidos pelo aplicativo. Você pode acionar o processo em lote criando um arquivo no armazenamento DASD.
O processo em lote é uma execução de um conjunto de trabalhos, como um trabalho executando internamente um usuário ou programa do sistema para executar uma tarefa específica. Normalmente, os processos em lote são executados sem interação do usuário. Todos os trabalhos em lote em um mainframe são executados sob o controle de um JES (Job Execution System).
Programas em processos em lote podem ler/gravar dados de:
- Um banco de dados baseado em arquivo como o Virtual Storage Access Method (VSAM).
- Um banco de dados relacional como Db2 ou Informix.
- Um banco de dados não relacional como o Information Management System (IMS).
- Uma fila de mensagens.
A saída da execução do trabalho pode ser monitorada por meio de um agendador OPC ou Tivoli Workload Scheduler (TWS). Um System Display and Search Facility (SDSF) no JES também é usado no mainframe para verificar o status de execução do trabalho.
A camada de gerenciamento fornece os seguintes serviços:
- Controle do código-fonte, como Endevor ou Changeman.
- Segurança, como o Resource Access Control Facility (RACF). Essa segurança fornece autenticação para executar lotes, acessar arquivos e acessar o banco de dados.
- Gerenciamento de saída que suporta o armazenamento e a pesquisa de logs de execução de tarefas.
Arquitetura do Azure
O segundo diagrama mostra como você pode usar os serviços do Azure para reprojetar um aplicativo semelhante com recursos e flexibilidade adicionais.
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
Use um dos seguintes gatilhos para iniciar o processo em lote do Azure.
- Use o agendador de tarefas do Azure Databricks ou o agendador do Azure Function.
- Crie uma tarefa de processo em lote recorrente com os Aplicativos Lógicos do Azure.
- Use um evento de armazenamento, como a criação ou exclusão de um arquivo no Blob do Azure ou no armazenamento de arquivos.
- Use um gatilho baseado em mensagem, como a chegada de uma mensagem no Barramento de Serviço do Azure.
- Crie um gatilho do Azure Data Factory .
Armazene arquivos migrados do mainframe usando o Armazenamento de Blob do Azure ou os Arquivos do Azure. Os processos em lote reprojetados no Azure podem ler/gravar dados desse armazenamento.
O Azure fornece vários serviços para implementar uma carga de trabalho em lote de mainframe. Selecione serviços específicos baseados nos requisitos da sua empresa. Por exemplo, o poder de computação necessário, o tempo total de execução, a capacidade de dividir o processo em lote do mainframe em unidades menores e a sensibilidade ao custo.
- O Azure Databricks é uma plataforma de análise baseada no Apache Spark. Os trabalhos podem ser escritos nas linguagens R, Python, Java, Scala e Spark SQL. Ele fornece um ambiente de computação com tempos de início de cluster rápidos, terminação automática e dimensionamento automático. Ele tem integração interna com o armazenamento do Azure, como o Armazenamento de Blob do Azure e o armazenamento do Azure Data Lake. Use o Azure Databricks se precisar processar grandes quantidades de dados em um curto espaço de tempo. Também é uma boa opção se você precisar executar cargas de trabalho de Extrair, Transformar e Carregar (ETL).
- O AKS e o Service Fabric fornecem uma infraestrutura para implementar uma arquitetura de aplicativo baseada em serviços. Pode não ser rentável para uma única aplicação. Você pode refatorar seu aplicativo de mainframe usando Java Spring Boot. A melhor maneira de executar aplicativos Spring Boot no Azure é usar o Azure Spring Apps, um serviço Spring totalmente gerenciado. Os desenvolvedores Java podem usá-lo para criar e executar facilmente o Spring Boot Microservices no Azure.
- Você pode reprojetar seu aplicativo em lote de mainframe usando .NET ou Java. O Batch fornece a infraestrutura para executar esse aplicativo em escala. Ele cria e gerencia um pool de máquinas virtuais (VMs), instala os aplicativos e, em seguida, agenda trabalhos para execução nas VMs. Não há cluster ou software de agendamento de tarefas para instalar, gerenciar ou dimensionar. Escreva aplicações em qualquer linguagem de programação suportada pelo Windows ou Linux.
- Você pode reprojetar programas em lote COBOL ou PL/1 de curta execução. Para esses programas, use serviços do Azure como Functions, WebJobs ou Aplicativos Lógicos.
O Azure fornece vários serviços de dados para armazenar e recuperar dados.
- Você pode migrar bancos de dados relacionais de mainframe como DB2 e Informix com alterações mínimas na visibilidade das ofertas de banco de dados relacional do Azure. Por exemplo, serviços de banco de dados relacional como Azure SQL VM, Azure SQL DB ou Azure SQL MI. Você também pode usar qualquer RDBMS (Sistema de Gerenciamento de Banco de Dados Relacional) de código aberto, como o Azure PostgreSQL. A seleção de um banco de dados do Azure depende do tipo de carga de trabalho, consultas entre bancos de dados, requisitos de confirmação em duas fases e muitos outros fatores.
- Você pode migrar bancos de dados não relacionais de mainframe como IMS, IDMS (Integrated Data Management System) ou VSAM para o Azure Cosmos DB. O Azure Cosmos DB fornece tempos de resposta rápidos, escalabilidade automática e instantânea e velocidade garantida em qualquer escala. É uma opção econômica para cargas de trabalho imprevisíveis ou esporádicas de qualquer tamanho ou escala. Os desenvolvedores podem começar facilmente sem ter que planejar ou gerenciar a capacidade.
- Você pode usar o Cache Redis do Azure para acelerar um aplicativo reprojetado.
Os aplicativos, o sistema operacional e os recursos do Azure podem usar agentes para enviar logs e métricas para os Logs do Azure Monitor.
- O Application Insight monitora seu aplicativo migrado. Ele deteta automaticamente anomalias de desempenho e inclui poderosas ferramentas de análise para ajudá-lo a diagnosticar problemas.
- O Azure Log Analytics ajuda a armazenar, indexar, consultar e derivar análises dos dados de log coletados.
Você pode usar a saída do Log Analytics e do Application Insights para criar alertas e painéis ou exportar para serviços externos. Você também pode usar a saída para executar uma ação como o dimensionamento de uma VM.
Essa camada fornece serviços do Azure para controle do código-fonte, segurança e gerenciamento de saída. Esses serviços podem consistir em Azure DevOps e Microsoft Entra ID.
Componentes
Rede e identidade
- Azure ExpressRoute: ExpressRoute permite estender suas redes locais para a nuvem da Microsoft por meio de uma conexão privada de um provedor de conectividade. Com a Rota Expressa, você pode estabelecer conexões com serviços de nuvem da Microsoft, como o Microsoft Azure e o Office 365.
- Gateway de VPN do Azure: um gateway VPN é um tipo específico de gateway de rede virtual usado para enviar tráfego criptografado entre uma rede virtual do Azure e um local local pela Internet pública.
- Microsoft Entra ID: O Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso que pode ser sincronizado com um diretório local.
Aplicação
- Aplicativos lógicos: os aplicativos lógicos ajudam você a criar e executar tarefas e processos recorrentes automatizados em um cronograma. Você pode chamar serviços dentro e fora do Azure, como pontos de extremidade HTTP ou HTTPS. Você também pode postar mensagens nos serviços do Azure, como o Barramento de Serviço do Azure, ou obter arquivos carregados em um compartilhamento de arquivos.
- Service Bus: Você pode usar o Service Bus para mensagens entre uma interface de usuário e serviços back-end. Este sistema pode dissociar aplicações e serviços e aumentar a fiabilidade e utilização.
- Azure Databricks: o Azure Databricks é uma ferramenta de engenharia de dados baseada na nuvem utilizada para processar e transformar grandes quantidades de dados. Em seguida, você pode explorar esses dados por meio de modelos de aprendizado de máquina.
- Azure Spring Apps: o Azure Spring Apps facilita a implantação, o gerenciamento e a execução de microsserviços Spring no Azure. Ele suporta Java e .NET Core.
- AKS: O AKS simplifica a implantação de um cluster Kubernetes gerenciado no Azure descarregando a sobrecarga operacional para o Azure.
- Lote: o lote foi projetado para executar computação em lote de uso geral na nuvem em muitas VMs que podem ser dimensionadas com base na carga de trabalho que está sendo executada. É perfeito para casos de uso de ETL ou IA em que várias tarefas são executadas em paralelo, independentemente umas das outras.
- Funções: Use o Functions para executar pequenos pedaços de código sem se preocupar com a infraestrutura do aplicativo. Com o Functions, a infraestrutura de nuvem fornece todos os servidores atualizados de que você precisa para manter seu aplicativo funcionando em escala.
- Serviço de Aplicativo do Azure: com WebJobs, um recurso do Serviço de Aplicativo, você pode codificar a lógica de negócios em segundo plano reutilizável como trabalhos Web.
- Cache do Azure para Redis: os aplicativos que usam um grande volume de dados de back-end podem ser desenvolvidos para dimensionar e fornecer um desempenho altamente otimizado integrando-se a um armazenamento de dados na memória como o Redis. O Cache do Azure para Redis oferece o Redis de código aberto (OSS Redis) e um produto comercial do Redis Labs, Redis Enterprise, como um serviço gerenciado.
Armazenamento
O armazenamento do Azure fornece várias camadas de dados quentes, frescos e de arquivamento. O uso efetivo desses níveis de armazenamento pode oferecer uma vantagem de preço em relação ao desempenho.
- Armazenamento de Blob: armazenamento de objetos escalável e seguro para cargas de trabalho nativas da nuvem, arquivos, data lakes, computação de alto desempenho e aprendizado de máquina.
- Azure Files: Compartilhamentos de arquivos na nuvem de nível empresarial simples, seguros e sem servidor. Os Arquivos do Azure podem ser particularmente úteis para soluções de mainframe reprojetadas. Ele fornece um complemento eficaz para o armazenamento SQL gerenciado.
- Armazenamento de tabelas: um armazenamento de chave-valor NoSQL para desenvolvimento rápido usando grandes conjuntos de dados semiestruturados.
- Armazenamento de Filas do Azure: Fila de mensagens simples, econômica e durável para grandes cargas de trabalho.
- Azure SQL: a família de serviços totalmente gerenciada do Azure para SQL Server. Você pode migrar e usar os dados relacionais de forma eficiente com outros serviços do Azure, como a Instância Gerenciada SQL do Azure, o SQL Server em Máquinas Virtuais do Azure e o Banco de Dados do Azure para MariaDB.
- Azure Cosmos DB: Uma oferta no-SQL que você pode usar para migrar dados não tabulares dos mainframes.
Monitorização
- Azure Monitor: o Azure Monitor oferece uma solução abrangente para coletar, analisar e agir em telemetria de ambientes locais e na nuvem. Ele contém os recursos Application Insights, Azure Monitor Logs e Azure Log Analytics.
Gestão
Azure DevOps: Reprojete aplicativos de mainframe no Azure durante cada fase de desenvolvimento de software e colaboração em equipe. O DevOps fornece os seguintes serviços:
- Azure Boards: Planejamento ágil, acompanhamento de item de trabalho, visualização e ferramenta de relatórios.
- Azure Pipelines: uma linguagem, plataforma e plataforma de CI/CD agnóstica em nuvem com suporte para contêineres ou Kubernetes.
- Azure Repos: fornece repositórios git privados hospedados na nuvem.
- Azure Artifacts: fornece gerenciamento de pacotes integrado com suporte para feeds de pacotes Maven, npm, Python e NuGet de fontes públicas ou privadas.
- Planos de Teste do Azure: fornece uma solução de teste integrada, planejada e exploratória.
Detalhes do cenário
Os mainframes são usados principalmente para processar grandes quantidades de dados. O processamento em lote é uma maneira de processar um grande volume de transações que são agrupadas e, em seguida, fazer atualizações em massa no banco de dados. Uma vez acionados, eles exigem pouca ou nenhuma interação do usuário. Por exemplo, os sistemas de mainframe possibilitam que bancos e outras instituições financeiras façam o processamento de fim de trimestre e produzam relatórios, como extratos trimestrais de ações ou pensões.
Potenciais casos de utilização
Esta solução é ideal para os setores financeiro, de seguros, de saúde e de varejo. Use essa arquitetura para reprojetar aplicativos de mainframe no Azure. A arquitetura funciona melhor para:
- Aplicativos em lote de mainframe que consomem muitos recursos.
- Aplicativos em lote que precisam de alta computação durante um determinado período, como final de mês, trimestre ou ano.
- Processos em lote de mainframe que são repetitivos e não consomem muitos recursos, mas podem precisar de utilização por sistemas externos.
Considerações
Disponibilidade
- A arquitetura de lote neste artigo usa computação de vários nós ou serviços PaaS, que fornecem alta disponibilidade.
- Os serviços de banco de dados do Azure dão suporte à redundância de zona e você pode projetá-los para failover em um nó secundário se houver uma interrupção ou durante uma janela de manutenção.
Escalabilidade
Os seguintes serviços do Azure nesta arquitetura têm capacidades de dimensionamento automático:
- Azure Databricks
- AKS
- Aplicações Spring
- Batch
- Funções do Azure
- Logic Apps
Para obter mais informações sobre o dimensionamento automático no Azure, consulte o guia de dimensionamento automático.
Segurança
- Esta arquitetura de referência utiliza o ExpressRoute para uma ligação privada e eficiente ao Azure a partir do ambiente local. No entanto, você também pode criar uma VPN site a site.
- Você pode autenticar recursos do Azure usando o Microsoft Entra ID. Você pode gerenciar permissões com RBAC (controle de acesso baseado em função).
- Os serviços de banco de dados no Azure oferecem suporte a várias opções de segurança, como Criptografia de Dados em Repouso.
- Para obter mais informações sobre como projetar soluções seguras, consulte a documentação de segurança do Azure.
Resiliência
- Você pode usar o Azure Monitor e o Application Insights, além do Log Analytics, para monitorar a integridade de um recurso do Azure. Defina alertas para gerenciar proativamente a integridade dos recursos.
- Para obter mais informações sobre resiliência no Azure, consulte Projetando aplicativos confiáveis do Azure.
Otimização de custos
Use a calculadora de preços do Azure para estimar os custos dos recursos do Azure.
Consulte Aplicativo em lote de mainframes do Azure para obter um exemplo de estimativa de custo de serviços.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Ashish Khandelwal - Brasil | Gerente Principal de Arquitetura de Engenharia
Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.
Próximos passos
- Para obter mais informações, contacte datasqlninja@microsoft.com.
- Veja os Guias de migração de bases de dados do Azure.