☕ 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

sexta-feira, 7 de junho de 2019

🎩 CARLITOS EM TEMPOS MODERNOS — QUANDO O COBOL ENTROU NA ESTEIRA DO DEVOPS

 

Bellacosa Mainframe introducao ao DevOps

☕ Um Café no Bellacosa Mainframe

🎩 CARLITOS EM TEMPOS MODERNOS — QUANDO O COBOL ENTROU NA ESTEIRA DO DEVOPS

COBOL, Git, Jenkins, DBB, zAppBuild, testes, CI/CD, DevSecOps, observabilidade, rollback, IA e o dia em que Carlitos descobriu que apertar parafusos mais rápido não significa necessariamente produzir software melhor.



🎬 PRÓLOGO — CARLITOS CONSEGUIU SEU PRIMEIRO EMPREGO NO MAINFRAME

Imagine nosso jovem programador COBOL entrando pela primeira vez em um grande Data Center.

Ele olha para aquelas máquinas, terminais, aplicações, filas, bancos de dados, milhares de jobs e milhões de transações e pensa:

— Finalmente! Aprendi COBOL. Estou preparado!

Do outro lado da sala, sentado diante de um terminal 3270, está Carlitos.

Chapéu-coco.

Bigodinho.

Bengala encostada na mesa.

Ele olha silenciosamente para o jovem programador e aponta para uma enorme esteira imaginária.

Sobre ela passam:

REQUISITO
   ↓
COBOL
   ↓
COPYBOOK
   ↓
JCL
   ↓
BUILD
   ↓
TESTE
   ↓
DEPLOY
   ↓
PRODUÇÃO

O jovem pergunta:

— Isso tudo é programação?

Carlitos balança negativamente a cabeça.

Aponta novamente para a esteira.

Agora aparecem mais peças:

Git
Pull Request
Code Review
DBB
zAppBuild
ZUnit
Quality Gate
Security Scan
SIT
UAT
Deploy
Rollback
Logs
Metrics
Traces

O jovem arregala os olhos.

Bem-vindo aos Tempos Modernos do Mainframe.

Porque conhecer COBOL continua sendo extremamente importante.

Mas COBOL é apenas uma das engrenagens.

O profissional mainframe moderno precisa começar a compreender a fábrica inteira.



⚙️ CAPÍTULO 1 — A FÁBRICA DE SOFTWARE

Em Tempos Modernos, Carlitos trabalha em uma linha de produção.

Sua tarefa parece simples:

apertar parafusos.

Dois parafusos chegam.

Carlitos aperta.

Outros dois.

Aperta novamente.

Mais dois.

Mais dois.

Mais dois.

Até que o homem começa a funcionar como se fosse parte da máquina.

Essa é uma excelente metáfora para um problema que também encontramos no desenvolvimento tradicional.

Durante muito tempo ensinamos programação como uma sequência relativamente isolada:

Receba especificação
        ↓
Altere programa
        ↓
Compile
        ↓
Teste
        ↓
Entregue

Parece perfeitamente razoável.

Mas surge uma pergunta.

Entregue para quem?

Quem controla a versão?

Quem sabe exatamente o que mudou?

Quem verifica as dependências?

Quem recompila?

Quem executa os testes?

Quem gera as evidências?

Quem promove para outro ambiente?

Quem autoriza produção?

Quem observa o sistema depois do deploy?

Quem volta a versão caso algo dê errado?

É nesse momento que entramos no universo do DevOps Mainframe.

DevOps não significa simplesmente instalar Jenkins.

Também não significa substituir ISPF por uma IDE moderna.

Muito menos significa pegar tudo que funciona no mainframe e colocar dentro de containers.

DevOps é fundamentalmente uma abordagem para melhorar o fluxo de entrega de software, aproximando desenvolvimento, testes, segurança e operações através de processos repetíveis, colaboração e automação.

Nossa fábrica começa a ficar interessante.



🏭 CAPÍTULO 2 — O COBOL NÃO SAI SOZINHO DA FÁBRICA

Considere um programa chamado:

PGMPAG01

Ele processa pagamentos.

O programador recebe:

REQ-38271 — Adicionar código identificador da origem da transação.

Parece fácil.

Ele abre o programa:

01 WS-TRANSACAO.
   05 WS-VALOR          PIC 9(09)V99.
   05 WS-CONTA          PIC X(12).
   05 WS-ORIGEM         PIC X(03).

Pronto?

Não.

Talvez WS-ORIGEM tenha vindo de um copybook.

Talvez o programa grave Db2.

Talvez outro programa utilize a mesma estrutura.

Talvez uma transação CICS chame esse programa.

Talvez um batch noturno leia os registros posteriormente.

Talvez exista uma API expondo aquela informação.

Talvez MQ transporte a mensagem para outro sistema.

A pequena alteração tornou-se:

                 COPYBOOK
                    │
          ┌─────────┼─────────┐
          ▼         ▼         ▼
       COBOL-A    COBOL-B    COBOL-C
          │         │
          ▼         ▼
         CICS      BATCH
          │         │
          └────┬────┘
               ▼
              Db2
               │
               ▼
              MQ
               │
               ▼
             API

Aqui aparece uma das primeiras lições importantes do DevOps:

O tamanho da alteração não determina necessariamente o tamanho do impacto.

Uma linha pode afetar dezenas de componentes.



🌳 CAPÍTULO 3 — CARLITOS CONHECE O GIT

Carlitos encontra outra máquina na fábrica.

Nela existe uma placa:

GIT

O jovem programador pergunta:

— É onde guardamos os fontes?

Sim.

Mas essa resposta é incompleta.

Ensinar Git apenas como repositório é como ensinar CICS dizendo:

“É aquele negócio que executa COBOL.”

Tecnicamente há alguma verdade.

Pedagogicamente é quase inútil.

Git introduz um modelo importante de gerenciamento de mudanças.

Imagine:

main
 │
 ├──── feature/REQ-38271
 │
 │       ├── alteração COBOL
 │       ├── alteração COPYBOOK
 │       └── alteração teste
 │
 └──── fix/INC-9281

O desenvolvedor trabalha em sua alteração.

Depois:

commit
   ↓
push
   ↓
Pull Request
   ↓
Code Review
   ↓
Merge

Isso cria algo precioso:

rastreabilidade.

Podemos relacionar:

REQUISITO
    ↓
COMMIT
    ↓
BUILD
    ↓
TESTE
    ↓
ARTEFATO
    ↓
DEPLOY

Agora conseguimos responder:

Quem alterou?

Quando?

Por quê?

Qual requisito originou a alteração?

Qual versão foi compilada?

Quais testes passaram?

Qual artefato foi enviado para produção?

Esse tipo de informação é extremamente importante em grandes organizações, especialmente em ambientes sujeitos a controles internos, auditorias e regulamentação.



🧬 CAPÍTULO 4 — UMA COPYBOOK PARA A ESTEIRA

Carlitos está trabalhando tranquilamente quando alguém altera:

COPYB

Na fábrica existem:

PGMA → COPYA
     → COPYB

PGMB → COPYB
     → COPYC

PGMC → COPYD

Pergunta:

Quem precisa ser recompilado?

PGMA utiliza COPYB.

PGMB utiliza COPYB.

PGMC não utiliza COPYB.

Logo:

             COPYB
            /     \
           ▼       ▼
         PGMA     PGMB

Esse exemplo aparentemente simples apresenta ao iniciante um conceito extremamente importante:

dependências.

Em sistemas grandes, recompilar absolutamente tudo após qualquer mudança pode ser caro, demorado e desnecessário.

É aí que conceitos como dependency-based build tornam-se interessantes.

Ferramentas e frameworks de build podem ajudar a determinar quais componentes foram impactados pela mudança e quais precisam ser reconstruídos.

Aqui entram tecnologias como DBB e zAppBuild em determinados ecossistemas de desenvolvimento IBM Z.

Não devemos decorar apenas seus nomes.

Precisamos entender o problema que tentam resolver.


🔨 CAPÍTULO 5 — JENKINS NÃO É O OPERÁRIO

Outra máquina aparece.

Na placa está escrito:

JENKINS

O jovem pergunta:

— Jenkins compila COBOL?

Carlitos olha para ele.

Silêncio.

Jenkins é melhor compreendido como um orquestrador.

Imagine um mestre de cerimônias dizendo:

Pegue código
     ↓
Execute build
     ↓
Execute testes
     ↓
Faça análise
     ↓
Verifique qualidade
     ↓
Gere artefato
     ↓
Promova

Jenkins não precisa executar pessoalmente cada tarefa.

Ele coordena ferramentas, agentes, scripts e etapas.

Essa distinção é importantíssima.

O pipeline pode dizer:

STAGE 1 — CHECKOUT
STAGE 2 — BUILD
STAGE 3 — UNIT TEST
STAGE 4 — STATIC ANALYSIS
STAGE 5 — SECURITY
STAGE 6 — PACKAGE
STAGE 7 — DEPLOY DEV
STAGE 8 — INTEGRATION TEST
STAGE 9 — APPROVAL
STAGE 10 — PROD

De repente nossa fábrica ganhou uma linha de montagem automatizada.

Mas existe um perigo.

Automatizar um processo ruim apenas produz resultados ruins mais rapidamente.


🚧 CAPÍTULO 6 — CARLITOS PUXA A ALAVANCA VERMELHA

Imagine:

BUILD
  │
  ▼
TEST
  │
  ▼
SECURITY
  │
  ▼
DEPLOY

Agora imagine que os testes falharam.

O pipeline continua?

Não deveria.

Precisamos de portões:

SOURCE
  │
  ▼
