Translate

Mostrar mensagens com a etiqueta GDPS. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta GDPS. Mostrar todas as mensagens

domingo, 3 de maio de 2026

⚡💣 LAB CICS — MEM CRÍTICO 🚨 “QUANDO A MEMÓRIA ACABA… O CICS PEDE SOCORRO” 🚨

 

Bellacosa Mainframe memoria critica no CICS

⚡💣 LAB CICS — MEM CRÍTICO

🚨 “QUANDO A MEMÓRIA ACABA… O CICS PEDE SOCORRO” 🚨

👉 Tema: SOS (Short on Storage) + degradação + decisão de failover


🎬 🎯 CENÁRIO

Você está operando uma região do
IBM CICS

🕐 14:32 — horário crítico
📍 Região: CICSPRD1
📍 Ambiente: Produção


💥 ALERTAS INICIAIS

  • Tempo de resposta subindo
  • Tasks WAITING
  • CPU irregular
  • Storage aumentando rápido

💣 LOGS (CSMT)

DFHSM0133 Short on storage condition detected
DFHSM0606 Storage violation detected

👉 Tradução Bellacosa:

“O CICS está ficando sem memória — e isso escala rápido.”


🧠🔥 FASE 1 — DIAGNÓSTICO INICIAL

🔎 Comando:

CEMT I SYS

🔥 Resultado típico:

  • Storage > 90%
  • Tasks acumulando
  • Sistema degradando

❓ O que você faz?

A) Reinicia CICS
B) Ignora
C) Analisa storage
D) Derruba tudo


✅ RESPOSTA: C

👉 Reiniciar agora pode piorar
👉 Você precisa entender quem está consumindo storage


🔍 FASE 2 — INVESTIGAÇÃO DE STORAGE

🔎 Ver tasks:

CEMT I TASK

👉 Procure:

  • Tasks longas
  • Muitas instâncias
  • Status WAITING

💡 Padrão clássico:

  • Programa não liberando storage
  • Loop com GETMAIN
  • Leak de memória

📊 FASE 3 — IDENTIFICAR VILÃO

🔎 Filtro:

CEMT I TASK TRA(ORDR)

👉 Resultado:

  • Muitas tasks
  • Alto consumo
  • Crescendo continuamente

❓ Diagnóstico provável:

A) CPU
B) Storage leak
C) Rede
D) MQ


✅ RESPOSTA: B

🔥 Você está vendo um memory leak em CICS


☠️💣 FASE 4 — CONTENÇÃO IMEDIATA

Agora vem decisão crítica.

🎯 Objetivo:

  • parar consumo
  • evitar colapso

💥 Ações:

1. Derrubar tasks críticas:

CEMT SET TASK(501) PURGE

Se necessário:

CEMT SET TASK(501) FORCEPURGE

2. Bloquear transação:

CEMT SET TRAN(ORDR) DISABLED

👉 Isso é essencial.


🧬 FASE 5 — SITUAÇÃO PIORA 😈

Mesmo após purge:

  • Storage não libera totalmente
  • Região continua degradando

👉 Isso acontece porque:

  • Fragmentação
  • Storage preso
  • Controle interno comprometido

🚨 FASE 6 — DECISÃO CRÍTICA (NÍVEL SYSPROG)

❓ O que fazer agora?

A) Continuar purge
B) Reiniciar região
C) Acionar failover
D) Ignorar


✅ RESPOSTA IDEAL: C

👉 Você entra no modo resiliência


🌍⚡ FAILOVER COM GDPS

Utilizando:

IBM GDPS


💥 Ação:

  • Transferir workload
  • Ativar região standby
  • Redirecionar usuários

🎯 Resultado esperado:

  • Continuidade de serviço
  • Zero downtime perceptível (ou mínimo)

🧯 FASE 7 — ESTABILIZAÇÃO

Após failover:

  • Região secundária assume
  • Sistema normaliza
  • Usuários voltam

🔬 FASE 8 — ANÁLISE PROFUNDA

Agora você investiga a causa real.

🔎 Ferramentas:

  • IBM IPCS
  • IBM Fault Analyzer

💣 Descoberta:

  • Programa COBOL com loop de GETMAIN
  • Sem FREEMAIN
  • Leak progressivo

🔧 FASE 9 — CORREÇÃO DEFINITIVA

📋 Ações:

  • Corrigir código
  • Garantir FREEMAIN
  • Revisar uso de storage
  • Testar em QA

🧠💡 LIÇÕES DE OURO

👉 SOS nunca é “só performance”
👉 É risco de colapso total

👉 Sempre:

  • monitore storage
  • detecte crescimento anormal
  • tenha failover preparado

🧩😄 EASTER EGGS

  • “SOS não avisa duas vezes”
  • “Se chegou no SOS… alguém esqueceu FREEMAIN”
  • “Memory leak em CICS é assassino silencioso”

🏁 SCORE FINAL

CritérioResultado
Diagnóstico🧠 Excelente
Tempo de reação⚡ Crítico
Contenção🎯 Precisa
Resiliência🛡️ Nível enterprise

🎯💬 FECHAMENTO

Esse lab é o divisor de águas.

👉 Aqui você deixa de ser operador
👉 e vira engenheiro de sobrevivência do mainframe



quarta-feira, 8 de abril de 2026

💥 APERTA O ENTER E DERRUBA O DATA CENTER: SOBREVIVA AO LAB DE RESILIÊNCIA IBM Z

 

Bellacosa Mainframe experimentos reisiliencia em IBM Z

💥 APERTA O ENTER E DERRUBA O DATA CENTER: SOBREVIVA AO LAB DE RESILIÊNCIA IBM Z

🧪 Laboratório prático — do ABEND ao FAILOVER sem perder um byte


🎯 OBJETIVO DO LAB

Você vai simular:

  • 💣 Falha de aplicação (ABEND)
  • ⚙️ Restart automático (ARM)
  • 🧩 Continuidade (Sysplex mental model)
  • 🌍 Disaster Recovery (simulado estilo GDPS)
  • 📊 Validação de RPO/RTO

👉 Resultado esperado:
Sistema continua — usuário nem percebe


🧠 CENÁRIO (VIDA REAL)

Você é dev COBOL em um banco:

  • Batch crítico processa pagamentos
  • Roda em z/OS
  • Usa Db2
  • Integra com CICS

💥 E claro… algo vai dar errado.


🧪 LAB 1 — “PROVOQUE O CAOS” (ABEND CONTROLADO)

🎯 Objetivo:

Gerar uma falha real


📄 Passo 1 — Programa COBOL com erro

IDENTIFICATION DIVISION.
PROGRAM-ID. LABFAIL.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM PIC 9(3) VALUE ZEROS.
01 WS-VAL PIC 9(3).

PROCEDURE DIVISION.
MOVE 100 TO WS-VAL
DIVIDE WS-VAL BY WS-NUM GIVING WS-VAL
DISPLAY 'PROCESSO FINALIZADO'
STOP RUN.

