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

sábado, 5 de setembro de 2026

O Barão de Münchhausen Entra no CPD — Da Estatística à GenAI, sem precisar cavalgar uma bala de canhão

 

Bellacosa Mainframe apresenta Data Analytics

☕ Um Café no Bellacosa Mainframe

O Barão de Münchhausen Entra no CPD — Da Estatística à GenAI, sem precisar cavalgar uma bala de canhão

Ou: como Estatística, Pesquisa Operacional, Tukey, Codd, Data Warehousing, Analytics, Big Data, Data Science, Machine Learning e IA Generativa acabaram encontrando COBOL dentro do IBM Z — e por que o programador que entende os dados tem uma vantagem que nenhum dashboard consegue inventar


Prólogo — O Barão chegou ao CPD montado numa distribuição normal

Conta o Barão de Münchhausen que certa manhã atravessou uma distribuição normal montado numa média aritmética, saltou sobre três outliers, amarrou seu cavalo numa mediana e chegou ao CPD exatamente no momento em que um batch COBOL terminava de processar alguns milhões de transações.

Naturalmente, não devemos acreditar em tudo.

A parte da distribuição normal é discutível.

A parte dos milhões de transações, nem tanto.

Quem trabalha com mainframe convive diariamente com quantidades gigantescas de dados: pagamentos, cartões, seguros, contas bancárias, pedidos, estoques, reservas, faturamento, logística, transações governamentais e inúmeras outras atividades.

Durante décadas aprendemos a fazer esses sistemas funcionarem.

Agora existe uma pergunta adicional:

O que podemos aprender com os dados que esses sistemas produzem?

É aí que começa nossa viagem pelo Data Analytics.

E nosso guia será justamente o homem conhecido por contar algumas das histórias mais improváveis da literatura.

Isso será conveniente porque existe uma regra importante em análise de dados:

Se uma história parece extraordinária, procure os dados antes de acreditar nela.



1. Afinal, o que é Data Analytics?

Podemos traduzir Data Analytics como Análise de Dados.

Mas simplesmente dizer isso esconde boa parte da história.

Data Analytics é um conjunto de processos, técnicas e ferramentas utilizados para transformar dados em informações capazes de ajudar pessoas e organizações a compreender acontecimentos e tomar decisões.

Podemos representar isso assim:

DADOS
  ↓
PREPARAÇÃO
  ↓
ANÁLISE
  ↓
PADRÕES
  ↓
INSIGHTS
  ↓
COMUNICAÇÃO
  ↓
DECISÃO

Observe algo importante.

O objetivo final não é criar um gráfico.

Também não é executar Python.

Muito menos instalar alguma ferramenta milagrosa com IA.

O objetivo é tomar decisões melhores com base em evidências.

Imagine um banco processando milhões de transações.

O sistema pode saber que:

CLIENTE = 837291
VALOR   = 9800
HORA    = 03:17
CANAL   = WEB

Esses são dados.

Mas Data Analytics começa quando perguntamos:

Esse valor é normal para esse cliente?

Ele costuma comprar às três da manhã?

Esse canal é habitual?

Houve outras compras semelhantes?

O endereço IP está relacionado à localização normalmente utilizada?

Agora os dados começaram a contar uma história.



2. “Mas quem inventou Data Analytics?”

O Barão imediatamente levanta a mão:

— Fui eu! Em 1783, durante uma viagem à Lua...

Não, Barão.

Pode abaixar a mão.

Não existe uma única pessoa reconhecida como inventora do Data Analytics.

Também não encontramos um inventor específico para a expressão Introduction to Data Analytics.

Esse é simplesmente um título descritivo usado para cursos introdutórios sobre análise de dados.

A história intelectual do Data Analytics é muito mais interessante porque várias disciplinas contribuíram para sua formação.

Uma árvore bastante simplificada seria:

ESTATÍSTICA
   │
   ├── Pesquisa Operacional
   │
   ├── Análise de Dados
   │      └── John Tukey — 1962
   │
   ├── Bancos de Dados
   │      └── Edgar F. Codd — década de 1970
   │
   ├── Decision Support Systems
   │
   ├── Data Warehousing / BI
   │
   ├── Analytics
   │      └── Thomas Davenport — 2006
   │
   ├── Big Data
   │
   ├── Data Science
   │
   └── Machine Learning / GenAI

Essa árvore não deve ser interpretada como uma genealogia rígida na qual uma tecnologia simplesmente substitui a anterior.

É melhor enxergá-la como uma acumulação de conhecimentos.

Estatística continua existindo.

SQL continua existindo.

Data Warehouse continua existindo.

Machine Learning não tornou regressão inútil.

IA generativa não tornou bancos de dados obsoletos.

E, para surpresa de algumas apresentações corporativas...

COBOL também continua aqui.



3. A raiz: Estatística

Antes de existir computador, já existia a necessidade de analisar números.

Populações, comércio, agricultura, astronomia, seguros, economia e administração pública produziram problemas que exigiam métodos quantitativos.

Daí se desenvolveram conceitos fundamentais como:

  • média;

  • mediana;

  • moda;

  • variância;

  • desvio padrão;

  • distribuição;

  • probabilidade;

  • correlação;

  • regressão.

Para o programador COBOL, alguns desses conceitos parecem muito mais familiares quando saem do livro de estatística.

Imagine tempos de resposta:

0,31
0,29
0,30
0,32
0,31
0,30
2,87

Existe alguma coisa estranha ali.

O 2,87 merece investigação.

Chamamos valores muito afastados do comportamento esperado de outliers.

O Barão naturalmente garante que o tempo de resposta de 2,87 segundos ocorreu porque um cavalo ficou preso no canal ESCON.

A equipe de produção prefere consultar os logs.


4. Média não conta toda a história

Imagine cinco transações:

100
105
110
115
10.000

A média é:

(100 + 105 + 110 + 115 + 10000) / 5
= 2086

Mas quatro das cinco transações estão perto de 100.

Por isso precisamos conhecer também mediana e dispersão.

A mediana seria:

110

Muito mais representativa do comportamento central daquele pequeno conjunto.

A dispersão, por sua vez, ajuda a entender quanto os valores se afastam uns dos outros.

Essa é uma lição fundamental para analytics:

Um único número raramente explica um sistema complexo.

É igualmente verdadeira para performance de mainframe.

Dizer:

“O response time médio é 300 ms.”

pode esconder períodos de 50 ms e outros de 5 segundos.

Por isso média, percentis, distribuição e dispersão importam.


5. Pesquisa Operacional entra no CPD

Outra contribuição importante veio da Pesquisa Operacional.

Ela utiliza modelos matemáticos para encontrar melhores decisões diante de restrições.

Imagine:

recursos limitados
+
múltiplas alternativas
+
objetivos
+
restrições

Isso aparece em logística, produção, transporte, escalonamento e planejamento.

Para quem conhece mainframe, a ideia não deveria parecer alienígena.

Um ambiente computacional também possui:

CPU
Memória
I/O
Prioridades
Workloads
SLAs
Janelas batch

E precisamos decidir como utilizar recursos limitados da melhor maneira possível.

O WLM provavelmente cumprimentaria a Pesquisa Operacional com bastante respeito.


6. John Tukey e a Análise de Dados

Em 1962, o estatístico John Tukey publicou o influente trabalho The Future of Data Analysis.

Tukey ajudou a fortalecer a ideia de que analisar dados era uma atividade intelectual própria, não simplesmente uma aplicação mecânica da estatística.

Posteriormente, seu trabalho sobre Exploratory Data Analysis — EDA tornou-se particularmente importante.

A ideia é poderosa:

Antes de tentar provar alguma coisa, explore os dados.

Observe.

Visualize.

Procure padrões.

Procure inconsistências.

Faça perguntas.

Para um programador COBOL, podemos traduzir:

Antes de alterar o programa porque alguém disse que “o sistema está lento”, investigue.


7. Edgar F. Codd aparece carregando tabelas

Chegamos aos anos 1970.

Entra em nossa história Edgar F. Codd, pesquisador da IBM.

Codd apresentou o modelo relacional para bancos de dados.

Essa contribuição transformaria profundamente a maneira como sistemas armazenam e consultam informações.

Em vez de pensar somente em estruturas físicas, passamos a trabalhar conceitualmente com:

TABELAS
LINHAS
COLUNAS
CHAVES
RELACIONAMENTOS

E desse universo emergiria SQL.

Para o programador COBOL:

EXEC SQL
   SELECT SALDO
     INTO :WS-SALDO
     FROM CONTA
    WHERE CONTA_ID = :WS-CONTA-ID
END-EXEC.

Parece cotidiano.

Mas existe uma enorme história da computação escondida atrás desse SELECT.


8. Decision Support Systems

À medida que empresas armazenavam mais informações, surgiu outra necessidade:

usar computadores não apenas para executar operações, mas também para ajudar pessoas a decidir.

Daí crescem os Decision Support Systems — DSS.

O sistema transacional responde:

“A venda aconteceu?”

O sistema de apoio à decisão pode perguntar:

“Por que as vendas caíram?”

Perceba a mudança.

OLTP → executar o negócio

Analytics → compreender o negócio

Naturalmente os dois mundos podem se alimentar.


9. Data Warehouse e Business Intelligence

Empresas possuíam dados espalhados em diversos sistemas.

Então apareceu outro problema:

Como juntar tudo isso para análise?

Entram Data Warehouses, Data Marts, processos ETL e ferramentas de Business Intelligence.

ETL significa:

Extract
Transform
Load

Ou:

Extrair
Transformar
Carregar

Quem trabalha com mainframe talvez esteja pensando:

“Nós fazemos coisas parecidas há décadas.”

E não está totalmente errado.

Arquivos são extraídos, classificados, combinados, transformados e carregados desde muito antes de o termo data pipeline virar moda.

DFSORT poderia escrever memórias bastante interessantes sobre isso.


10. Data Wrangling — o faxineiro que salva o projeto

Dados reais são bagunçados.

Encontramos:

campos vazios
duplicidades
datas incompatíveis
valores inválidos
espaços
códigos antigos
unidades diferentes
registros incompletos

Data Wrangling é o processo de transformar esse material em algo apropriado para análise.

Um fluxo típico inclui:

Discovery
   ↓
Transformation
   ↓
Validation
   ↓
Publishing

Isso pode envolver:

  • joins;

  • unions;

  • normalização;

  • limpeza;

  • enriquecimento;

  • validação.

Aqui existe uma regra que merece ser escrita na parede do CPD:

IA aplicada sobre dado ruim produz erro tecnologicamente sofisticado.

Ou, na versão tradicional:

Garbage In, Garbage Out.

O Barão prefere:

Garbage In, história extraordinária Out.


11. Analytics chega à sala da diretoria

Em 2006, Thomas H. Davenport publicou na Harvard Business Review o artigo Competing on Analytics.

Ele ajudou a popularizar a utilização de analytics como instrumento de vantagem competitiva.

A pergunta empresarial deixa de ser apenas:

“Quanto vendemos?”

e passa a incluir:

Quem compra?

Quando compra?

Por que compra?

Quem provavelmente deixará de comprar?

Onde existe fraude?

O que provavelmente acontecerá depois?

Os dados começam a participar diretamente da estratégia empresarial.


12. Big Data — quando o dataset comeu demais

Depois veio a explosão de dados.

Web.

Smartphones.

Sensores.

Logs.

Redes sociais.

Streaming.

IoT.

Transações digitais.

Passamos a falar dos famosos Vs do Big Data.

Entre eles:

Volume — quantidade.

Velocity — velocidade.

Variety — variedade.