COMPILE ───── ERROR ─────► STOP
  │
  ▼
TEST ──────── ERROR ─────► STOP
  │
  ▼
SECURITY ──── ERROR ─────► STOP
  │
  ▼
QUALITY ───── ERROR ─────► STOP
  │
  ▼
DEPLOY

São os famosos quality gates.

Aqui está uma ideia que todo iniciante deveria guardar:

Pipeline não existe simplesmente para colocar software em produção mais rapidamente. Pipeline também existe para impedir que software inadequado chegue rapidamente à produção.

A automação é simultaneamente acelerador e freio.


🧪 CAPÍTULO 7 — TESTAR NÃO É EXECUTAR E TORCER

Carlitos aperta um botão.

Luz verde.

O jovem comemora:

— Funcionou!

Carlitos entrega outro conjunto de dados.

Luz vermelha.

Esse é outro salto de maturidade.

Testar software não significa executar o cenário que sabemos que funciona.

Precisamos pensar em:

UNIT TEST
     │
INTEGRATION TEST
     │
SYSTEM TEST
     │
REGRESSION TEST
     │
ACCEPTANCE TEST

No mainframe isso pode envolver diferentes componentes.

Por exemplo:

COBOL
  │
  ├── lógica isolada
  │
  ├── Db2
  │
  ├── VSAM
  │
  ├── CICS
  │
  └── MQ

Testar um cálculo isolado é diferente de testar uma transação completa envolvendo banco, mensageria e outros sistemas.

Ferramentas de unit testing como ZUnit podem participar dessa estratégia.

Mas novamente:

ferramenta não é estratégia.

A ferramenta executa o teste.

O engenheiro precisa saber o que deve ser testado.


🛡️ CAPÍTULO 8 — DEVOPS ENCONTRA SEGURANÇA

Em algum momento alguém pergunta:

— E segurança?

Carlitos aponta para uma porta que deveria estar desde o começo da fábrica.

Esse é o espírito do DevSecOps.

Em vez de pensar:

DESENVOLVE
    ↓
TESTA
    ↓
ENTREGA
    ↓
SEGURANÇA OLHA

tentamos aproximar segurança de todo o ciclo:

PLAN
 ↓
CODE ← SECURITY
 ↓
BUILD ← SECURITY
 ↓
TEST ← SECURITY
 ↓
DEPLOY ← SECURITY
 ↓
OPERATE ← SECURITY

Podemos verificar código, dependências, configurações, credenciais, permissões e vulnerabilidades durante diferentes etapas.

No mainframe isso conversa muito bem com conceitos tradicionais de controle de acesso, segregação de funções, auditoria e RACF.

DevSecOps não deveria destruir os controles do mainframe.

Deveria ajudar a torná-los mais consistentes, verificáveis e automatizados.


🚚 CAPÍTULO 9 — DEV, SIT, UAT, PRE-PROD E PROD

Agora nossa peça precisa atravessar a fábrica.

DEV
 ↓
SIT
 ↓
UAT
 ↓
PRE-PROD
 ↓
PROD

Cada ambiente possui uma finalidade.

DEV permite desenvolvimento e testes iniciais.

SIT concentra testes de integração.

UAT permite validação de aceitação conforme o processo da organização.

PRE-PROD tenta aproximar determinadas características da produção.

Finalmente:

PROD.

Mas promover uma aplicação não significa simplesmente copiar um load module.

Pode haver:

LOADLIB
DBRM
PACKAGE
COPYBOOK
JCL
PROC
DB2 CHANGE
CICS RESOURCE
CONFIG
API

É por isso que deployment de aplicações corporativas precisa ser tratado seriamente.


💥 CAPÍTULO 10 — 03:17

Às 03:17, toca o telefone.

Eis nosso pequeno easter egg.

Produção apresentou problema.

Carlitos acorda.

O deploy realizado anteriormente parece estar relacionado.

Alguém grita:

— ROLLBACK!

Parece simples.

Volte a versão.

Mas espere.

A aplicação atualizou 480 mil registros Db2.

Publicou mensagens MQ.

Outro sistema consumiu algumas delas.

Um batch posterior processou parte dos dados.

Agora entendemos algo fundamental:

Rollback não é necessariamente Ctrl+Z.

Existem mudanças reversíveis facilmente.

Outras exigem planejamento.

Podemos ter:

APPLICATION ROLLBACK
DATABASE ROLLBACK
CONFIGURATION ROLLBACK
MESSAGE COMPENSATION
BUSINESS COMPENSATION

Esse conhecimento aproxima o aluno da realidade.


👀 CAPÍTULO 11 — PRODUÇÃO NÃO É O FINAL

A aplicação voltou.

Tudo verde.

Fim?

Não.

Começa outra etapa:

observabilidade.

Precisamos saber o que está acontecendo.

Três conceitos aparecem frequentemente:

METRICS
LOGS
TRACES

Podemos acrescentar eventos e alertas.

O mainframe já possui uma enorme tradição de telemetria e dados operacionais.

O aluno pode encontrar conceitos relacionados a:

SMF
RMF
JES
SDSF
CICS statistics
Db2 statistics
MQ metrics
application logs

e relacioná-los a ecossistemas modernos envolvendo dashboards, APM, Prometheus, Grafana e OpenTelemetry, dependendo da arquitetura adotada.

A grande pergunta deixa de ser:

O programa está rodando?

E passa a ser:

O sistema está se comportando corretamente?


📊 CAPÍTULO 12 — O PROGRAMA ESTÁ VERDE, MAS O CLIENTE ESTÁ VERMELHO

Imagine:

CPU ........ OK
MEMORY ..... OK
CICS ....... OK
DB2 ........ OK
MQ ......... OK

Tudo verde.

Mas pagamentos estão levando 18 segundos.

Tecnicamente diversos componentes podem estar disponíveis.

Do ponto de vista do cliente, porém, existe problema.

Observabilidade precisa aproximar infraestrutura e experiência do negócio.

Podemos acompanhar:

latência
throughput
taxa de erro
tempo de resposta
fila
CPU
I/O
locks
timeouts
transações

e, quando possível, indicadores de negócio.

Esse é um salto enorme para o programador iniciante.

Ele deixa de pensar exclusivamente no programa e começa a pensar no serviço.


🤖 CAPÍTULO 13 — CARLITOS ENCONTRA UM ROBÔ COM IA

Finalmente chega 2026.

A fábrica recebe uma nova máquina:

GENERATIVE AI

O gerente anuncia:

— Agora ela fará tudo!

Carlitos olha desconfiado.

Com razão.

IA pode auxiliar bastante no ciclo de desenvolvimento.

Pode ajudar a:

explicar código legado
documentar programas
sugerir testes
analisar código
resumir mudanças
investigar logs
produzir documentação
auxiliar code review

Imagine um COBOL antigo com milhares de linhas.

Uma ferramenta assistida por IA pode ajudar o desenvolvedor a compreender estruturas e fluxos.

Excelente.

Mas existe uma regra:

AI OUTPUT
    ↓
HUMAN REVIEW
    ↓
BUILD
    ↓
STATIC ANALYSIS
    ↓
TESTS
    ↓
SECURITY
    ↓
APPROVAL

Quanto mais fácil se torna produzir código, maior pode se tornar a necessidade de mecanismos confiáveis para verificar o código produzido.

Portanto existe uma ironia maravilhosa.

IA não elimina DevOps.

Ela pode tornar DevOps ainda mais importante.


🎓 CAPÍTULO 14 — DEVOPS NÃO DEVERIA SER UMA ILHA NA FORMAÇÃO

Aqui chegamos ao ponto central.

Imagine uma pós-graduação organizada assim:

COBOL
JCL
VSAM
DB2
CICS
IMS
MQ
DEVOPS

Parece razoável.

Mas existe um problema pedagógico.

O aluno pode interpretar DevOps como mais uma caixinha.

Eu faria diferente.

DevOps deveria atravessar várias disciplinas.

Aprendeu COBOL?

COBOL + Git + Test

Aprendeu Db2?

Db2 + migration + test + rollback

Aprendeu CICS?

CICS + deploy + observability

Aprendeu MQ?

MQ + integration test + monitoring

Aprendeu API?

API + OpenAPI + pipeline + security

Assim o aluno percebe que DevOps não está no final da estrada.

DevOps é parte da estrada.


🧑‍🏭 CAPÍTULO 15 — O CODING TANK DE CARLITOS

Eu terminaria essa formação com uma aplicação integradora.

Uma pequena aplicação financeira contendo:

CUSTOMER
ACCOUNT
TRANSACTION
PAYMENT

Tecnologias:

COBOL
JCL
CICS
DB2
VSAM
MQ
API

Então entregaria uma mudança:

Adicionar a origem da transação e disponibilizar a informação para um consumidor externo.

Primeiro o aluno pensa:

— Vou alterar um campo.

Depois descobre:

REQUISITO
     ↓
ANÁLISE DE IMPACTO
     ↓
COPYBOOK
     ↓
COBOL
     ↓
DB2
     ↓
CICS
     ↓
API
     ↓
GIT
     ↓
PULL REQUEST
     ↓
BUILD
     ↓
UNIT TEST
     ↓
INTEGRATION TEST
     ↓
QUALITY GATE
     ↓
SIT
     ↓
UAT
     ↓
APPROVAL
     ↓
PROD
     ↓
OBSERVABILITY

Agora COBOL deixou de ser uma disciplina.

Virou parte de um sistema.


🧠 CAPÍTULO 16 — A GRANDE DIFERENÇA ENTRE PROGRAMADOR E ENGENHEIRO

O objetivo não deveria ser abandonar a figura do programador COBOL.

Muito pelo contrário.

