☕ 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 sla. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta sla. Mostrar todas as mensagens

segunda-feira, 26 de janeiro de 2026

💥 🧠 VISÃO GERAL — O TRIÂNGULO DA PERFORMANCE

 

Bellacosa Mainframe analise o triangulo da performance no Mainframe

💥 🧠 VISÃO GERAL — O TRIÂNGULO DA PERFORMANCE

👉 Em 90% dos problemas reais:

  • COBOL → lógica
  • VSAM → I/O
  • DB2 → acesso a dados

🔥 1. TUNING COBOL — CPU (o assassino silencioso)

🎯 Problema típico

  • CPU alto
  • EXEC alto no sampling

🧨 Anti-patterns clássicos

❌ Loop ineficiente

PERFORM UNTIL WS-END = 'Y'
READ FILE
END-PERFORM

❌ Reprocessamento desnecessário

  • Mesmo cálculo várias vezes
  • Falta de cache em memória

✅ Boas práticas

✔ Reduzir chamadas repetidas

IF WS-CALCULATED = 'N'
PERFORM CALC
END-IF

✔ Usar tabelas em memória (lookup)

  • Evita I/O repetido

✔ Minimizar chamadas externas

  • DB2
  • VSAM
  • APIs

💣 Insight

COBOL lento raramente é COBOL…
geralmente é acesso a dados mal feito


🐢 2. TUNING VSAM — I/O (o vilão invisível)

🎯 Problema típico

  • WAIT alto
  • I/O dominante no sampling

🧨 Problemas clássicos

❌ Acesso aleatório excessivo

  • KSDS sem chave eficiente

❌ CI/CA splits

  • Dataset mal definido

❌ Buffer insuficiente

  • Muitas operações físicas

✅ Boas práticas

✔ Aumentar buffers

  • BUFNI / BUFND

✔ Acesso sequencial sempre que possível

  • Evitar random

✔ Ajustar definição do dataset

  • CI size
  • CA size

✔ Usar READ NEXT quando possível

READ FILE NEXT RECORD

💥 Insight

VSAM mal configurado transforma CPU em WAIT


🗄️ 3. TUNING DB2 — O campeão de problemas

🎯 Problema típico

  • WAIT alto
  • CPU alto distribuído
  • SQL dominante

🧨 Problemas clássicos

❌ Full table scan

  • Falta de índice

❌ SQL executado milhares de vezes

PERFORM 10000 TIMES
EXEC SQL SELECT ...
END-EXEC

❌ Falta de filtro adequado

  • WHERE mal definido

✅ Boas práticas

✔ Criar índices corretos

  • Baseado no WHERE

✔ Reduzir chamadas SQL

  • Buscar em bloco
  • Usar cursor

✔ Evitar SELECT dentro de loop

👉 mover lógica para fora


✔ Usar EXPLAIN

  • Ver access path

💣 Insight

1 SQL ruim pode destruir toda a performance


🔗 4. INTEGRAÇÃO (onde mora o problema real)

💥 Cenário clássico

COBOL → chama DB2 → DB2 faz I/O → VSAM/disco

🧠 Diagnóstico via sampling

SintomaCausa
CPU altoCOBOL
WAIT altoVSAM
CPU + WAITDB2

🔥 5. CASO REAL COMPLETO

🎯 Sintoma

  • Job lento
  • 2 horas de execução

📊 Sampling mostra

DB2 → 50%
VSAM → 30%
COBOL → 20%

🧠 Diagnóstico

👉 Problema NÃO é COBOL
👉 É acesso a dados


🔧 Ações

  • Criar índice DB2
  • Reduzir chamadas SQL
  • Ajustar VSAM

🚀 Resultado

  • Tempo: 2h → 20min
    💥 ganho de 6x

⚡ 6. CHECKLIST RÁPIDO (produção)

1. CPU ou WAIT?
2. Identificar hotspot
3. COBOL → otimizar lógica
4. VSAM → otimizar I/O
5. DB2 → otimizar SQL
6. Validar com nova coleta

💣 ERROS QUE MAIS VEJO EM PRODUÇÃO

❌ Ajustar COBOL sem olhar DB2
❌ Culpar DB2 sem olhar VSAM
❌ Ignorar I/O
❌ Não usar sampling


🧠 MODELO MENTAL FINAL

COBOL = processamento
VSAM = acesso físico
DB2 = acesso lógico

💥 FRASE FINAL (nível arquiteto)

“O gargalo não está no código…
está na forma como o código acessa os dados.”

 

domingo, 25 de janeiro de 2026

💥 🔬 PERFORMANCE RELATÓRIO — VISÃO GERAL

 

Bellacosa Mainframe apresenta um estudo de caso para performance em Mainframe

💥 🔬 PERFORMANCE RELATÓRIO — VISÃO GERAL

PROGRAM MEASURED - PROG001
JOB NAME - JOB001
STEP NAME - P010.S010

🧠 O que isso já diz?

👉 Você está analisando:

  • Programa: PROG001
  • Job: JOB001
  • Step específico

💡 Ótimo sinal → análise já está refinada (não é genérica)


⚙️ 🔍 BLOCO 1 — Measurement Parameters

ESTIMATED SESSION TIME - 30 MIN
TARGET SAMPLE SIZE - 30,000

🧠 Interpretação

👉 Configuração padrão profissional:

  • 30 min
  • 1000 samples/min

✔ Excelente equilíbrio entre precisão e overhead


💣 Insight

Se isso estivesse errado → TODO o relatório seria suspeito


📊 🔥 BLOCO 2 — Measurement Statistics

EXEC TIME PERCENT - 90.84
WAIT TIME PERCENT - 9.16

🧠 Diagnóstico IMEDIATO

👉 Sistema está:

  • 90% executando (CPU)
  • 9% esperando

💥 Conclusão direta

✔ CPU-bound
❌ NÃO é problema de I/O
❌ NÃO é lock
❌ NÃO é DB2 wait


🎯 Ação

👉 Investigar:

  • Código COBOL
  • Algoritmo
  • Loop
  • Cálculo repetitivo

⚖️ 🔬 BLOCO 3 — Margem de erro

RUN MARGIN OF ERROR - 0.65
CPU MARGIN OF ERROR - 0.68
WAIT MARGIN OF ERROR - 2.16

🧠 Interpretação

👉 Estatisticamente confiável

ValorQualidade
< 1%excelente
< 5%confiável

💣 Insight

Você pode confiar nesse diagnóstico sem medo


🔢 📈 BLOCO 4 — Samples

TOTAL SAMPLES TAKEN - 37,549
TOTAL SAMPLES PROCESSED - 22,548

🧠 Interpretação

👉 Nem todos os samples foram úteis

Possíveis motivos:

  • CPU idle
  • Outro address space
  • Thread não relevante