Veracity — confiabilidade.

Tecnologias distribuídas como Hadoop e Spark ganharam destaque nesse cenário.

Mas existe uma curiosidade importante para nós.

Enquanto o mundo descobria que havia dados demais...

o mainframe provavelmente respondeu:

“Interessante. Conte-me mais.”


13. Data Science

Data Science combina conhecimentos de várias áreas:

Estatística
+
Computação
+
Conhecimento do domínio
+
Métodos analíticos

Isso explica uma coisa importantíssima.

O melhor profissional não é necessariamente aquele que conhece mais bibliotecas Python.

Conhecimento do domínio importa enormemente.

E é aí que um desenvolvedor COBOL experiente possui uma vantagem.

Ele talvez conheça:

cliente
conta
apólice
pedido
pagamento
fatura
liquidação
compensação
estoque

Não apenas como colunas.

Mas como processos reais do negócio.


14. Machine Learning

Machine Learning leva a análise adiante permitindo que modelos aprendam padrões a partir dos dados.

Algumas tarefas clássicas incluem:

Classificação

Determinar uma categoria.

TRANSAÇÃO
   ↓
LEGÍTIMA
ou
SUSPEITA

Clustering

Agrupar elementos semelhantes sem necessariamente possuir classes previamente definidas.

clientes
   ↓
grupo A
grupo B
grupo C

Regressão

Investigar relações entre variáveis e produzir estimativas.

Detecção de anomalias

Encontrar comportamentos incomuns.

E essa última nos leva diretamente ao exemplo do curso.


15. O ladrão roubou o cartão — ou talvez apenas as credenciais

Imagine um cliente que normalmente:

faz 3 compras por semana
gasta aproximadamente R$ 150
compra em São Paulo
utiliza dispositivos conhecidos

De repente:

12 compras
4 minutos
valores elevados
IP incomum
localização diferente
nova preferência de entrega

Nenhum desses elementos isoladamente prova fraude.

Mas juntos formam um comportamento digno de investigação.

Esse é um excelente exemplo de detecção de anomalias.

O processo seria aproximadamente:

1. Definir o problema
        ↓
2. Identificar os dados necessários
        ↓
3. Coletar
        ↓
4. Limpar
        ↓
5. Transformar
        ↓
6. Analisar
        ↓
7. Detectar padrões/anomalias
        ↓
8. Visualizar
        ↓
9. Comunicar
        ↓
10. Decidir

Esse é o coração do Data Analytics.



16. Visualização — porque ninguém quer interpretar 800 mil linhas

Imagine entrar numa reunião executiva e dizer:

— Descobri o problema. Aqui estão 4,7 milhões de registros CSV.

Você provavelmente não será convidado novamente.

Visualização transforma dados em representações compreensíveis.

Podemos utilizar:

  • gráficos de barras;

  • linhas;

  • histogramas;

  • scatter plots;

  • mapas;

  • dashboards.

Um gráfico pode revelar em segundos algo escondido em milhões de registros.

Mas cuidado:

visualização não substitui análise.

Um gráfico bonito com dados incorretos continua incorreto.

Só ficou mais convincente.


17. Storytelling — o momento Münchhausen

Finalmente chegamos ao território favorito do Barão.

Contar histórias.

Mas agora precisamos fazer exatamente o contrário do nosso guia.

Nada de exageros.

Nada de inventar.

Nada de cavalgar balas de canhão.

Data Storytelling significa comunicar uma conclusão apoiada por evidências.

Uma boa narrativa pode seguir:

CONTEXTO
   ↓
PROBLEMA
   ↓
EVIDÊNCIA
   ↓
DESCOBERTA
   ↓
IMPACTO
   ↓
RECOMENDAÇÃO

Em vez de dizer:

“CPU aumentou.”

Podemos dizer:

“Após o crescimento de 38% do volume transacional entre 10h e 11h, observamos aumento consistente no consumo de CPU acompanhado por crescimento do response time. A análise indica concentração no workload X e recomenda investigação das transações Y.”