Precisamos valorizar profundamente esse conhecimento.

Mas podemos expandi-lo.

O profissional começa sabendo:

MOVE
IF
EVALUATE
PERFORM
CALL
READ
WRITE

Depois compreende:

JCL
VSAM
Db2
CICS
IMS
MQ

E finalmente enxerga:

              BUSINESS
                  │
                  ▼
             APPLICATION
                  │
      ┌───────────┼───────────┐
      ▼           ▼           ▼
    BATCH       ONLINE       API
      │           │           │
      └───────────┼───────────┘
                  ▼
                 Git
                  │
                  ▼
                CI/CD
                  │
                  ▼
               TESTING
                  │
                  ▼
               SECURITY
                  │
                  ▼
                PROD
                  │
                  ▼
           OBSERVABILITY

Esse profissional começa a se aproximar da ideia de um Mainframe Application Engineer.

Ele não precisa ser especialista em absolutamente tudo.

Isso seria impossível.

Mas precisa entender como as peças conversam.


🎩 EPÍLOGO — CARLITOS SAI DA ESTEIRA

No final de Tempos Modernos, Carlitos percebe que existe algo além daquela fábrica gigantesca.

Nossa metáfora termina de maneira semelhante.

O jovem programador entrou pensando:

Meu trabalho é escrever COBOL.

Depois descobriu:

Meu trabalho é alterar uma aplicação.

Mais tarde percebeu:

Meu trabalho é entregar uma mudança segura.

Finalmente compreendeu:

Meu trabalho faz parte da entrega contínua de um serviço de negócio.

Essa evolução muda completamente a maneira como ensinamos mainframe.

COBOL continua essencial.

JCL continua essencial.

CICS, IMS, Db2, VSAM e MQ continuam essenciais.

Mas precisamos construir as pontes:

LEGADO
   │
   ▼
Git
   │
   ▼
AUTOMAÇÃO
   │
   ▼
TESTES
   │
   ▼
SEGURANÇA
   │
   ▼
CI/CD
   │
   ▼
PRODUÇÃO
   │
   ▼
OBSERVABILIDADE

É por isso que DevOps precisa ganhar muito mais espaço na formação mainframe em 2026.

Não porque Git seja moderno.

Não porque Jenkins seja moderno.

Não porque pipeline seja moderno.

Mas porque o próprio trabalho mudou.

A empresa não precisa apenas de alguém capaz de apertar perfeitamente o parafuso que passa diante dele na esteira.

Ela precisa de profissionais capazes de olhar para as engrenagens e perguntar:

De onde veio esta peça?

Quem a modificou?

Como sabemos que funciona?

Como sabemos que é segura?

Quem autorizou sua passagem?

Como sabemos exatamente o que entrou em produção?

Como descobriremos que existe um problema?

E como voltaremos com segurança se algo der errado?

Carlitos pega sua bengala.

Olha uma última vez para a fábrica.

Em algum lugar, um pipeline fica vermelho.

O relógio marca discretamente:

03:17.

O jovem programador olha desesperado para ele:

— Carlitos! O que fazemos agora?

Ele aponta para o dashboard.

Depois para os logs.

Depois para o último commit.

Depois para o pipeline.

Finalmente aponta para o rollback documentado.

E sorri.

Porque finalmente o jovem entendeu.

Mainframe DevOps não é fazer o COBOL correr mais rápido pela esteira.

É construir uma esteira na qual saibamos o que entrou, quem colocou, por que entrou, como foi testado, como chegou até ali, como está funcionando e como retirá-lo caso alguma engrenagem comece a triturar Carlitos outra vez.

Um Café no Bellacosa Mainframe

Porque até em Tempos Modernos alguém precisa descobrir quem fez deploy direto em produção.

quinta-feira, 6 de junho de 2019

🥪 O Misto Quente da Sé – O Byte Crocante do Centro Velho

 


🥪 O Misto Quente da Sé – O Byte Crocante do Centro Velho
por El Jefe – Bellacosa Mainframe Midnight Lunch Edition

Há comidas que valem por uma lembrança. E há o misto quente de boteco da Sé, que vale por uma madrugada inteira, uma conversa perdida e meio maço de cigarros esquecidos no balcão.
Esse sanduíche simples — pão, queijo, presunto e chapa — é o prompt gastronômico da paulistaneidade.
É o “Hello, World!” da comida de boteco.

🏙️ Origem – Nascido sob o sino da Catedral
Lá pelos anos 1950, quando o coração da cidade ainda pulsava ao som dos bondes e das rotativas dos jornais, a Praça da Sé era um nó vital — onde passava todo tipo de alma: padre, camelô, estudante, repórter e malandro.
Entre o entra e sai das galerias e o sobe e desce das escadas do metrô, havia sempre um boteco — balcão de fórmica, chope trincando e chapa quente fumegando desde o amanhecer.
Ali nascia o misto quente da Sé, o lanche democrático, rápido e infalível.

🔥 A receita que o tempo não corrompeu
O segredo do misto não está nos ingredientes, mas na execução.
O pão francês (ou às vezes de forma, tostado até a borda estalar), o presunto suado de geladeira e o queijo derretendo preguiçoso.
Tudo esmagado na chapa com a espátula de ferro que já fritou três gerações de histórias.
O toque paulistano? Um pingo de manteiga demais e aquele guardanapo transparente que dissolve só de olhar.

🍻 O Misto como ritual urbano
Na Sé, o misto não é só um lanche — é uma pausa existencial.
Ele surge às 7h, quando o trabalhador chega com pressa, e renasce à 1h da manhã, quando o centro dorme com um olho aberto.
É o checkpoint da alma paulistana, onde se come em silêncio e observa a vida passar do outro lado do balcão.

📜 As Lendas da Chapa
Dizem que o primeiro misto lendário da Sé foi servido no antigo Bar do Ponto, logo em frente à catedral, por um português chamado Seu Álvaro, que atendia a todos por “doutor”.
Reza a lenda que cronistas, poetas e repórteres da redação do Diário Popular faziam fila na madrugada para comer o misto enquanto o jornal fechava.
Outros contam que um delegado e um ladrão já dividiram o mesmo misto ali, sem saber — tamanha era a neutralidade sagrada daquele balcão.

🧀 Adaptações e mutações urbanas
Com o tempo, o misto se espalhou. Virou “tostex” nas padarias gourmet, ganhou requeijão, peito de peru e até pão australiano.
Mas o verdadeiro misto quente da Sé continua lá — tostado até a alma, servido no balcão de azulejo, com café pingado em copo americano e jornal amarelado ao lado.

💬 Fofoquices do Centro Velho
Dizem que um dos botecos da Sé manteve a mesma chapa por mais de 40 anos, e que o dono jurava nunca tê-la lavado “pra não perder o tempero histórico”.
Há quem afirme que os primeiros ativistas sindicais dos anos 70 planejavam protestos enquanto devoravam mistos, e que, nos anos 90, os punks do centro trocavam fitas demo ali, no lanche mais subversivo da cidade.

💡 Dicas do Bellacosa
Se quiser sentir o sabor da São Paulo raiz:

  • entre 6h e 7h da manhã, quando o centro acorda e a Sé ainda boceja;

  • Peça um misto e um café pingado — combinação sagrada e imune à inflação;

  • Observe o balconista: ele é o sysadmin do boteco, mantém tudo rodando com precisão e óleo quente.

🖤 Reflexão do El Jefe Midnight Lunch
O misto quente da Sé é o mainframe do café da manhã paulistano — sólido, confiável, sempre online.
Não precisa de login, não trava, não depende da nuvem.
É feito de calor humano, manteiga e conversa de balcão.

Num mundo que serve cafés de 25 reais e pães de fermentação natural, o misto quente da Sé continua lá, humilde e eterno, lembrando a todos que às vezes o melhor reboot da vida cabe entre duas fatias de pão e uma chapa estalando.


🥪 Bellacosa Mainframe – preservando a alma tostada da São Paulo que acorda cedo e dorme tarde.


OS ANDARES DE SHOUJO SHUUMATSU RYOKOU E A JORNADA PELOS ÚLTIMOS LOGS DA CIVILIZAÇÃO

 

Bellacosa Mainframe e analise do mundo em Shoujo Shuumatsu Ryokou

☕🖥️🏙️ OPERADOR, A HUMANIDADE CONSTRUIU UM DATACENTER TÃO GRANDE QUE ESQUECEU COMO SAIR DELE

OS ANDARES DE SHOUJO SHUUMATSU RYOKOU E A JORNADA PELOS ÚLTIMOS LOGS DA CIVILIZAÇÃO

Quando assistimos Shoujo Shuumatsu Ryokou pela primeira vez, uma dúvida surge naturalmente.

Afinal:

O que são aqueles andares?

Por que Chito e Yuuri estão sempre subindo?

Por que a cidade parece não ter fim?

Por que existem elevadores gigantescos?

Por que tudo parece empilhado verticalmente?

A resposta simples é:

Não sabemos.

E essa ausência de resposta é justamente uma das maiores genialidades da obra.

Tsukumizu não construiu apenas um cenário.

Ele construiu uma metáfora.

Uma metáfora tão gigantesca que muitos espectadores passam o anime inteiro sem perceber.


Bellacosa Mainframe e os mapas teoricos de Shoujo Shuumatsu Ryokou

O Mundo Não É Um Mundo

Essa é a primeira coisa importante.

Muita gente imagina que Chito e Yuuri estão viajando por um planeta.

Mas a sensação transmitida pela obra é outra.

O cenário parece uma única megacidade infinita.

Uma estrutura vertical.

Camadas sobre camadas.

Andares sobre andares.

