☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

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

terça-feira, 11 de novembro de 2025

🔥💣 SYSREXX: O “KUBERNETES INVISÍVEL” DO z/OS QUE JÁ EXISTIA ANTES DA NUVEM 💣🔥

 

Bellacosa Mainframe SysRexx o REXX como framework

🔥💣 SYSREXX: O “KUBERNETES INVISÍVEL” DO z/OS QUE JÁ EXISTIA ANTES DA NUVEM 💣🔥

Quando o REXX deixou de ser linguagem… e virou infraestrutura operacional do Mainframe ☕🚀

“Enquanto o mundo moderno descobria automação… o z/OS já executava automações sistêmicas em paralelo dentro do próprio núcleo operacional.”

Existe um momento na história do Mainframe em que o REXX sofre uma mutação absurda.

Ele deixa de ser:

  • simples linguagem de scripts
  • ferramenta TSO
  • automação de rotina

…e se transforma em algo muito maior:

☕ Uma camada operacional inteligente do próprio z/OS.

Esse momento atende pelo nome de:

🔥 SYSREXX (System REXX)

E pouca gente percebe a profundidade arquitetural disso.

Porque o SYSREXX não é “apenas REXX fora do TSO”.

💣 O SYSREXX é praticamente:

  • um runtime operacional
  • um engine de automação
  • um orquestrador interno
  • um mini middleware sistêmico
  • um framework de operações embutido no z/OS

Décadas antes:

  • Kubernetes
  • PowerShell
  • DevOps
  • ChatOps
  • AIOps
  • Infrastructure as Code

…o Mainframe já possuía:

automação operacional orientada a eventos usando REXX.


☕ O DIA EM QUE O REXX VIROU “PARTE DO SISTEMA”

Durante anos o REXX viveu:

  • no TSO
  • em CLISTs
  • em automações ISPF
  • em SDSF
  • em jobs batch

Mas a IBM percebeu algo:

O mundo começava a exigir:

  • integração web
  • automação rápida
  • observabilidade
  • APIs operacionais
  • gerenciamento simplificado

Então nasceu o SYSREXX.

A própria IBM define o objetivo assim:

“Required an infrastructure to support web based initiatives interacting with z/OS components.”

Traduzindo para Bellacosa Mainframe:

🔥 “Precisávamos transformar o z/OS em algo programável em tempo real.”


🚀 O SYSREXX É UM SUBSYSTEM DE VERDADE

Esse é o primeiro choque.

Muita gente imagina:

“Ah… deve ser só um EXEC diferente.”

Negativo.

O SYSREXX nasce como:

AXR

Uma Started Task real.

Ela:

  • cria workers
  • controla filas
  • gerencia requests
  • dispara ambientes TSO
  • administra automações
  • integra console e APIs

💣 Isso é arquitetura enterprise raiz.


☕ O QUE O SYSREXX FAZ?

Ele permite executar EXECs:

  • fora do TSO
  • fora do Batch
  • via console
  • via APIs
  • via programas assembler
  • via automação sistêmica

Ou seja:

🔥 O REXX vira uma API operacional do z/OS.


🧠 O DETALHE QUE QUASE NINGUÉM PERCEBE

O SYSREXX introduziu no Mainframe conceitos que hoje chamamos de:

  • workers
  • queues
  • asynchronous execution
  • runtime isolation
  • service execution
  • orchestration

Observe a arquitetura lógica IBM:

  • Listener
  • Queue Control
  • Worker Tasks
  • Async Processing
  • Console Interface
  • AXREXX API

💣 Isso parece arquitetura cloud moderna.

Só que no z/OS.


🔥 TSO=NO — O MODO “TURBO”

Aqui mora uma engenharia genial.

O modo:

TSO=NO

executa EXECs:

  • em ambiente compartilhado
  • alta velocidade
  • baixo overhead
  • até 64 workers paralelos

Resultado:

performance absurda.


☕ O PREÇO DA VELOCIDADE

Mas existe um detalhe importante.

A IBM alerta:

“Recommend no Data Set Allocation here.”

Porque:

  • o ambiente é compartilhado
  • workers são reutilizados
  • problemas podem contaminar outros EXECs

🔥 Isso é extremamente importante.


🚨 O “VAZAMENTO FANTASMA”

Imagine um EXEC mal escrito:

/* REXX */

"ALLOC FI(TEST) DA('SYS1.PARMLIB') SHR"
EXIT

Sem FREE.

O dataset:

  • continua alocado
  • influencia EXECs futuros
  • causa bugs aleatórios

💣 Bem-vindo ao terror operacional invisível do SYSREXX.


🚀 TSO=YES — O MODO “ISOLADO”

Aqui o EXEC ganha:

  • Address Space própria
  • ambiente TSO dinâmico
  • acesso a datasets
  • comandos POSIX
  • SYSCALL
  • maior segurança

Mas…

☕ não é um TSO “completo”.

E aqui muitos profissionais caem.


🔥 A ARMADILHA DO TSO DINÂMICO

O SYSREXX usa:

IKJTSOEV

para criar:

Dynamic TSO Environment

Mas o TMP tradicional NÃO existe completamente.

Resultado:

  • alguns comandos falham
  • alguns control blocks inexistem
  • alguns LOADs explodem

E então aparece o famoso:

ABEND306

💣 O Mainframe lembrando:

“Você entrou numa área avançada.”


☕ AXRCMD — O SUPERPODER ABSURDO

Aqui o SYSREXX vira praticamente um operador automatizado.

Exemplo:

/* REXX */

Rc = AXRCMD("D IPLINFO",OUT.,5)

DO I = 1 TO OUT.0
SAY OUT.I
END

🔥 O EXEC:

  • envia comando MVS
  • captura resposta
  • processa output
  • toma decisões

Isso muda completamente o jogo.


🚀 O MAINFRAME COMEÇA A “SE OBSERVAR”

Com AXRCMD você pode:

  • monitorar jobs
  • verificar DASD
  • analisar JES2
  • inspecionar XCF
  • observar STORAGE
  • controlar devices
  • automatizar recovery

Tudo em REXX.


☕ EXEMPLO “OPS AI RAIZ”

Imagine isso:

/* REXX */

Signal On Failure

Rc = AXRCMD("D A,L",OUT.,5)

If Rc <> 0 Then Do
Call AXRWTO "ERRO NO DISPLAY"
Exit 8
End

Do I = 1 To OUT.0

If Pos("CICS",OUT.I) > 0 Then Do

If Pos("NOT ACTIVE",OUT.I) > 0 Then Do

Call AXRWTO "CICS FORA DO AR"

Rc2 = AXRCMD("S CICSPROD",MSG.,10)

Call AXRWTO "RESTART AUTOMATICO EXECUTADO"

End
End
End

Exit 0

Failure:
Call AXRWTO "ABEND NO MONITOR"
Exit 16

💣 Isso é praticamente:

  • observabilidade
  • detecção automática
  • autorecovery
  • AIOps

Só usando SYSREXX.


🔥 AXRMLWTO — O “PAINEL OPERACIONAL”

Essa função é maravilhosa.

Ela permite gerar:

  • WTOs multiline
  • outputs organizados
  • blocos formatados
  • relatórios operacionais

Exemplo:

Connect='IPLCHK'

Call AXRMLWTO '=== STATUS IPL ===','Connect','L'

Do I = 1 To OUT.0
Call AXRMLWTO OUT.I,'Connect','D'
End

Call AXRMLWTO '=== FIM ===','Connect','DE'

O console vira praticamente:

uma dashboard textual enterprise.


☕ O SYSREXX É O “POWERSHELL DO MAINFRAME”

Mas com diferenças importantes:

  • mais integrado
  • mais seguro
  • mais próximo do kernel
  • mais operacional
  • absurdamente eficiente

🔥 O EASTER EGG MAIS INSANO

Pouca gente percebe…

Mas o SYSREXX já fazia:

ChatOps operacional

Muito antes do Slack existir.

Observe:

@1STATUS
@1CICSCHK
@1JES2INFO
@1DASDMON

💣 Isso é praticamente:

  • slash commands
  • bots operacionais
  • automação conversacional

No console do z/OS.

Décadas atrás.


☕ O MAINFRAME JÁ FAZIA “SERVERLESS”

Pense nisso.

Você:

  • dispara EXEC
  • runtime nasce
  • executa lógica
  • devolve resultado
  • encerra worker

🔥 Isso lembra o quê?

Lambda.
Functions.
Serverless.

Só que:

no Mainframe.


🚀 O SYSREXX COMO “DEVOPS INVISÍVEL”

Hoje falam:

  • DevOps
  • GitOps
  • AIOps
  • Platform Engineering

Mas o z/OS já possuía:

  • automação sistêmica
  • workers paralelos
  • filas
  • eventos
  • execução assíncrona
  • automação declarativa

O SYSREXX era isso.


☕ O DETALHE MAIS BONITO DO SYSREXX

A IBM poderia ter criado:

  • linguagem nova
  • engine nova
  • framework novo

Mas ela escolheu:

REXX.

Porque:

  • simples
  • legível
  • humana
  • rápida
  • poderosa

🔥 CONCLUSÃO

O SYSREXX é uma das tecnologias mais subestimadas do z/OS.

Ele transformou o REXX em:

  • infraestrutura
  • automação enterprise
  • motor operacional
  • plataforma sistêmica
  • interface programável do Mainframe

E talvez o mais impressionante:

☕ O mundo moderno reinventou muitos conceitos que o Mainframe já dominava há décadas.

Enquanto muita gente ainda estava aprendendo a automatizar servidores distribuídos…

🔥 o z/OS já executava automações inteligentes dentro do próprio coração do sistema operacional. 🔥

quarta-feira, 27 de agosto de 2025

O Paciente Loop: Patrick Jane, COBOL e o Mistério dos Agentes de IA que Nunca Conferem se Fizeram a Coisa Certa

 

Bellacosa Mainframe e os loops agentes de ia e o cobol na confusao

☕ Um Café no Bellacosa Mainframe

O Paciente Loop: Patrick Jane, COBOL e o Mistério dos Agentes de IA que Nunca Conferem se Fizeram a Coisa Certa

Existe uma cena imaginária que poderia perfeitamente abrir um episódio de The Mentalist.

Uma grande empresa acaba de colocar em produção seu novíssimo sistema de Inteligência Artificial. Há telas gigantes na sala de operações, dashboards coloridos, gráficos, APIs, modelos generativos, agentes, bancos vetoriais, cloud, Kubernetes e uma quantidade respeitável de palavras em inglês sendo pronunciadas por minuto.

O diretor anuncia orgulhoso:

— Nosso agente agora trabalha sozinho.

Patrick Jane, sentado no canto da sala, mexe distraidamente em uma xícara de chá.

Ele olha para o monitor.

Olha para o diretor.

Olha novamente para o monitor.

E pergunta:

— Como vocês sabem que ele fez a coisa certa?

Silêncio.

O arquiteto responde:

— Porque a execução terminou com sucesso.

Jane sorri.

— Eu não perguntei se terminou. Perguntei se estava certo.

Nesse momento começa o episódio.

E talvez comece também uma das discussões mais importantes da atual engenharia de Inteligência Artificial.

Porque estamos descobrindo que o maior problema dos agentes de IA não é necessariamente a inteligência.

É o loop.

Ou, mais precisamente, a ausência dele.

Bem-vindo ao café.

Pegue uma cadeira, abra uma sessão TSO imaginária, coloque ===> diante de você e venha investigar comigo um dos crimes arquiteturais mais interessantes da era da Inteligência Artificial.