💡 Insight

Isso é NORMAL — e esperado


⏱️ 📉 BLOCO 5 — Sampling Rate

INITIAL SAMPLING RATE - 8.33/sec
FINAL SAMPLING RATE - 4.17/sec

🧠 Interpretação

👉 Taxa caiu ao longo do tempo

Possíveis causas:

  • Mudança de carga
  • Menos CPU ativa
  • Contenção

💥 Insight

Sampling não é constante — ele reflete o ambiente real


🧾 🔍 BLOCO 6 — Ambiente

ADDRESS SPACE ID - 0061
DATE/TIME - execução real
CONDITION CODE - C-0000

🧠 Interpretação

✔ Job terminou OK
✔ Sem abend
✔ Ambiente válido


🔥 🔬 DIAGNÓSTICO FINAL

📊 Resumo técnico

CPU → 90%
WAIT → 10%
Erro → baixo
Samples → suficientes

🎯 Conclusão

💥 O problema está NO CÓDIGO, não no ambiente


💣 Possíveis causas reais

👉 Aqui começa o trabalho do especialista:

🔥 1. Loop ineficiente

PERFORM UNTIL ...

🔥 2. Leitura repetitiva

  • VSAM read desnecessário
  • DB2 repetido

🔥 3. Cálculo pesado

  • Reprocessamento
  • Falta de cache

🔥 4. Algoritmo ruim

  • Complexidade alta
  • Ordenação ineficiente

🚀 Próximo passo (o que você faria em produção)

  1. Abrir relatório detalhado (modules)
  2. Identificar:
    • módulo
    • offset
  3. Mapear para código COBOL
  4. Ajustar lógica

🧠 Modelo mental definitivo

EXEC alto → código
WAIT alto → recurso externo

💥 Frase final (nível especialista)

“O relatório já te deu a resposta.
Agora é você que precisa ir até o código.”

 

terça-feira, 23 de janeiro de 2024

Resiliência IBM Z – Conceitos Fundamentais: Por que os Mainframes Quase Nunca Param? Parte I

 

Bellacosa Mainframe ibm z resiliencia parte i

☕ Um Café no Bellacosa Mainframe

O Holocron da Resiliência IBM Z

Parte I – Conceitos Fundamentais: Por que os Mainframes Quase Nunca Param?

Quando um jovem Padawan COBOL entra pela primeira vez em uma empresa que utiliza IBM Z, normalmente ele acredita que seu trabalho consiste em escrever programas COBOL, executar alguns Jobs, consultar arquivos VSAM e, eventualmente, criar uma transação CICS.

Não demora muito para ouvir frases como:

"Precisamos garantir o SLA."

"O RTO deste sistema é de cinco minutos."

"Não podemos ter nenhum Single Point of Failure."

"Essa aplicação precisa ser resiliente."

Nesse momento, o Padawan percebe que entrou em um universo completamente diferente daquele ensinado na maioria dos cursos de programação.

No IBM Z, escrever software é apenas uma parte da engenharia. A outra metade consiste em garantir que esse software continue funcionando quando tudo ao redor começa a falhar.

Bem-vindo ao mundo da Resiliência.

Os conceitos apresentados nesta primeira parte são a base para compreender por que os maiores bancos, seguradoras, bolsas de valores, companhias aéreas e governos do mundo continuam confiando no IBM Z para executar suas aplicações mais críticas. Os termos discutidos a seguir fazem parte do glossário de Resiliency do IBM Z e representam os pilares conceituais dessa arquitetura.


O que significa Resiliency?

Imagine um hospital.

Ninguém espera que um hospital nunca enfrente problemas.

Equipamentos quebram.

Transformadores queimam.

Geradores precisam de manutenção.

Redes elétricas falham.

Mesmo assim...

A cirurgia não pode parar.

No mundo dos computadores acontece exatamente a mesma coisa.

Resiliência significa continuar prestando serviço mesmo quando partes da infraestrutura apresentam defeitos.

Esse é um conceito muito diferente de simplesmente "não quebrar".

Todo equipamento quebra.

Todo software possui defeitos.

Todo disco possui vida útil.

Toda memória pode apresentar falhas.

A diferença é que o IBM Z foi projetado assumindo que essas falhas acontecerão.

A arquitetura inteira trabalha para impedir que o usuário perceba qualquer interrupção.

Essa filosofia explica por que milhares de transações bancárias continuam acontecendo enquanto técnicos substituem processadores, discos ou placas de comunicação.

Para um programador COBOL, compreender Resiliency muda completamente a forma de pensar. O objetivo deixa de ser apenas fazer o programa "funcionar"; passa a ser escrever aplicações que convivam com uma infraestrutura preparada para falhas.


RAS – Reliability, Availability and Serviceability

Existe um conceito extremamente famoso dentro da IBM:

RAS.

São apenas três palavras.

Mas representam décadas de engenharia.

Reliability

Confiabilidade.

O equipamento precisa falhar pouco.

Isso envolve:

  • qualidade dos componentes;

  • redundância;

  • testes de fábrica;

  • validações contínuas.

Quanto maior a confiabilidade, menor a probabilidade de interrupções inesperadas.


Availability

Disponibilidade.

Mesmo quando alguma coisa quebra...

O serviço continua.

É exatamente aqui que entram conceitos como:

  • Parallel Sysplex;

  • GDPS;

  • Load Balancing;

  • WLM.

Disponibilidade não significa ausência de falhas.

Significa continuidade do negócio.


Serviceability

Facilidade de manutenção.

Imagine trocar um disco sem desligar o computador.

Ou substituir memória durante a operação.

Ou atualizar firmware sem interromper milhares de usuários.

Isso é Serviceability.

Quanto mais simples a manutenção...

Menor o tempo de indisponibilidade.


High Availability (HA)

Muitos iniciantes acreditam que Alta Disponibilidade significa "100% online".

Não é verdade.

Alta Disponibilidade significa reduzir o impacto das interrupções até um nível aceitável para o negócio.

Imagine dois caixas eletrônicos.

Se um apresentar defeito...

O cliente utiliza o outro.

Agora imagine dois servidores CICS.

Se um falhar...

O outro assume automaticamente.

Essa é a essência da HA.

A infraestrutura foi desenhada para absorver falhas sem interromper o serviço.


Disaster Recovery (DR)

Enquanto a Alta Disponibilidade lida com falhas locais, o Disaster Recovery pensa em eventos extremos.

Perguntas típicas são:

  • E se o prédio pegar fogo?

  • E se faltar energia por várias horas?

  • E se houver uma enchente?

  • E se todo o datacenter ficar inacessível?

Nesse cenário entra o Plano de Recuperação de Desastres.

O objetivo não é impedir o desastre.