Plataformas sobre plataformas.

Como se a humanidade tivesse continuado construindo para cima durante séculos.

Talvez milênios.

Até perder completamente a escala.


A Cidade Como Um Mainframe

☕🖥️

Imagine um datacenter.

Não um datacenter comum.

Imagine todos os datacenters da humanidade fundidos em uma única estrutura.

Agora empilhe novos andares.

E novos andares.

E novos andares.

Durante centenas de anos.

O resultado seria algo próximo da cidade de Shoujo Shuumatsu Ryokou.

A sensação constante é que ninguém mais entende o sistema inteiro.

Existem apenas fragmentos.

Assim como em muitos sistemas legados.

Os criadores morreram.

Os arquitetos desapareceram.

A documentação foi perdida.

Restaram apenas usuários tentando sobreviver dentro de algo que ninguém mais compreende.


Os Andares Inferiores

Os níveis mais baixos possuem uma característica marcante.

São escuros.

Apertados.

Claustrofóbicos.

Cheios de ferrugem.

Cheios de máquinas.

Cheios de tubulações.

São quase subterrâneos.

Lembram os níveis físicos de uma infraestrutura.

É como caminhar dentro do hardware da civilização.

Ali não existe beleza.

Existe funcionamento.

Motores.

Engrenagens.

Energia.

Logística.

Distribuição.

A impressão é que estamos vendo o esqueleto do sistema.


A Camada da Sobrevivência

Nesses níveis inferiores encontramos algo interessante.

Quase tudo está relacionado às necessidades básicas.

Comida.

Água.

Combustível.

Abrigo.

É como a base da Pirâmide de Maslow.

Antes da arte.

Antes da filosofia.

Antes da religião.

Existe a sobrevivência.

Yuuri se sente extremamente confortável nesses ambientes.

Porque ela representa exatamente isso.

A parte da humanidade que sobrevive.


Os Andares Industriais

À medida que a jornada avança encontramos enormes instalações industriais.

Fábricas.

Máquinas automatizadas.

Linhas de produção.

Equipamentos gigantescos.

Mas existe algo estranho.

Quase ninguém sabe mais para que servem.

As máquinas continuam lá.

Mas seus operadores desapareceram.

É uma imagem assustadoramente semelhante a muitas ruínas industriais reais.

Quem visita antigas minas, siderúrgicas ou fábricas abandonadas frequentemente sente a mesma coisa.

Parece impossível que milhares de pessoas tenham vivido ali.

Mas viveram.

E desapareceram.


A Camada da Produção

☕🖥️

Se a cidade fosse um ambiente mainframe:

Os níveis inferiores seriam o hardware.

Os níveis industriais seriam os jobs batch.

Tudo funcionando.

Tudo processando.

Tudo produzindo.

Mas sem usuários.

Sem propósito.

Sem demanda.

Sem significado.

A produção continua.

Mas ninguém sabe por quê.


Os Andares Urbanos

Esses talvez sejam os mais melancólicos.

Ali vemos:

Escolas.

Residências.

Comércio.

Bibliotecas.

Praças.

Locais onde seres humanos viveram.

Esses andares representam a civilização em seu auge.

São os registros arqueológicos da vida cotidiana.

O curioso é que a destruição parece antiga.

Muito antiga.

A ponto de nem mesmo Chito e Yuuri conseguirem imaginar como aquelas pessoas viviam.


A Biblioteca

Um dos locais mais importantes da jornada.

Quando encontramos livros, encontramos memória.

Quando encontramos memória, encontramos humanidade.

Mas a biblioteca também revela uma verdade dolorosa.

Conhecimento não é imortal.

Ele depende de preservação.

Depende de transmissão.

Depende de leitores.

Sem leitores, uma biblioteca é apenas um depósito de papel.

Essa é uma das mensagens mais brutais do anime.


A Camada da Memória

Chito representa essa camada.

Ela registra.

Anota.

Desenha.

Fotografa.

Questiona.

Quer entender.

Ela é a última bibliotecária do mundo.

Mesmo sem perceber.


Os Andares Militares

Conforme avançamos percebemos algo desconfortável.

O mundo de Shoujo Shuumatsu Ryokou está cheio de vestígios militares.

Armas.

Munições.

Tanques.

Instalações defensivas.

Equipamentos bélicos.

Isso sugere que o colapso não foi natural.

Talvez tenha sido resultado de conflitos.

Talvez guerras sucessivas.

Talvez uma guerra tão grande que ninguém sobreviveu para registrar seu nome.


O Que Aconteceu Com a Humanidade?

A obra nunca responde claramente.

E talvez nunca devesse responder.

O mistério é parte da narrativa.

Mas os indícios sugerem:

  • guerra

  • esgotamento de recursos

  • declínio populacional

  • colapso tecnológico gradual

Não parece um único desastre.

Parece uma longa sequência de falhas acumuladas.


Os Elevadores Gigantes

Os elevadores são fascinantes.

Parecem absurdamente desproporcionais.

Como se tivessem sido construídos para movimentar cidades inteiras.

Isso sugere que a estrutura vertical cresceu tanto que a locomoção comum se tornou impossível.

Os elevadores são os antigos sistemas de transporte da civilização.

São os barramentos de comunicação do sistema.

Os links entre camadas.

As conexões entre módulos.


A Ascensão

Existe algo importante.

Chito e Yuuri estão constantemente subindo.

Fisicamente.

Mas também simbolicamente.

Cada novo nível representa uma camada diferente da experiência humana.

É quase uma peregrinação.

Uma arqueologia vertical.


Os Andares Superiores

Quando finalmente alcançamos níveis mais elevados, a atmosfera muda.

Existe mais luz.

Mais espaço.

Mais céu.

Menos peso.

Menos concreto.

Menos escuridão.

Parece que a cidade está ficando para trás.

Como se estivéssemos saindo das profundezas do sistema.


A Jornada Como Uma Pilha Tecnológica

☕🖥️

Sempre imaginei os andares como uma pilha de software.

Camadas inferiores:

Hardware.

Acima:

Sistema operacional.

Acima:

Middleware.

Acima:

Aplicações.

Acima:

Usuários.

Acima:

Propósito.

O anime faz exatamente o caminho inverso.

Ele começa nos restos da infraestrutura.

E sobe em direção às perguntas fundamentais.


O Último Andar

Talvez a maior sacada de Tsukumizu seja que o último andar nunca foi o objetivo real.

Porque o anime não é sobre chegar.

É sobre compreender.

Se Chito e Yuuri encontrassem uma placa dizendo:

"Fim da jornada."

Nada mudaria.

As perguntas continuariam existindo.


O Significado Filosófico da Subida

Em muitas tradições humanas, subir significa:

  • evolução

  • iluminação

  • transcendência

  • descoberta

Mas Shoujo Shuumatsu Ryokou subverte isso.

Quanto mais alto elas sobem, menos respostas encontram.

O topo não contém conhecimento.

O topo contém silêncio.


A Cidade Como a História Humana

Talvez a interpretação mais interessante seja esta.

Cada andar representa uma camada da própria civilização.

As fundações representam sobrevivência.

Os níveis industriais representam produção.

Os níveis urbanos representam sociedade.

As bibliotecas representam memória.

Os níveis militares representam conflito.

Os andares superiores representam reflexão.

E o topo representa a inevitabilidade do fim.


A Leitura Bellacosa Mainframe

☕🖥️🏙️

Depois de assistir várias vezes, cheguei a uma conclusão curiosa.

A cidade de Shoujo Shuumatsu Ryokou não parece uma cidade.

Ela parece um gigantesco dump da humanidade.

Um snapshot congelado de tudo que fomos.

Cada andar é um dataset.

Cada corredor é um log.

Cada biblioteca é um backup.

Cada fábrica é um job batch abandonado.

Cada elevador é um canal de comunicação entre gerações.

E Chito e Yuuri são as últimas operadoras do ambiente.

Não estão tentando restaurar o sistema.

Não estão tentando reiniciar a civilização.

Não estão procurando um administrador.

Estão apenas percorrendo os registros.

Lendo os logs.

Observando os artefatos.

Tentando entender quem foram os usuários que criaram aquele sistema colossal.

No fim das contas, os andares não são apenas lugares.

São camadas da própria condição humana.

E talvez por isso a jornada seja tão fascinante.

Porque ao subir aqueles níveis não estamos explorando uma cidade.

Estamos explorando a nós mesmos.

E a pergunta silenciosa que ecoa em cada elevador continua sendo a mesma:

"Se toda a humanidade fosse reduzida a ruínas, o que sobraria de nós nos andares superiores da memória?"


quarta-feira, 5 de junho de 2019

Yōjo Senki Gekijōban: O Filme Que Mostra o Que Acontece Quando o RCA é Ignorado Até Virar uma Catástrofe Continental

 

Bellacosa Mainframe e o filme Yojo Senki Gekijoban Tanya

☕💣🚀 PADAWAN, O INCIDENTE ESCALOU PARA GUERRA TOTAL!

Yōjo Senki Gekijōban: O Filme Que Mostra o Que Acontece Quando o RCA é Ignorado Até Virar uma Catástrofe Continental


🎬 Ficha Técnica

Título Original: 幼女戦記 劇場版 (Yōjo Senki Gekijōban)

Título Internacional: Saga of Tanya the Evil: The Movie

Baseado na Obra: Yōjo Senki

Autor Original: Carlo Zen

Ilustrações Originais: Shinobu Shinotsuki

Estúdio: NUT

Diretor: Yutaka Uemura

Roteiro: Kenta Ihara

Data de Lançamento: 8 de fevereiro de 2019 (Japão)

Duração: 101 minutos