Agora existe história.

Existe contexto.

Existe decisão possível.


18. E então apareceu a IA Generativa

Chegamos ao capítulo mais recente.

LLMs e IA generativa conseguem:

  • resumir informações;

  • gerar consultas;

  • auxiliar análise;

  • explicar padrões;

  • produzir código;

  • ajudar na documentação;

  • apoiar visualizações;

  • conversar com bases de conhecimento.

Mas existe um detalhe delicioso.

IA precisa de dados.

Dados precisam de:

qualidade
contexto
governança
segurança
interpretação

Portanto nossa árvore não desapareceu.

Ela ficou maior.

Estatística
     ↓
Data Analysis
     ↓
Databases
     ↓
BI
     ↓
Analytics
     ↓
Big Data
     ↓
Data Science
     ↓
Machine Learning
     ↓
GenAI

Cada camada carrega ideias das anteriores.



19. O IBM Z estava no porão o tempo inteiro

Agora olhamos para o mainframe.

Ali encontramos:

COBOL
CICS
IMS
Db2
VSAM
JES2
SMF
RMF
MQ
APIs

E atrás dessas tecnologias existem dados.

Muitos dados.

Transacionais.

Operacionais.

Financeiros.

Históricos.

De performance.

De segurança.

O mainframe não é apenas uma máquina executando programas COBOL.

É também uma das maiores fontes de informação empresarial de alto valor.


20. Por que um desenvolvedor COBOL deveria aprender tudo isso?

Porque o trabalho está mudando.

Não significa abandonar:

COBOL
JCL
CICS
Db2
VSAM

Significa acrescentar:

SQL avançado
Estatística
Data Analytics
Visualização
Python
IA

Um desenvolvedor tradicional pode perguntar:

“Onde esse campo é atualizado?”

Um profissional com mentalidade analítica também pergunta:

“O que podemos descobrir analisando dez anos desse campo?”

Essa segunda pergunta abre um universo novo.



21. Um laboratório Bellacosa

Quer começar sem instalar um cluster Hadoop no quintal?

Pegue um conjunto de dados simples.

Pode ser:

DATA
HORÁRIO
TRANSAÇÃO
VALOR
CPU
RESPONSE_TIME
STATUS

Passo 1 — explore

Quantos registros existem?

Quais campos?

Há valores faltantes?

Passo 2 — limpe

Remova duplicidades.

Padronize datas.

Verifique valores inválidos.

Passo 3 — calcule

Descubra:

média
mediana
mínimo
máximo
desvio

Passo 4 — procure outliers

Quais transações fogem do comportamento esperado?

Passo 5 — relacione variáveis

Por exemplo:

volume × CPU
volume × response time
CPU × response time

Passo 6 — visualize

Crie um gráfico temporal.

Passo 7 — conte a história

Não diga apenas:

“Existe um pico.”

Explique:

quando ocorreu;

qual foi sua magnitude;

quais variáveis mudaram;

quais workloads foram afetados;

qual hipótese merece investigação.

Parabéns.

Você acabou de sair de:

“olhar relatório”

para:

“fazer análise de dados”.


22. Easter egg — o Barão encontra um outlier

No final da visita, Münchhausen olha para nosso dataset.

TEMPO_RESPOSTA

0.28
0.31
0.30
0.29
0.32
47.81
0.30

Ele aponta imediatamente para 47.81.

— Conheço esse número! Foi exatamente o tempo que levei para escapar de um pântano puxando a mim mesmo pelos cabelos!

O analista consulta SMF.

O DBA consulta Db2.

O sysprog consulta RMF.

O desenvolvedor abre os logs.

Descobrem uma contenção.

O Barão parece decepcionado.

Mas acabamos de aprender uma última lição:

Um outlier começa uma investigação. Ele não termina uma investigação.


Epílogo — Não abandone o canhão; aprenda balística