A primeira pista: durante muito tempo nós confundimos resposta com solução

Quem está começando em COBOL aprende cedo uma coisa aparentemente simples.

Um programa recebe dados.

Processa.

Produz uma saída.

Algo semelhante a:

ENTRADA
   ↓
PROGRAMA COBOL
   ↓
SAÍDA

Imagine nosso programa clássico.

IDENTIFICATION DIVISION.
PROGRAM-ID. CALCSAL.

DATA DIVISION.
WORKING-STORAGE SECTION.

01 WS-SALARIO      PIC 9(7)V99.
01 WS-BONUS        PIC 9(7)V99.
01 WS-TOTAL        PIC 9(8)V99.

PROCEDURE DIVISION.

    COMPUTE WS-TOTAL = WS-SALARIO + WS-BONUS

    DISPLAY 'TOTAL: ' WS-TOTAL

    STOP RUN.

Entrou salário.

Entrou bônus.

Calculamos.

Terminamos.

Durante décadas esse modelo mental funcionou muito bem.

Depois chegaram os grandes modelos de linguagem.

E começamos praticamente da mesma forma.

PROMPT
   ↓
LLM
   ↓
RESPOSTA

Escrevemos:

Explique um programa COBOL que lê um arquivo VSAM.

O modelo responde.

Nós lemos.

Se estiver errado, corrigimos o prompt.

Ele responde novamente.

Nós verificamos outra vez.

E assim sucessivamente.

Pare por alguns segundos e observe o que aconteceu.

Existe um loop:

PROMPT
   ↓
MODELO
   ↓
RESPOSTA
   ↓
VOCÊ VERIFICA
   ↓
VOCÊ CORRIGE
   ↓
NOVO PROMPT

Quem está executando o loop?

Você.

A Inteligência Artificial não possui necessariamente um processo próprio de verificação nesse cenário.

Ela gera.

Você avalia.

Ela tenta.

Você confere.

Ela erra.

Você corrige.

O ser humano é o scheduler, o monitor, o operador e o mecanismo de recovery.

Patrick Jane provavelmente observaria:

— Interessante. Vocês chamaram a máquina de agente autônomo, mas existe um humano escondido atrás dela fazendo todo o trabalho de controle.

Touché.


Prompt Engineering não morreu. Apenas deixou de ser toda a história

Por alguns anos houve quase uma obsessão com Prompt Engineering.

Qual o melhor prompt?

Quantas instruções?

Qual temperatura?

Devemos dizer "pense passo a passo"?

Devemos fornecer exemplos?

Devemos criar personas?

Tudo isso continua importante.

Mas existe uma mudança arquitetural maior acontecendo.

A pergunta deixou de ser apenas:

Como consigo uma boa resposta?

E passou a ser:

Como construo um sistema capaz de alcançar um objetivo, verificar se o alcançou e corrigir a própria trajetória quando necessário?

Essa diferença parece pequena.

Não é.

É aproximadamente a diferença entre escrever um programa COBOL isolado e administrar uma cadeia inteira de processamento bancário.


Conheça o suspeito principal: o Execution Loop

Podemos representar um agente moderno de maneira simplificada assim:

OBJETIVO
   ↓
DESCOBRIR
   ↓
PLANEJAR
   ↓
EXECUTAR
   ↓
VERIFICAR
   ↓
MELHORAR
   └──────────→ NOVO CICLO

A postagem original fala em cinco grandes estágios.

Dependendo da literatura ou framework, os nomes mudam. Você encontrará variações como:

Plan
Execute
Observe
Evaluate
Improve

ou:

Discover
Plan
Execute
Verify
Iterate

Não se prenda aos nomes.

Observe o princípio.

O sistema não considera a geração de uma resposta como o final do trabalho.

Ele pergunta:

Funcionou?

Essa simples pergunta transforma tudo.


Primeiro estágio: descobrir

Imagine um gerente chegando para nosso agente e dizendo:

Corrija os clientes com problema.

Um agente ingênuo poderia imediatamente começar a alterar registros.

Um agente bem projetado deveria primeiro investigar.

Que clientes?

Qual problema?

Qual sistema?

Produção ou homologação?

Qual janela de processamento?

Existe autorização?

Quais tabelas podem ser modificadas?

Qual política regulatória se aplica?

Qual é a definição de sucesso?

Isso é Discover.

Antes de agir, compreender.

Um programador COBOL conhece isso melhor do que imagina.

Quando recebemos uma manutenção dizendo:

O batch está errado.

Não abrimos imediatamente o editor e começamos a trocar IF por EVALUATE.

Investigamos.

Consultamos o SYSOUT.

Verificamos o RC.

Lemos o dump.

Observamos os datasets.

Procuramos alterações recentes.

Consultamos o log.

Descobrimos o contexto.

Em outras palavras:

fazemos investigação antes de execução.

Patrick Jane aprovaria.


Segundo estágio: planejar

Depois de compreender o problema, o agente precisa decidir o que fazer.

Suponha que a tarefa seja:

Localize transações duplicadas e gere um relatório.

Um plano poderia ser:

1. Identificar fonte dos dados.
2. Consultar transações.
3. Determinar chave de duplicidade.
4. Agrupar ocorrências.
5. Validar os resultados.
6. Gerar relatório.
7. Conferir totais.
8. Entregar.

Observe algo importantíssimo.

Planejamento não é execução.

Parece óbvio, mas muitos sistemas agentic misturam os dois.

O agente começa chamando APIs enquanto ainda está tentando descobrir o problema.

Isso é como um programador entrar em produção com UPDATE antes de executar o SELECT.

Quem trabalha em ambiente corporativo sentiu um pequeno arrepio lendo essa frase.

Exatamente.


Terceiro estágio: executar

Agora o agente começa a trabalhar.

Pode consultar banco.

Pode chamar uma API.

Pode executar código.

Pode buscar documentos.

Pode criar arquivos.

Pode usar ferramentas.

Pode disparar outros agentes.

Nesse momento deixamos de falar apenas sobre LLM.

Passamos a falar sobre sistema agentic.

Isso é crucial.

Um Large Language Model sozinho é um mecanismo probabilístico de geração.

Um agente normalmente combina modelo com alguma estrutura de execução:

LLM
+
TOOLS
+
MEMÓRIA
+
REGRAS
+
CONTEXTO
+
ORQUESTRAÇÃO

Agora começamos a chegar a algo muito mais interessante.


Quarto estágio: verificar

Aqui está a pista que resolve boa parte do caso.

Imagine que pedimos:

Gere um programa COBOL que calcule juros.

A IA escreve 150 linhas perfeitamente formatadas.

Pode até ficar bonito.

Isso significa que está certo?

Não.

Precisamos compilar.

Código gerado
      ↓
Compilador
      ↓
RC?

Suponhamos:

MAXCC = 12

Fim do mistério.

O programa estava errado.

Mas imagine algo ainda mais perigoso.

Ele compila.

MAXCC = 0

Está correto?

Também não necessariamente.

Compilação comprova principalmente que o código respeitou regras sintáticas e semânticas esperadas pelo compilador.

Ainda precisamos testar.

COMPILAÇÃO
    ↓
UNIT TEST
    ↓
TESTES FUNCIONAIS
    ↓
VALIDAÇÃO DE REGRA
    ↓
SEGURANÇA
    ↓
PERFORMANCE

Somente então podemos aumentar nossa confiança.

Aqui está uma lição gigantesca:

Um resultado tecnicamente executável não é necessariamente um resultado correto.

Isso vale para COBOL.

Vale para SQL.

Vale para IA.

Vale para praticamente toda engenharia.


Evaluation Gap: o buraco entre "fiz" e "está certo"

Esse problema recebe um nome interessante:

Evaluation Gap.

O agente executa a tarefa.

Mas ninguém mede o resultado.

Imagine:

AGENTE
  ↓
EXECUTA
  ↓
SUCESSO

Qual é a definição de sucesso?

"Não deu erro"?

Perigoso.

Imagine um agente responsável por classificar dez mil documentos.

Ele processa todos.

Nenhuma exceção.

Nenhum timeout.

Nenhuma API falhou.

Operacionalmente:

100% de sucesso.

Mas depois descobrimos que 17% dos documentos foram classificados incorretamente.

Tecnicamente funcionou.

Business-wise fracassou.

Esse é o Evaluation Gap.


Um programador mainframe já conhece isso pelo Return Code

Aqui temos uma deliciosa ironia histórica.

O mundo da IA está redescobrindo conceitos que profissionais de processamento empresarial utilizam há décadas.

Considere:

//STEP01 EXEC PGM=PROGA
//STEP02 EXEC PGM=PROGB,COND=(4,LT)

Ou estruturas modernas de scheduler baseadas no resultado de etapas anteriores.

A lógica fundamental é:

EXECUTA
   ↓
VERIFICA RESULTADO
   ↓
DECIDE O PRÓXIMO PASSO

É exatamente a essência do loop agentic.

Naturalmente, IA adiciona uma dimensão probabilística e interpretativa muito maior.

Mas arquiteturalmente existe parentesco.

Não estamos inventando o conceito de controle.

Estamos aplicando controle a sistemas capazes de raciocínio probabilístico.


Single-Agent Loop: nosso investigador solitário

Agora chegamos a uma decisão arquitetural importante.

Usamos um agente?

Ou vários?

Comecemos pelo agente único.

        AGENTE
          │
     ┌────┴────┐
     ↓         ↓
  Planeja    Executa
     ↓
  Verifica
     ↓
  Corrige

Ele controla todo o ciclo.

Para muitas tarefas isso é excelente.

Imagine um agente encarregado de analisar JCL.

Ele recebe:

JOB
 ↓
PROC
 ↓
DD statements
 ↓
SYSOUT

Analisa.

Identifica problemas.

Explica.

Confere novamente.

Entrega a resposta.

Não precisamos de quinze agentes discutindo DISP=(NEW,CATLG,DELETE).

Um agente bem instruído pode resolver.

Essa arquitetura oferece enorme vantagem:

simplicidade.

Menos componentes.

Menor latência.

Menor custo.

Menos pontos de falha.

Mais facilidade de debugging.

E essa última palavra deveria estar escrita em letras douradas em todo projeto de IA corporativa.


Fleet Loop: quando Red John aparece

Mas existem casos maiores.

Imagine um agente encarregado de modernizar uma aplicação bancária COBOL com 8 milhões de linhas.

Agora nossa investigação cresceu.

Precisamos compreender COBOL.

JCL.

Db2.

CICS.

VSAM.

Regras de negócio.

APIs.

Segurança.

Testes.

Arquitetura.

Documentação.

Performance.

Talvez um único agente possa tentar.

Mas surge outra possibilidade.

Uma Fleet, ou frota de agentes especializados.

                    ORQUESTRADOR
                         │
        ┌────────────────┼───────────────┐
        ↓                ↓               ↓
   COBOL Agent       DB2 Agent      CICS Agent
        │                │               │
        └────────────────┼───────────────┘
                         ↓
                   TEST AGENT
                         ↓
                   EVALUATOR

Agora cada agente possui responsabilidade específica.

É quase uma equipe virtual.


O orquestrador é o JES da festa

Para um iniciante COBOL, podemos fazer uma analogia divertida.

Imagine o orquestrador como algo entre um scheduler, JES e gerente de processamento.

Ele não necessariamente executa todo o trabalho.

Ele determina:

quem trabalha;

quando trabalha;

com quais informações;

em qual sequência;

e o que acontece depois.