Classificação Indicativa: 16+

Gêneros:

  • Isekai

  • Militar

  • Guerra

  • Fantasia

  • Drama

  • Estratégia

  • Política

  • Psicológico


🎯 Sinopse

Depois dos eventos da série de TV, Tanya acredita que finalmente poderá colher os frutos de suas vitórias militares.

Mas existe um problema.

Toda vez que Tanya acha que a produção estabilizou...

O universo abre um novo incidente crítico.

A guerra se expande.

Novos inimigos aparecem.

E surge alguém disposta a destruir Tanya a qualquer custo:

Mary Sioux

Uma jovem movida por vingança e fé absoluta.


☕ Bellacosa Mainframe Resume o Filme

Padawan...

Imagine que você acabou de resolver:

  • Um S0C7

  • Um Abend U4038

  • Um DB2 Deadlock

  • Uma falha de spool JES2

Então você registra:

INCIDENTE ENCERRADO

Cinco minutos depois surge:

PRIORIDADE 1 GLOBAL

Foi exatamente isso que aconteceu com Tanya.


🌎 O Contexto da História

O Império venceu várias campanhas.

Mas como acontece em muitos projetos corporativos...

As vitórias criam novos problemas.

A expansão militar gera:

  • Mais inimigos

  • Mais frentes de batalha

  • Mais custos

  • Mais desgaste político

O filme explora exatamente isso.


👧 Tanya Está Mudando?

Essa é uma das partes mais interessantes.

Na série, Tanya era vista principalmente como:

  • Fria

  • Calculista

  • Eficiente

No filme percebemos algo diferente.

Apesar de negar constantemente, Tanya começa a desenvolver:

  • Responsabilidade pelos subordinados

  • Lealdade

  • Liderança

Ela continua pragmática.

Mas não é mais apenas uma sobrevivente.

Está se tornando uma comandante.


👿 Mary Sioux

O Filme Pertence a Ela

Se Tanya representa:

Razão

Mary representa:

Emoção

Se Tanya representa:

Planejamento

Mary representa:

Impulso

Se Tanya representa:

Ciência

Mary representa:


⚔️ A Grande Guerra Filosófica

Muitos espectadores acreditam que o filme é sobre batalhas.

Na realidade:

As batalhas são apenas a superfície.

O verdadeiro conflito é:

Fé versus Racionalidade


🧠 Tanya e Mary São Dois Sistemas Operacionais

Tanya

Funciona como um ambiente IBM Z.

Tudo é:

  • Planejado

  • Testado

  • Monitorado

  • Controlado


Mary

Funciona como um usuário desesperado em produção.

Tudo é:

  • Emocional

  • Impulsivo

  • Imediato

Ela não quer resolver o problema.

Ela quer vingança.


🚀 O Que o Filme Tem de Diferente da Série?

Escala

A série parece uma operação regional.

O filme parece uma guerra mundial.


Qualidade Visual

O estúdio NUT elevou o nível.

As cenas aéreas estão entre as melhores já produzidas para um anime militar.


Ritmo

A série alterna:

  • Política

  • Estratégia

  • Treinamento

O filme praticamente não tira o pé do acelerador.


Profundidade Psicológica

Mary e Tanya funcionam como espelhos invertidos.

Uma mostra o que acontece quando a razão domina tudo.

A outra mostra o que acontece quando a emoção domina tudo.


💣 A Mensagem Oculta Mais Importante

Pouca gente percebe.

O filme inteiro fala sobre:

Consequências

Tanya acredita que:

Se uma decisão é lógica, ela é correta.

O filme questiona isso.

Porque uma decisão lógica ainda pode gerar:

  • Sofrimento

  • Ódio

  • Ressentimento

Mary é literalmente o resultado das decisões de Tanya.


🎭 A Crítica Política

O filme apresenta uma crítica extremamente sofisticada sobre:

Escalada de Conflitos

Nenhum país quer guerra total.

Mas decisões pequenas criam:

  • Reações

  • Contra-reações

  • Retaliações

Até que ninguém mais controla o processo.

É praticamente um incidente corporativo escalado sem governança.


🏢 O Filme Como Metáfora Empresarial

Carlo Zen trabalhou em ambiente corporativo japonês.

Isso aparece em toda a obra.

O Império funciona como uma empresa gigante.

Os generais funcionam como:

  • Diretores

  • Executivos

  • Gestores

As campanhas militares são projetos.

As tropas são recursos.

As perdas são custos operacionais.


☕ O Verdadeiro Vilão Não é Mary

Nem Tanya.

Nem os Aliados.

Nem o Império.

O verdadeiro vilão é:

A Escalada Automática dos Sistemas Humanos

Uma decisão leva a outra.

Uma vingança leva a outra.

Uma guerra leva a outra.

Ninguém consegue parar a máquina.


🎬 Qualidade Técnica

O estúdio NUT entregou uma produção impressionante.

Destaques:

Animação

Excelente.

Efeitos Visuais

Espetaculares.

Direção

Muito cinematográfica.

Trilha Sonora

Uma das melhores da franquia.

Batalhas Aéreas

Absolutamente memoráveis.


🌍 Impacto Cultural

O filme consolidou Yōjo Senki como um dos isekais mais respeitados da década.

Passou a ser referência para:

  • Isekais militares

  • Protagonistas anti-heróis

  • Narrativas estratégicas

  • Obras de guerra com profundidade filosófica

Também reforçou Tanya como uma das personagens femininas mais icônicas dos animes modernos.


🚨 Houve Censura?

Não houve censura significativa.

Mas a obra gerou discussões por:

  • Uniformes inspirados em exércitos europeus históricos.

  • Forte influência visual do período das guerras mundiais.

  • Temas religiosos.

  • Violência militar explícita.

Alguns críticos interpretaram a obra como militarista.

Na prática ocorre o oposto.

O filme mostra constantemente:

  • O custo humano da guerra.

  • O sofrimento dos envolvidos.

  • As consequências da vingança.


🔥 A Maior Lição Bellacosa Mainframe

Padawan...

O filme ensina algo que todo profissional de TI aprende cedo ou tarde.

Você pode resolver o incidente.

Mas se não resolver a causa raiz...

O problema volta.

Mary Sioux é o RCA que nunca foi executado.

Ela é a consequência acumulada de decisões anteriores.

Ela é o ticket encerrado sem análise.

Ela é o erro recorrente que retorna meses depois para derrubar a produção inteira.


🏆 Veredito Bellacosa Mainframe

Yōjo Senki Gekijōban não é apenas um filme de anime.

É uma aula sobre:

  • Consequências

  • Liderança

  • Estratégia

  • Escalada de conflitos

  • Gestão de riscos

  • Natureza humana

Se a série é um incidente crítico em produção...

O filme é o War Room reunido às 3 da manhã enquanto o ambiente inteiro está pegando fogo e todos descobrem que o problema era muito maior do que imaginavam.

Nota Bellacosa Mainframe: ⭐⭐⭐⭐⭐ (10/10)

Nível de Recomendação para Profissionais de Mainframe: EXTREMAMENTE ALTO ☕💣🚀

Porque, assim como em TI, a maior batalha raramente é contra o problema visível.

É contra as consequências invisíveis das decisões tomadas muito tempo atrás.


terça-feira, 4 de junho de 2019

☕💥 A Jornada do Padawan COBOL – Parte 6 Desvendando o Universo dos CALLs no Mainframe

 

Bellacosa Mainframe apresenta o CALL em Cobol Parte VI

☕💥 A Jornada do Padawan COBOL – Parte 6

Desvendando o Universo dos CALLs no Mainframe

CICS LINK, XCTL, COMMAREA, Channels, Containers, APIs REST, MQ, Java e os Segredos dos Arquitetos da Nova República IBM Z

Ou como descobrir que um programa COBOL escrito em 1987 pode responder uma API REST em menos tempo do que muita startup consegue carregar um framework

Por Vagner Bellacosa – Bellacosa Mainframe


O dia em que o Padawan descobre que CALL não é a única forma de chamar programas

Até agora aprendemos:

✅ CALL estático

✅ CALL dinâmico

✅ Binder

✅ RENT

✅ CEEDUMP

✅ LPA

✅ LE

Mas um dia o Padawan entra em um ambiente CICS.

Abre um programa.

E encontra isto:

EXEC CICS LINK
     PROGRAM('PGM0001')
     COMMAREA(WS-COMM)
END-EXEC

E pensa:

Ué...

Cadê o CALL?


O universo paralelo do CICS

Em Batch usamos:

CALL 'VALIDA'

No CICS temos:

LINK

XCTL

START

RETURN

LOAD

DELETE


LINK

É praticamente o CALL do CICS.

Exemplo

EXEC CICS LINK
     PROGRAM('CPFVAL')
     COMMAREA(WS-COMMAREA)
END-EXEC

Visualmente


CLIENTE01


↓

LINK


↓

CPFVAL


↓

RETORNA


↓

CLIENTE01



Programa chamador continua vivo.

Igual ao CALL.


Vantagens

Retorna controle

Compartilha contexto

Excelente modularização

Pode executar milhares de vezes


XCTL

Agora a coisa muda.


Exemplo

EXEC CICS XCTL
     PROGRAM('MENU0001')
END-EXEC

Visualmente


TELA01

↓

XCTL

↓

MENU0001



TELA01 morre




Não retorna.

Nunca.


É quase um:

exit();

Quando usar?

Troca definitiva.

Menu.

Workflow.

Navegação.


LINK versus XCTL

CaracterísticaLINKXCTL
RetornaSimNão
Consome stackSimNão
PerformanceBoaExcelente
WorkflowMédioIdeal

COMMAREA