É garantir que o negócio sobreviva a ele.

No IBM Z, tecnologias como GDPS, replicação de dados e sites espelhados fazem parte dessa estratégia.


SLA – Service Level Agreement

Todo sistema existe para atender um negócio.

E o negócio estabelece compromissos.

Exemplo:

"O Internet Banking deve permanecer disponível 99,99% do tempo."

Isso é um SLA.

Curiosamente, poucas pessoas percebem o impacto desses números.

Veja:

  • 99% parece excelente.

  • 99,9% é muito melhor.

  • 99,99% é extraordinário.

  • 99,999% representa apenas alguns minutos de indisponibilidade por ano.

Cada "9" adicional exige muito mais investimento em hardware, software, processos e pessoas.


RPO – Recovery Point Objective

Imagine que um banco sofra uma pane às 15h.

Qual o último dado aceitável?

15h00?

14h59?

14h30?

Ontem?

Essa resposta define o RPO.

Quanto menor o RPO...

Menor a perda de informações.

Em sistemas financeiros modernos, o objetivo costuma ser próximo de zero.

Nenhuma transação pode desaparecer.


RTO – Recovery Time Objective

Agora faça outra pergunta.

Quanto tempo o sistema pode permanecer parado?

Cinco minutos?

Uma hora?

Quatro horas?

Isso é o RTO.

Observe a diferença.

O RPO mede perda de dados.

O RTO mede tempo de recuperação.

São conceitos diferentes.

E ambos determinam toda a arquitetura de um ambiente corporativo.


Single Point of Failure (SPoF)

Este talvez seja o termo mais importante para qualquer arquiteto.

Imagine um único switch de rede.

Se ele quebrar...

Toda a empresa para.

Esse switch é um SPoF.

Agora pense em um único banco de dados.

Ou uma única fonte de alimentação.

Ou um único servidor DNS.

Todos são candidatos a pontos únicos de falha.

A missão dos arquitetos IBM Z é eliminar todos eles.

Por isso existem componentes redundantes, caminhos alternativos e múltiplos mecanismos de recuperação.


Component Failure Impact Analysis (CFIA)

O nome parece complicado.

Mas a ideia é simples.

Pergunte para cada componente:

"O que acontece se você morrer agora?"

Depois repita para:

  • discos;

  • processadores;

  • memória;

  • switches;

  • links;

  • storages;

  • sistemas operacionais.

Se alguma resposta for:

"Tudo para."

Você encontrou um problema.

O CFIA é justamente o exercício sistemático de identificar esses riscos antes que eles ocorram.


ITIL – Muito Além da Tecnologia

Muitos desenvolvedores imaginam que disponibilidade depende apenas do hardware.

Na prática, processos mal definidos também derrubam sistemas.

É aqui que entra a ITIL.

Ela organiza boas práticas para:

  • mudanças;

  • incidentes;

  • problemas;

  • configuração;

  • continuidade;

  • disponibilidade.

Quando uma grande instituição financeira realiza uma atualização em produção, normalmente existe todo um processo inspirado nessas práticas para reduzir riscos.


A Mentalidade IBM Z

Existe uma frase bastante conhecida entre profissionais experientes de Mainframe:

"No IBM Z, falhas são esperadas. O que não é aceitável é que elas interrompam o negócio."

Essa mentalidade muda completamente a forma de desenvolver software.

O programador COBOL deixa de enxergar apenas linhas de código e passa a compreender que sua aplicação faz parte de um ecossistema muito maior, onde hardware, sistema operacional, middleware, armazenamento e processos trabalham em conjunto para garantir continuidade.

Cada programa Batch, cada transação CICS e cada acesso ao Db2 participa de uma cadeia cuidadosamente projetada para manter milhões de pessoas utilizando serviços bancários, comprando passagens aéreas, movimentando bolsas de valores ou recebendo benefícios sociais sem sequer imaginar a complexidade escondida por trás de uma simples tela.

Esse é o verdadeiro espírito do IBM Z.

Não construir computadores que nunca falham.

Mas construir sistemas que continuam funcionando mesmo quando inevitavelmente algo dá errado.

No próximo capítulo, deixaremos os conceitos e entraremos na infraestrutura física do IBM Z, explorando componentes como CPC, Processing Units, HMC, Support Element, License Internal Code e outros elementos que fazem do mainframe uma das plataformas mais resilientes já criadas.


quinta-feira, 4 de maio de 2023

🚦 ALAN TURING E O WLM DOS AGENTES — QUANDO 500 INTELIGÊNCIAS ARTIFICIAIS QUEREM TRABALHAR AO MESMO TEMPO

 

Bellacosa Mainframe e as prioridades dos agenstes de ia

☕ UM CAFÉ NO BELLACOSA MAINFRAME

🚦 ALAN TURING E O WLM DOS AGENTES — QUANDO 500 INTELIGÊNCIAS ARTIFICIAIS QUEREM TRABALHAR AO MESMO TEMPO

Workload Management, filas, prioridades, SLA, SLO, backpressure, rate limits, throttling, quotas, tokens, custos, latência, concorrência, CICS, Db2, MQ, JES2, WLM — e o dia em que Alan Turing descobriu que inteligência artificial também precisa aprender a esperar na fila.



🎬 PRÓLOGO — QUINHENTOS ROBÔS CHEGARAM PARA TRABALHAR

Alan Turing entrou no CPD às 08:59.

Tudo parecia tranquilo.

O café estava quente.

O operador examinava o SDSF.

O jovem programador COBOL tentava entender por que um PIC 9(05) não aceitava aquilo que ele jurava ser um número.

Então o relógio marcou:

09:00:00

E alguma coisa aconteceu.

Um agente iniciou o relatório diário.

Outro começou a analisar contratos.

Cinquenta agentes de atendimento acordaram.

Cem agentes começaram a consultar clientes.

O departamento financeiro disparou processamento.

Marketing resolveu analisar documentos.

Desenvolvimento iniciou uma varredura de código.

Segurança disparou verificações.

Em poucos segundos:

AGENTS ACTIVE: 500

O pequeno robô olhou orgulhoso para Turing.

— Veja! Todos estão trabalhando!

Turing olhou para o painel.

LLM REQUESTS........ 497
DB2 CONNECTIONS..... 100%
CICS REQUESTS....... +380%
API RATE LIMIT...... EXCEEDED
QUEUE DEPTH......... 4,281
LATENCY P95......... 47.2s
COST RATE........... $$$$$$$

Silêncio.

O robô corrigiu:

— Bem... todos estão tentando trabalhar.

Turing puxou uma cadeira.

— Excelente. Agora vocês descobriram por que sistemas corporativos possuem gerenciamento de workload.



🧠 CAPÍTULO 1 — RECURSOS NÃO SÃO INFINITOS