ORCHESTRATOR
      ↓
  AGENT COBOL
      ↓
   AGENT DB2
      ↓
 TEST AGENT
      ↓
 EVALUATOR

Sem orquestrador, uma frota de agentes pode virar uma reunião corporativa às 16h de sexta-feira.

Todo mundo fala.

Ninguém sabe quem decide.

E misteriosamente surge outra reunião.


Role Specialization Gap

Esse é outro problema citado.

Você cria cinco agentes.

Mas todos fazem praticamente a mesma coisa.

Um analisa.

Outro também analisa.

Outro revisa a análise.

Outro "supervisiona".

Outro analisa a revisão.

Parabéns.

Você inventou burocracia digital.

Especialização precisa significar fronteiras claras.

Por exemplo:

Maker → produz
Checker → verifica
Security → procura vulnerabilidades
Performance → analisa eficiência
Orchestrator → decide fluxo

Isso é melhor.

Temos separação de responsabilidades.

Um conceito antiquíssimo da engenharia de software reaparece.

Separation of Concerns.


Maker e Checker: uma das melhores ideias para IA empresarial

Se eu tivesse que selecionar uma arquitetura simples para ensinar a um iniciante, escolheria:

MAKER
  ↓
CHECKER

O Maker faz.

O Checker confere.

Por exemplo:

Agent A:
"Gere SQL."

Agent B:
"Verifique o SQL."

Melhor ainda:

Agent A
gera SQL
   ↓
database sandbox
   ↓
execution result
   ↓
Agent B
avalia

Aqui aparece um princípio fundamental:

sempre que possível, substitua opinião por evidência.

Em vez de perguntar ao segundo LLM:

Esse código parece correto?

Execute.

Compile.

Teste.

Compare.

Meça.

Observe.

Isso aumenta enormemente a confiabilidade.


Open Loop: Patrick Jane solto na cena do crime

Loops abertos são interessantes porque permitem exploração.

Imagine:

Descubra por que nosso processamento ficou 40% mais lento.

O agente pode explorar várias hipóteses.

CPU?
 ↓
I/O?
 ↓
Db2?
 ↓
Locks?
 ↓
WLM?
 ↓
Dataset?
 ↓
Rede?
 ↓
Mudança recente?

Ele não conhece previamente o caminho.

Investiga.

Formula hipóteses.

Descarta.

Testa.

Reformula.

É uma abordagem quase investigativa.

E muito parecida com The Mentalist.

Jane entra em uma sala e começa a observar detalhes aparentemente insignificantes.

Um copo deslocado.

Uma janela aberta.

Uma pessoa olhando para o relógio.

Uma contradição.

Um perfume.

Nenhuma pista isolada fornece a resposta.

O valor aparece quando diferentes sinais são combinados.

Um agente exploratório faz algo conceitualmente semelhante.


Mas o Open Loop possui um monstro escondido: custo

Imagine o agente dizendo:

Vou investigar mais uma hipótese.

Depois:

Mais uma.

Depois:

Talvez outra.

Depois:

Encontrei algo interessante. Vou aprofundar.

Depois:

Talvez exista uma abordagem alternativa.

Duas horas depois:

TOKENS: ☠☠☠☠☠
CUSTO:  ☠☠☠☠☠
RESULTADO: "AINDA INVESTIGANDO"

Esse é o problema de loops excessivamente abertos.

Sem critério de parada, exploração vira desperdício.

Precisamos de limites.

Por exemplo:

máximo 5 hipóteses

máximo 3 tentativas

máximo 50.000 tokens

timeout 10 minutos

confidence > 95%

stop when test passes

A palavra-chave é:

budget.

Agentes precisam de orçamento.

Não apenas monetário.

Tempo.

Tokens.

Chamadas de API.

CPU.

Ferramentas.

Tentativas.


Closed Loop: o mundo confortável do batch

Agora entramos em terreno familiar ao mainframe.

Loops fechados possuem passos bem definidos.

RECEBER
 ↓
VALIDAR
 ↓
PROCESSAR
 ↓
CONFERIR
 ↓
GRAVAR
 ↓
FINALIZAR

Isso é previsível.

E previsibilidade é ouro em ambientes corporativos.

Especialmente quando estamos falando de:

pagamentos,

folha salarial,

liquidação,

contabilidade,

regulatório,

processamento financeiro.

Ninguém quer um agente criativo decidindo:

Hoje vou experimentar uma maneira diferente de calcular a folha.

Não.

Obrigado.

Volte para homologação.


Entretanto, loops fechados também possuem um problema

Rigidez.

Imagine que uma API mudou.

O fluxo continua:

Passo 1
Passo 2
Passo 3
Passo 4

Mas Passo 3 não funciona mais.

Um workflow extremamente rígido pode repetir o erro indefinidamente.

Por isso aparece uma arquitetura extremamente interessante:

exploração aberta + execução fechada.

PROBLEMA
   ↓
OPEN LOOP
investiga soluções
   ↓
DECISÃO
   ↓
CLOSED LOOP
executa solução controlada
   ↓
VALIDAÇÃO

Essa combinação provavelmente será uma das estruturas mais úteis da IA corporativa.


Memory Gap: o agente com amnésia

Imagine conversar hoje com um agente.

Você explica durante quarenta minutos seu sistema.

Ele entende.

Amanhã você retorna.

— Então, sobre aquele problema do CICS...

Agente:

— Qual problema?

Pronto.

Temos um consultor que sofre amnésia todas as manhãs.

Não escala.

Por isso sistemas agentic precisam de memória.

Mas "memória" não significa simplesmente jogar todas as conversas anteriores dentro do prompt.

Isso seria caro, lento e eventualmente impossível.

Precisamos de camadas.

MEMÓRIA DE CURTO PRAZO
contexto da execução

MEMÓRIA DE TRABALHO
informações relevantes da tarefa

MEMÓRIA PERSISTENTE
dados entre sessões

BASE DE CONHECIMENTO
documentação externa

Um mainframer pode imaginar algo como:

WORKING-STORAGE
+
VSAM
+
DB2
+
LOG

Não é uma equivalência técnica perfeita, evidentemente.

Mas ajuda a compreender a ideia.


Context não é Memory

Aqui existe uma sutileza importante.

Contexto é aquilo que o modelo consegue considerar na execução atual.

Memória é um mecanismo capaz de preservar e recuperar informações úteis através das execuções.

Imagine uma biblioteca.

Contexto é a pilha de livros atualmente sobre sua mesa.

Memória é a biblioteca inteira e o catálogo que permite encontrar novamente os livros relevantes.

Essa distinção será cada vez mais importante.


Connectors: as mãos do agente

Um modelo sem ferramentas sabe falar.

Um agente equipado com conectores consegue agir.

Imagine:

LLM
 │
 ├── Gmail
 ├── Calendar
 ├── Git
 ├── Database
 ├── Mainframe
 ├── API
 ├── Files
 └── Monitoring

Isso muda completamente sua natureza.

Perguntar:

Qual é o saldo do cliente?

é uma tarefa linguística + acesso a dados.

Perguntar:

Transfira R$ 500.

é uma ação.

E ação exige controles muito mais fortes.

Autorização.

Auditoria.

Identidade.

Permissão.

Limites.

Confirmação.

Rollback.

É aí que Agentic AI deixa de ser brinquedo e entra no território da engenharia empresarial séria.


Automations: o agente começa a trabalhar sem ser chamado

Outro building block fundamental são automações.

Podemos ter:

EVENTO
  ↓
TRIGGER
  ↓
AGENTE
  ↓
LOOP

Exemplo:

Um job termina com RC=12.

O monitor detecta.

Um agente recebe SYSOUT.

Analisa.

Compara com incidentes anteriores.

Sugere causa.

Consulta documentação.

Cria resumo.

Encaminha para operador.

Agora temos algo muito próximo de AIOps agentic.


A regra de ouro: autonomia não significa ausência de controle

Talvez este seja um dos maiores equívocos atuais.

Algumas pessoas imaginam uma escala assim:

MAIS AUTONOMIA = MAIS EVOLUÇÃO

Nem sempre.

Em aplicações empresariais, talvez a melhor equação seja:

AUTONOMIA
+
OBSERVABILIDADE
+
LIMITES
+
VALIDAÇÃO
+
AUDITORIA
=
CONFIANÇA

Um agente completamente autônomo, porém impossível de auditar, pode ser menos útil que um agente limitado e extremamente previsível.


Human-in-the-Loop continua vivo

Existe também um ponto onde o humano deve permanecer.

Imagine:

Agente detecta
fraude provável
      ↓
Confidence 62%
      ↓
AÇÃO IRREVERSÍVEL?
      ↓
SIM
      ↓
HUMAN REVIEW

Isso não significa fracasso da automação.

Significa arquitetura responsável.

Um sistema maduro sabe quando continuar sozinho.

E sabe quando chamar alguém.


Curiosidade: Agentic AI está redescobrindo sistemas de controle

Existe algo fascinante em toda essa discussão.

Muito antes de LLMs, engenharia já estudava sistemas baseados em feedback.

Termostato.

Piloto automático.

Controladores industriais.

Sistemas de navegação.

Automação fabril.

Todos trabalham aproximadamente com:

ESTADO DESEJADO
      ↓
AÇÃO
      ↓
MEDIÇÃO
      ↓
ERRO
      ↓
CORREÇÃO

Agentic AI adiciona capacidades linguísticas e cognitivas poderosas ao princípio.

Mas o DNA do loop é antigo.


Easter Egg nº 1 — PROC LOOP

Imagine um agente COBOL escrito como se fosse um episódio de The Mentalist:

       PROCEDURE DIVISION.

       1000-INVESTIGATE.
           PERFORM 2000-DISCOVER
           PERFORM 3000-PLAN
           PERFORM 4000-EXECUTE
           PERFORM 5000-VERIFY

           IF WS-RESULTADO = 'OK'
               PERFORM 9000-SHIP
           ELSE
               PERFORM 6000-IMPROVE
               GO TO 1000-INVESTIGATE
           END-IF.

           STOP RUN.

Alguns veteranos COBOL acabaram de franzir a testa por causa daquele GO TO.

Sim.

Foi proposital.

O easter egg era fazer um mainframer sentir uma pequena perturbação na Força.


Easter Egg nº 2 — Red John era um Open Loop

Patrick Jane passou anos investigando Red John.

Hipótese.

Pista.

Nova hipótese.

Suspeito.

Erro.

Nova pista.

Outro suspeito.

Mais investigação.

Tecnicamente poderíamos dizer que a série inteira possui um gigantesco:

OPEN INVESTIGATION LOOP

com um critério final:

RED JOHN IDENTIFIED = TRUE

Talvez Bruno Heller tenha criado Agentic Television antes de isso virar buzzword.


Uma arquitetura agentic para analisar um Abend

Agora vamos juntar tudo em um exemplo muito próximo do universo mainframe.

Recebemos:

JOB ABC123
ABEND S0C7

Nosso agente entra em ação.

Primeiro ele descobre contexto.

Qual STEP?

Qual programa?

Qual offset?

Qual dump?

Houve mudança recente?

Depois planeja.

1 localizar mensagem
2 identificar programa
3 mapear offset
4 localizar campo
5 verificar dados
6 buscar histórico

Executa.

Consulta SYSOUT.

Obtém dump.

Lê listing.

Verifica copybook.

Cruza layout.

Então avalia.

A hipótese realmente explica o S0C7?

Se não explicar:

ITERATE

Formula outra hipótese.

Por exemplo:

Campo numericamente inválido.