Existe uma tentação recorrente na tecnologia de anunciar que cada novidade matou tudo o que existia antes.

Cloud matou mainframe.

Java matou COBOL.

NoSQL matou SQL.

Big Data matou Data Warehouse.

Machine Learning matou estatística.

IA matou programação.

Enquanto isso, no mundo real, todas essas tecnologias continuam convivendo.

O profissional valioso não é necessariamente aquele que corre atrás de cada buzzword.

É aquele que consegue entender como as peças se conectam.

Para o desenvolvedor COBOL, Data Analytics oferece justamente essa oportunidade.

Você já conhece sistemas que produzem dados críticos.

Conhece transações.

Conhece regras de negócio.

Conhece exceções.

Conhece processamento batch.

Conhece online.

Conhece bancos de dados.

Conhece o estranho campo WS-FLAG-X9 que ninguém documentou desde 1997.

Agora acrescente:

estatística.

análise.

visualização.

storytelling.

Machine Learning.

IA.

E talvez você descubra que não precisa abandonar 30 anos de experiência para entrar no futuro.

Pode fazer algo muito mais inteligente:

colocar o futuro em cima desses 30 anos.

Nossa árvore, afinal, não cresce destruindo suas raízes.

Ela cresce justamente porque possui raízes.

                    GenAI
                      ▲
              Machine Learning
                      ▲
                Data Science
                      ▲
                  Big Data
                      ▲
                 Analytics
                      ▲
             Data Warehouse / BI
                      ▲
                    DSS
                      ▲
                Databases
                      ▲
               Data Analysis
                      ▲
           Pesquisa Operacional
                      ▲
                 Estatística

                     │
                     │
               DADOS REAIS
                     │
              ┌──────┴──────┐
            COBOL          CICS
              │              │
             Db2            IMS
              │              │
            VSAM           MQ/API
              └──────┬───────┘
                     │
                   IBM Z

O Barão de Münchhausen sobe novamente em seu cavalo.

Olha para o IBM Z.

Olha para nosso dashboard.

Olha para a IA.

E antes de cavalgar rumo ao próximo absurdo tecnológico, deixa um conselho surpreendentemente sensato:

“Meu caro programador: eu posso inventar histórias porque sou o Barão. Você, quando trabalhar com dados, precisa provar as suas.”

☕ Bellacosa Mainframe

Do cartão perfurado à Inteligência Artificial, os dados sempre tiveram uma história para contar. Nossa profissão é aprender a ouvi-la.

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.

sexta-feira, 29 de setembro de 2017

☁️ z/OS 2.3 — O Mainframe que Aprendeu a Falar Cloud, REST e IA 🤖💙

 





☁️ z/OS 2.3 — O Mainframe que Aprendeu a Falar Cloud, REST e IA 🤖💙

Por Bellacosa Mainframe — onde tradição e inovação dividem a mesma LPAR ☕


O z/OS 2.3, lançado oficialmente em setembro de 2017, marcou o início da era cognitiva e containerizada do Mainframe.
Enquanto o z/OS 2.2 abriu as portas para DevOps e automação, o 2.3 trouxe o que podemos chamar de "transformação digital de dentro pra fora": APIs nativas, integração com cloud híbrida, suporte a linguagens abertas e gerenciamento autônomo de recursos.

Sim, o z/OS 2.3 é aquele tiozão que um dia programava em Assembler e, do nada, aparece falando Python, gerenciando containers e exportando logs para o Splunk. 😎

Vamos decodificar juntos os avanços, as mudanças de arquitetura e as curiosidades dignas de café e nostalgia.


🧭 1. Contexto histórico — o z/OS na era do z14 e da IA

O z/OS 2.3 foi projetado para o IBM z14, lançado no mesmo ano — uma joia de engenharia com até 170 processadores, 32 TB de memória e suporte completo a cripto on-chip.