Quando começamos a estudar programação, frequentemente pensamos assim:

PROGRAMA
   ↓
CPU
   ↓
RESULTADO

Parece simples.

Mas sistemas corporativos executam muitas coisas simultaneamente.

No mainframe temos:

batch
CICS
Db2
IMS
TSO
APIs
serviços
jobs
subsistemas

Todos competindo por recursos.

CPU.

Memória.

I/O.

Storage.

Threads.

Conexões.

Tempo.

Agora acrescente agentes de IA.

Eles podem disputar:

LLM capacity
tokens
API calls
Db2 connections
CICS transactions
MQ resources
network bandwidth
tool concurrency
memory
CPU
budget

E surge uma verdade fundamental:

Não podemos deixar todo mundo consumir tudo ao mesmo tempo.

Se existem 500 agentes e apenas 50 operações simultâneas são sustentáveis, alguma coisa precisa decidir:

QUEM EXECUTA?
QUEM ESPERA?
QUEM TEM PRIORIDADE?
QUANTO CADA UM PODE CONSUMIR?
QUANDO DEVEMOS RECUSAR TRABALHO?

Bem-vindo ao problema de gerenciamento de workload.



🏛️ CAPÍTULO 2 — O MAINFRAME CONHECE ESSA BRIGA HÁ DÉCADAS

No z/OS, Workload Management — WLM — existe justamente porque recursos precisam ser administrados conforme objetivos de serviço.

A ideia mais importante não é simplesmente:

JOB A = prioridade 10
JOB B = prioridade 5

Isso seria uma visão pobre demais.

A pergunta mais interessante é:

Qual trabalho precisa de determinado nível de serviço e qual é sua importância para o negócio?

Imagine:

Pagamento online
Relatório mensal
Backup
Consulta interativa
Processamento estatístico

Todos são importantes.

Mas não necessariamente possuem a mesma urgência.

Se um cliente está esperando uma autorização de pagamento na tela, talvez:

200 ms

importe muito.

Um relatório que precisa terminar até às 06:00 talvez possa esperar alguns minutos.

O WLM trabalha com a ideia de objetivos de serviço, classes de serviço, importância e gerenciamento dinâmico dos recursos disponíveis.

É uma mudança conceitual enorme.

Em vez de perguntar apenas:

Quem tem maior prioridade?

Perguntamos:

Quem está deixando de atingir seu objetivo de serviço?

Guarde essa frase.

Ela será fundamental para nossos agentes.



🤖 CAPÍTULO 3 — O AGENTE TAMBÉM É UM WORKLOAD

Suponha que tenhamos:

AGENT-CUSTOMER
AGENT-FRAUD
AGENT-REPORT
AGENT-COBOL
AGENT-MARKETING
AGENT-BACKUP

Cada um possui objetivos diferentes.

O agente de fraude talvez precise responder rapidamente.

AGENT-FRAUD
Target latency: < 2 s
Importance: HIGH

O agente que gera relatório:

AGENT-REPORT
Deadline: 06:00
Importance: MEDIUM

O agente que cataloga documentação antiga:

AGENT-ARCHIVE
Deadline: none
Importance: LOW

Agora chegam 500 solicitações.

Seria absurdo tratar todas igualmente.

Precisamos de classes.

Por exemplo:

PLATINUM
GOLD
SILVER
BACKGROUND

ou:

CRITICAL
INTERACTIVE
STANDARD
BATCH
BACKGROUND

O nome não importa tanto quanto a política.

O princípio é:

Workloads diferentes possuem necessidades diferentes.



🚦 CAPÍTULO 4 — PRIORIDADE NÃO SIGNIFICA “O CHEFE PASSA NA FRENTE”

Essa distinção é importante.

Prioridade técnica deveria refletir requisitos de serviço e negócio.

Não:

CEO_AGENT = 999999

😂

Imagine dois agentes.

AGENTE A

Atende um cliente que está esperando numa aplicação.

AGENTE B

Está analisando 200 mil documentos históricos.

Se ambos pedirem recursos ao mesmo tempo, talvez seja razoável favorecer A.

Não porque A seja “mais inteligente”.

Mas porque seu requisito de latência é diferente.

Podemos pensar:

INTERACTIVE
Objetivo: resposta < 2 s

BACKGROUND
Objetivo: concluir em 8 h

O background pode usar muitos recursos quando o sistema estiver ocioso.

Mas reduzir consumo quando workloads críticos precisarem deles.

Isso é muito mais sofisticado que:

PRIORIDADE = 1

📜 CAPÍTULO 5 — SLA E SLO: PROMESSA E OBJETIVO

Essas siglas aparecem frequentemente juntas.

Mas não são exatamente a mesma coisa.

SLA — Service Level Agreement

É um acordo de nível de serviço.

Pode envolver compromissos formais.

Por exemplo:

Disponibilidade mensal: 99,9%

ou:

95% das solicitações respondidas
em até 5 segundos.

SLO — Service Level Objective

É um objetivo mensurável usado para operar o serviço.

Exemplo:

p95 latency < 3 s
success rate > 99%
approval queue < 2 min

Para um agente:

AGENT-SUPPORT

SLO:
p95 response < 5 s
task success > 98%
tool error < 1%

Agora conseguimos comparar comportamento real com objetivo.

Sem objetivo, dizer:

LATENCY = 4.2 s

não significa muita coisa.

É bom?

Ruim?

Depende.

Se o objetivo era 30 segundos:

excelente.

Se era 500 milissegundos:

péssimo.


🎯 CAPÍTULO 6 — O SLO TRANSFORMA MÉTRICA EM DECISÃO

Lembra do nosso artigo anterior?

Criamos o SDSF dos agentes.

Agora sabemos:

latência
tokens
erros
tool calls
estado
custo

Mas métrica sem contexto é apenas número.

WLM acrescenta uma pergunta:

Esse número está atendendo ao objetivo?

Por exemplo:

AGENT-CUSTOMER

SLO p95:
2 s

CURRENT p95:
1.4 s

STATUS:
HEALTHY

Outro:

AGENT-FRAUD

SLO p95:
1 s

CURRENT p95:
4.8 s

STATUS:
VIOLATING OBJECTIVE

Agora temos uma razão para agir.

Talvez o segundo workload precise receber recursos adicionais.

Essa é a ponte entre:

OBSERVABILIDADE

e:

GERENCIAMENTO

O SDSF nos ajuda a enxergar.

O WLM nos ajuda a decidir como tratar a carga.


🚗 CAPÍTULO 7 — FILA NÃO É FALHA

Programadores iniciantes às vezes enxergam:

QUEUED

como algo ruim.

Não necessariamente.

Fila é uma ferramenta extraordinariamente importante.

Imagine uma ponte que suporta:

50 veículos

Chegam:

500 veículos

Temos duas opções.

Opção 1

Liberar os 500.

Resultado:

💥

Opção 2

Controlar entrada.

50 passam
450 aguardam

A fila protege o recurso.

Em agentes:

500 requests
     ↓
   QUEUE
     ↓
50 concurrent workers
     ↓
LLM / API / Db2

Fila não significa necessariamente:

Sistema ruim.

Pode significar:

Sistema protegendo a própria capacidade.


🌊 CAPÍTULO 8 — BACKPRESSURE: QUANDO O SISTEMA DIZ “DEVAGAR”

Imagine uma cadeia:

AGENTE
  ↓
API
  ↓
MQ
  ↓
CICS
  ↓
Db2

O agente consegue produzir:

1.000 requests/s

Mas o componente seguinte consegue consumir:

100 requests/s

Se continuarmos produzindo 1.000 indefinidamente, acumularemos:

900
1.800
2.700
3.600
...

A fila cresce.

Memória cresce.

Latência cresce.

Timeouts aparecem.

Retries aparecem.

E os retries produzem ainda mais carga.

Bem-vindo à festa.

Backpressure significa permitir que componentes posteriores sinalizem:

Estou saturado. Diminua o ritmo.

Conceitualmente:

PRODUTOR RÁPIDO
      ↓
CONSUMIDOR SATURADO
      ↓
BACKPRESSURE
      ↓
PRODUTOR REDUZ RITMO

Isso é fundamental para agentes.

Porque uma IA capaz de gerar chamadas rapidamente não deveria concluir:

A API está lenta. Vou chamar mais dez vezes.

😂


🚧 CAPÍTULO 9 — RATE LIMIT: VOCÊ SÓ PODE PASSAR N VEZES

Outra ferramenta importante:

RATE LIMITING.

Exemplo:

100 requests/minute

Se o agente ultrapassar:

HTTP 429
Too Many Requests

Rate limits protegem serviços contra excesso de chamadas.

Podemos estabelecer:

AGENT-REPORT
100 calls/min

AGENT-CUSTOMER
500 calls/min

AGENT-BACKGROUND
20 calls/min

Ou limites por:

usuário
agente
tenant
API
modelo
ferramenta

Isso impede que um único agente consuma toda a capacidade.


🚿 CAPÍTULO 10 — THROTTLING: FECHE UM POUCO A TORNEIRA

Rate limit e throttling são conceitos relacionados, mas podemos pensar pedagogicamente assim:

Rate limit:

existe um limite de consumo permitido.

Throttling:

o sistema reduz deliberadamente o ritmo.

Imagine uma torneira.

Capacidade máxima:

100 litros/min

Em situação normal:

80

Durante congestionamento:

30

Para agentes, podemos reduzir:

concorrência
requisições
tokens
tool calls

em momentos de pressão.

Um agente de baixa prioridade pode passar de:

20 workers

para:

5 workers

enquanto um serviço crítico recebe capacidade.


🎟️ CAPÍTULO 11 — QUOTAS: VOCÊ TEM UM ORÇAMENTO

Agora entra outro conceito.

Quota.

Imagine:

AGENT-MARKETING
Daily token quota:
5,000,000
AGENT-DEVELOPMENT
Daily token quota:
10,000,000
AGENT-EXPERIMENTAL
Daily token quota:
500,000

Quota pode existir para:

tokens
API calls
CPU
storage
requests
tool executions
money

Isso é particularmente interessante em IA porque recursos frequentemente possuem custo diretamente mensurável.

Sem quota, alguém pode escrever:

Analise tudo.

O agente interpreta:

Claro.

Quatro horas depois:

82 milhões de tokens

Financeiro entra no CPD carregando uma espada.


💰 CAPÍTULO 12 — CUSTO É UM RECURSO

No mainframe, sempre aprendemos que computação custa.

Não existe almoço grátis.

Nem café grátis.

Muito menos CPU grátis.

Na IA moderna, custo pode aparecer de maneira explícita por:

token
request
model
tool
storage
compute

Portanto o scheduler de agentes pode considerar não apenas:

LATENCY

mas:

COST

Imagine:

AGENT-A

Expected cost:
$0.02

AGENT-B

Expected cost:
$8.40

Se B é um processamento de baixa prioridade, talvez possa aguardar.

Podemos inclusive imaginar políticas:

IF DAILY_BUDGET > 80%
   THROTTLE BACKGROUND AGENTS
END-IF

Olha o COBOL aparecendo.


👨‍💻 CAPÍTULO 13 — UM WLM DE AGENTES EM PSEUDO-COBOL

Vamos brincar.

       EVALUATE AGENT-CLASS

           WHEN 'CRITICAL'
               MOVE 50 TO MAX-CONCURRENCY
               MOVE 1000 TO RATE-LIMIT

           WHEN 'INTERACTIVE'
               MOVE 25 TO MAX-CONCURRENCY
               MOVE 500 TO RATE-LIMIT

           WHEN 'STANDARD'
               MOVE 10 TO MAX-CONCURRENCY
               MOVE 200 TO RATE-LIMIT

           WHEN 'BACKGROUND'
               MOVE 2 TO MAX-CONCURRENCY
               MOVE 50 TO RATE-LIMIT

       END-EVALUATE.

Naturalmente um sistema real seria muito mais sofisticado.

Mas o exemplo ensina a ideia:

Nem todo workload recebe a mesma capacidade.

Agora acrescentamos pressão:

       IF SYSTEM-LOAD > 80
           COMPUTE BACKGROUND-LIMIT =
                   BACKGROUND-LIMIT / 2
       END-IF.

E custo:

       IF DAILY-AI-COST > DAILY-BUDGET
           MOVE 'PAUSED' TO BACKGROUND-AGENTS
       END-IF.

Pronto.

Criamos o WLMZINHO.CBL.

Não coloque em produção.

😂


🧵 CAPÍTULO 14 — CONCORRÊNCIA: QUANTOS PODEM TRABALHAR JUNTOS?

Imagine:

MAX CONCURRENCY = 20

Isso significa que no máximo vinte execuções trabalham simultaneamente.

As outras aguardam.

100 requests
    ↓
20 EXECUTING
80 QUEUED

Quando uma termina:

19 EXECUTING
81?

Não.

A fila libera outra:

20 EXECUTING
79 QUEUED

Esse controle evita saturação.

Mas o número correto depende do recurso.

Talvez:

LLM concurrency = 100
Db2 concurrency = 30
CICS tool calls = 50
External API = 10

Portanto um agente pode possuir múltiplos limites simultaneamente.


🪆 CAPÍTULO 15 — UMA FILA DENTRO DE OUTRA FILA

Aqui começa a diversão de verdade.

O agente está na fila.