👉 Resultado esperado:

S0C7 ou S0CB (divisão por zero)

💡 Comentário Bellacosa

“Se você nunca causou um ABEND de propósito… você ainda não domina o sistema.”


⚙️ LAB 2 — “DEIXA O SISTEMA SE VIRAR” (ARM)

🎯 Objetivo:

Simular restart automático


🧠 Conceito

ARM = Automatic Restart Manager

👉 Ele reinicia automaticamente o que caiu


📄 Passo 2 — Simulação lógica

JOB FAIL → ABEND
ARM detecta → restart automático
JOB reinicia → continua fluxo

🧪 Teste

  1. Execute o programa com erro
  2. Corrija o erro (WS-NUM ≠ 0)
  3. Reexecute

👉 Agora imagine:

  • ARM faria isso sozinho
  • Sem operador

💡 Insight

“ARM é o operador que nunca dorme.”


🧩 LAB 3 — “NÃO PARE O SISTEMA” (MENTALIDADE SYSPLEX)

🎯 Objetivo:

Entender continuidade


🧠 Simulação conceitual

Imagine:

  • LPAR A → falha
  • LPAR B → assume

📄 Fluxo

Transação → LPAR A
Falha → redireciona → LPAR B
Usuário continua

💡 Easter Egg 🔥

“Sysplex não é cluster…
é cluster que não te deixa na mão.”


🌍 LAB 4 — “PERDEMOS O DATA CENTER” (DR SIMULADO)

🎯 Objetivo:

Simular desastre total


🧠 Cenário

  • Site A caiu 💥
  • Site B assume

📄 Exercício

  1. Imagine seu sistema rodando
  2. “Desligue” mentalmente o ambiente
  3. Suba outro ambiente

👉 Perguntas:

  • Quanto tempo levou? (RTO)
  • Perdeu dados? (RPO)

💡 Resposta ideal

  • RTO → segundos/minutos
  • RPO → zero

🔥 Insight

“Se você precisa pensar muito no DR… ele já falhou.”


🧨 LAB 5 — “DESCUBRA SEU SPOF”

🎯 Objetivo:

Encontrar ponto único de falha


📄 Checklist

  • Um único job crítico?
  • Um único DB?
  • Um único operador? 😅

💡 Easter Egg

SPOF mais comum:
👉 Interface Teclado-Cadeira


🤖 LAB 6 — “AUTOMA OU MORRE”

🎯 Objetivo:

Entender automação


📄 Cenário

Sem automação:

  • detectar
  • analisar
  • agir

👉 minutos ou horas


Com automação:

  • detectar
  • agir

👉 segundos


💡 Insight brutal

“Sem automação, seu RTO é humano.”


🧪 LAB 7 — DR TEST (O GRANDE FINAL)

🎯 Objetivo:

Validar tudo


📄 Simulação

  1. Derrube o “ambiente”
  2. Ative backup
  3. Valide sistema

📊 Checklist

  • Sistema subiu?
  • Dados íntegros?
  • Tempo aceitável?

💡 Regra de ouro

“DR não testado = DR inexistente”


🧠 CONSOLIDAÇÃO FINAL


🔗 RELAÇÃO DOS CONCEITOS

  • RAS → evita impacto
  • Models → define arquitetura
  • Planning → garante execução

💥 Fluxo completo

Falha pequena → ARM resolve
Falha média → Sysplex resolve
Desastre total → DR/GDPS resolve

🏁 MISSÃO FINAL DO LAB

👉 Você não está testando sistema
👉 Você está testando sobrevivência do negócio


🔥 FRASE FINAL

“No mainframe, o erro não é falhar…
é deixar o usuário perceber.”

 

quarta-feira, 28 de agosto de 2024

IBM Z Resiliência : 30 Laboratórios Práticos Do "Meu Primeiro Sysplex" até "Meu Datacenter Nunca Para"

Bellacosa Mainframe e o laboratorio pratico em IBM Z Resiliencia




☕ O Holocron da Resiliência IBM Z

30 Laboratórios Práticos

Do "Meu Primeiro Sysplex" até "Meu Datacenter Nunca Para"

A Resiliência no IBM Z vai muito além de conhecer siglas como HA, DR, Parallel Sysplex ou GDPS. Ela representa uma filosofia de engenharia construída ao longo de décadas para garantir que aplicações críticas permaneçam disponíveis mesmo diante de falhas de hardware, software, rede ou até desastres naturais. O objetivo deste guia é conduzir o Programador COBOL, Analista de Sistemas ou futuro Sysprog por uma jornada progressiva, mostrando como cada componente da plataforma contribui para a continuidade do negócio e como todos trabalham em conjunto para entregar disponibilidade praticamente ininterrupta.

A melhor forma de aprender é evoluir em etapas. Comece dominando os conceitos fundamentais de SLA, RPO, RTO, RAS e Single Point of Failure. Em seguida, compreenda a arquitetura do IBM Z, estudando CPC, LPARs, HMC e o papel do LIC. Depois avance para Parallel Sysplex, Coupling Facility, WLM e GDPS, entendendo como múltiplos sistemas operam como um único ambiente resiliente. Na sequência, aprofunde-se em DFSMS, Storage, CICS, Db2, IMS, MQ e estratégias de recuperação e continuidade dos negócios.

Procure sempre relacionar teoria com prática. Analise mensagens do sistema, consulte o SDSF, estude relatórios RMF e SMF, desenhe arquiteturas, simule cenários de falha e questione como sua aplicação reagiria a cada situação. O profissional que compreende Resiliência deixa de enxergar apenas programas COBOL e passa a entender todo o ecossistema que mantém milhões de transações funcionando com segurança, desempenho e confiabilidade. Esse é o caminho para evoluir de Padawan a Mestre no universo IBM Z.



🟢 NÍVEL 1 — PADAWAN (Labs 1–10)

Lab 1 – Descobrindo a Arquitetura IBM Z

Objetivo

Identificar todos os componentes físicos do ambiente.

Atividades

  • Localizar CPC

  • Identificar LPARs

  • Ver HMC

  • Identificar Storage

Solução

O aluno deve desenhar a arquitetura mostrando como todos os componentes se conectam.


Lab 2 – Identificando SPOFs

Objetivo

Encontrar Single Points of Failure.

Atividades

Analisar:

  • Rede

  • Storage

  • CICS

  • MQ

  • Db2

Solução

Criar uma tabela

ComponenteExiste redundância?
StorageSim
SwitchNão
Servidor DNSNão

Lab 3 – Calculando SLA

Dado:

99,5%

99,9%

99,99%

99,999%

Calcule:

  • indisponibilidade anual

  • mensal

  • diária

Solução

Utilizar tabela oficial de SLA.


Lab 4 – Descobrindo o RPO