Dados principais:

  • 📅 Lançamento: setembro de 2017

  • 🧱 Compatível com: zEnterprise EC12, z13, z13s e z14

  • 🧠 Objetivo central: simplificar, automatizar e conectar o z/OS ao ecossistema híbrido e cognitivo

  • 🧩 Suporte fim (EOS): setembro de 2022

O slogan interno da IBM era quase poético:

“From Stability to Agility.”
Ou seja, transformar a robustez lendária do mainframe em agilidade sem sacrificar confiabilidade.


💾 2. Memória e endereçamento — 64 bits na veia e no coração

O z/OS 2.3 consolidou o modelo 64-bit total, o que significa:

  • Todas as principais áreas do sistema (LPA, CSA, SQA, Pageable link packs) passaram a operar em espaço de 64 bits.

  • Suporte a 2 TB por address space e melhorias no paging inteligente.

  • Memory Objects otimizados com menos overhead em z/Architecture.

📊 Resultado técnico: workloads como DB2 e IMS aumentaram 10 a 15% de throughput apenas pela reorganização do gerenciamento de memória.

💡 Bellacosa Curiosidade: o 2.3 foi o primeiro z/OS que praticamente aposentou o “modo 31 bits” no nível de sistema — mas ele ainda vive escondido em alguns programas legados (sim, aquele Assembler do século passado ainda funciona!).


⚙️ 3. PR/SM, HiperDispatch e créditos de CPU — inteligência no balanceamento

O PR/SM (Processor Resource/System Manager) e o HiperDispatch evoluíram consideravelmente no 2.3:

Destaques técnicos:

  • Dynamic Capping: redistribui créditos de CPU em tempo real com base no workload WLM.

  • SMF 70-1 passou a registrar novos campos de “LPAR entitlements” e “core utilization efficiency”.

  • Workload Manager (WLM) ganhou consciência cognitiva — adaptando pesos automaticamente segundo padrões históricos de uso.

  • PR/SM agora reconhece diferenças entre Integrated Facility for Linux (IFL), zIIP, ICF e CP, otimizando rotas de execução.

🎩 Easter Egg técnico: no SMF 72-3, um novo campo “WLM Decision Cycle Time” foi introduzido — uma pista do nascimento do Intelligent Resource Management, base do z/OS AI Framework do z16.


🧰 4. Aplicativos internos — o z/OS aprende a automatizar a si mesmo

O z/OS 2.3 levou o z/OSMF (z/OS Management Facility) ao próximo nível.
Antes um painel de controle, agora ele era uma plataforma completa de automação e APIs RESTful.

🌐 z/OSMF 2.3 — o cérebro orquestrador:

  • Novo Workflow Editor com suporte a JSON Templates e execução remota.

  • z/OSMF Workflows as a Service — rodar fluxos em outras LPARs.

  • REST APIs públicas para gerenciamento de datasets, JES, e parmlibs.

  • z/OSMF Lite Mode — uma versão enxuta para ambientes de teste e POCs.

  • ZOSMF Plug-ins: começou a era da extensibilidade via plugins customizados.

💬 Bellacosa Nota Técnica: essa mudança abriu espaço para integração nativa com Jenkins, Ansible e UrbanCode Deploy, nascendo o conceito de Mainframe DevOps Pipeline.


🧩 5. Softwares e subsistemas — o ecossistema se reinventa

🔹 JES2 2.3

  • Suporte completo a Unicode e UTF-8.

  • Dynamic Checkpoint Rebuild (não precisava mais reiniciar para reconstruir spool).

  • Novo job hold reason codes (para debugging mais detalhado).

  • Preparado para JES2 running em z/OSMF APIs — sim, o spool agora tinha REST!

🔹 RACF 2.3

  • Autenticação multifator experimental (MFA via IBM TouchToken e RSA).

  • Políticas de senha mais granulares via IRRPRMxx.

  • Novos registros SMF 83 para auditoria de MFA e certificados digitais.