Quando começa, chama uma ferramenta.

A ferramenta entra em outra fila.

Ela consulta Db2.

Outra fila.

Depois chama API externa.

Rate limit.

Temos:

AGENT QUEUE
     ↓
LLM QUEUE
     ↓
TOOL QUEUE
     ↓
API QUEUE
     ↓
DB QUEUE

Por isso observar apenas:

AGENT WAITING

não basta.

Precisamos saber:

Esperando o quê?

Lembra do SDSF dos agentes?

Agora ele precisa mostrar:

STATE:
WAITING_RESOURCE

RESOURCE:
DB2-CONNECTION

WAIT:
00:00:08

Isso conecta diretamente observabilidade e workload management.


🔥 CAPÍTULO 16 — O RETRY STORM: O MONSTRO QUE SE ALIMENTA DO PRÓPRIO ERRO

Imagine que uma API começa a falhar.

Agente:

Tentativa 1 → falhou

Ele tenta novamente.

Tentativa 2 → falhou

Agora 500 agentes fazem isso.

500 failures
↓
500 retries
↓
500 failures
↓
1.000 retries

O sistema já estava com problemas.

Agora recebe ainda mais carga.

Isso é o equivalente computacional de ver uma porta congestionada e resolver:

TODO MUNDO EMPURRA!

Precisamos de:

retry limit
exponential backoff
jitter
circuit breaker

Exemplo:

Retry 1 → wait 1s
Retry 2 → wait 2s
Retry 3 → wait 4s
Retry 4 → stop

Com jitter, os agentes não voltam todos exatamente no mesmo instante.

Isso evita o famoso:

THUNDERING HERD

a manada trovejante.

Nome maravilhoso.

Problema terrível.


🛑 CAPÍTULO 17 — LOAD SHEDDING: ÀS VEZES PRECISAMOS DIZER NÃO

Essa ideia pode parecer estranha.

Um sistema bem projetado às vezes precisa recusar trabalho.

Imagine capacidade:

100 requests/s

Chegam:

10.000 requests/s

Se tentarmos aceitar tudo:

latência ↑
memória ↑
timeouts ↑
falhas ↑

Talvez seja melhor responder rapidamente:

BUSY
TRY LATER

para parte das requisições.

Isso é load shedding.

Sacrificamos parte da carga para proteger o sistema inteiro.

É melhor:

90% funcionando
10% recusado claramente

do que:

100% aceito
100% travado

Essa é uma lição brutal, mas importante.


🏥 CAPÍTULO 18 — TRIAGEM DE PRONTO-SOCORRO

Uma boa analogia é um pronto-socorro.

Chegam cem pessoas.

A ordem não deveria ser simplesmente:

quem chegou primeiro

A gravidade importa.

Nos agentes:

CRITICAL INCIDENT

talvez passe à frente de:

GENERATE WEEKLY SUMMARY

Isso não significa ignorar o segundo.

Significa administrar recursos segundo objetivos.

Uma fila inteligente pode considerar:

priority
deadline
age
cost
resource requirements
business importance

Mas cuidado.

Se sempre atendermos os críticos, workloads de baixa prioridade podem nunca executar.

Isso é starvation.

Precisamos impedir que o pobre agente background fique:

QUEUED
QUEUED
QUEUED
QUEUED
QUEUED

até 2047.


👴 CAPÍTULO 19 — AGING: RESPEITE OS VELHINHOS DA FILA

Uma técnica clássica é aumentar gradualmente a prioridade de trabalhos que esperam demais.

Exemplo:

BACKGROUND
priority = 1

Depois de uma hora:

priority = 2

Depois:

priority = 3

Assim ele eventualmente recebe recursos.

Isso é chamado de aging em contextos de scheduling.

O princípio é simples:

Quanto mais tempo você espera, mais difícil fica ignorá-lo.

É praticamente a fila do INSS implementada corretamente.


⚖️ CAPÍTULO 20 — FAIRNESS: NÃO DEIXE UM AGENTE COMER O BUFFET INTEIRO

Imagine dez departamentos.

Um deles dispara:

90% das requisições

Sem isolamento, ele pode consumir quase toda a capacidade.

Precisamos pensar em fairness.

Por exemplo:

FINANCE....... 25%
CUSTOMER...... 30%
SECURITY...... 20%
DEVELOPMENT... 15%
BACKGROUND.... 10%

Não necessariamente percentuais rígidos.

Capacidade ociosa pode ser emprestada.

Se Security não usa seus 20%, Background pode aproveitar.

Mas quando Security precisar:

DEVOLVE!

Esse conceito de capacidade compartilhada com políticas é muito poderoso.


📈 CAPÍTULO 21 — ESCALONAMENTO: CHEGOU MAIS TRABALHO, CHAME REFORÇOS

Outra possibilidade:

queue_depth > 100

Então:

increase workers

Isso é escalonamento.

Pode ser:

horizontal

mais instâncias.

Ou:

vertical

mais recursos por instância.

Mas existe uma armadilha.

Você pode escalar seus workers infinitamente.

O Db2 talvez não possa.

Imagine:

AGENTS: 10 → 100 → 1000

mas:

DB CONNECTIONS: 100

Parabéns.

Você acabou de criar 900 processos esperando conexão.

Escalar o produtor sem considerar o consumidor apenas desloca o gargalo.


🔭 CAPÍTULO 22 — O SDSF E O WLM DOS AGENTES PRECISAM CONVERSAR

Nosso painel anterior mostrava:

AGENT       STATE       LATENCY
REPORT      RUNNING     3.2s
FRAUD       RUNNING     4.8s
ARCHIVE     RUNNING     8.1s

Agora acrescentamos:

CLASS        SLO       GOAL STATUS
STANDARD     5s        OK
CRITICAL     1s        VIOLATED
BACKGROUND   60s       OK

Resultado:

AGENT   CLASS       P95    SLO   STATUS
FRAUD   CRITICAL    4.8s   1s    🔴
REPORT  STANDARD    3.2s   5s    🟢
ARCHIVE BACKGROUND  8.1s   60s   🟢

Quem precisa de atenção?

Não necessariamente quem possui maior latência absoluta.

ARCHIVE demora 8,1 segundos.

Mas seu objetivo permite 60.

FRAUD demora 4,8.

Seu objetivo é 1.

Portanto:

FRAUD

está sofrendo mais em relação ao objetivo.

Esse é um raciocínio muito mais poderoso.


🎛️ CAPÍTULO 23 — O PAINEL DO WLM DOS AGENTES

Imagine:

AI WORKLOAD MANAGER
────────────────────────────────────────────────────────

CLASS        ACTIVE  QUEUED  P95   SLO   GOAL
CRITICAL       42       3    0.8s  1s    OK
INTERACTIVE    88      21    2.4s  2s    MISS
STANDARD       54     140    5.1s  10s   OK
BACKGROUND     12     812    18s   60s   OK