Ou redefinição incorreta.

Ou arquivo com layout inesperado.

Ou COMP-3 corrompido.

Quando encontra evidência suficiente:

VERIFY = PASS

Entrega diagnóstico.

Veja como isso é muito superior a simplesmente perguntar a um chatbot:

O que é S0C7?

Uma coisa é explicar o conceito.

Outra coisa é investigar o incidente.

Essa diferença resume boa parte da passagem de Generative AI para Agentic AI.


Passo a passo para construir seu primeiro loop mental

Se você é iniciante, não tente começar criando quinze agentes, quatro bancos vetoriais, Kubernetes, três modelos e um nome grego para o orquestrador.

Comece pequeno.

Use esta sequência como seu mapa:

  1. Defina um objetivo mensurável. "Explicar JCL" é vago; "identificar possíveis erros em um JOB e apontar evidências" é melhor. Em seguida, determine quais ferramentas o agente realmente precisa, estabeleça como ele saberá que terminou, crie uma etapa independente de validação, defina limites de custo e tentativas, registre cada decisão, teste primeiro com casos conhecidos, introduza memória apenas quando houver necessidade real, adicione novos agentes somente quando existir uma especialização justificável e mantenha ações críticas sob autorização explícita até possuir evidências suficientes de confiabilidade.

Essa ordem é menos glamourosa.

E muito mais segura.


Observabilidade: porque até Patrick Jane precisava de pistas

Se um agente falhar e você não conseguir descobrir por quê, possui um problema grave.

Precisamos observar:

INPUT

DECISION

MODEL CALL

TOOL CALL

RESULT

EVALUATION

RETRY

COST

DURATION

FINAL OUTPUT

Isso é tracing agentic.

Um sistema empresarial precisa conseguir responder:

Por que esse agente tomou essa decisão?

Talvez não consigamos reconstruir todo fenômeno interno do modelo.

Mas podemos registrar o contexto operacional disponível:

instruções;

dados recuperados;

ferramentas utilizadas;

resultados;

scores;

retries;

políticas aplicadas.

Quem vem do mainframe sabe o valor disso.

SMF existe por um motivo.

SYSLOG existe por um motivo.

JESMSGLG existe por um motivo.

Auditoria existe por um motivo.

Quando algo explode às 03:17 da madrugada, "a IA decidiu" não será uma explicação aceitável.


A arquitetura que eu escolheria para uma empresa

Não escolheria simplesmente "Single Agent" ou "Fleet".

Escolheria de acordo com risco e complexidade.

Para tarefas pequenas:

Single Agent
     ↓
Tool
     ↓
Verifier

Para tarefas grandes:

                 ORCHESTRATOR
                       │
        ┌──────────────┼──────────────┐
        ↓              ↓              ↓
     COBOL           DB2            CICS
        │              │              │
        └──────────────┼──────────────┘
                       ↓
                    MAKER
                       ↓
                    CHECKER
                       ↓
                 QUALITY GATE
                       ↓
             ┌─────────┴─────────┐
             ↓                   ↓
           PASS                 FAIL
             ↓                   ↓
           SHIP               ITERATE

Agora temos algo reconhecível para qualquer profissional de engenharia.

Pipeline.

Quality gate.

Especialização.

Auditoria.

Retry.

Observabilidade.

Controle.


O curioso encontro entre Mainframe e IA

Talvez a parte mais divertida dessa história seja perceber quanto do futuro se parece com o passado.

Estamos falando de:

jobs,

queues,

orchestration,

retries,

return codes,

logs,

resource limits,

authorization,

transaction boundaries,

checkpoint,

recovery,

audit trail.

Um mainframer poderia olhar para boa parte dessa arquitetura e perguntar:

— Vocês passaram três anos inventando nomes novos para coisas que fazemos desde 1978?

Não exatamente.

Mas...

também não estaria completamente errado.

A novidade fundamental está na possibilidade de incluir mecanismos probabilísticos capazes de interpretar linguagem, contexto, intenção e informação não estruturada dentro desses loops.

O velho mundo determinístico ganha um novo componente cognitivo.


E chegamos ao verdadeiro segredo

A discussão frequentemente fica presa a modelos.

Qual é maior?

Qual possui mais parâmetros?

Qual benchmark vence?

Qual raciocina melhor?

Essas perguntas importam.

Mas quando chegamos a produção, surgem outras muito mais difíceis.

O que acontece quando o modelo erra?

Como detectamos?

Quem corrige?

Quantas vezes pode tentar?

Quando deve desistir?

Quando chama um humano?

Como registramos?

Como recuperamos?

Como evitamos repetir o mesmo erro amanhã?

Como garantimos que dois agentes não executem ações conflitantes?

Como impedimos um loop infinito?

Como controlamos custo?

Como testamos?

É aí que começa a verdadeira Loop Engineering.


O último interrogatório

Voltemos à nossa sala.

O diretor continua orgulhoso.

— Nosso agente é extremamente inteligente.

Patrick Jane termina seu chá.

— Inteligência não é o que me preocupa.

— Então o que preocupa?

Jane aponta para o dashboard.

— Quando ele erra, quem percebe?

O diretor hesita.

— O usuário.

Jane sorri.

— Então vocês ainda não construíram um agente.

— Construímos o quê?

— Um estagiário muito rápido.

Silêncio.

Fim do episódio.


O diagnóstico final

Durante a primeira fase da IA generativa, tentamos criar respostas melhores.

Durante a segunda, demos ferramentas aos modelos.

Durante a terceira, começamos a transformar modelos em agentes.

Agora entramos numa fase mais madura.

Precisamos transformar agentes em sistemas confiáveis.

E sistemas confiáveis exigem loops.

DISCOVER
   ↓
PLAN
   ↓
EXECUTE
   ↓
OBSERVE
   ↓
EVALUATE
   ↓
IMPROVE
   ↓
REPEAT

Mas repare numa última sutileza.

O objetivo não é repetir infinitamente.

O objetivo é saber quando parar.

Um bom loop possui critérios de entrada.

Critérios de qualidade.

Limites.

Feedback.

Recovery.

Auditoria.

E condição de saída.

Isso é engenharia.


☕ A última xícara

Talvez daqui a alguns anos a palavra "agente" nem seja tão importante.

Talvez simplesmente chamemos tudo isso de software.

Afinal, microsserviços já foram novidade.

Cloud já foi novidade.

APIs já foram novidade.

DevOps já foi novidade.

Containers já foram novidade.

Com o tempo, tecnologias extraordinárias tornam-se infraestrutura.

Agentic AI provavelmente seguirá caminho semelhante.

E quando isso acontecer, os sistemas vencedores não serão necessariamente aqueles com o maior número de agentes ou com o modelo mais impressionante.

Serão aqueles que conseguirem responder consistentemente às perguntas que Patrick Jane faria logo ao entrar na sala:

O que aconteceu?

Por que aconteceu?

Como você sabe?

Quem verificou?

O que fará se estiver errado?

E existe uma sexta pergunta, aquela que talvez seja a mais importante de todas:

Quando o loop termina?

Porque gerar uma resposta é fácil.

Executar uma tarefa é mais difícil.

Verificar o resultado é ainda mais difícil.

Corrigir-se sem destruir nada é engenharia.

E fazer tudo isso repetidamente, com custo controlado, memória, segurança, rastreabilidade, qualidade e possibilidade de intervenção humana...

isso já não é apenas Inteligência Artificial.

É engenharia de sistemas empresariais com inteligência dentro do loop.

E talvez essa seja a verdadeira revolução que estava escondida diante de nós o tempo inteiro.

READY

RUN AGENT

DISCOVER...

PLAN...

EXECUTE...

VERIFY...

QUALITY GATE FAILED.

ITERATING...

Patrick Jane olha para o terminal 3270.

Sorri discretamente.

E diz:

— Agora sim. Pelo menos ele sabe que errou.

quarta-feira, 18 de setembro de 2024

AIOps : Quando um Programador Embarca no Seaview e Descobre que o Verdadeiro Monstro do Oceano Não é um Polvo Gigante.

Bellacosa Mainframe apresenta o aiops

☕ Um Café no Bellacosa Mainframe

AIOps sem Mistérios para Programadores COBOL

Quando um Programador Embarca no Seaview e Descobre que o Verdadeiro Monstro do Oceano Não é um Polvo Gigante... É uma Anomalia de Performance Escondida Entre Milhões de Métricas

"Profundidade: 8.000 metros."

"Pressão externa: centenas de atmosferas."

"Silêncio absoluto."

No fundo do oceano não existe espaço para improvisação.

Não existe Ctrl+C.

Não existe reboot.

Não existe "vamos tentar novamente amanhã".

Uma pequena falha...

...e toda a missão termina.

Curiosamente, é exatamente assim que funciona um IBM Z.

Enquanto milhões de pessoas compram, transferem dinheiro, usam cartões, fazem PIX, reservam passagens e movimentam bolsas de valores, o mainframe continua trabalhando silenciosamente nas profundezas da infraestrutura mundial.

É justamente aí que nasce o universo do AIOps, do Performance Management e do Capacity Planning.

Prepare seu uniforme da Marinha Nelson Institute, embarque no USS Seaview, comandado pelo Almirante Harriman Nelson e pelo Capitão Lee Crane, porque hoje faremos uma viagem ao fundo do mar... das métricas do IBM Z.


Capítulo 1 — O Oceano Invisível do Mainframe

Todo iniciante imagina que um computador executa apenas programas.

Na realidade, um IBM Z executa milhares de atividades simultaneamente.

Enquanto seu programa COBOL faz um simples:

READ CLIENTES

o sistema inteiro está trabalhando.

Nos bastidores existem:

  • Dispatcher

  • PR/SM

  • WLM

  • zIIP

  • RMF

  • SMF

  • CICS

  • Db2

  • MQ

  • JES2

  • VSAM

  • RACF

  • DFSMS

  • Coupling Facility

  • IOS

  • Channel Subsystem

Todos gerando estatísticas.

Imagine centenas de sensores espalhados pelo casco do Seaview.

Cada sensor mede:

  • pressão

  • temperatura

  • velocidade

  • combustível

  • profundidade

  • oxigênio

  • consumo elétrico

Agora multiplique isso por dezenas de milhares.

É isso que o IBM Z mede continuamente.


Easter Egg nº 1

Na série Viagem ao Fundo do Mar, o Seaview parecia navegar calmamente.

Mas na sala de máquinas havia dezenas de oficiais monitorando centenas de instrumentos.

No IBM Z acontece exatamente o mesmo.

Você vê apenas uma tela 3270.

Por trás dela existe um oceano inteiro de telemetria.


Capítulo 2 — O erro que muita gente está cometendo

Com a chegada dos LLMs surgiu uma ideia perigosa.

"Agora basta perguntar para uma IA."

Será?

Imagine entrar no Seaview e perguntar:

— IA, estamos seguros?

Resposta:

— Sim.

Fim.

Mas...

E se existir uma microfissura no casco?

E se um sonar estiver apresentando ruído?

E se uma bomba hidráulica estiver começando a vibrar?

A IA respondeu.

Mas não analisou.

Essa é exatamente a diferença entre um chatbot e uma plataforma especializada como o IBM Z IntelliMagic Vision.


Informação não é conhecimento

Uma IA pode responder:

"A CPU está em 82%."

Ótimo.

Mas isso é bom?

Ruim?

Esperado?

Anormal?

Ela não sabe.

Porque falta contexto.