Uma empresa aceita perder:

  • nenhuma transação

  • cinco minutos

  • uma hora

Classifique o RPO.

Solução

Relacionar cada cenário ao objetivo de recuperação.


Lab 5 – Descobrindo o RTO

Mesmo exercício.

Agora considerando tempo de recuperação.


Lab 6 – CFIA

Escolha um ambiente.

Analise:

"O que acontece se..."

  • Storage parar

  • CPU parar

  • Switch parar

Solução

Construir matriz de impacto.


Lab 7 – Conhecendo o WLM

No SDSF identificar:

  • Service Classes

  • Importance

  • Velocity

Solução

Explicar porque um Job Batch ficou esperando.


Lab 8 – Explorando RMF

Consultar:

CPU

I/O

Paging

Storage

Solução

Gerar relatório resumido.


Lab 9 – Health Checker

Executar

F HZSPROC

Interpretar avisos.


Lab 10 – Runtime Diagnostics

Executar Runtime Diagnostics.

Interpretar:

  • Loop

  • Espera

  • Deadlock


🟡 NÍVEL 2 — JEDI (Labs 11–20)


Lab 11 – Criando um Sysplex

Desenhar:

2 LPARs

1 Coupling Facility

Storage compartilhado

Solução

Apresentar diagrama.


Lab 12 – Entendendo a Coupling Facility

Identificar:

  • Lock Structure

  • Cache Structure

  • List Structure

Explicar função de cada uma.


Lab 13 – Simulando Falha de um Membro

Desligar uma LPAR (ambiente de laboratório).

Observar:

  • usuários continuam?

  • aplicações continuam?


Lab 14 – ARM

Parar uma região CICS.

Verificar reinício automático.


Lab 15 – DVIPA

Mover uma aplicação entre membros.

Confirmar:

IP continua igual.


Lab 16 – Sysplex Distributor

Monitorar distribuição de sessões.

Verificar balanceamento.


Lab 17 – LBA

Analisar recomendações do Load Balancing Advisor.


Lab 18 – Capacity on Demand

Criar cenário:

Black Friday.

Qual recurso ativar?

CBU?

CUoD?

OOCoD?

Justifique.


Lab 19 – DFSMS

Criar:

Storage Group

Management Class

Storage Class

Data Class

Associar Dataset.


Lab 20 – DFSMShsm

Migrar um dataset.

Recuperá-lo.

Verificar tempo.


🔴 NÍVEL 3 — MESTRE (Labs 21–30)


Lab 21 – CICSplex

Desenhar:

TOR

AOR

FOR

DOR

Fluxo completo.


Lab 22 – MQ

Criar:

Queue

Sender

Receiver

Enviar mensagens.

Simular parada do receptor.

Confirmar persistência.


Lab 23 – Db2

Executar:

RUNSTATS

REORG

Comparar Access Path.


Lab 24 – IMS

Criar fluxo:

Terminal

TM

Programa

IMS DB

Resposta.


Lab 25 – Metro Mirror

Desenhar:

Site A

Site B

Replicação síncrona.

Explicar RPO.


Lab 26 – Global Mirror

Mesmo exercício.

Agora com longa distância.

Explicar diferenças.


Lab 27 – Business Continuity

Escreva um BCP contendo:

  • responsáveis

  • comunicação

  • ordem de recuperação

  • testes


Lab 28 – Simulação Completa

O cenário:

🔥 Incêndio no Data Center Principal.

O aluno deve decidir:

  • ativa GDPS?

  • ativa CBU?

  • usa Metro Mirror?

  • muda DNS?

  • inicia ARM?

Justificar todas as decisões.


Lab 29 – Projeto de Arquitetura

Receba:

Banco Digital

20 milhões de clientes

PIX

Cartão

Internet Banking

Desenhe:

  • Hardware

  • Sysplex

  • CICSplex

  • MQ

  • Db2

  • Storage

  • DR


Lab 30 – O Desafio Final do Mestre

A empresa deseja atingir:

  • 99,999% de disponibilidade

  • RPO = Zero

  • RTO = Menor que 5 minutos

  • Dois datacenters ativos

  • 50 milhões de transações por dia

  • Atualizações sem parada

  • Crescimento de capacidade sem desligamento

Missão

Projetar toda a arquitetura IBM Z.

O projeto deve incluir:

  • IBM Z (CPCs e LPARs)

  • Parallel Sysplex

  • Coupling Facility

  • WLM

  • SFM

  • ARM

  • CICSplex (TOR, AOR, FOR e DOR)

  • IBM MQ

  • Db2 for z/OS

  • IMS (quando aplicável)

  • DFSMS

  • IBM Copy Services Manager

  • Metro Mirror ou Global Mirror

  • GDPS

  • Business Continuity Plan

  • Capacity on Demand (CBU, CUoD ou OOCoD)

Solução esperada

O aluno entrega um documento de arquitetura contendo:

  • diagrama completo da solução;

  • justificativa técnica para cada componente;

  • estratégia de alta disponibilidade;

  • estratégia de recuperação de desastres;

  • cálculo de SLA, RPO e RTO;

  • análise de Single Points of Failure e respectivas eliminações;

  • plano de testes de contingência;

  • plano de crescimento para os próximos cinco anos.


🏆 Certificação Bellacosa Mainframe

Ao concluir os 30 laboratórios, o aluno terá praticado os principais conceitos de resiliência do IBM Z, passando da compreensão dos fundamentos até o desenho de arquiteturas corporativas. Essa sequência é adequada tanto para um Programador COBOL Júnior que deseja entender a plataforma onde suas aplicações executam quanto para profissionais que pretendem evoluir para funções de Analista de Infraestrutura IBM Z, Sysprog, Especialista em Alta Disponibilidade ou Arquiteto Mainframe. Ela também pode servir como base para um curso completo de aproximadamente 40 horas, com exercícios, estudos de caso e desafios progressivos. 

quinta-feira, 22 de fevereiro de 2024

IBM Z Resiliência: A Engenharia Invisível que Mantém o Mundo Funcionando (E Quase Ninguém Percebe)

 

Bellacosa Mainframe e a ibm z resiliencia

☕ Um Café no Bellacosa Mainframe

IBM Z Resiliência: A Engenharia Invisível que Mantém o Mundo Funcionando (E Quase Ninguém Percebe)

"Quando tudo funciona, ninguém lembra do Sysprog. Quando tudo para... todo mundo lembra."


Introdução – O paradoxo da excelência

Existe uma curiosidade muito interessante sobre a profissão de System Programmer (Sysprog) e System Administrator (Sysadmin) no universo IBM Z.

Se você fizer um trabalho perfeito durante dez anos, provavelmente ninguém vai notar.

Mas basta cinco minutos de indisponibilidade para que diretores, gestores, usuários, imprensa e até clientes passem a perguntar:

"O que aconteceu com o sistema?"