TOKENS/MIN......... 1.8M
COST/HOUR.......... $41.27
DB2 POOL........... 91%
CICS LATENCY....... 180ms
API RATE LIMIT..... 82%

Agora o operador vê a situação.

E o sistema pode agir:

INTERACTIVE SLO violated
↓
reduce BACKGROUND concurrency
↓
allocate capacity to INTERACTIVE
↓
monitor result

Isso começa a parecer familiar para quem conhece WLM.


🧙 CAPÍTULO 24 — TURING DESENHA A ESCADA

Turing pega o giz.

Escreve:

AGENTE
↓
WORKLOAD
↓
CLASSIFICAÇÃO
↓
OBJETIVO DE SERVIÇO
↓
OBSERVABILIDADE
↓
CONTROLE DE RECURSOS
↓
FEEDBACK

Depois desenha um loop:

     OBJETIVO
        ↓
     EXECUÇÃO
        ↓
     MÉTRICAS
        ↓
   ESTÁ CUMPRINDO?
      ↙      ↘
    SIM      NÃO
     ↓        ↓
 MANTÉM    AJUSTA
     ↑        │
     └────────┘

O jovem COBOL observa.

— Então não definimos uma prioridade e esquecemos?

— Exatamente.

Gerenciamento moderno de workload é um problema de feedback.

Observe.

Meça.

Compare com objetivo.

Ajuste.

Observe novamente.


🧩 CAPÍTULO 25 — O AGENTE PODE TER MAIS DE UM RECURSO CRÍTICO

Outro detalhe importante.

Um agente pode estar ótimo em CPU e péssimo em:

tokens

Ou ótimo em tokens e bloqueado em:

Db2

Ou ótimo no Db2 e limitado pela:

API externa

Portanto precisamos enxergar múltiplas dimensões:

CPU
MEMORY
TOKEN RATE
LLM CONCURRENCY
DB CONNECTIONS
API RATE
NETWORK
COST

A pergunta deixa de ser:

Temos capacidade?

e vira:

Temos capacidade onde?

Essa pequena palavra muda muita coisa.


💡 CAPÍTULO 26 — DICAS PRÁTICAS PARA QUEM ESTÁ COMEÇANDO

Quando começar a trabalhar com agentes, pense desde cedo em workload.

Não espere chegar aos 500 agentes.

Comece perguntando:

1. Qual é o objetivo?

Gerar relatório?
Responder cliente?
Detectar fraude?

2. Qual é o prazo?

500 ms?
5 s?
1 min?
6 h?

3. Qual é a importância?

critical
interactive
standard
background

4. Quais recursos usa?

LLM
Db2
CICS
API
MQ
filesystem

5. Quais limites existem?

rate limit
concurrency
quota
budget

6. O que acontece na saturação?

queue?
throttle?
reject?
degrade?

7. Como saberemos que está ruim?

SLO
metrics
alerts

Essas perguntas evitam muito sofrimento futuro.


🥚 EASTER EGG — O AGENTE VIP

São 09:13.

O operador percebe:

AGENT-VIP
PRIORITY = MAXIMUM

Turing pergunta:

— Quem é esse?

— Agente da diretoria.

— Qual o SLO?

— Não tem.

— Qual workload?

— Faz resumo de notícias internas.

Turing olha para outro painel:

AGENT-FRAUD
QUEUED

— E esse?

— Detecta transações suspeitas.

Silêncio.

Turing aponta para AGENT-VIP.

— Por que ele possui prioridade máxima?

O programador responde:

— Porque pediram.

O pequeno robô começa lentamente a se afastar.

Do outro lado do CPD, o administrador WLM fecha os olhos.

Turing pega o café.

— Acabamos de descobrir por que governança existe.


👑 CAPÍTULO 27 — PRIORIDADE TAMBÉM PRECISA DE GOVERNANÇA

Esse ponto é fundamental.

Se qualquer equipe puder declarar:

MY_AGENT = CRITICAL

em poucas semanas teremos:

500 CRITICAL AGENTS

E então:

CRITICAL

não significa absolutamente nada.

Precisamos de critérios.

Por exemplo:

CRITICAL
Impacto financeiro imediato
ou risco operacional grave.

INTERACTIVE
Humano aguardando resposta.

STANDARD
Processamento normal.

BACKGROUND
Sem interação humana imediata.

Classificação precisa ser governada.

Caso contrário ocorre a inflação de prioridade.

É como colocar:

URGENTE!!!

em todos os e-mails.

Depois de algum tempo ninguém acredita mais.


🛡️ CAPÍTULO 28 — DEGRADAÇÃO GRACIOSA

Imagine que o modelo mais poderoso esteja saturado.

Temos duas escolhas.

A

Falhar.

B

Talvez usar um modelo menor para tarefas compatíveis.

PREMIUM MODEL
      ↓ saturado
SMALL MODEL

Ou reduzir funcionalidades.

FULL ANALYSIS
      ↓ pressão
BASIC ANALYSIS

Isso é uma forma de graceful degradation.

O sistema continua oferecendo valor, embora em nível reduzido.

Mas cuidado.

Nunca faça downgrade silencioso quando isso alterar requisitos críticos de qualidade ou segurança.

A UX precisa informar quando o comportamento muda de maneira relevante.


📉 CAPÍTULO 29 — ERROR BUDGET: QUANTO PODEMOS ERRAR?

Em práticas de SRE aparece um conceito interessante:

error budget.

Se nosso SLO é:

99.9%

não estamos declarando perfeição absoluta.

Existe uma margem de falha tolerada.

O orçamento de erro ajuda a equilibrar:

confiabilidade

e:

velocidade de mudança

Para agentes, o conceito pode inspirar discussões úteis.

Mas precisamos tomar cuidado.

Não significa:

O agente tem autorização para errar 0,1% das transferências bancárias.

😂

Contexto importa.

Algumas operações exigem controles muito mais rigorosos.

O princípio é operacional:

Defina objetivos mensuráveis e saiba quanto desvio é tolerável antes de tomar ação.


🧠 CAPÍTULO 30 — A INTELIGÊNCIA NÃO ELIMINA A FILA

Talvez esta seja a conclusão mais divertida.

Passamos décadas tornando máquinas mais inteligentes.

Criamos:

machine learning
deep learning
LLMs
agents

E finalmente construímos software capaz de:

interpretar
planejar
decidir
usar ferramentas

Então colocamos 500 deles juntos.

E descobrimos que eles precisam...

pegar senha.

😂

Porque inteligência não cria CPU infinita.

Não cria banda infinita.

Não cria conexões Db2 infinitas.

Não cria tokens infinitos.

