Translate

segunda-feira, 17 de julho de 2023

IBM Z Resiliency : 20 Laboratórios Práticos para um Padawan COBOL

 

Bellacosa Mainframe e o laboratorio pratico em IBM Z Resiliency

☕ O Holocron da IBM Z Resiliency

Este material foi desenvolvido para ajudar o programador COBOL Padawan a compreender que, no universo IBM Z Mainframe, escrever código é apenas parte da construção de sistemas críticos. O objetivo é apresentar os conceitos de IBM Z Resiliency de forma progressiva, combinando teoria, exemplos práticos e 20 laboratórios que mostram como desenvolver aplicações mais confiáveis, disponíveis e preparadas para falhas. 

A metodologia adota uma abordagem "do básico ao avançado", na qual cada laboratório amplia os conhecimentos sobre RAS (Reliability, Availability and Serviceability), High Availability, Disaster Recovery, Parallel Sysplex, GDPS, Db2, CICS e boas práticas de desenvolvimento para ambientes corporativos.

No dia a dia, o desenvolvedor aprenderá a implementar tratamentos de erro, checkpoints, commits, rollback, logs, estratégias de retry, idempotência e recuperação automática, compreendendo como seu código influencia diretamente a continuidade dos negócios. Mais do que programar, o profissional passa a entender a infraestrutura que sustenta aplicações bancárias, governamentais e de grandes empresas. 

As boas práticas incluem escrever código limpo, tratar exceções adequadamente, monitorar desempenho, documentar processos, eliminar pontos únicos de falha, colaborar com Sysprogs e DBAs e adotar ferramentas modernas como Git, Zowe, DevOps, APIs REST e Inteligência Artificial. Dessa forma, o Padawan evolui para um desenvolvedor capaz de criar soluções resilientes, escaláveis e preparadas para os desafios do IBM Z moderno.

20 Laboratórios Práticos para um Padawan COBOL

Do "Meu Programa Funciona" até "Meu Sistema Nunca Para"

Objetivo: ensinar um desenvolvedor COBOL a pensar como um engenheiro de sistemas críticos, entendendo que escrever código é apenas uma parte da construção de aplicações resilientes no IBM Z.


LAB 1 — Descobrindo os Pontos Únicos de Falha (SPoF)

Objetivo

Entender por que um único componente pode derrubar um sistema inteiro.

Cenário

Você possui:

  • 1 servidor

  • 1 disco

  • 1 banco Db2

  • 1 aplicação COBOL

Desenhe toda a arquitetura.

Agora marque todos os componentes que, caso parem, derrubam o sistema.

Solução

Perceba que praticamente tudo é um SPOF.

Aprendizado

Antes de eliminar falhas, é preciso encontrá-las.

💡 Dica: faça isso também com aplicações.


LAB 2 — Medindo o Custo do Downtime

Objetivo

Entender por que disponibilidade vale dinheiro.

Exercício

Imagine:

  • Banco realiza 15.000 transações/segundo

  • Receita média R$ 0,12 por transação

Calcule perdas para:

  • 1 minuto

  • 10 minutos

  • 1 hora

Solução

O prejuízo cresce rapidamente e ainda não inclui imagem, multas ou clientes perdidos.

💡 Truque: disponibilidade é uma decisão financeira, não apenas técnica.


LAB 3 — O Primeiro COMMIT

Objetivo

Entender recuperação transacional.

Exercício

Atualize 1 milhão de registros.

Versão A

Sem COMMIT.

Versão B

COMMIT a cada 5.000 registros.

Solução

Simule uma interrupção.

Qual versão reinicia mais rápido?


LAB 4 — Criando Checkpoints

Objetivo:

Implementar restart.

Crie:

  • arquivo CHECKPOINT

  • posição do último registro

Simule queda.

Continue do ponto salvo.

💡 Essa técnica é usada há décadas em grandes batchs.


LAB 5 — Simulando Deadlock

Utilize duas sessões Db2.

Sessão A

Atualiza CLIENTE.

Sessão B

Atualiza CONTA.

Depois inverta.

Observe:

  • SQLCODE

  • timeout

  • deadlock

Solução

Aprenda ordem consistente de atualização.


LAB 6 — Tratando SQLCODE Corretamente

Crie um programa que trate:

  • +100

  • -803

  • -911

  • -913

Não apenas DISPLAY.

Faça:

  • rollback

  • log

  • retorno correto


LAB 7 — Criando Logs Inteligentes

Todo programa deve registrar:

  • data

  • hora

  • usuário

  • JOBNAME

  • programa

  • chave

  • SQLCODE

  • mensagem

Depois analise o log.

Descubra o erro sem recompilar.


LAB 8 — O Primeiro Retry

Imagine:

Db2 indisponível por poucos segundos.

Implemente:

Tentativa 1

Espera 2 segundos

Tentativa 2

Espera 5 segundos

Tentativa 3

Depois aborte.

Essa estratégia evita falhas temporárias.


LAB 9 — Descobrindo Gargalos