Esse é o maior paradoxo da infraestrutura crítica.

Quanto melhor você trabalha...
menos visível você fica.

E justamente por isso existe um tema que deveria ser obrigatório para qualquer profissional que trabalha com IBM Z:

Resiliência.

Não Backup.

Não Disaster Recovery.

Não Alta Disponibilidade isoladamente.

Mas sim Resiliência.

São conceitos diferentes.

E entender essa diferença muda completamente a forma como um Sysprog enxerga um ambiente de missão crítica.


O que realmente significa Resiliência?

A maioria das pessoas responde rapidamente:

"É conseguir recuperar o sistema."

Na verdade...

Essa resposta está incompleta.

Resiliência significa:

continuar entregando o serviço mesmo quando alguma coisa está dando errado.

Perceba a diferença.

Recuperação acontece depois.

Resiliência começa antes.

Essa filosofia está presente na arquitetura IBM Z desde seus primeiros projetos.


O Mainframe nasceu paranoico

Essa talvez seja a primeira curiosidade da apresentação.

Os computadores distribuídos normalmente são construídos pensando em desempenho.

O IBM Z foi construído pensando em falhas.

Pode parecer estranho.

Mas faz todo sentido.

Durante décadas, bancos, governos, bolsas de valores e empresas de telecomunicações não podiam simplesmente dizer:

"Desculpe, voltamos amanhã."

Logo, toda a engenharia foi criada assumindo uma premissa:

Alguma coisa vai falhar.

A pergunta nunca foi:

"Será que vai falhar?"

A pergunta correta sempre foi:

"Quando falhar... como vamos impedir que alguém perceba?"

Essa pequena mudança de mentalidade explica praticamente toda a arquitetura IBM Z.


A grande diferença entre Cloud e Mainframe

Existe uma frase que gosto muito.

"Na Cloud você escala."

No IBM Z...

Você continua funcionando.

São objetivos diferentes.

Cloud normalmente resolve aumento de carga.

Mainframe resolve continuidade operacional.

Não significa que um substitui o outro.

Eles resolvem problemas diferentes.


RAS: o DNA invisível do IBM Z

Todo Sysprog deveria decorar três letras.

RAS.

Reliability.

Availability.

Serviceability.

Essas três palavras são provavelmente as mais importantes de toda a arquitetura IBM Z.


Reliability

Confiabilidade.

O hardware foi projetado para falhar menos.

Mas mais importante...

Foi projetado para detectar quando está começando a falhar.

Memórias ECC.

Processadores redundantes.

Correção automática de erros.

Diagnóstico permanente.

Enquanto outros equipamentos apenas quebram...

O IBM Z normalmente avisa antes.


Curiosidade

Você provavelmente já trabalhou em um ambiente onde uma memória apresentou erro.

A diferença é que no Mainframe isso muitas vezes acontece...

...sem ninguém perceber.

O hardware corrigiu sozinho.

Esse é um daqueles "superpoderes" invisíveis.


Availability

Disponibilidade.

Talvez o conceito mais famoso.

Mas muita gente interpreta errado.

Disponibilidade não significa:

"O servidor está ligado."

Significa:

O negócio continua funcionando.

Um servidor ligado sem processar transações...

continua indisponível.


Serviceability

Essa é a parte mais fascinante.

Capacidade de manutenção.

Imagine trocar um componente crítico...

sem desligar o equipamento.

Isso parece impossível para quem vem do mundo x86.

No IBM Z isso faz parte do dia a dia.


Easter Egg nº 1

Você sabia que existem técnicos que substituem componentes internos do IBM Z enquanto ele continua processando milhões de transações?

Parece ficção científica.

Mas acontece.


Resiliência começa muito antes do desastre

Um erro comum é associar resiliência apenas ao Disaster Recovery.

Na verdade...

Disaster Recovery representa apenas uma pequena parte da estratégia.

Antes dele existem dezenas de mecanismos trabalhando continuamente.

ARM.

Parallel Sysplex.

GDPS.

Storage replicado.

WLM.

SMF.

Monitoramento.

Automação.

Tudo isso forma um enorme quebra-cabeça.


ARM — O operador que nunca dorme

Automatic Restart Manager.

Se um serviço cai...

ele pode reiniciar automaticamente.

Sem operador.

Sem ligação telefônica.

Sem abrir chamado.

Sem drama.


Imagine um Batch crítico.

Ele sofre um ABEND.

Sem ARM.

Operador.

Diagnóstico.

Restart.

Tempo.

Com ARM.

Detecção.

Restart.

Continuidade.

Essa diferença pode representar minutos.

Ou milhões de reais.


GDPS

Aqui entramos em outro nível.

Geographically Dispersed Parallel Sysplex.

Não estamos falando apenas de aplicações.

Estamos falando de Data Centers inteiros.

Imagine:

Uma enchente.

Um incêndio.

Falha elétrica.

Ataque físico.

Mesmo assim...

o ambiente continua funcionando.

Isso é GDPS.


Easter Egg nº 2

A maior parte das pessoas acredita que o maior inimigo do ambiente é o hardware.

Na prática...

um dos maiores SPOFs continua sendo...

o ser humano.


O operador continua sendo um SPOF

Single Point of Failure.

Existe uma brincadeira famosa entre Sysprogs.

"O maior ponto único de falha fica sentado na cadeira."

Parece piada.

Mas é verdade.

Boa parte dos incidentes graves começa com:

DELETE errado.

IPL errado.

PARMLIB errada.

JCL errada.

ALTER errado.

Por isso automação é tão importante.


DR Test

Existe outra máxima.

DR não testado...

...não existe.

Todo mundo gosta de mostrar diagramas bonitos.

Mas quando chega o momento do teste...

descobrem que:

Scripts estão desatualizados.

Documentação não funciona.

Equipe mudou.

Dependências não foram consideradas.

E justamente por isso os DR Tests existem.


Curiosidade

Algumas instituições financeiras realizam simulações completas de desastre.

Literalmente desligam parte do ambiente.

Tudo controlado.

Tudo documentado.

Tudo medido.

O objetivo não é provar que funciona.

É descobrir onde ainda pode falhar.


RPO e RTO

Esses dois indicadores aparecem em praticamente todas as entrevistas para Sysprog.

RPO.

Quanto dado posso perder?

RTO.

Quanto tempo posso ficar parado?

São perguntas simples.

Mas extremamente difíceis de responder.

Porque dependem do negócio.


Um banco e um supermercado possuem o mesmo RPO?

Não.

Um PIX pode exigir praticamente zero perda.

Já outro sistema administrativo pode aceitar alguns minutos.

Tudo depende da criticidade.


Parallel Sysplex

Talvez a maior obra de engenharia já construída no universo dos sistemas operacionais comerciais.

Diversos sistemas.

Compartilhando recursos.

Compartilhando dados.

Compartilhando carga.