A rainha do CICS.


Ela transporta dados.


Exemplo

01 WS-COMM.

05 WS-CPF PIC X(11).

05 WS-NOME PIC X(30).

05 WS-RC PIC 99.

LINK

EXEC CICS LINK
PROGRAM('CPFVAL')
COMMAREA(WS-COMM)
LENGTH(100)
END-EXEC

Subprograma

DFHCOMMAREA.

O limite

64 KB


Padawan feliz.

Arquiteto preocupado.


Channels e Containers

IBM resolveu.


Nasce o conceito:

CHANNEL

CONTAINER


Praticamente JSON.

Mas IBM.


Exemplo

EXEC CICS PUT CONTAINER
CONTAINER('CLIENTE')
CHANNEL('CANAL1')
FROM(WS-CLIENTE)
END-EXEC

Ler

EXEC CICS GET CONTAINER
CONTAINER('CLIENTE')
CHANNEL('CANAL1')
INTO(WS-CLIENTE)
END-EXEC

Vantagens

Gigabytes.

Múltiplos objetos.

Flexível.


MQ

Padawan evolui.

Conhece IBM MQ.


Exemplo

CALL 'MQPUT'

Visualmente



COBOL

↓

MQPUT


↓

QUEUE


↓

JAVA


↓

API




Assíncrono.

Bonito.

Elegante.

IBM aprova.


APIs REST

O grande sonho.


"Posso expor COBOL como API?"

Sim.


Muito.


zOS Connect

O mago moderno.


Ele converte

REST

em

COBOL


Visualmente



POST /cliente



↓

zOS Connect



↓

COBOL



↓

DB2



↓

JSON




Cliente pensa:

Microserviço.


Realidade:

COBOL 1989.


Exemplo

API

{
"id":123
}

COBOL

01 WS-ID PIC 9(9).

Java

Sim.

Java conversa.


JNI.

LE.

DLL.


Exemplo

CobolService.executar();

COBOL

CALL 'PROCESSA'

Python

Sim.

Também.


API REST.

MQ.

Kafka.


Tudo possível.


Metal C

Território avançado.


Muito usado.

IBM Z.

Baixa latência.


zIIP

Arquiteto sorri.

Financeiro também.


Pode descarregar CPU.


Exemplo

JSON parsing.

REST.

MQ.

DB2 DRDA.


SMF 110

O espião do CICS.


Captura:

Tempo

CPU

LINK

XCTL

DB2

MQ


APA

Application Performance Analyzer


Mostra:

Hotspots

CALLs

Loops

CPU


Strobe

Ferramenta lendária.


Veteranos adoram.


Exemplo real

Programa

1000 LINKs

Tempo

5 segundos

Após otimização

400 ms


Truques Bellacosa

Dica 1

LINK

Retorna.


Dica 2

XCTL

Não retorna.


Dica 3

Channels > COMMAREA

Projetos novos.


Dica 4

MQ desacopla.


Dica 5

REST não mata COBOL.

REST promove COBOL.


Easter Egg Mainframe

Muitos bancos possuem.

Programa.

APIGEN01

Dentro.

EXEC CICS LINK

PROGRAM('LEG1987')

END-EXEC

API moderna.

Swagger.

OAuth.

OpenAPI.

JWT.

Kubernetes.

No final...

Executa.

MOVE SALDO TO WS-SALDO

Escrito em 1987.

Funciona.

Processa bilhões.

Ninguém reclama.


Checklist Jedi da Integração

✅ Preferir LINK

✅ XCTL para troca definitiva

✅ Evitar COMMAREA grande

✅ Usar Channels

✅ Monitorar SMF110

✅ Medir CPU

✅ Utilizar MQ

✅ Explorar zOS Connect

✅ Aproveitar zIIP

✅ Testar latência

✅ Documentar APIs


A Filosofia Jedi do CALL – Parte 6

O Padawan iniciante acredita:

COBOL só conversa com COBOL.

O desenvolvedor intermediário pensa:

COBOL pode consumir APIs.

O Arquiteto IBM Z entende:

COBOL conversa com qualquer tecnologia capaz de trocar bytes, mensagens, estruturas, JSON, XML ou eventos.

E é exatamente por isso que alguns dos sistemas mais modernos do planeta possuem uma arquitetura semelhante a esta:

Mobile

↓

API Gateway

↓

REST

↓

zOS Connect

↓

CICS LINK

↓

COBOL

↓

DB2

↓

MQ

↓

Analytics

↓

IA

Enquanto o cliente enxerga apenas um botão escrito "Consultar Saldo", um pequeno exército de programas COBOL, escritos ao longo de quarenta anos, continua executando silenciosamente milhões de chamadas por segundo, provando mais uma vez que, no Mainframe, a Força nunca esteve na moda da tecnologia, mas na sua capacidade de durar décadas sem perder desempenho, segurança e confiabilidade.


Próxima aventura do Padawan COBOL – Parte 7

Assembler, BALR, BASSM, PC-Bit, SVC, LE Internals, SRBs, TCBs, Cross Memory Services, zIIP, HiperDispatch e os segredos obscuros dos Sysprogs Jedi do IBM Z.


segunda-feira, 3 de junho de 2019

🐒 Detetive Chimp e o Mistério do Banco de Dados que Jurava Ser Consistente

 

Bellacosa Mainframe apresenta DBMS

☕ Um Café no Bellacosa Mainframe

🐒 Detetive Chimp e o Mistério do Banco de Dados que Jurava Ser Consistente

DBMS, modelagem ER, SQL, normalização, índices, ACID, locks, concorrência, COMMIT, ROLLBACK e recovery investigados por um detetive que sabe que os dados sempre deixam pistas



Há uma coisa que aprendi observando sistemas durante muito tempo: quando um programa diz que “não fez nada”, comece procurando o log.

Quando um usuário afirma que “clicou apenas uma vez”, procure duas transações.

Quando uma aplicação garante que “ninguém alterou aquele registro”, procure um UPDATE.

E quando um banco de dados afirma que está tudo consistente...

...chame o Detetive Chimp.

Nosso investigador chega ao data center usando seu tradicional chapéu, examina o terminal 3270 e encontra a primeira pista:

03:17:00.001  TRANSACTION T1
03:17:00.003  TRANSACTION T2

Dois milissegundos.

Uma diferença ridiculamente pequena para um humano.

Uma eternidade para um computador.

Sobre a mesa há ainda cinco folhas intituladas DBMS Quick Revision Sheet. Elas falam de DBMS, ER Model, SQL, normalização, ACID, transações, concorrência e índices.

Chimp olha para aquilo.

— Interessante.

Acende seu cachimbo imaginário.

— Temos vários suspeitos.

E assim começa nosso caso.



🕵️ CAPÍTULO 1 — O cadáver era um banco de dados

Antes de investigar o crime precisamos entender a vítima.

DBMS significa:

Database Management System — Sistema Gerenciador de Banco de Dados.

Para o iniciante, é tentador pensar:

banco de dados = lugar onde guardamos informações.

Não está errado.

Mas é tão incompleto quanto dizer que um aeroporto é um lugar onde estacionamos aviões.

Um DBMS precisa armazenar, organizar, localizar, proteger, compartilhar, alterar e recuperar dados, além de arbitrar o que acontece quando diversos usuários tentam mexer neles simultaneamente.

Imagine:

              USUÁRIOS
                 │
                 ▼
          ┌─────────────┐
          │ APLICAÇÕES  │
          └──────┬──────┘
                 │
                 ▼
          ┌─────────────┐
          │    DBMS     │
          └──────┬──────┘
                 │
                 ▼
          ┌─────────────┐
          │    DADOS    │
          └─────────────┘

O DBMS fica entre as aplicações e os dados.

Mas Detetive Chimp imediatamente acrescentaria vários departamentos escondidos naquele retângulo:

                  DBMS
                    │
       ┌────────────┼─────────────┐
       │            │             │
     SQL        Segurança     Transações
       │            │             │
   Optimizer     Controle      Logging
       │                          │
   Access Path                  Recovery
       │
     Storage

É uma pequena cidade funcionando atrás de uma palavra de quatro letras.



🐒 CAPÍTULO 2 — O primeiro suspeito: SQL

Chimp encontra uma consulta:

SELECT NOME, LIMITE
FROM CLIENTE
WHERE CPF = :WS-CPF;

— Parece inocente.

O programador COBOL iniciante concorda.

Chimp continua:

— É exatamente por isso que devemos investigá-la.

SQL é uma linguagem declarativa.

Quando escrevemos:

SELECT NOME
FROM CLIENTE
WHERE CPF = '123';

estamos essencialmente dizendo:

“Db2, quero o nome do cliente cujo CPF é 123.”

Não estamos necessariamente dizendo:

“vá até determinado cilindro, encontre determinada página, leia o registro número 427...”

O DBMS precisa descobrir uma estratégia eficiente.

Simplificando:

SQL
 │
 ▼
PARSER
 │
 ▼
OPTIMIZER
 │
 ▼
ACCESS PATH
 │
 ├── INDEX?
 │
 ├── SCAN?
 │
 └── JOIN?
 │
 ▼
DADOS

Aqui aparece um personagem que aquelas folhas introdutórias mal conseguem explorar: o optimizer.

Ele analisa possibilidades para executar a consulta.

Portanto, duas consultas SQL que produzem resultados semelhantes podem apresentar comportamentos de performance radicalmente diferentes.

Saber escrever SQL é uma habilidade.

Entender como o banco chega aos dados é outra.



🧩 CAPÍTULO 3 — Antes do banco havia o mundo real

Chimp desenha três objetos no quadro:

CLIENTE
CONTA
TRANSAÇÃO

Antes de existir tabela, índice ou SELECT, alguém precisou transformar uma realidade de negócio em um modelo de dados.

É aí que entra o ER Model — Entity Relationship Model.

Temos três conceitos fundamentais:

ENTITY
ATTRIBUTE
RELATIONSHIP

Uma entidade pode ser:

CLIENTE

Seus atributos:

ID_CLIENTE
CPF
NOME
DATA_NASCIMENTO

Outra entidade:

CONTA

Com:

ID_CONTA
AGENCIA
SALDO

Existe então uma relação:

CLIENTE ───── POSSUI ───── CONTA

Um cliente pode possuir várias contas.

Podemos representar:

CLIENTE 1 ───────── N CONTA

Chimp bate o cachimbo no quadro.

— Eis uma pista importante: muitos crimes de dados começam antes de existir código.

Um modelo ruim acaba contaminando tabelas, programas, APIs, relatórios e integrações.



🔑 CAPÍTULO 4 — O caso das chaves desaparecidas

A apostila apresenta:

Super Key, Candidate Key, Primary Key, Alternate Key e Foreign Key.

Parece matéria de prova.

Não é.

Imagine:

CLIENTE
-----------------------
ID_CLIENTE
CPF
NOME

Escolhemos:

ID_CLIENTE → PRIMARY KEY

Outra tabela:

CONTA
-----------------------
ID_CONTA
ID_CLIENTE
SALDO

Aqui:

ID_CONTA   → PRIMARY KEY
ID_CLIENTE → FOREIGN KEY

Agora existe uma relação:

CLIENTE
 ID_CLIENTE
     │
     │
     ▼
CONTA
 ID_CLIENTE

A chave estrangeira representa uma relação entre os dados.

Sem integridade adequada poderíamos encontrar:

CONTA 999999
CLIENTE 777777

mas descobrir que:

CLIENTE 777777

não existe.

Chimp imediatamente pergunta:

— Então de quem é essa conta?

Silêncio no data center.

Temos um órfão de dados.


🧹 CAPÍTULO 5 — Normalização: arrumando a cena do crime

Agora encontramos uma tabela criada por alguém numa sexta-feira às 17:58:

PEDIDO
---------------------------------
CLIENTE
ENDERECO
PRODUTO1
PRECO1
PRODUTO2
PRECO2
PRODUTO3
PRECO3

Chimp olha horrorizado.

— Quem fez isso?

Ninguém responde.

Naturalmente.

A normalização procura organizar estruturas de dados reduzindo redundâncias e dependências problemáticas.

A apostila percorre:

1NF
 ↓
2NF
 ↓
3NF
 ↓
BCNF

Uma modelagem mais organizada poderia resultar em:

CLIENTE
   │
   │
   ▼
PEDIDO
   │
   │
   ▼
ITEM_PEDIDO
   │
   │
   ▼
PRODUTO

Isso reduz problemas clássicos de:

INSERT
UPDATE
DELETE

Imagine armazenarmos o endereço do cliente repetidamente em 30 mil pedidos.

Ele muda de endereço.

Quantas ocorrências precisam ser alteradas?

Esse tipo de redundância é terreno fértil para inconsistência.

Mas Chimp deixa uma observação importante no relatório:

Normalização é ferramenta de engenharia, não religião.

Projetos reais também consideram performance, padrões de acesso, volume, frequência de atualização e características específicas do workload.


🏦 CAPÍTULO 6 — Finalmente encontramos o dinheiro

Agora o caso fica sério.

Temos:

CONTA A = R$ 1.000
CONTA B = R$   500

Queremos transferir:

R$ 100

Conceitualmente:

A = A - 100
B = B + 100

Depois:

A = 900
B = 600

Perfeito.

Um programa COBOL poderia executar uma sequência equivalente a:

LER A
SUBTRAIR 100
UPDATE A

LER B
SOMAR 100
UPDATE B

Mas Chimp coloca uma banana exatamente entre os dois updates.

UPDATE A
   │
   ▼
A = 900

💥 ABEND S0C7

UPDATE B
   │
   X

Agora temos:

A = 900
B = 500

Os R$100 desapareceram.

Não foram transferidos.

Foram sacrificados aos deuses do processamento de dados.

É aqui que surge um dos conceitos mais importantes de toda a apostila:

TRANSACTION


🔄 CAPÍTULO 7 — A transação é o verdadeiro suspeito

Uma transação representa uma unidade lógica de trabalho.

Queremos que:

DEBITAR A
CREDITAR B

sejam tratados como parte de uma operação coerente.

Conceitualmente:

┌──── UNIT OF WORK ─────┐
│                       │
│ UPDATE A              │
│ UPDATE B              │
│                       │
│ COMMIT                │
│                       │
└───────────────────────┘

Se tudo funcionar:

COMMIT

Se alguma coisa der errado antes da confirmação apropriada:

ROLLBACK

Chimp sorri.

— Agora encontramos o mecanismo que impede o dinheiro de desaparecer.

Mas ainda não resolvemos o crime.

Porque existem outros usuários.


🧪 CAPÍTULO 8 — ACID entra para interrogatório

Na parede aparecem quatro letras:

A C I D

Não é uma banda psicodélica de mainframe.

São propriedades fundamentais das transações.

A — Atomicity

Tudo ou nada.

A - 100
B + 100

Não queremos:

A - 100 ✓
B + 100 ✗

A operação lógica deve ser tratada atomicamente.


C — Consistency

Antes:

A = 1000
B = 500

TOTAL = 1500

Depois:

A = 900
B = 600

TOTAL = 1500

O sistema deve preservar as regras de consistência definidas para os dados.

Mas cuidado: consistência não significa que o DBMS magicamente conhece todas as regras do negócio.

Se uma regra diz:

clientes menores de determinada idade não podem contratar determinado produto,

alguém precisa expressar e implementar essa regra adequadamente.

O banco não consulta uma bola de cristal.


I — Isolation

Chimp finalmente encontra a pista decisiva.

Temos limite disponível:

R$ 1.000

Duas compras chegam:

T1 → R$700
T2 → R$600

Quase simultaneamente.

T1 pergunta:

LIMITE?

Resposta:

1000

T2 pergunta:

LIMITE?

Resposta:

1000

T1 pensa:

700 < 1000

APROVADO

T2 pensa:

600 < 1000

APROVADO

Resultado:

700 + 600 = 1300

Oops.

É por isso que concorrência não é detalhe acadêmico.


D — Durability

Depois que uma transação é confirmada, esperamos que sua alteração sobreviva a falhas previstas pelo mecanismo transacional.

Não queremos:

COMMIT

e cinco minutos depois:

“Desculpe, perdemos sua transferência.”

Logging e recovery existem justamente porque computadores, discos, processos e aplicações podem falhar.


🔐 CAPÍTULO 9 — As impressões digitais chamadas LOCKS

A apostila apresenta dois conceitos:

S LOCK
X LOCK

Simplificando didaticamente:

Shared Lock permite compartilhamento compatível para determinados acessos de leitura.

Exclusive Lock protege recursos que estão sendo modificados contra acessos incompatíveis.

Chimp desenha:

TRANSACTION A
     │
     ▼
   RESOURCE
     ▲
     │
TRANSACTION B

Agora temos concorrência.

Um sistema empresarial não pode simplesmente dizer:

“Só uma pessoa pode usar o banco por vez.”

Imagine um banco com milhões de clientes operando assim.

CLIENTE 1 → terminou?
CLIENTE 2 → pode entrar.
CLIENTE 3 → espere.
CLIENTE 4 → senha 493827.

😂

Precisamos permitir enorme paralelismo enquanto preservamos integridade.

Esse é um dos grandes desafios do DBMS.


💀 CAPÍTULO 10 — Deadlock: encontramos dois cadáveres

Chimp encontra:

T1 possui LOCK A
T2 possui LOCK B

Depois:

T1 precisa de B
T2 precisa de A

Visualmente:

       espera
   ┌──────────────►
   │
  T1              T2
   ▲               │
   ◄───────────────┘
       espera

Parabéns.

Criamos um deadlock.

T1 espera T2.

T2 espera T1.

Nenhum resolve voluntariamente a situação.

O DBMS precisa detectar e solucionar esse tipo de conflito, normalmente escolhendo uma transação como vítima para quebrar o ciclo.

E aí o programador descobre uma lição maravilhosa:

ROLLBACK não significa necessariamente que o DBMS está quebrado.

Às vezes o rollback é justamente o mecanismo impedindo que o sistema permaneça preso.


🚦 CAPÍTULO 11 — Isolation Level: quanta privacidade você quer?

Aqui começamos a sair definitivamente da apostila de revisão e entrar na engenharia.

No Db2 encontramos níveis como:

UR
CS
RS
RR

Conceitualmente podemos imaginar um controle:

MAIS ISOLAMENTO
      ▲
      │
      │ proteção
      │
      │
      │ concorrência
      ▼
MENOS ISOLAMENTO

Isso não significa simplesmente:

“mais isolamento é melhor.”

Um sistema transacional gigantesco precisa equilibrar:

integridade
concorrência
latência
throughput
CPU
locks
tempo de resposta

O programador que escolhe mecanismos de isolamento sem entender o workload está fazendo engenharia com os olhos vendados.


💾 CAPÍTULO 12 — SAVEPOINT, a máquina do tempo

Chimp encontra:

SAVEPOINT SP1

— Finalmente uma testemunha inteligente.

Imagine:

PASSO A
PASSO B
PASSO C

SAVEPOINT SP1

PASSO D
PASSO E
PASSO F

O passo F falha.