O especialista pergunta:

  • qual CPC?

  • qual LPAR?

  • qual horário?

  • qual workload?

  • qual Service Class?

  • qual política WLM?

  • houve IPL?

  • mudou o firmware?

  • houve novo package Db2?

  • apareceu nova aplicação Java?

  • aumentou MQ?

  • mudou o peso PR/SM?

É outro nível de investigação.


Capítulo 3 — O verdadeiro tesouro do oceano chama-se SMF

Poucos iniciantes conhecem o SMF.

Mas ele talvez seja o recurso mais valioso do z/OS.

SMF significa:

System Management Facility

Pense nele como o diário de bordo do Seaview.

Tudo é registrado.

Tudo.

Quem usou CPU.

Quem fez I/O.

Quem abriu datasets.

Quem executou CICS.

Quem acessou Db2.

Quem consumiu zIIP.

Quem gerou paging.

Quem alterou configuração.

Décadas de história ficam registradas.

Sem SMF...

não existe análise histórica.


Curiosidade

Muitas empresas possuem anos de dados SMF armazenados.

Algumas conseguem comparar o comportamento atual com períodos de cinco ou dez anos atrás.

É como comparar uma expedição submarina atual com os registros originais do Almirante Nelson.


Capítulo 4 — Uma imagem vale mais que mil RMFs

O artigo comenta algo extremamente importante.

Uma figura vale mais que mil palavras.

Observe mentalmente a topologia apresentada.

Diversos:

CPC

LPARs

Sysplex

Tudo conectado.

Em segundos o especialista entende:

Quem pertence a quem.

Quem compartilha recursos.

Quem faz parte do mesmo Sysplex.

Quem utiliza determinado processador.

Nenhum texto consegue transmitir isso tão rapidamente.


Easter Egg nº 2

No Seaview existia uma enorme mesa de navegação.

Ninguém decorava o oceano.

Eles olhavam o mapa.

O IntelliMagic faz exatamente isso.

Ele desenha o mapa do seu mainframe.


Capítulo 5 — O poder do Change Detection

Imagine esta situação.

Segunda-feira:

Tudo perfeito.

Terça-feira:

Usuários reclamando.

O que mudou?

Essa pergunta pode consumir dias de investigação.

Mas o IntelliMagic compara automaticamente períodos diferentes.

Ele verifica:

  • CPU

  • zIIP

  • Dispatch Time

  • Busy

  • Eligible Work

  • Utilização

  • Tendências

  • Desvios

Não apenas mostra valores.

Mostra mudanças.

E mais importante...

Mostra mudanças relevantes.


O segredo do desvio padrão

Imagine um sonar.

O ruído normal fica entre:

10 e 15 decibéis.

Hoje apareceu:

Nada mudou.

Agora imagine:

Tem algo enorme vindo na direção do submarino.

Foi isso que o desvio padrão detectou.

Mudanças realmente fora do comportamento esperado.

Não basta aumentar.

Precisa aumentar de forma estatisticamente significativa.


Capítulo 6 — Health Rating

Talvez a funcionalidade mais fascinante.

Imagine o painel do Seaview.

Luzes verdes.

Luzes amarelas.

Luzes vermelhas.

Você não precisa ler milhares de sensores.

Basta olhar o painel.

No IntelliMagic ocorre exatamente isso.

Cada sistema recebe indicadores como:

  • Dispatch Time

  • MVS Busy

  • LPAR Busy

  • zIIP

  • IOSQ

  • Pending

  • Connect

  • Interrupt

  • Page-ins

Em poucos segundos o especialista sabe onde investigar primeiro.


Dica Bellacosa

Nunca olhe apenas um indicador.

Performance é correlação.

CPU alta pode ser consequência.

Não a causa.


Capítulo 7 — Tendência vale mais que fotografia

Uma fotografia mostra um instante.

Um gráfico mostra uma história.

É por isso que Capacity Planning utiliza séries históricas.

Não interessa apenas saber:

Hoje = 70%.

Interessa descobrir:

Janeiro:

65%

Fevereiro:

67%

Março:

69%

Abril:

72%

Maio:

75%

Junho:

78%

Agora existe uma tendência.

Sem histórico...

não existe previsão.


Capítulo 8 — Capacity Planning

Aqui muitos iniciantes cometem outro erro.

Pensam:

Capacity Planning = CPU.

Não.

CPU é apenas uma peça.

O especialista observa:

CPU

Memória

I/O

Storage

Channels

Paging

Network

zIIP

MSU

Software

CICS

Db2

MQ

IMS

Batch

Online

WLM

Tudo ao mesmo tempo.

Porque gargalos raramente aparecem isolados.


Curiosidade

Em muitos ambientes o problema nunca foi CPU.

Foi um único volume DASD saturado.

Ou uma fila MQ crescendo.

Ou uma política WLM mal definida.

Ou uma consulta SQL sem índice.


Capítulo 9 — O verdadeiro papel do especialista

O artigo fala algo maravilhoso.

O maior problema não é coletar dados.

É interpretá-los.

Hoje qualquer ferramenta coleta milhões de métricas.

Mas poucas conseguem responder:

O que realmente importa?

Imagine o Seaview.

Existem dez mil instrumentos.

Mas apenas um oficial experiente percebe que pequenas vibrações significam falha futura.

É exatamente isso que faz um especialista em performance.


Capítulo 10 — Explainability

Uma IA responde.

O especialista explica.

Existe enorme diferença.

Imagine um diretor perguntando:

"Por que precisamos comprar outro CPC?"

Você responde:

"Porque a IA sugeriu."

A reunião termina.

Agora imagine responder:

  • crescimento médio de 18% ao ano;

  • tendência confirmada em 36 meses;

  • workloads Batch crescendo;

  • consumo zIIP estabilizado;

  • pico de MSU chegando ao limite contratual;

  • risco para SLA da aplicação bancária;

  • previsão estatística de saturação em oito meses.

Agora existe evidência.


Easter Egg nº 3

No Seaview, o Almirante Nelson nunca dizia apenas:

"Vamos mergulhar."

Ele mostrava:

  • cartas náuticas;

  • sonar;

  • profundidade;

  • corrente marítima;

  • combustível;

  • pressão.

Isso é explainability.


Capítulo 11 — IA não substitui Analytics

Esse talvez seja o maior ensinamento do artigo.

A IA facilita perguntas.

O IntelliMagic produz respostas confiáveis.

Pense assim.

ChatGPT é como um excelente oficial de comunicações.

Ele conversa.

Resume.

Explica.

O IntelliMagic é o centro de controle do submarino.

Recebe milhares de sinais.

Correlaciona.

Detecta anomalias.

Calcula riscos.

Prevê problemas.

Ambos trabalham juntos.

Jamais um substitui o outro.


Passo a passo de uma investigação de performance

Imagine que um gerente liga dizendo:

"O sistema ficou lento."

Como um especialista procede?

Passo 1 — Confirmar o sintoma

Foi CPU?

I/O?

Rede?

Storage?

Aplicação?


Passo 2 — Comparar com a baseline

Como era ontem?

Semana passada?

Mesmo horário?


Passo 3 — Procurar mudanças

Novo deploy?

Novo package?

Nova política WLM?

Novo firmware?

Novo microcódigo?


Passo 4 — Correlacionar métricas

CPU alta.

Mas também houve:

  • aumento de I/O;

  • queda no cache;

  • crescimento do MQ;

  • aumento de locks Db2.

Agora aparece a verdadeira causa.


Passo 5 — Avaliar impacto

Quem sofreu?

Clientes?

PIX?

Internet Banking?

Cartão?

Folha?

Ou apenas um batch interno?


Passo 6 — Recomendar ações

Redistribuir workload.

Aumentar zIIP.

Reconfigurar WLM.

Otimizar SQL.

Criar índices.

Mover datasets.

Alterar prioridades.


O futuro

A próxima geração de ferramentas será híbrida.

Imagine conversar com a plataforma:

"Quais sistemas apresentaram crescimento anormal?"

A IA responde.

Mas por trás dela existe um motor especializado analisando:

  • milhares de métricas;

  • estatísticas;

  • tendências;

  • Health Insights;

  • correlações;

  • previsões.

É exatamente essa união que o artigo chama de:

AI + Analytics.


Curiosidades Bellacosa

✅ Um único IBM Z pode produzir milhões de registros SMF por dia.

✅ O WLM ajusta prioridades automaticamente centenas de vezes por segundo para manter os objetivos de serviço.

✅ O zIIP pode descarregar grande parte do processamento elegível de Db2, XML, Java, criptografia e workloads analíticos, reduzindo custos de software em muitos cenários.

✅ Um problema aparentemente "de CPU" pode, na verdade, ser consequência de filas de I/O, contenção em locks Db2, espera por MQ ou políticas WLM inadequadas.

✅ Ferramentas como o IBM Z IntelliMagic Vision incorporam décadas de conhecimento de especialistas em performance, automatizando análises que antes exigiam anos de experiência.


Conclusão — A Verdadeira Viagem ao Fundo do Mar

Ao final da missão, o USS Seaview emerge lentamente das profundezas. A tripulação sobreviveu não porque tinha o sonar mais bonito ou o rádio mais moderno, mas porque soube interpretar corretamente cada sinal vindo do oceano.

No IBM Z acontece exatamente o mesmo.

Os gráficos, mapas de Sysplex, indicadores de saúde, detecção automática de mudanças e análises históricas são os "sonares" do mundo corporativo. Eles transformam bilhões de amostras de desempenho em conhecimento acionável.

A IA generativa representa o novo oficial de comunicações: traduz perguntas complexas para linguagem natural, resume informações e acelera o acesso ao conhecimento. Já plataformas como o IBM Z IntelliMagic Vision são o cérebro analítico do navio, capazes de correlacionar milhares de métricas, detectar riscos antes que se tornem incidentes e justificar cada conclusão com evidências.

Para o programador COBOL iniciante, a maior lição é simples: escrever um bom programa não significa apenas fazer a lógica funcionar. Significa entender como esse programa consome CPU, acessa VSAM e Db2, utiliza CICS, aproveita zIIP, respeita as metas do WLM e influencia todo o ecossistema do mainframe.

No universo Bellacosa Mainframe, o código é apenas a ponta do iceberg.

A verdadeira aventura começa quando você aprende a enxergar o oceano invisível que existe sob cada EXEC CICS, cada SELECT no Db2, cada mensagem no MQ e cada READ em um dataset. É nesse oceano que vivem os maiores desafios da engenharia de performance — e também onde se encontram os maiores tesouros de conhecimento para quem deseja se tornar um verdadeiro Mestre Jedi do Mainframe.

sexta-feira, 10 de março de 2017

A Jornada do Engenheiro de Performance em Mainframe : Quando um Cadete Embarca no USS Seaview

Bellacosa Mainframe e a jornada do engenheiro de performance em mainframe

 

☕ Um Café no Bellacosa Mainframe

A Jornada do Engenheiro de Performance em Mainframe

Quando um Cadete Embarca no USS Seaview e Descobre que o Verdadeiro Tesouro Não Está no Fundo do Oceano... Está Escondido Entre Milhões de Métricas do IBM Z

"Profundidade: 10.000 metros."

"Motores nucleares operando normalmente."

"Sonar ativo."

"Todos os sensores reportando dados."

O Capitão Lee Crane olha para o jovem cadete recém-chegado ao USS Seaview.

— Você sabe pilotar um submarino?

— Não, senhor.

— Então sabe interpretar o sonar?

— Ainda não.

— Conhece oceanografia?

— Também não.

O capitão sorri.

— Excelente. Você está exatamente onde todo grande engenheiro começou.