Tudo funcionando como se fosse um único computador.

Quem vem do mundo Linux costuma dizer:

"Parece um cluster."

Não.

É muito mais sofisticado.


Easter Egg nº 3

Existe uma brincadeira antiga entre Sysprogs.

"Parallel Sysplex é aquele cluster que não resolve discutir quem é o líder."

Quem conhece algoritmos distribuídos entende a piada.


O futuro da profissão

Existe uma pergunta recorrente.

"O Sysprog vai acabar?"

Minha resposta é sempre a mesma.

Não.

Mas o Sysprog que conhece apenas ISPF...

talvez tenha dificuldades.

Hoje o profissional precisa conhecer:

REST APIs.

Python.

Ansible.

Zowe.

Git.

DevOps.

Observabilidade.

OpenTelemetry.

Containers.

OpenShift.

Cloud.

Não para abandonar o Mainframe.

Mas para integrá-lo.


O novo Sysprog

O novo profissional mistura tradição com modernização.

Continua dominando:

JCL.

SDSF.

RACF.

SMF.

RMF.

Mas também conversa naturalmente sobre:

GitHub.

CI/CD.

VS Code.

Terraform.

Automation.

IaC.

Esse profissional será extremamente valorizado.


Plano de estudos sugerido

Mês 1

  • Conceitos de RAS

  • RPO

  • RTO

  • SLA


Mês 2

  • Sysplex

  • Coupling Facility

  • WLM


Mês 3

  • GDPS

  • Storage

  • Replicação


Mês 4

  • ARM

  • Automação

  • NetView

  • System Automation


Mês 5

  • Zowe

  • Python

  • APIs

  • Ansible


Mês 6

  • Exercícios

  • DR Test

  • Laboratórios

  • Simulações


Onde aprender mais?

Para quem realmente quer se aprofundar, eu recomendaria estudar nesta ordem:

IBM Documentation

A documentação oficial continua sendo a principal referência técnica para IBM Z, z/OS, GDPS, Parallel Sysplex, WLM e demais componentes.

IBM Redbooks

Os Redbooks são praticamente livros técnicos escritos por especialistas da IBM e clientes. Um dos mais relevantes para este tema é Getting Started with IBM Z Resiliency, além de publicações sobre Parallel Sysplex, GDPS e z/OS.

IBM TechXchange

Apresentações de arquitetos IBM, sessões técnicas, estudos de caso e demonstrações práticas.

IBM Z Xplore

Ambiente gratuito para laboratórios, permitindo explorar tecnologias IBM Z de forma prática.

IBM SkillsBuild e IBM Learning

Cursos introdutórios e avançados sobre resiliência, z/OS, System Automation, GDPS, RACF, CICS, Db2 e diversas outras áreas.

SHARE Conference

Talvez o maior evento técnico do mundo voltado ao ecossistema IBM Z. É um excelente lugar para acompanhar tendências, novidades e relatos de grandes clientes.

Comunidade

Grupos técnicos, blogs especializados, fóruns e iniciativas como o Bellacosa Mainframe ajudam a transformar conhecimento técnico em conteúdo acessível, conectando teoria, prática e experiência de campo.


A maior lição

Depois de mais de sessenta anos de evolução tecnológica, existe uma conclusão interessante.

O maior diferencial do IBM Z nunca foi simplesmente seu hardware.

Nunca foi apenas o z/OS.

Nunca foi apenas o COBOL.

O verdadeiro diferencial sempre foi a filosofia de engenharia.

Projetar sistemas assumindo que falhas vão acontecer.

Não para reagir ao desastre.

Mas para impedir que ele se transforme em indisponibilidade.

Essa é a essência da resiliência.

E talvez seja exatamente por isso que, enquanto tantas tecnologias surgem e desaparecem, o IBM Z continua processando a maior parte das transações financeiras do planeta.


☕ Reflexão Final

"Um bom Sysprog mantém o sistema funcionando. Um excelente Sysprog faz com que ninguém perceba que dezenas de falhas aconteceram durante o dia. A verdadeira excelência em resiliência não é eliminar as falhas, mas construir uma arquitetura onde elas deixam de ser um problema para o negócio."

Essa é a filosofia que torna o IBM Z muito mais do que um computador: ele é uma plataforma construída para manter empresas, governos e economias funcionando, mesmo quando o inesperado acontece.

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."


sábado, 17 de junho de 2023

IBM Z Resiliency Como um Padawan COBOL Pode Evoluir do "Meu Programa Funciona" para "Meu Sistema Nunca Para"

 

Bellacosa Mainframe expande as ideias em IBM Z Resiliency

☕ Um Café no Bellacosa Mainframe

O Holocron da IBM Z Resiliency

Como um Padawan COBOL Pode Evoluir do "Meu Programa Funciona" para "Meu Sistema Nunca Para"

"O melhor programa COBOL não é apenas aquele que produz o resultado correto. É aquele que continua produzindo o resultado correto mesmo quando discos falham, servidores reiniciam, links caem, operadores cometem erros e o datacenter enfrenta uma crise."


Introdução

Quando um desenvolvedor COBOL começa sua jornada no IBM Z, normalmente sua preocupação é bastante simples:

  • aprender PROCEDURE DIVISION;

  • entender WORKING-STORAGE;

  • fazer READ e WRITE em arquivos VSAM;

  • acessar Db2;

  • executar um programa via JCL;

  • tratar um SQLCODE.

Tudo isso é importante.

Mas existe uma realidade muito maior que normalmente só é descoberta anos depois.

Seu programa não vive sozinho.

Ele faz parte de um enorme ecossistema composto por:

  • IBM Z Hardware

  • z/OS

  • JES2

  • WLM

  • CICS

  • IMS

  • Db2

  • MQ

  • RACF

  • GDPS

  • Parallel Sysplex

  • Storage

  • Redes

  • Operação

  • Monitoramento

  • Backup

  • Disaster Recovery

Todo esse conjunto possui um único objetivo:

Nunca deixar o negócio parar.

É justamente isso que a IBM chama de Resiliency.


O maior equívoco do desenvolvedor iniciante

O Padawan COBOL costuma pensar:

"Meu programa compilou."

Depois:

"Funcionou no teste."

Depois:

"Funcionou em produção."

Fim da história.

Na realidade...

A história apenas começou.

Porque a pergunta correta nunca é:

"O programa funciona?"

A pergunta correta é:

"Ele continua funcionando quando alguma coisa dá errado?"

Essa mudança de mentalidade separa um programador júnior de um engenheiro de software para ambientes críticos.


O mundo perfeito não existe

Imagine um banco.

Às 10 horas da manhã.

Existem:

  • 8 milhões de clientes conectados.

  • milhares de caixas eletrônicos.

  • PIX.

  • cartões.

  • internet banking.

  • aplicativos móveis.

  • APIs REST.

  • Open Finance.

Nesse momento:

uma CPU apresenta defeito.

O que acontece?

Se você respondeu:

"O banco para."

Você ainda está pensando como quem programa um computador doméstico.

No IBM Z, o esperado é que ninguém perceba.

Esse é o verdadeiro significado da palavra Resiliency.


Resiliência não significa nunca falhar

Essa é outra confusão muito comum.

Nenhum computador é perfeito.

Discos quebram.

Memórias apresentam defeitos.

Cabos rompem.

Fontes queimam.

Operadores erram comandos.

Aplicações possuem bugs.

Até meteoros poderiam destruir um datacenter.

Resiliência significa:

Aceitar que falhas acontecerão e projetar o sistema para continuar operando apesar delas.


O conceito mais importante

A IBM define resiliência como:

Capacidade de fornecer os serviços necessários diante da adversidade sem impacto significativo.

Perceba um detalhe.

Ela não fala em hardware.

Ela não fala em COBOL.

Ela fala em:

Serviço.

O cliente quer sacar dinheiro.

Ele não quer saber quantas CPUs existem.


O iceberg invisível

Quando você executa:

EXEC SQL
SELECT SALDO
END-EXEC

Você enxerga apenas uma linha.

Por trás dela existem dezenas de componentes trabalhando juntos.

Seu programa depende de:

  • compilador COBOL;

  • runtime;

  • Db2;

  • buffer pools;

  • storage;

  • cache;

  • canais FICON;

  • discos;

  • processadores;

  • WLM;

  • z/OS;

  • JES;

  • rede;

  • segurança RACF.

A resiliência protege toda essa cadeia.


O verdadeiro custo de um downtime

Muitos iniciantes imaginam:

"Se o sistema parar por cinco minutos não faz diferença."

Na prática, cinco minutos podem significar:

  • milhões de transações não realizadas;

  • PIX rejeitados;

  • compras canceladas;

  • multas;

  • perda de reputação;

  • ações caindo na bolsa.

O Redbook mostra que o custo de uma interrupção vai muito além da infraestrutura. Há perdas diretas de receita, custos fixos durante a parada e impactos intangíveis, como perda de confiança dos clientes e danos à marca.


O famoso RAS

Quase todo Sysprog conhece esta sigla.

Reliability

Confiabilidade.

Quanto menor a chance de quebrar.

Availability

Disponibilidade.

Mesmo quebrando,

continua funcionando.

Serviceability

Facilidade para manutenção.

Trocar peças.

Atualizar firmware.

Fazer manutenção.

Sem parar o ambiente.


O COBOL participa da Resiliência?

Sim.

Muito mais do que parece.

Um programa COBOL mal escrito pode derrubar um ambiente inteiro.

Por exemplo:

  • LOOP infinito.

  • COMMIT inexistente.

  • Deadlock.

  • Consumo exagerado de CPU.

  • SQL sem índice.

  • Arquivos bloqueados.

  • Storage leak.

  • Falta de tratamento de exceção.

Resiliência também é responsabilidade do desenvolvedor.


O que um Padawan precisa aprender

Primeira fase.

Programar.

Segunda fase.

Programar corretamente.

Terceira fase.

Programar para recuperação.

Quarta fase.

Programar pensando na infraestrutura.

Quinta fase.

Programar pensando no negócio.

Essa evolução leva anos.


A importância do COMMIT

Imagine:

Você atualiza:

100.000 registros.

No registro 99.999 ocorre uma queda elétrica.

Sem COMMIT.

Tudo volta.

Com COMMIT periódico.

A perda é mínima.

O programa consegue reiniciar.

Esse pequeno detalhe pode economizar horas de processamento.


Checkpoints

Batchs gigantes normalmente possuem checkpoints.

Imagine um processamento de:

40 milhões de clientes.

No cliente 39 milhões ocorre uma falha.

Sem checkpoint.

Tudo recomeça.

Com checkpoint.

Continua do ponto salvo.

É resiliência aplicada ao desenvolvimento.


Idempotência

Uma palavra moderna.

Mas extremamente útil.

Se o mesmo programa executar novamente,

ele não deve:

duplicar pagamentos;

duplicar TED;

duplicar PIX;

duplicar lançamentos.

Grandes sistemas financeiros dependem disso.


Tratamento de exceções

Nunca escreva:

IF SQLCODE NOT = 0
    DISPLAY 'ERRO'
END-IF

Isso não resolve nada.

Um bom programa:

  • registra logs;

  • identifica contexto;

  • faz rollback quando necessário;

  • encerra de forma segura;

  • permite recuperação.


O papel do WLM

O Workload Manager decide quem recebe prioridade.

Imagine:

  • Folha de pagamento.

  • PIX.

  • Batch estatístico.

Quem deve receber CPU primeiro?

O WLM responde.

Seu programa faz parte dessa fila.


Parallel Sysplex

Talvez seja a tecnologia mais famosa do IBM Z.

Vários sistemas trabalham como se fossem um único computador.

Se um deles cair,

os demais continuam.

O usuário nem percebe.

Parece magia.

Na realidade,

é engenharia.


GDPS

Geographically Dispersed Parallel Sysplex.

Imagine:

São Paulo inteiro sem energia.

Outro datacenter assume.

Essa é a ideia.

Algumas empresas conseguem continuar operando mesmo após perder completamente um site.


Zero Data Loss

Um conceito impressionante.

Perder:

zero.

Nem um registro.

Nem um pagamento.

Nem um PIX.

Nem um centavo.

Nem um byte.

É um objetivo que depende de arquiteturas de replicação síncrona e soluções como GDPS e tecnologias de espelhamento de armazenamento.


Curiosidade

Muitos bancos realizam manutenção durante o horário comercial.

Você nem percebe.

Enquanto um sistema recebe manutenção,

outro assume.

Depois ocorre o inverso.

Esse processo chama-se:

Rolling Maintenance.


Easter Egg nº 1

O maior inimigo da disponibilidade nem sempre é o hardware.

É o operador.

Estudos da indústria mostram que erros humanos continuam entre as causas mais frequentes de indisponibilidade.

Por isso existem:

  • automação;

  • procedimentos;

  • scripts;

  • validações;

  • System Automation;

  • Runbooks.


Easter Egg nº 2

Os engenheiros IBM costumam perseguir um objetivo curioso.

Eliminar o que chamam de:

Single Point of Failure

Qualquer componente único que possa derrubar todo o ambiente.

Vale para:

  • CPU;

  • disco;

  • switch;

  • cabo;

  • storage;

  • operador;

  • documentação.

Até pessoas podem ser um "Single Point of Failure" quando apenas um especialista conhece um procedimento crítico.


Easter Egg nº 3

Um COBOL pode ser resiliente mesmo sendo escrito há 40 anos.

Se:

  • estiver bem estruturado;

  • tratar exceções;

  • possuir restart;

  • possuir checkpoints;

  • respeitar transações;