Utilize:

  • EXPLAIN

  • RUNSTATS

  • índices

Compare:

SELECT eficiente

vs

TABLESPACE SCAN

Descubra quanto CPU pode ser economizada.


LAB 10 — Idempotência

Crie um pagamento.

Execute duas vezes.

O dinheiro pode ser debitado novamente?

Se sim,

o programa não é resiliente.


LAB 11 — Introdução ao WLM

Converse com um Sysprog.

Pergunte:

  • Service Class

  • Importance

  • Velocity

Descubra onde seu batch roda.

Poucos desenvolvedores conhecem isso.


LAB 12 — Conhecendo o Parallel Sysplex

Pesquise:

  • Coupling Facility

  • Data Sharing

  • Sysplex Distributor

Desenhe:

LPAR A

LPAR B

LPAR C

CF

Explique como seu programa continua disponível.


LAB 13 — Explorando o CICS

Descubra:

O que acontece quando uma região CICS cai?

Quem reinicia?

Como outra região assume?

Pesquise:

  • TOR

  • AOR

  • DOR

  • FOR


LAB 14 — Simulando Recovery

Imagine:

Servidor caiu.

Liste passo a passo.

  • quem liga?

  • quem recupera?

  • quem valida?

  • quem autoriza?

Perceba quantas equipes participam.


LAB 15 — Conhecendo o GDPS

Estude:

Metro Mirror

Global Mirror

HyperSwap

Depois responda:

Como um banco continua funcionando após perder um datacenter inteiro?


LAB 16 — Health Check

Aprenda:

IBM Health Checker

Descubra:

  • parâmetros incorretos

  • riscos

  • alertas

Muitos problemas são encontrados antes da falha.


LAB 17 — Observabilidade

Monte um mini dashboard.

Colete:

  • CPU

  • I/O

  • Tempo SQL

  • Tempo CICS

  • Batch

Analise tendências.

Não espere a reclamação do usuário.


LAB 18 — Engenharia do Erro

Pegue um programa antigo.

Liste:

  • IF sem ELSE

  • SQLCODE ignorado

  • FILE STATUS ignorado

  • GO TO excessivo

  • PERFORM infinito

Corrija.

Compare antes/depois.


LAB 19 — Arquitetura Resiliente

Desenhe uma arquitetura moderna contendo:

IBM Z

Parallel Sysplex

Db2 Data Sharing

MQ

CICS

z/OS Connect

API REST

Aplicativo Mobile

Agora marque:

Onde existe redundância?

Onde ainda há SPOF?


LAB 20 — O Projeto Final do Mestre Padawan

Construa um mini sistema bancário.

Funcionalidades

✔ Cadastro

✔ Consulta

✔ Depósito

✔ Saque

✔ Transferência

Implemente:

  • tratamento de erros

  • rollback

  • commit

  • logs

  • checkpoint

  • restart

  • retry

  • validações

  • auditoria

  • mensagens MQ (simuladas ou documentadas)

  • documentação operacional

  • diagrama de arquitetura

  • plano de recuperação em caso de falha

Depois responda:

  • Quanto tempo o sistema leva para voltar após uma falha?

  • Existe risco de perda de dados?

  • Há pontos únicos de falha?

  • Como o operador identifica problemas?

  • Como um Sysprog ajudaria a resolver um incidente?


Missões Extras (XP para Padawans)

Bronze

  • Aprender SDSF

  • Ler SYSOUT

  • Entender ABENDs comuns (S0C7, S0C4, S806)

  • Navegar no ISPF

Prata

  • Aprender SMF

  • Conhecer RMF

  • Ler EXPLAIN do Db2

  • Entender WLM

Ouro

  • Estudar Parallel Sysplex

  • Coupling Facility

  • Db2 Data Sharing

  • ARM

  • SFM

  • IBM Health Checker

Platina

  • GDPS

  • Metro Mirror

  • Global Mirror

  • HyperSwap

  • Continuous Availability

  • Zero Data Loss

Mestre Jedi do Mainframe

  • z/OS Connect

  • APIs REST

  • Git e GitHub

  • Zowe CLI

  • VS Code

  • DevOps

  • OpenTelemetry

  • Observabilidade

  • Ansible

  • Inteligência Artificial aplicada ao COBOL

  • Engenharia de Resiliência


Conselho Final do Mestre

Um programador COBOL iniciante acredita que seu trabalho termina quando o compilador retorna RC=0. Um profissional experiente sabe que esse é apenas o começo. A verdadeira excelência está em construir aplicações que possam ser interrompidas, reiniciadas, recuperadas, monitoradas, auditadas e evoluídas sem comprometer o negócio.

Quando você domina resiliência, deixa de ser apenas um programador de COBOL. Você se torna um engenheiro de sistemas críticos, capaz de desenvolver soluções que sustentam bancos, seguradoras, bolsas de valores e governos. Essa é a diferença entre dizer "Meu programa funciona" e afirmar com confiança "Meu sistema nunca para."


Sem comentários:

Enviar um comentário