Essa pequena cena resume perfeitamente a Engenharia de Performance em Mainframe.

Ninguém nasce sabendo interpretar RMF.

Ninguém entende SMF na primeira semana.

Ninguém olha um relatório de WLM e imediatamente identifica um problema.

Tudo isso é aprendido.

E existe um caminho.

Este artigo é exatamente esse mapa.

Não um curso.

Mas um roteiro de formação para transformar um programador COBOL em um verdadeiro Engenheiro de Performance IBM Z.


A Grande Verdade

Existe uma diferença enorme entre:

Fazer um programa funcionar

e

Entender como o computador inteiro funciona.

O programador escreve aplicações.

O engenheiro de performance compreende o ecossistema inteiro.

Ele precisa enxergar aquilo que ninguém vê.

Enquanto um desenvolvedor observa:

READ CLIENTE

O especialista imagina imediatamente:

  • Quantos EXCPs isso gera?

  • O dataset está em cache?

  • Existe contenção?

  • O Buffer Pool está adequado?

  • O Storage está respondendo normalmente?

  • Esse acesso poderia usar Sequential Detection?

  • Existe leitura desnecessária?

É outro universo.


A Mentalidade Correta

Antes dos livros...

antes dos cursos...

antes das ferramentas...

é preciso desenvolver uma nova forma de pensar.

O engenheiro de performance não pergunta:

"Como resolver?"

Ele pergunta:

"Por que isso aconteceu?"

Essa simples mudança muda toda a carreira.


O Primeiro Ano

Imagine que você acabou de embarcar no Seaview.

Ninguém coloca um novato para controlar o reator nuclear.

Primeiro ele aprende o navio.

No IBM Z acontece exatamente o mesmo.


Etapa 1

Aprenda o Sistema Operacional

Antes de qualquer ferramenta...

aprenda z/OS.

Muito bem.

Estude:

  • IPL

  • Address Space

  • TCB

  • SRB

  • Dispatching

  • Cross Memory

  • Storage

  • Virtual Storage

  • Paging

  • Swapping

  • CSA

  • SQA

  • ECSA

  • Link Pack Area

  • APF

  • Catalog

  • SMS

  • JES2

  • JES3

Sem isso...

todo o restante fica confuso.


Por quê?

Porque performance nunca acontece apenas no COBOL.

Ela acontece dentro do z/OS.


Etapa 2

Aprenda Arquitetura IBM Z

Conheça profundamente:

CPC

Drawer

Books

CP

zIIP

ICF

SAP

LPAR

PR/SM

Channel Subsystem

OSA

FICON

Coupling Facility

Memory

Cache

HMC

SE

Imagine o Seaview.

Antes de mergulhar você precisa conhecer:

  • motores

  • hélices

  • sonar

  • casco

  • radar

  • reator

O IBM Z também é um navio.


Etapa 3

CPU

Aqui começa o verdadeiro mundo da performance.

Aprenda:

CPU Time

Elapsed Time

Dispatch Time

Wait Time

SRB Time

TCB Time

PR/SM

Weight

LPAR

Logical CPU

Physical CPU

SMT

Vertical High

Vertical Medium

Vertical Low

Entenda:

GCP

zIIP

IFL

ICF

SAP

Nunca mais olhe apenas:

CPU = 90%

Pergunte:

90% de quê?


Etapa 4

Memória

Aprenda:

Frames

Pages

Paging

Working Set

Central Storage

Expanded Storage (história)

Auxiliary Storage

Frames Reais

Virtual Storage

Buffer Pool

Hiperspace

Data Spaces

Memory Objects

A memória explica inúmeros problemas aparentemente "misteriosos".


Etapa 5

I/O

Talvez o assunto mais importante.

Estude:

Channel

CU

Device

Volume

Cache

FICON

IOSQ

Pending

Connect

Disconnect

Response Time

EXCP

DASD

FlashSystem

RAID

Storage Class

SMS

Cache Miss

Write Pending

Buffering

Sem dominar I/O...

não existe engenheiro de performance.


Easter Egg

Na série Viagem ao Fundo do Mar...

o sonar era mais importante que o periscópio.

No Mainframe...

o I/O costuma ser mais importante que CPU.


Segundo Ano

Agora você começa a estudar subsistemas.


CICS

Aprenda:

Task

Transaction

Program

COMMAREA

Channel

Threadsafe

QR

L8

Open TCB

MXT

SOS

DSALIM

Storage

Temporary Storage

Transient Data

Journal

Mirror

TOR

AOR

FOR

Pipeline

IPIC

MRO

ISC

EXCI

Performance CICS é um universo inteiro.


Db2

Estude:

Access Path

RUNSTATS

REBIND

Package

Plan

RID List

Getpage

Prefetch

Index

Cluster Ratio

Lock

Latch

Buffer Pool

Sort

Stage 1

Stage 2

CPU SQL

RID Overflow

Parallelism

Dynamic SQL

Static SQL

Performance Db2 é quase uma especialização própria.


MQ

Aprenda:

Queue

Channel

Trigger

Persistent

Non Persistent

Commit

Rollback

Backout

Depth

Dead Letter Queue

Transmission Queue

Cluster

MQ também impacta performance.


IMS

Mesmo que nunca utilize...

conheça.

Principalmente:

DL/I

PSB

PCB

Database

Fast Path

Message Queue

TM

DB


WLM

Aqui mora a inteligência do z/OS.

Aprenda:

Service Class

Report Class

Velocity

Response Time

Importance

Goals

Classification

Policy

Performance sem WLM...

é impossível.


Ferramentas

Agora sim.

Chegou a hora.


RMF

Aprenda:

Monitor I

Monitor II

Monitor III

Postprocessor

Reports


SMF

Este será seu melhor amigo.

Conheça:

SMF 30

SMF 70

SMF 72

SMF 74

SMF 80

SMF 100

SMF 101

SMF 110

SMF 115

SMF 116

Cada registro conta uma história.


SDSF

Domine completamente.

Aprenda:

DA

ST

H

LOG

INPUT

OUTPUT

JESMSGLG

JESJCL

SYSOUT


OMEGAMON

Depois:

OMEGAMON

z/OS

CICS

Db2

MQ

Storage

Network


IntelliMagic Vision

Aprenda:

Health Insights

Topology

Trend

Change Detection

Capacity

Forecast

Anomaly

Correlation

Drill Down

Rating

É uma das ferramentas mais impressionantes existentes hoje.


Estatística

Surpresa.

Todo engenheiro de performance precisa entender estatística.

Não avançada.

Mas suficiente.

Estude:

Média

Moda

Mediana

Percentil

Desvio Padrão

Correlação

Distribuição

Outlier

Baseline

Forecast

Sazonalidade

Sem estatística...

não existe Capacity Planning.


Capacity Planning

Depois de dominar performance...

aprenda previsão.

Pergunte:

Quando acabará CPU?

Quando acabará memória?

Quando precisaremos de outro CPC?

Quando o licenciamento aumentará?

Como reduzir MSU?

Como aproveitar melhor zIIP?


Custos

Aqui está um assunto que quase ninguém ensina.

Performance também significa dinheiro.

Um SQL ruim pode custar milhares de horas de CPU por mês.

Um loop desnecessário pode aumentar MSUs.

Uma política WLM inadequada pode provocar desperdício.

Um buffer pool pequeno pode multiplicar leituras físicas.

Um zIIP subutilizado pode elevar custos de software.

O melhor engenheiro de performance pensa como um engenheiro e como um gestor.


O Que Ler

Monte sua biblioteca.

IBM Redbooks

IBM Documentation

RMF User Guide

SMF Manuals

Principles of Operation

DFSMS Redbooks

Db2 Performance Guides

CICS Performance Guide

WLM Redbooks

Enterprise COBOL Programming Guide

Arquitetura de Computadores

Sistemas Operacionais

Estatística

Filas

Teoria das Filas

Capacity Planning

AIOps

Observabilidade


O Que Praticar

Leia SMFs.

Analise RMFs.

Observe gráficos.

Faça comparações.

Monte dashboards.

Descubra gargalos.

Correlacione métricas.

Explique resultados.

Escreva relatórios.

Ensine outras pessoas.

Ensinar acelera o aprendizado.


O Perfil Ideal

O engenheiro de performance gosta de:

✔ investigar

✔ medir

✔ comparar

✔ questionar

✔ procurar padrões

✔ estudar arquitetura

✔ entender negócios

✔ resolver problemas difíceis

Ele é menos "programador".

E mais "cientista".


A Evolução da Carreira

O caminho normalmente segue algo parecido com:

Programador COBOL

Programador Sênior

Especialista CICS/Db2

Analista Técnico

Performance Analyst

Capacity Planner

System Performance Engineer

IBM Z Architect

Enterprise Performance Consultant

Chief Performance Engineer

Não existe pressa.

Existe evolução contínua.


Curiosidades Bellacosa

☕ Um único dia de operação de um grande banco pode produzir milhões de registros SMF.

☕ Muitos problemas atribuídos ao COBOL têm origem em SQL, storage, WLM ou infraestrutura.

☕ O melhor relatório de performance é aquele que explica o impacto no negócio, não apenas os números.

☕ A maioria dos grandes especialistas em performance começou como programador ou operador e desenvolveu a capacidade de conectar métricas, arquitetura e processos de negócio.

☕ Ferramentas modernas como IBM Z IntelliMagic Vision aceleram a análise, mas não substituem o conhecimento de arquitetura. Elas ajudam o especialista a enxergar mais rápido, mas é o especialista quem transforma dados em decisões.


Missão Final – A Última Viagem do Seaview

Depois de anos estudando, você retorna ao centro de controle do USS Seaview.

O sonar detecta uma anomalia.

Os alarmes começam.

Todos olham para você.

Ninguém pergunta:

"Qual é a CPU?"

Perguntam:

"O que está acontecendo?"

Você consulta RMF, SMF, OMEGAMON, IntelliMagic Vision, WLM e os monitores dos subsistemas. Em poucos minutos percebe que o problema não está na CPU, nem no CICS, nem no Db2.

Um volume de storage apresenta aumento no tempo de resposta, gerando filas de I/O, elevando o tempo de espera das transações e causando degradação em cascata.

Você explica a causa, demonstra as evidências, estima o impacto no negócio e propõe a correção.

Nesse instante, você deixa de ser apenas um programador COBOL.

Você se torna um verdadeiro Engenheiro de Performance em Mainframe.

Porque, no universo Bellacosa Mainframe, performance não é decorar relatórios.

É aprender a ouvir o sonar invisível do IBM Z antes que o oceano inteiro perceba que existe um problema.

sexta-feira, 10 de fevereiro de 2017

Engenharia de Performance em Mainframe : Coboleiro Embarca no Seaview e Descobre que CPU Alta é Apenas o Primeiro Sinal no Sonar

 

Bellacosa Mainframe e a engenharia de performance no mainframe

☕ Um Café no Bellacosa Mainframe

Engenharia de Performance em Mainframe sem Mistérios

Quando um Programador COBOL Embarca no Seaview e Descobre que CPU Alta é Apenas o Primeiro Sinal no Sonar

O painel do submarino começa a piscar.

Uma luz amarela acende na sala de controle.

Depois outra.

No sonar, um objeto gigantesco se aproxima lentamente pelo lado de boreste.

O Capitão pergunta:

— É uma criatura marinha?

O operador responde:

— Negativo, senhor. Parece uma fila de I/O crescendo no volume de produção.

O Almirante observa os instrumentos, ajusta os óculos e diz:

— Então chamem o engenheiro de performance. E tragam café.

Bem-vindo à Engenharia de Performance em Mainframe, uma disciplina em que números aparentemente inocentes podem esconder problemas capazes de afetar milhões de transações, atrasar processamento batch, aumentar custos de software e transformar uma madrugada tranquila em uma expedição ao fundo do oceano.

Para um programador COBOL iniciante, performance pode parecer assunto exclusivo de sysprog, especialista de capacidade ou administrador de sistemas. Mas isso é um erro.

Seu programa consome CPU.

Seu programa faz I/O.

Seu programa acessa Db2, VSAM, IMS, MQ e CICS.

Seu programa pode gerar contenção, espera, filas, locks, page-ins, excesso de logging, leitura desnecessária e milhões de instruções que ninguém percebeu durante os testes.

Portanto, entender Engenharia de Performance não é abandonar o COBOL.

É aprender a enxergar o mundo que existe abaixo de cada READ, cada WRITE, cada EXEC CICS, cada SELECT e cada CALL.


1. O que é Engenharia de Performance?

Engenharia de Performance é o conjunto de práticas usadas para medir, analisar, prever, otimizar e controlar o comportamento de sistemas computacionais.

No mainframe, ela procura responder perguntas como:

  • O sistema está entregando o tempo de resposta esperado?

  • Existe capacidade suficiente para o crescimento?

  • Qual workload está consumindo mais recursos?

  • O problema está na aplicação, no sistema operacional, no banco, no storage ou na rede?

  • A utilização atual é normal?

  • Existe uma tendência de saturação?

  • Quanto custa essa ineficiência?

  • O ambiente sobreviverá ao próximo fechamento mensal?

  • O novo release aumentou CPU?

  • O zIIP está sendo bem utilizado?

  • O WLM está protegendo as aplicações críticas?

Engenharia de Performance não é simplesmente olhar um gráfico de CPU.

É entender a relação entre:

carga + recursos + prioridade + arquitetura + tempo + custo + impacto no negócio.

No Seaview, não basta saber a profundidade.

É necessário saber a pressão do casco, a velocidade, o combustível, a direção da corrente, a temperatura da água e a distância até o próximo porto.

No IBM Z acontece exatamente o mesmo.


2. Performance não é velocidade

Muita gente usa “performance” como sinônimo de rapidez.

Mas performance é mais ampla.

Um sistema pode ser rápido e mesmo assim ser ineficiente.

Imagine um programa COBOL que termina em dois minutos, mas consome uma quantidade absurda de CPU. Talvez ele pareça rápido porque o mainframe possui muita capacidade disponível. Porém, quando centenas de programas semelhantes executarem ao mesmo tempo, o problema aparecerá.

Da mesma forma, um sistema pode ter baixa CPU e apresentar péssimo tempo de resposta porque está esperando por:

  • I/O;

  • locks;

  • ENQ;

  • storage;

  • rede;

  • fila MQ;

  • Db2;

  • VSAM;

  • tape;

  • outro address space;

  • tarefa serializada;

  • serviço externo.

A primeira grande lição é esta:

CPU alta não significa necessariamente problema, e CPU baixa não significa necessariamente saúde.


3. As principais atividades do engenheiro de performance

O profissional de performance atua em várias frentes.

Monitoramento

Ele acompanha o ambiente continuamente.

Observa:

  • consumo de GCP;

  • consumo de zIIP;

  • utilização de LPAR;

  • peso de partição;

  • dispatch time;

  • paging;

  • I/O;

  • response time;

  • filas;

  • WLM;

  • service classes;

  • storage;

  • CICS;

  • Db2;

  • IMS;

  • MQ;

  • batch;

  • redes;

  • Coupling Facility.

O objetivo é perceber desvios antes que o usuário perceba.

Análise de incidentes

Quando ocorre lentidão, timeout, abend em massa, filas ou degradação, o especialista procura a causa.

Ele pergunta:

  • Quando começou?

  • O que mudou?

  • Quais sistemas foram afetados?

  • Foi geral ou localizado?

  • O problema é recorrente?

  • Existe correlação com deploy, batch, fechamento ou pico de usuários?

  • Houve alteração de configuração?

  • Algum recurso ficou saturado?

Planejamento de capacidade

Aqui o foco deixa de ser apenas “o que está acontecendo?” e passa a ser:

“O que acontecerá daqui a três, seis ou doze meses?”

O especialista analisa crescimento, sazonalidade, novas aplicações, migrações, aquisições e projeções de negócio.

Otimização de custos

No mainframe, performance e custo caminham juntos.

Um programa que utiliza CPU demais pode aumentar o custo de software.

Uma consulta Db2 mal desenhada pode consumir milhões de instruções desnecessárias.

Um workload que poderia usar zIIP pode acabar executando em GCP.

Um fechamento mal planejado pode elevar o pico mensal de consumo.

O engenheiro de performance não procura apenas velocidade.

Procura eficiência econômica.

Avaliação de mudanças

Antes e depois de uma mudança, ele compara resultados.

Exemplos:

  • nova versão do compilador COBOL;

  • mudança de índices Db2;

  • novo release de CICS;

  • atualização de z/OS;

  • aumento de memória;

  • mudança de WLM;

  • alteração de topology;

  • migração de storage;

  • nova política de batch;

  • modernização para API.


4. O dia a dia de um especialista

A rotina varia conforme a empresa, mas geralmente começa pela observação da saúde do ambiente.

Imagine o engenheiro chegando à sala de controle do Seaview.

Ele não começa desmontando o motor.

Primeiro, olha os instrumentos.

Pela manhã

Normalmente verifica:

  • incidentes da madrugada;

  • jobs que atrasaram;

  • batch critical path;

  • picos de CPU;

  • uso de zIIP;

  • filas de I/O;

  • tempo de resposta CICS;

  • threads Db2;

  • locks e deadlocks;

  • filas MQ;

  • paging;

  • alertas de storage;

  • goals perdidos pelo WLM.

Também compara com o comportamento esperado.

Se o fechamento mensal sempre eleva a CPU, isso pode ser normal.

Se uma terça-feira comum apresenta o mesmo pico de um fechamento, algo precisa ser investigado.

Durante o dia

O especialista participa de reuniões com:

  • aplicações;

  • infraestrutura;

  • banco de dados;

  • storage;

  • redes;

  • capacity planning;

  • gestão;

  • arquitetura;

  • fornecedores.

Ele traduz linguagem técnica para impacto de negócio.

Não basta dizer:

“houve aumento de 22% no dispatch time”.

É necessário explicar:

“o aumento ocorreu no período de maior volume, afetou o tempo de resposta do serviço de pagamentos e pode comprometer o SLA caso o crescimento continue”.

No final do dia

Pode gerar relatórios, registrar conclusões, revisar mudanças e atualizar previsões.

Uma análise que não é documentada tende a ser esquecida.

E um problema esquecido costuma voltar.


5. Principais fontes de dados

O mainframe é provavelmente uma das plataformas mais instrumentadas da história da computação.

Ele gera telemetria detalhada há décadas.

SMF

O System Management Facility é o grande diário de bordo do z/OS.

Registra uma enorme variedade de eventos e medições.

Há registros para:

  • jobs;

  • steps;

  • CPU;

  • datasets;

  • Db2;

  • CICS;

  • MQ;

  • WLM;

  • storage;

  • segurança;

  • rede;

  • hardware;

  • utilização de processadores.

Para o engenheiro de performance, SMF é ouro.

Sem dados históricos, muitas conclusões viram opinião.

RMF

O Resource Measurement Facility ajuda a medir recursos do sistema.

Ele oferece informações sobre:

  • CPU;

  • memória;

  • paging;

  • I/O;

  • channels;

  • Coupling Facility;

  • workload;

  • delays;

  • utilização de dispositivos.

O RMF é como o conjunto de sensores da sala de máquinas.

Monitor III

Permite observar comportamento mais próximo do tempo real.

É muito útil durante incidentes.

Você pode investigar quem está esperando, qual workload está atrasado e onde existe contenção.

Dados das subsistemas

CICS, Db2, IMS, MQ, storage e redes também possuem seus próprios monitores e registros.

É por isso que performance exige visão integrada.

Um problema no CICS pode ter origem no Db2.

Um problema no Db2 pode ter origem no storage.

Um problema no storage pode refletir em timeouts na aplicação.

Tudo está conectado.


6. Principais ferramentas

Cada empresa utiliza um conjunto diferente, mas algumas categorias aparecem com frequência.

IBM RMF e SMF

São a base da análise de performance no z/OS.

IBM OMEGAMON

Muito usado para monitoramento de:

  • z/OS;

  • CICS;

  • Db2;

  • IMS;

  • MQ;

  • storage;

  • redes.

Ajuda a visualizar métricas, alertas e problemas em tempo próximo do real.

IntelliMagic Vision for IBM Z

Transforma grandes volumes de dados operacionais em análises visuais, correlações, Health Insights, tendências e detecção de mudanças.

Sua força está em reunir dados de diversas áreas e aplicar conhecimento especializado.

IBM Z Performance and Capacity Analytics

Ajuda na análise histórica, relatórios e planejamento.

BMC AMI

Possui soluções para monitoramento, automação, performance e gestão operacional.

Broadcom Mainframe Software

Inclui ferramentas de monitoramento, performance, automação e capacity management.

SDSF

Embora não seja uma plataforma completa de performance, o SDSF é fundamental para analisar jobs, address spaces, utilização e situações operacionais.

Db2 Performance Expert e monitores Db2

Essenciais para investigar:

  • SQL;

  • threads;

  • locks;

  • buffer pools;

  • getpages;

  • I/O;

  • accounting;

  • statistics.

CICS Performance Analyzer

Ajuda a entender transações CICS, tempo de resposta, CPU, waits e comportamento das tarefas.


7. O que analisar em CPU

CPU é importante, mas deve ser analisada com contexto.

GCP

Os General Purpose Processors executam a maior parte do trabalho tradicional.

O especialista observa:

  • utilização média;

  • picos;

  • distribuição entre LPARs;

  • CPU por workload;

  • CPU por job;

  • CPU por transação;

  • CPU por programa;

  • crescimento histórico.

zIIP

O zIIP executa workloads elegíveis, como partes de Db2, Java, XML, criptografia e outros componentes.

É importante analisar:

  • quanto trabalho é elegível;

  • quanto está realmente executando no zIIP;

  • quanto está transbordando para GCP;

  • se existe capacidade suficiente de zIIP;

  • se aplicações poderiam aproveitar mais esse recurso.

Um ambiente com zIIP saturado pode enviar trabalho elegível para processadores gerais, aumentando custos.

Dispatch Time

É o tempo em que uma unidade de trabalho realmente executa em processador.

Se o workload está pronto, mas não recebe CPU, pode haver atraso de dispatch.

LPAR Busy e CPC Busy

Uma LPAR pode estar muito ocupada enquanto o CPC ainda possui capacidade.

Ou o CPC inteiro pode estar perto do limite.

São situações diferentes.


8. O que analisar em memória

No z/OS, memória insuficiente pode gerar paging.

Paging significa que páginas de memória precisam ser movidas entre armazenamento central e auxiliar.

Algum paging pode ser normal.

Paging excessivo é como obrigar a tripulação do Seaview a buscar cada ferramenta em um depósito localizado três compartimentos abaixo.

O especialista observa:

  • page-ins;

  • page-outs;

  • frames;

  • storage central;

  • auxiliary storage;

  • working sets;

  • utilização por address space;

  • pressão de memória;

  • storage shortages.