ele continua extremamente moderno.


O que estudar depois deste curso

Depois de entender Resiliency, o caminho natural é aprofundar-se na própria stack IBM Z.

Infraestrutura

  • IBM Z Hardware

  • CPC

  • LPAR

  • PR/SM

  • HMC

Sistema Operacional

  • z/OS

  • JES2

  • SDSF

  • WLM

  • SMF

  • RMF

Armazenamento

  • DFSMS

  • DFSMShsm

  • Copy Services

  • Metro Mirror

  • Global Mirror

Redes

  • VTAM

  • TCP/IP

  • DVIPA

  • Sysplex Distributor

Middleware

  • CICS

  • IMS

  • Db2

  • MQ

Alta Disponibilidade

  • Parallel Sysplex

  • Coupling Facility

  • Data Sharing

  • GDPS

Operação

  • IBM System Automation

  • OMEGAMON

  • IBM Z Operations Analytics


As habilidades modernas do desenvolvedor COBOL

O mercado mudou.

Hoje um desenvolvedor COBOL pode agregar muito mais valor quando conhece:

  • APIs REST com z/OS Connect;

  • JSON e XML;

  • Git;

  • GitHub;

  • DevOps;

  • CI/CD;

  • testes automatizados;

  • observabilidade;

  • OpenTelemetry;

  • containers para ferramentas de apoio;

  • Ansible;

  • Zowe;

  • VS Code;

  • automação operacional;

  • inteligência artificial aplicada ao desenvolvimento.


Os perigos de ignorar a resiliência

Quem pensa apenas em "fazer funcionar" costuma criar sistemas frágeis.

Os principais riscos são:

  • perda de dados;

  • duplicidade de transações;

  • indisponibilidade prolongada;

  • degradação de desempenho;

  • dificuldade de recuperação;

  • manutenção cara;

  • dependência de especialistas;

  • aumento do risco operacional.

Em ambientes financeiros, esses problemas podem gerar prejuízos milionários.


Como evoluir de Padawan para Mestre

Uma evolução sólida pode seguir esta trilha:

Nível 1 — Fundamentos

  • COBOL

  • JCL

  • VSAM

  • Db2

  • CICS

Nível 2 — Sistema

  • z/OS

  • SDSF

  • JES2

  • TSO/ISPF

  • WLM

Nível 3 — Arquitetura

  • Parallel Sysplex

  • Coupling Facility

  • Data Sharing

  • ARM

  • SFM

Nível 4 — Continuidade de Negócios

  • RAS

  • HA

  • DR

  • RTO

  • RPO

  • GDPS

Nível 5 — Modernização

  • APIs

  • z/OS Connect

  • DevOps

  • Observabilidade

  • IA

  • Automação


A maior lição do IBM Z Resiliency

Depois de estudar esse tema, muitos desenvolvedores descobrem que escrever código representa apenas uma pequena parte do trabalho. Um programa COBOL faz sentido somente quando está inserido em uma arquitetura capaz de sobreviver a falhas, manter dados íntegros e continuar entregando serviços ao negócio.

É por isso que os profissionais mais valorizados no ecossistema IBM Z não são apenas excelentes programadores. Eles entendem infraestrutura, operação, banco de dados, middleware, redes, automação e continuidade de negócios. Eles sabem que um COMMIT bem posicionado, um tratamento adequado de exceções ou um checkpoint inteligente podem ter tanto impacto quanto uma nova funcionalidade.

No fim da jornada, o verdadeiro Mestre do IBM Z não é aquele que escreve o código mais sofisticado. É aquele que projeta soluções que continuam funcionando quando o inesperado acontece. Essa é a essência da IBM Z Resiliency: construir sistemas preparados para enfrentar falhas sem interromper aquilo que realmente importa — o negócio de milhões de pessoas.


quarta-feira, 16 de setembro de 2020

O Holocron do Chaos Monkey – Quando o Macaco Entra no IBM Z: Será que o Mainframe Precisava Mesmo de um Chaos Monkey? - Parte III

 

Bellacosa Mainframe e o chaos monkey parte iii

☕ Um Café no Bellacosa Mainframe

O Holocron do Chaos Monkey – Parte III

Quando o Macaco Entra no IBM Z: Será que o Mainframe Precisava Mesmo de um Chaos Monkey?

"O pessoal da Netflix inventou o Chaos Monkey em 2011. O pessoal do IBM Z talvez apenas tenha respondido: 'Interessante... nós chamamos isso de terça-feira de teste de contingência.'"


O Café da Madrugada e a Pergunta que Incomodava o Padawan

Já passavam das duas horas da manhã.

O monitor do RMF permanecia aberto.

No SDSF, milhares de jobs continuavam terminando com CC=0000.

OMEGAMON mostrava gráficos verdes.

O CICSplex estava equilibrado.

O Db2 Data Sharing parecia tranquilo.

MQ continuava escoando mensagens.

WLM distribuía trabalho silenciosamente.

O Padawan então perguntou.

— Mestre...

— Sim?

— Existe um Chaos Monkey para z/OS?

O velho Sysprog tomou um gole de café.

Pensou alguns segundos.

E respondeu.

— Não exatamente.

— Mas existe algo muito mais interessante.

— O quê?

— Um ambiente que foi construído durante décadas assumindo que o desastre iria acontecer.

E talvez seja essa a maior diferença filosófica entre boa parte do mundo distribuído moderno e o IBM Z.


O IBM Z Nasceu em uma Época em que Falhar Era Inaceitável

Para entender isso precisamos voltar algumas décadas.

Década de 1960.

Década de 1970.

Década de 1980.

Não existiam containers.

Não existia Kubernetes.

Não existia AWS.

Não existia Netflix.

Mas existiam bancos.

Bolsa de valores.

Companhias aéreas.

Seguradoras.

Governos.

E todos tinham uma exigência simples.

Não pode parar.

Nunca.

Ou quase nunca.

Enquanto muitas arquiteturas modernas foram inicialmente criadas pensando em escalabilidade e depois adaptadas para alta disponibilidade, o Mainframe nasceu praticamente no caminho inverso.

Primeiro.

Disponibilidade.

Depois.

Performance.

Depois.

Escalabilidade.


O Que é o Chaos Engineering Sob a Ótica IBM Z?

Podemos resumir Chaos Engineering em uma frase.

Provocar falhas controladas para validar a resiliência do ambiente.

No IBM Z isso pode ser traduzido como:

Testar a perda de componentes críticos antes que a natureza faça isso por você.


Exemplos.

Perder uma região CICS.

Perder uma LPAR.

Perder um membro Db2.

Perder um Queue Manager.

Perder um caminho FICON.

Perder conectividade XCF.

Perder uma Coupling Facility.

Alterar prioridades WLM.

Testar GDPS.

Executar Disaster Recovery.


O Primeiro Macaco do Mainframe Talvez Tenha Sido o Operador