🔹 UNIX System Services

  • OpenSSH 7.4, Python 3.6, Node.js 8 e Zowe compatibility layer.

  • Melhorias no zFS (z/OS File System) com asynchronous write cache.

  • Enhanced fork — 25% mais rápido em execução de scripts longos.

🔹 DFSMS 2.3

  • Tiering automático baseado em ML heuristics.

  • Catalog search engine redesenhado (adeus à lentidão crônica do IDCAMS LISTCAT 😅).

  • DFSMShsm otimizado para fast recall e HSM journaling.


🧠 6. Instruções de máquina e o poder do z14

Com o z14, vieram instruções novas e poderosas, que o z/OS 2.3 aproveitou ao máximo:

  • Crypto on-chip AES-GCM e SHA-3 (sem precisar de Crypto Express externo).

  • Vector Packed Decimal (VPD) — aceleração matemática de 8 a 10x.

  • Hardware-assisted garbage collection para Java.

  • Machine Check Enhancements (MCE): detecção proativa de falhas em memória.

📈 Em benchmarks internos, workloads Java no z/OS 2.3 rodando em z14 mostraram ganhos de 30% de performance, com menos 40% de uso de CPU.


🧩 7. z/OS Connect EE e a era das APIs REST

O z/OS Connect Enterprise Edition (v3) virou cidadão de primeira classe no 2.3.
Com ele, CICS, IMS e DB2 passaram a se comunicar com o mundo moderno via REST e JSON.

  • Suporte nativo a Swagger/OpenAPI 2.0

  • API Toolkit para criação visual de endpoints

  • Conversão automática de COBOL copybooks para JSON

  • Integração direta com API Gateway e IBM DataPower

💬 Bellacosa Curiosidade: durante os testes internos, engenheiros IBM chamavam o z/OS Connect EE de “Alexa do CICS” — porque ele transformava transações em conversas entre sistemas. 😂


🔒 8. Segurança e criptografia — o z/OS mais paranoico da história

O z/OS 2.3 trouxe uma revolução silenciosa na segurança:

  • Pervasive Encryption: suporte completo a datasets criptografados com chaves AES-256 no DFSMS.

  • ICSF (Crypto Services Facility) expandido para ECC e SHA-512.

  • AT-TLS com SNI e suporte a TLS 1.3 (beta).

  • SMF 119 — logs detalhados para auditorias TLS e IPsec.

💡 Bellacosa Insight: foi o primeiro passo para o “zero trust” real no mainframe.


🧙‍♂️ 9. Curiosidades e bastidores (as fofoquices técnicas que a IBM não conta 😏)

  • Internamente, o projeto era chamado de “Project Aurora”, porque o z/OS 2.3 nascia junto ao z14, codinome Mills (em homenagem a Frederick P. Brooks).

  • O time do z/OSMF implementou a primeira interface REST testada via Postman.

  • Foi a primeira vez que o z/OS foi testado rodando em um ambiente virtual distribuído híbrido (z14 + z13).

  • Algumas demos internas mostravam um chatbot RACF — sim, um protótipo de IA respondendo “quem tem acesso ao dataset X?”. 😂


🚀 10. Conclusão — o z/OS 2.3 e o nascimento do Mainframe Híbrido

O z/OS 2.3 é o ponto onde o mainframe deixou de ser apenas um sistema operacional robusto e virou um ecossistema digital inteligente.
Ele abriu caminho para o Zowe, para a observabilidade moderna, e para o DevSecOps mainframe, que hoje são realidade no z/OS 3.x.

💬 O 2.3 foi o último z/OS da velha guarda — e o primeiro da nova geração.
Um verdadeiro divisor de eras entre o batch e o cognitivo, entre o 3270 e o JSON.


Bellacosa Mainframe ☕
🧠 Onde bits têm alma, spool tem ritmo e o JES dança conforme o WLM.
💬 E você, padawan — lembra a primeira vez que rodou um workflow no z/OSMF 2.3 e ele simplesmente funcionou?
Conta aí: foi magia, medo ou “só pode ser bruxaria IBM”? 😄



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