Em CICS, também é necessário observar áreas como DSAs.

Em Db2, buffer pools são fundamentais.


9. O que analisar em I/O

I/O é uma das áreas mais importantes.

Um programa pode estar usando pouca CPU porque passa quase todo o tempo esperando dados.

Métricas comuns incluem:

  • I/O rate;

  • response time;

  • connect time;

  • disconnect time;

  • pending time;

  • IOSQ time;

  • cache hit;

  • quantidade de operações;

  • concentração por volume;

  • concentração por device;

  • throughput.

IOSQ

Representa espera na fila do subsistema de I/O.

Se muitos pedidos aguardam para usar o mesmo recurso, IOSQ pode crescer.

Pending Time

Pode indicar espera antes que a operação seja atendida.

Connect Time

É o tempo de transferência efetiva.

Disconnect Time

Pode envolver períodos em que o dispositivo não está conectado ao canal durante a operação.

A relação entre esses tempos ajuda a descobrir onde está o atraso.


10. O que analisar em CICS

No CICS, o especialista verifica:

  • response time;

  • dispatch time;

  • suspend time;

  • CPU por transação;

  • quantidade de tasks;

  • MXT;

  • storage;

  • waits;

  • file control;

  • Db2 calls;

  • MQ calls;

  • temporary storage;

  • transient data;

  • program loads;

  • abends;

  • transaction rate.

Um tempo de resposta alto pode ser dividido em partes.

Talvez a transação tenha executado apenas 20 milissegundos de CPU, mas esperado dois segundos por Db2.

Logo, otimizar o COBOL pode não resolver.

É necessário identificar onde a transação ficou suspensa.


11. O que analisar em Db2

Db2 merece uma expedição própria.

Os principais pontos incluem:

  • SQL com maior CPU;

  • SQL com maior elapsed time;

  • getpages;

  • synchronous reads;

  • dynamic prefetch;

  • buffer pool hit ratio;

  • locks;

  • suspensions;

  • deadlocks;

  • timeouts;

  • sort;

  • package;

  • thread;

  • commit frequency;

  • logging;

  • uso de índice;

  • acesso tablespace scan.

Uma instrução SQL aparentemente simples pode provocar milhões de getpages.

Um índice ausente pode transformar uma busca seletiva em varredura completa.

Um commit mal posicionado pode causar logging excessivo.

Dica Bellacosa

Nunca otimize SQL olhando apenas o texto.

Olhe também:

  • access path;

  • cardinalidade;

  • estatísticas;

  • frequência;

  • volume;

  • custo acumulado.

Um SQL que custa pouco, mas executa 10 milhões de vezes, pode ser mais importante que um SQL caro executado uma vez.


12. O que analisar em VSAM

Em VSAM, observe:

  • EXCP;

  • CI splits;

  • CA splits;

  • free space;

  • bufferização;

  • número de acessos;

  • acesso sequencial ou aleatório;

  • tamanho do cluster;

  • distribuição de chaves;

  • reorganização;

  • sharing;

  • RLS.

Um KSDS com muitos splits pode sofrer degradação progressiva.

Um programa que faz leituras aleatórias em massa pode gerar enorme I/O.

Uma chave mal distribuída pode concentrar atividade.


13. Solução de problemas passo a passo

Quando chega a mensagem clássica:

“O sistema está lento.”

Não comece alterando parâmetros.

Comece investigando.

Passo 1 — Defina o problema

“Lento” significa o quê?

  • tela demorando?

  • batch atrasando?

  • timeout?

  • CPU alta?

  • fila crescendo?

  • relatório demorando?

  • apenas um usuário?

  • todos os usuários?

Sem delimitar o problema, você investiga o oceano inteiro.

Passo 2 — Descubra quando começou

Determine:

  • horário;

  • duração;

  • frequência;

  • recorrência;

  • relação com mudança;

  • relação com pico de negócio.

Passo 3 — Identifique o escopo

Foi afetado:

  • um programa?

  • uma transação?

  • um CICS?

  • uma LPAR?

  • um Sysplex?

  • toda a empresa?

Passo 4 — Compare com baseline

Use períodos equivalentes.

Compare terça com terça.

Fechamento com fechamento.

Horário comercial com horário comercial.

Comparações ruins geram conclusões ruins.

Passo 5 — Procure mudanças

Verifique:

  • deploy;

  • parâmetros;

  • WLM;

  • índices;

  • volume;

  • hardware;

  • storage;

  • rede;

  • políticas;

  • releases;

  • crescimento de dados.

Passo 6 — Decomponha o tempo

Tempo total pode ser dividido em:

  • CPU;

  • I/O;

  • lock;

  • queue;

  • dispatch;

  • network;

  • subsystem;

  • application wait.

Descubra onde o tempo foi gasto.

Passo 7 — Correlacione

Não olhe métricas isoladamente.

Exemplo:

  • response time aumentou;

  • CPU não aumentou;

  • IOSQ aumentou;

  • storage response piorou;

  • batch iniciou no mesmo horário.

Agora existe uma hipótese forte.

Passo 8 — Valide a causa

Não pare na primeira coincidência.

Confirme com evidências.

Passo 9 — Corrija de forma controlada

Faça uma mudança por vez, quando possível.

Caso contrário, você não saberá qual ação resolveu o problema.

Passo 10 — Meça novamente

Sem medição posterior, não existe prova de melhoria.


14. A questão dos custos

No IBM Z, consumo técnico pode virar custo financeiro.

Considere um programa batch que consome 5% a mais de CPU depois de uma alteração.

Parece pouco.

Mas, se ele executa diariamente, em múltiplas LPARs e durante o pico, pode influenciar:

  • licenciamento;

  • capacidade contratada;

  • necessidade de upgrade;

  • consumo mensal;

  • janela batch;

  • risco operacional.

Imagine que uma otimização evite a ativação antecipada de capacidade adicional.

Ela pode representar economia de centenas de milhares ou até milhões de reais ao longo do tempo.

Não porque o COBOL ficou “mais elegante”, mas porque o sistema passou a usar menos recursos para entregar o mesmo resultado.

Custo de oportunidade

Há também custos indiretos:

  • cliente esperando;

  • transação abandonada;

  • SLA violado;

  • batch que invade horário comercial;

  • equipe mobilizada em incidente;

  • multas;

  • indisponibilidade;

  • desgaste da marca.

Performance é uma disciplina técnica com impacto financeiro direto.


15. Como evoluir na carreira

Para um programador COBOL iniciante, o caminho pode ser gradual.

Etapa 1 — Entenda seu programa

Aprenda a responder:

  • quanto CPU ele usa?

  • quanto I/O ele gera?

  • quais arquivos acessa?

  • quais tabelas consulta?

  • quantas vezes executa?

  • qual volume processa?

  • qual é o tempo total?

  • qual parte mais demora?

Etapa 2 — Aprenda a ler ferramentas básicas

Comece com:

  • SDSF;

  • JES;

  • SYSOUT;

  • mensagens;

  • accounting;

  • planos de execução;

  • estatísticas do job;

  • EXCP;

  • CPU time;

  • elapsed time.

Etapa 3 — Estude z/OS

Aprenda:

  • address spaces;

  • dispatch;

  • WLM;

  • LPAR;

  • CPC;

  • paging;

  • I/O;

  • service classes.

Etapa 4 — Estude subsistemas

Escolha uma área:

  • CICS;

  • Db2;

  • IMS;

  • MQ;

  • storage.

Aprofunde-se.

Etapa 5 — Aprenda estatística básica

Você não precisa se tornar matemático.

Mas deve compreender:

  • média;

  • mediana;

  • percentil;

  • desvio padrão;

  • tendência;

  • sazonalidade;

  • correlação;

  • outlier;

  • baseline.

Etapa 6 — Aprenda negócio

Pergunte:

  • qual aplicação é crítica?

  • qual horário é sensível?

  • qual transação gera receita?

  • qual batch não pode atrasar?

  • qual SLA deve ser protegido?

O melhor engenheiro de performance não é quem conhece mais gráficos.

É quem sabe quais gráficos importam.


16. Erros comuns

Olhar apenas CPU

É o erro mais frequente.

Usar médias que escondem picos

Uma média diária de 40% pode esconder dez minutos a 100%.

Comparar períodos diferentes

Comparar domingo com segunda é perigoso.

Ignorar o negócio

Nem toda anomalia é prioridade.

Ajustar sem medir

Tuning sem baseline é superstição técnica.

Culpar a aplicação cedo demais

Às vezes o problema está no storage, WLM, rede ou infraestrutura.

Culpar a infraestrutura cedo demais

Às vezes um loop COBOL ou SQL ruim é o verdadeiro monstro.


17. Easter eggs do Seaview

Em toda missão do Seaview havia três certezas:

  1. alguma luz vermelha piscaria;

  2. o sonar detectaria algo inexplicável;

  3. alguém sugeriria mergulhar ainda mais fundo.

Na Engenharia de Performance também existem três certezas:

  1. algum gráfico ficará vermelho;

  2. o problema será mais complexo do que parecia;

  3. alguém sugerirá aumentar CPU antes de analisar a causa.

Resista à terceira tentação.

Mais hardware pode mascarar ineficiência.

É como reforçar o casco sem descobrir por que o submarino está colidindo com as rochas.


18. Curiosidades Bellacosa

O mainframe mede performance com profundidade há muitas décadas, muito antes da popularização do termo “observabilidade”.

SMF e RMF já registravam dados operacionais quando muitos sistemas distribuídos ainda dependiam de logs simples.

O WLM não é apenas um agendador. Ele gerencia prioridades com base em objetivos de serviço.

zIIP não é apenas “CPU mais barata”. É uma parte estratégica da arquitetura econômica do IBM Z.

Uma aplicação COBOL eficiente pode continuar valiosa por décadas, justamente porque seu comportamento é previsível, estável e mensurável.

A maioria dos grandes problemas de performance não nasce de uma única causa. Nasce da combinação de pequenas degradações.


Conclusão — O Engenheiro que Escuta o Sonar

A Engenharia de Performance é a arte de ouvir sinais que outros ignoram.

Enquanto muitos enxergam apenas uma tela lenta, o especialista enxerga:

  • CPU;

  • I/O;

  • filas;

  • locks;

  • memória;

  • workload;

  • prioridade;

  • arquitetura;

  • tendência;

  • custo;

  • impacto no negócio.

Ele não pergunta apenas:

“Está lento?”

Ele pergunta:

“Desde quando, para quem, em qual camada, sob qual carga, com qual impacto e com quais evidências?”

Para o programador COBOL iniciante, esse conhecimento muda tudo.

Você deixa de escrever programas que apenas funcionam e começa a escrever programas que funcionam bem dentro de um ecossistema complexo.

Você aprende que cada acesso a arquivo tem custo.

Cada SQL tem comportamento.

Cada loop consome capacidade.

Cada chamada remota adiciona espera.

Cada commit influencia logging.

Cada mudança precisa ser medida.

No final da missão, o Seaview retorna à superfície.

A tripulação comemora.

O monstro não era um polvo gigante.

Era um programa que fazia leitura completa de uma tabela de 200 milhões de linhas porque alguém esqueceu de criar o índice correto.

O engenheiro de performance fecha o relatório, toma o último gole de café e deixa uma anotação no diário de bordo:

“Problema resolvido. Causa confirmada. CPU reduzida. Tempo de resposta restaurado. Nenhum submarino perdido.”

E assim termina mais uma viagem ao fundo do mainframe.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...