E definitivamente não cria orçamento infinito.

Portanto até uma sociedade de agentes precisa de:

fila
prioridade
quota
limite
scheduler

Alguns problemas sobrevivem a todas as revoluções tecnológicas.


🏰 CAPÍTULO 31 — A GRANDE ARQUITETURA DOS AGENTES

Agora podemos juntar os artigos anteriores.

Imagine:

                    HUMANO
                       │
                       ▼
                    OBJETIVO
                       │
                       ▼
                ┌────────────┐
                │   AGENTE   │
                └────────────┘
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
       LLM            APIs           TOOLS
        │              │              │
        └──────────────┼──────────────┘
                       ▼
                    SISTEMAS

Ao redor:

RACF
→ quem pode fazer?

PF3
→ posso parar?

SDSF
→ o que está fazendo?

MAXCC
→ funcionou?

WLM
→ quem recebe recursos primeiro?

Agora nossa arquitetura começa a parecer adulta.


☕ EPÍLOGO — ATÉ ROBÔ PRECISA ESPERAR SUA VEZ

No final do dia, Turing voltou ao painel.

Às 09:00 havia:

500 agentes

todos tentando executar simultaneamente.

Agora o sistema mostrava:

AI WORKLOAD MANAGER

CRITICAL
ACTIVE: 42
QUEUED: 3
SLO: OK

INTERACTIVE
ACTIVE: 80
QUEUED: 17
SLO: OK

STANDARD
ACTIVE: 40
QUEUED: 121
SLO: OK

BACKGROUND
ACTIVE: 10
QUEUED: 287
SLO: OK

O pequeno robô protestou:

— Mas existem 287 agentes esperando!

Turing respondeu:

— Sim.

— Isso não é ruim?

— Não necessariamente.

— Mas eles poderiam estar trabalhando.

— Não.

Turing apontou para o painel:

DB2 POOL......... 72%
CICS............. HEALTHY
API ERRORS....... 0.2%
P95.............. WITHIN SLO
COST/HOUR........ CONTROLLED

— Eles poderiam estar competindo.

Essa é uma diferença importante.

Um sistema saudável não é aquele no qual tudo executa imediatamente.

É aquele no qual o trabalho certo recebe os recursos certos no momento certo, enquanto o restante espera de maneira controlada.

Essa lição existe no mainframe há décadas.

E continuará existindo quando nossos sistemas forem povoados por milhares de agentes.

Porque o problema fundamental nunca foi apenas executar trabalho.

Foi administrar:

DEMANDA

contra:

CAPACIDADE

respeitando:

OBJETIVOS

e:

PRIORIDADES

sem destruir:

CONFIABILIDADE

ou:

ORÇAMENTO.

Turing escreve cinco perguntas no quadro:

RACF
QUEM PODE?

PF3
POSSO PARAR?

SDSF
O QUE ESTÁ FAZENDO?

MAXCC
FUNCIONOU?

WLM
QUEM PASSA PRIMEIRO?

O jovem programador COBOL observa aquilo por alguns segundos.

— Professor...

— Sim?

— Estamos realmente inventando o futuro ou apenas reencontrando problemas antigos em abstrações novas?

Turing sorri.

Talvez essa seja uma das perguntas mais importantes de toda esta série.

A computação muda de linguagem.

Muda de interface.

Muda de hardware.

Muda de arquitetura.

Muda de escala.

Mas determinados problemas permanecem:

identidade,

autoridade,

observabilidade,

prioridade,

recuperação,

capacidade,

controle.

Chamávamos uma unidade de trabalho de:

JOB

Agora podemos chamá-la de:

AGENT RUN

Chamávamos o gerenciamento de recursos de:

WORKLOAD MANAGEMENT

E talvez continuemos chamando exatamente assim.

Porque quando 500 inteligências artificiais levantarem a mão ao mesmo tempo e disserem:

Eu quero trabalhar!

alguém — humano ou software — ainda terá que responder:

Pegue uma senha.

No canto da tela aparece:

AGENT-ARCHIVE
STATE: QUEUED
POSITION: 287

O robô pergunta:

— Quanto tempo?

Turing olha para o WLM.

— Depende da importância do seu trabalho.

O robô cruza os braços.

— Isso é discriminação contra inteligências artificiais.

O operador responde do fundo do CPD:

— Não. É capacity planning.

READY

E havia outros 286 agentes na frente dele.

☕ UM CAFÉ NO BELLACOSA MAINFRAME

🤖 Alan Turing entra no CPD

O mapa dos agentes de IA explicado por um mainframer

Esta série acompanha a evolução de uma ideia: compreender os problemas modernos dos agentes de inteligência artificial usando conceitos conhecidos por quem trabalha com mainframe, IBM Z e sistemas corporativos.

A viagem começa pelas pessoas e pela experiência de uso, passa por observabilidade, priorização e execução, chega às transações, estado e mensageria e termina na organização hierárquica do contexto.

01
FEV / 2023

🧠 O currículo invisível da inteligência artificial

Antes de construir agentes inteligentes precisamos preparar as pessoas que trabalharão com eles. Técnica, pensamento crítico, conhecimento de negócio, segurança, ética e responsabilidade formam o currículo que nem sempre aparece no certificado.

02
MAR / 2023

🤖 A UX dos agentes

Quando uma IA deixa de apenas responder e começa a executar ações, sua interface precisa mostrar objetivos, progresso, permissões e resultados. PF3, MAXCC e RACF tornam-se excelentes analogias para controle, retorno e privilégio mínimo.

04
MAI / 2023

⚖️ O WLM dos agentes

CPU, GPU, tokens, APIs e bancos de dados são recursos finitos. O Workload Manager inspira uma discussão sobre prioridades, objetivos de serviço, importância do trabalho e distribuição dinâmica de recursos entre agentes.

06
JUL / 2023

⚡ O CICS dos agentes

Uma coisa é uma IA produzir texto. Outra é permitir que ela execute operações reais de negócio. CICS introduz a conversa sobre processamento transacional, concorrência, segurança e integridade.

07
AGO / 2023

🗄️ O Db2 dos agentes

Agentes precisam manter estado, checkpoints, decisões e resultados. O Db2 fornece o ponto de partida para discutir unidade de trabalho, consistência, COMMIT, ROLLBACK e recuperação.

10
SET / 2026

☕ Alan Turing entra no CPD — O mapa completo

O artigo-âncora reúne toda a evolução da ideia: pessoas, UX, observabilidade, prioridade, orquestração, transações, estado, mensageria e contexto transformam artigos independentes em uma arquitetura conceitual para agentes de IA.

🖥️ Leitor da série

Selecione qualquer capítulo acima para abri-lo normalmente. O painel abaixo é apenas um recurso adicional de navegação.

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