Uma curiosidade interessante.

Durante muitos anos.

Chaos Engineering era praticamente um procedimento operacional.

O operador recebia uma lista.


Plano DR

Passo 1.

Parar CICSA

Passo 2.

Monitorar.

Passo 3.

Verificar workload.

Passo 4.

Liberar usuários.

Passo 5.

Restaurar.


Em essência.

Era um experimento de caos.

Manual.

Documentado.

Auditável.

E bastante eficiente.


Chaos Monkey em CICS

Talvez seja um dos melhores ambientes para começar.


Suponha.

CICSPLX01

TOR01

TOR02

AOR01

AOR02

AOR03

FOR01


Objetivo.

Testar disponibilidade.


Hipótese.

Posso perder AOR02.

Sem impacto.


Experimento.

CEMT PERFORM SHUTDOWN

ou

CEMT SET REGION QUIESCED


Observação.

Transações continuam?

Sessões perdem estado?

CPU aumenta?

Fila cresce?


Resultado esperado.

Usuário não percebe.


Hipótese validada.


Chaos Monkey para Db2 Data Sharing

Esse é provavelmente um dos experimentos mais interessantes.


Ambiente.

DB2A

DB2B

DB2C


CF1

CF2


Objetivo.

Validar.

Data Sharing.


Hipótese.

Posso perder DB2B.

Sem indisponibilidade.


Experimento.

STOP DB2

ou

Simulação planejada.


Monitorar.

Locks.

Claims.

Threads.

Group Buffer Pools.

IRLM.


Resultado.

DB2A

DB2C

Assumem.


Aplicação continua.


Cliente feliz.


Auditoria satisfeita.


Chaos Monkey para MQ

MQ nasceu para sobreviver.

Mas precisa ser testado.


Ambiente.

MQA

MQB

MQC


QSG.


Hipótese.

Perder MQB.


Experimento.

STOP QMGR


Monitorar.

Depth.

Channels.

Message persistence.


Observação.

Filas crescem?

Canal reinicia?

Mensagem desapareceu?


Problemas descobertos.

Excelente.

Era justamente isso.


O WLM é Talvez o Melhor Chaos Monkey do z/OS

Muitos Sysprogs não percebem.

Mas o WLM executa constantemente decisões semelhantes.


CPU saturada.


Quem ganha?


Batch?

CICS?

Db2?

MQ?


Service Class.


Importance.


Velocity.


Execution Delay.


WLM pergunta.

Quem merece recursos?

Chaos Engineering pergunta.

Quem continua funcionando sem eles?


Filosoficamente.

São primos.


O Parallel Sysplex é um Grande Exercício Permanente de Chaos Engineering

Imagine.

Quatro LPARs.


LPAR1

LPAR2

LPAR3

LPAR4


CICS.

Db2.

MQ.

IMS.


Hipótese.

Perder uma LPAR.


Resultado esperado.

XCF redistribui.

WLM ajusta.

Db2 assume.

MQ continua.

Usuário nem percebe.


Isso é praticamente.

Chaos Engineering.

Em hardware.


Coupling Facility: O Chefe Final

Talvez nenhum experimento seja tão delicado.


Perder CF.


Hipótese.

CF secundária assume.


Monitorar.

GBP.

Locks.

Cache.

Latency.


Se algo quebrar.

Descobrimos.

Antes do desastre.


SA z/OS: O Maestro do Caos Controlado

System Automation.

É uma ferramenta extremamente interessante.

Porque permite.

Criar cenários.

Automatizar.

Testar.

Recuperar.


Exemplo.

INGREQ STOP


Observação.


INGLIST


INGINFO


DISPSYS


Automação responde.


Reinício.


Failover.


Recuperação.


Hipótese validada.


NetView e Chaos Engineering

NetView talvez seja um dos maiores aliados.


Alertas.


Mensagens.


Automação.


Scripts.


Correlação.


Quando algo falha.

Precisamos saber.

Rapidamente.


NetView ajuda.


Chaos precisa disso.


z/OSMF e APIs

Experimentos podem ser automatizados.

REST.

Ansible.

Python.

Zowe.


Exemplo.

Playbook.


Parar região.

Esperar.

Coletar métricas.

Reiniciar.

Gerar relatório.


Padawan feliz.

Sysprog também.


Ansible para IBM Z

Talvez seja uma das melhores ferramentas modernas.


Playbook.

- stop_cics

- collect_rmf

- wait

- validate

- start_cics

- generate_report

Tudo documentado.

Versionado.

Auditável.

Repetível.


Chaos Engineering adora isso.


O Que Nunca Deve Ser Feito

Existem limites.


Nunca.

Produção.

Sem autorização.


Nunca.

Sem rollback.


Nunca.

Sem métricas.


Nunca.

Sem observabilidade.


Nunca.

Sem janela.


Nunca.

Sem comunicação.


Nunca.

Sem plano B.


O Checklist Bellacosa Mainframe

Antes de executar um experimento.

Pergunte.

Tenho hipótese?

Sim.

Não.


Tenho métrica?


Tenho rollback?


Tenho dashboard?


Tenho equipe?


Tenho autorização?


Tenho documentação?


Blast Radius aceitável?


Se todas forem SIM.

Experimento aprovado.


O Dia em que o Padawan Entendeu

O Padawan olhou para o mestre.

E perguntou.

— Então...

— Sim.

— O Mainframe não precisava de um Chaos Monkey?

O velho sorriu.

— Precisava.

— E ele existiu.

— Quem?

O Sysprog.

O operador.

O arquiteto.

O especialista de DR.

O administrador de CICS.

O DBA Db2.

O administrador MQ.

Todos eles.

Durante décadas.

Simulando falhas.

Executando testes.

Planejando contingências.

Fazendo IPL.

Trocando caminhos.

Parando regiões.

Validando recuperação.

Aprendendo.

Melhorando.

Repetindo.

Muito antes de alguém colocar um macaco sorridente em uma apresentação do PowerPoint.

Porque talvez a maior lição do IBM Z seja esta:

Resiliência não é a capacidade de evitar falhas.

É a capacidade de continuar prestando serviço quando as falhas inevitavelmente chegam.


Continua na Parte IV

No próximo capítulo do Holocron do Chaos Monkey, construiremos os Laboratórios Bellacosa Mainframe, incluindo:

  • Laboratório 1 – Derrubando uma região CICS com segurança;

  • Laboratório 2 – Simulando a perda de um membro Db2 Data Sharing;

  • Laboratório 3 – Testando MQ Queue Sharing Group;

  • Laboratório 4 – Experimentos com WLM;

  • Laboratório 5 – Perda controlada de uma LPAR em Parallel Sysplex;

  • Playbooks Ansible, comandos z/OS, exemplos práticos, métricas RMF/SMF e checklists utilizados por Sysprogs para transformar caos em conhecimento operacional.