Dependendo da situação e do desenho da aplicação, podemos voltar a um savepoint apropriado:

A ✓
B ✓
C ✓

--- SP1 ---

D ↶
E ↶
F ↶

É quase um:

SAVE GAME

do processamento transacional.

Só não diga isso durante entrevista para DBA.

Ou diga.

Talvez ele goste.


🔎 CAPÍTULO 13 — O índice não matou ninguém... provavelmente

Chimp encontra uma tabela gigantesca:

CLIENTE
100.000.000 ROWS

Consulta:

SELECT NOME
FROM CLIENTE
WHERE CPF = :CPF;

Como encontramos aquele CPF?

Sem uma estrutura de acesso adequada, poderíamos ter um trabalho enorme de procura.

Com um índice apropriado:

CPF
 │
 ▼
INDEX
 │
 ▼
LOCALIZAÇÃO
 │
 ▼
DADO

Muito melhor.

Então surge a ideia perigosa:

“Vamos criar índice para tudo!”

Chimp imediatamente fecha o notebook.

— Não.

Índices também possuem custo.

Precisam ser armazenados e mantidos quando dados são inseridos, removidos ou alterados.

Temos novamente um compromisso:

MAIS ÍNDICES
     │
     ├── potencial de melhores acessos
     │
     └── maior custo de manutenção/espaço

Banco de dados é uma sucessão de decisões de engenharia.


🧠 CAPÍTULO 14 — O verdadeiro cérebro estava escondido: Optimizer

Finalmente encontramos o personagem que faltava nas folhas.

O programador escreve:

SELECT ...
FROM CLIENTE C
JOIN CONTA A
  ON C.ID_CLIENTE = A.ID_CLIENTE
WHERE C.CPF = :CPF;

O DBMS precisa descobrir como executar aquilo.

Conceitualmente:

SQL
 │
 ▼
OPTIMIZER
 │
 ├── estatísticas
 ├── cardinalidade
 ├── índices
 ├── predicates
 ├── joins
 └── estimativas
 │
 ▼
ACCESS PATH

É por isso que:

SQL correto

não implica necessariamente:

SQL eficiente

Ele pode retornar exatamente os dados solicitados e ainda assim fazer um trabalho absurdamente maior do que o necessário.

Chimp escreve no relatório:

O suspeito tinha álibi funcional, mas não tinha álibi de performance.


🏭 CAPÍTULO 15 — Agora tragam CICS, COBOL e Db2

Chegamos ao Bellacosa Mainframe.

Coloque tudo junto:

                    CLIENTE
                       │
                       ▼
                ┌────────────┐
                │    CICS    │
                └─────┬──────┘
                      │
                      ▼
                ┌────────────┐
                │   COBOL    │
                └─────┬──────┘
                      │
                     SQL
                      │
                      ▼
                ┌────────────┐
                │Db2 for z/OS│
                └─────┬──────┘
                      │
            ┌─────────┴─────────┐
            ▼                   ▼
          INDEX                DATA

Agora multiplique por milhares de transações.

T000001
T000002
T000003
...
T999999

Todas querem:

READ
INSERT
UPDATE
DELETE
COMMIT

O problema deixa de ser:

“Como salvo um cliente?”

Passa a ser:

Como milhares de operações podem alterar um universo compartilhado simultaneamente sem destruir sua coerência?

Essa pergunta explica boa parte da existência dos mecanismos transacionais.


💳 CAPÍTULO 16 — Chimp investiga uma compra de cartão

Compra:

R$100

A mensagem chega ao sistema.

             COMPRA
                │
                ▼
              CICS
                │
                ▼
              COBOL
                │
       ┌────────┼─────────┐
       ▼        ▼         ▼
    CLIENTE   CARTÃO    PRODUTO
       │        │         │
       └────────┼─────────┘
                ▼
              LIMITE
                │
                ▼
             FRAUDE?
                │
                ▼
          AUTORIZAÇÃO
                │
         ┌──────┴──────┐
         ▼             ▼
      APPROVE        DECLINE

Parece simples.

Agora chegam duas compras:

03:17:00.001 → R$700
03:17:00.003 → R$600

Limite:

R$1000

Eis o easter egg.

03:17.

Chimp olha para o relógio.

— Sempre é 03:17 quando algo interessante acontece no mainframe.

Dois milissegundos separam um fluxo trivial de um excelente caso de concorrência.

Agora fazem sentido:

ACID
LOCK
ISOLATION
COMMIT
ROLLBACK
LOG
RECOVERY

Cada palavra da apostila ganhou consequências financeiras.


🧯 CAPÍTULO 17 — “Mas funcionou no teste!”

Chimp fecha os olhos.

Essa é uma das frases favoritas do culpado.

No teste:

1 usuário
1 transação
100 registros

Produção:

10.000 usuários
milhares de transações
milhões/bilhões de registros
concorrência
timeout
deadlock
falhas
rede
batch
online
APIs

O programa:

SELECT
UPDATE
COMMIT

funciona maravilhosamente sozinho.

Coloque centenas de instâncias disputando os mesmos recursos e você descobrirá características que nunca apareceram no teste simplificado.

É por isso que engenharia transacional exige pensar não apenas:

MEU PROGRAMA

mas:

              SISTEMA
                 │
     ┌───────────┼───────────┐
     ▼           ▼           ▼
  ONLINE       BATCH        APIs
     │           │           │
     └───────────┼───────────┘
                 ▼
                DB2

Seu programa nunca está realmente sozinho.


🐒 CAPÍTULO 18 — Detetive Chimp apresenta os suspeitos

Depois de horas investigando, Chimp monta o quadro:

              O CASO DBMS
                   │
       ┌───────────┼────────────┐
       ▼           ▼            ▼
    MODELAGEM     SQL       TRANSAÇÃO
       │           │            │
       ▼           ▼            ▼
      ER       OPTIMIZER       ACID
       │           │            │
       ▼           ▼            ▼
     KEYS       INDEXES      LOCKING
       │                        │
       ▼                        ▼
 NORMALIZATION              ISOLATION
                                │
                       ┌────────┴────────┐
                       ▼                 ▼
                    COMMIT           ROLLBACK
                       │                 │
                       └────────┬────────┘
                                ▼
                              LOG
                                │
                                ▼
                            RECOVERY

Nenhum deles isoladamente matou o banco.

O problema estava na interação entre todos eles.


🎓 CAPÍTULO 19 — A trilha para o programador COBOL iniciante

Se eu transformasse aquelas cinco folhas em uma trilha de estudo, seguiria esta ordem:

  1. Entenda DBMS e a diferença entre dado, banco e gerenciador. Depois modele entidades, atributos, relacionamentos, cardinalidades e chaves. Aprenda SQL básico — SELECT, INSERT, UPDATE, DELETE e JOIN — e só então entre em normalização e integridade referencial.

  2. Em seguida estude transações profundamente: Unit of Work, COMMIT, ROLLBACK, SAVEPOINT e ACID. Depois avance para concorrência, locks, isolamento, timeout e deadlock. Finalmente estude índices, optimizer, access paths, logging, backup/recovery e performance.

  3. Só então faça o exercício realmente divertido: implemente mentalmente tudo isso em COBOL + CICS + Db2, primeiro com um usuário e depois imaginando 10.000 usuários concorrentes.

Nesse ponto o estudante deixa de decorar definições e começa a pensar como engenheiro.


☕ EPÍLOGO — O banco nunca mentiu

O sol começa a nascer sobre o data center.

Chimp termina seu café.

O jovem programador pergunta:

— Então quem era o assassino?

Chimp coloca o chapéu.

— Ninguém.

— Como assim?

— O banco fez exatamente aquilo que mandaram fazer.

Silêncio.

Essa talvez seja uma das maiores lições de sistemas.

Computadores são extraordinariamente obedientes.

Se você modelar mal, eles executarão rapidamente um modelo ruim.

Se escrever uma transação incorreta, executarão corretamente a transação incorreta.

Se criar SQL ineficiente, poderão produzir exatamente o resultado esperado — lentamente.

Se esquecer concorrência, o sistema poderá funcionar perfeitamente durante meses...

...até duas transações chegarem juntas.

03:17:00.001
03:17:00.003

E então você descobrirá que dois milissegundos podem revelar um erro arquitetural escondido durante anos.

Chimp deixa sobre a mesa as cinco folhas de revisão.

No começo da investigação elas diziam:

DBMS
ER MODEL
NORMALIZATION
SQL
ACID
TRANSACTION
INDEX

Agora significam:

REALIDADE
   ↓
MODELAGEM
   ↓
DADOS
   ↓
TRANSAÇÕES
   ↓
CONCORRÊNCIA
   ↓
INTEGRIDADE
   ↓
RECUPERAÇÃO
   ↓
PERFORMANCE
   ↓
NEGÓCIO

É essa a diferença entre decorar banco de dados para uma prova e compreender por que bancos, seguradoras, companhias aéreas, governos e sistemas de cartões investem tanto em engenharia transacional.

Aquelas quatro letras — ACID — parecem matéria de apostila.

Um COMMIT parece apenas um comando.

Um LOCK parece detalhe técnico.

Um índice parece somente uma maneira de procurar dados mais rapidamente.

Até o dia em que você percebe que do outro lado daqueles registros existem dinheiro, passagens, pedidos, pagamentos, estoques, contratos e pessoas.

Detetive Chimp abre a porta.

Antes de sair, olha novamente para o terminal.

READY

Caso encerrado?

Claro que não.

Em mainframe sempre existe outro JOB esperando na fila.

E provavelmente existe algum programador jurando:

“Mas eu não alterei nada...”

Chimp sorri.

Procure o log. 🐒🔎☕



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