☕ Um Café no Bellacosa Mainframe
A Volta ao Mainframe em 80 Dias — O Road Map de Phileas Fogg para se Tornar um Mainframeiro
🎩🦖 80 dias, oito grandes escalas, COBOL, JCL, z/OS, TSO/ISPF, VSAM, Db2, CICS, RACF, Git, APIs e uma aposta aparentemente impossível: sair de Londres como turista e voltar como programador mainframe
Londres.
Reform Club.
Um cavalheiro inglês consulta seu relógio.
Phileas Fogg.
Metódico.
Pontual.
Imperturbável.
Um homem capaz de tomar café às 08:23 e provavelmente considerar uma execução às 08:24 um incidente de produção.
Sobre a mesa está o Daily Telegraph.
Mas existe uma notícia estranha:
“É possível aprender mainframe em apenas 80 dias?”
Os cavalheiros riem.
Um deles comenta:
— Mainframe? Meu caro Fogg, seriam necessários anos!
Outro acrescenta:
— COBOL possui DIVISIONs!
Um terceiro, claramente traumatizado:
— E existe JCL!
Fogg fecha o jornal.
Consulta o relógio.
— Oitenta dias.
Silêncio.
— Impossível!
Fogg responde:
“Então aposto vinte mil libras.”
Nesse exato momento, seu criado Passepartout percebe que provavelmente escolheu o pior dia da história para começar no emprego.
Pegam as malas.
Destino:
IBM Z.
E assim começa nossa...
🌍 VOLTA AO MAINFRAME EM 80 DIAS
🗺️ O mapa da expedição
Nossa viagem terá oito grandes escalas:
LONDRES
↓
z/OS + TSO/ISPF
↓
SUEZ
↓
JCL + JES2 + SDSF
↓
BOMBAIM
↓
COBOL
↓
CALCUTÁ
↓
VSAM + DATASETS
↓
HONG KONG
↓
Db2
↓
YOKOHAMA
↓
CICS
↓
SAN FRANCISCO
↓
RACF + USS + Zowe + Git + APIs
↓
NOVA YORK
↓
INTEGRAÇÃO + DEVOPS + TESTES
↓
LONDRES80 dias.
Não para transformar alguém em especialista.
Isso seria picaretagem.
Mas para fazer algo perfeitamente possível:
construir um mapa mental sólido do ecossistema mainframe e conseguir desenvolver, executar, investigar e integrar uma aplicação simples.
Temos uma aposta.
O relógio começou.
🎩 DIAS 1–10 — LONDRES
Primeira escala: entender o monstro
Antes de programar mainframe precisamos cometer um ato revolucionário:
entender o que é um mainframe.
Não é:
“um computador velho.”
Também não é:
“um PC gigante.”
E definitivamente não é aquele monitor verde que Hollywood coloca em filmes quando alguém precisa invadir o Pentágono.
Precisamos compreender conceitos básicos:
IBM Z
↓
z/OS
↓
LPAR
↓
CPU / CP / zIIP
↓
MEMÓRIA
↓
STORAGE
↓
I/OE principalmente:
por que essas máquinas existem?
Bancos.
Seguradoras.
Governos.
Companhias aéreas.
Cartões.
Grandes varejistas.
Ambientes que precisam processar volumes enormes com confiabilidade e previsibilidade.
🏛️ Dia 1 — Arquitetura
Aprenda:
IBM Z
LPAR
PR/SM
z/OS
JES
USS
STORAGENão tente decorar tudo.
Objetivo:
saber desenhar aproximadamente onde sua aplicação vive.
🖥️ Dias 2–4 — TSO e ISPF
Phileas Fogg entra pela primeira vez no terminal.
Tela:
---------------- ISPF PRIMARY OPTION MENU ----------------
0 Settings
1 View
2 Edit
3 Utilities
4 Foreground
5 Batch
6 CommandPassepartout pergunta:
— Monsieur, onde está o mouse?
Fogg:
— Não precisamos dele.
Passepartout começa a reconsiderar suas escolhas profissionais.
Aprenda:
TSO
ISPF
PF KEYS
COMMAND LINE
MEMBERS
LIBRARIES
EDIT
VIEW
BROWSEE comandos fundamentais do editor:
I
D
R
C
M
A
B
CC
MMAqui começa a alfabetização mainframe.
📦 Dias 5–7 — Datasets
Antes de COBOL:
datasets.
Entenda:
PS
PDS
PDSE
MEMBER
RECFM
LRECL
BLKSIZE
DSORG
DISPVocê precisa conseguir olhar:
BELLACOSA.COBOL.SOURCEe compreender que isso não é simplesmente uma “pasta”.
🧭 Dias 8–10 — Navegação
Pratique.
Crie datasets.
Crie members.
Edite.
Copie.
Renomeie.
Delete.
Liste.
Phileas Fogg olha para o relógio.
DAY 10
STATUS: ON SCHEDULEPassepartout comemora.
Erro.
Ainda faltam 70 dias.
🚂 DIAS 11–20 — SUEZ
JCL: comprando a passagem do JOB
Agora precisamos fazer alguma coisa executar.
Entramos no território do:
JCL — Job Control Language
JCL não é exatamente uma linguagem de programação convencional.
É mais parecido com preencher documentos de imigração para convencer o z/OS a deixar seu programa trabalhar.
🎫 JOB
//FOGG80 JOB (ACCT),'AROUND WORLD',
// CLASS=A,
// MSGCLASS=XNosso passaporte.
🚂 EXEC
//STEP01 EXEC PGM=FOGGCOBNosso trem.
🧳 DD
//INPUT DD DSN=FOGG.WORLD.INPUT,DISP=SHRNossa bagagem.
Agora aprenda:
JOB
EXEC
DD
DSN
DISP
SPACE
DCB
SYSOUT
STEPLIB
SYSPRINT
SYSIN🚦 JES2
O JOB é submetido.
SUBMITE desaparece.
Passepartout entra em pânico.
— Perdemos o programa!
Não.
Ele entrou no maravilhoso sistema ferroviário chamado:
JES2
Precisamos aprender:
INPUT
EXECUTION
OUTPUT
PURGEE então:
SDSF
Aqui você aprende a investigar:
JOB STATUS
RC
SYSOUT
JESMSGLG
JESJCL
JESYSMSGPrimeira grande vitória:
MAXCC=0000Fogg:
— Excelente.
Bellacosa:
— Calma.
Porque todo mainframeiro precisa aprender cedo:
MAXCC=0 significa que o JOB terminou; não significa que você fez a coisa certa.
🐘 DIAS 21–35 — BOMBAIM
COBOL: finalmente encontramos Grace Hopper no caminho
Chegamos à grande escala.
Quinze dias.
Agora COBOL.
Primeiro compreenda sua anatomia:
IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
PROCEDURE DIVISIONNão comece decorando comandos.
Entenda a arquitetura.
🪪 IDENTIFICATION DIVISION
IDENTIFICATION DIVISION.
PROGRAM-ID. FOGG80.Quem sou eu?
🌍 ENVIRONMENT DIVISION
Onde vivo?
Com quais recursos trabalho?
📦 DATA DIVISION
Aqui está uma das grandes diferenças culturais do COBOL.
Dados são cidadãos de primeira classe.
Aprenda:
PIC X
PIC 9
PIC S9
V
COMP
COMP-3
88 LEVEL
REDEFINES
OCCURS
COPYBOOKExemplo:
01 WS-PASSENGER.
05 WS-NAME PIC X(30).
05 WS-AGE PIC 9(03).
05 WS-BALANCE PIC S9(9)V99 COMP-3.
05 WS-STATUS PIC X.
88 ACTIVE VALUE 'A'.Não pule essa parte.
Quem não entende DATA DIVISION acaba passando metade da carreira perguntando por que tomou S0C7.
⚙️ PROCEDURE DIVISION
Agora fazemos coisas.
Aprenda:
MOVE
IF
EVALUATE
PERFORM
COMPUTE
ADD
SUBTRACT
MULTIPLY
DIVIDE
DISPLAY
STRING
UNSTRING
INSPECTDepois:
OPEN
READ
WRITE
REWRITE
CLOSE🔄 O coração do batch
Você precisa conseguir escrever sozinho algo parecido com:
OPEN
↓
READ
↓
VALIDATE
↓
PROCESS
↓
WRITE
↓
READ AGAIN
↓
CLOSEIsso parece simples.
É simples.
E variações dessa arquitetura movimentaram quantidades absurdas de negócios durante décadas.
💥 Dias 31–35 — Aprenda a quebrar COBOL
Agora provoque erros.
Sim.
De propósito.
Crie situações que gerem problemas.
Investigue:
S0C7
S0C4
FILE STATUS
RETURN CODEUse:
DISPLAY 'WS-VALUE=' WS-VALUELeia compile listing.
Entenda offsets.
Procure mensagens.
Porque aprender programação sem aprender debugging é como Phileas Fogg aprender a embarcar em navios sem aprender o que fazer quando o navio quebra.
🚢 DIAS 36–43 — CALCUTÁ
VSAM: os dados precisam morar em algum lugar
Agora entramos no universo dos arquivos corporativos.
Aprenda primeiro arquivos sequenciais.
Depois:
VSAM
Conceitos:
KSDS
ESDS
RRDS
LDS
VRRDSPara começar, concentre-se principalmente no:
KSDS
Entenda:
KEY
RECORD
CI
CA
INDEX
DATA COMPONENTDepois:
IDCAMSComandos:
DEFINE
DELETE
REPRO
LISTCATAgora seu COBOL começa a conversar com dados persistentes.
🛳️ DIAS 44–53 — HONG KONG
Db2: SQL entra na viagem
Chegamos ao banco relacional.
Aprenda SQL antes de complicar.
SELECT
INSERT
UPDATE
DELETEDepois:
JOIN
GROUP BY
ORDER BY
SUBQUERY
INDEX
COMMIT
ROLLBACKAgora coloque isso dentro de COBOL:
EXEC SQL
SELECT BALANCE
INTO :WS-BALANCE
FROM CUSTOMER
WHERE CUSTOMER_ID = :WS-ID
END-EXEC.E imediatamente aprenda:
SQLCODE
SQLSTATEPorque:
SQLCODE = 0é maravilhoso.
SQLCODE = +100conta outra história.
E:
SQLCODE < 0é quando Passepartout começa a procurar o bote salva-vidas.
🧠 Entenda também
PLAN
PACKAGE
BIND
DBRM
HOST VARIABLE
CURSORNão precisa dominar administração Db2.
Nosso objetivo é:
programador COBOL capaz de utilizar Db2 conscientemente.
🇯🇵 DIAS 54–61 — YOKOHAMA
CICS: saímos do batch e entramos no mundo online
Até agora:
JOB
↓
PROCESSA
↓
TERMINAAgora:
USUÁRIO
↓
TRANSAÇÃO
↓
CICS
↓
COBOL
↓
RESPOSTAMudamos de planeta.
Aprenda:
TRANSACTION
PROGRAM
TASK
TERMINAL
COMMAREA
CHANNEL
CONTAINERComandos básicos:
EXEC CICS RECEIVE
EXEC CICS SEND
EXEC CICS READ
EXEC CICS WRITE
EXEC CICS LINK
EXEC CICS XCTL
EXEC CICS RETURNE jamais esqueça:
RESP
RESP2🖥️ BMS
Conheça:
MAP
MAPSET
SEND MAP
RECEIVE MAPVocê não precisa tornar-se arqueólogo de telas verdes.
Mas precisa entender como aplicações tradicionais online funcionam.
🚨 Entenda a arquitetura
Comece a reconhecer:
TOR
AOR
FORe conceitos como:
TSQ
TDQ
PPT
PCTAgora Phileas Fogg consegue executar batch durante a madrugada e transações durante o dia.
Está ficando perigoso.
🚂 DIAS 62–69 — SAN FRANCISCO
Segurança, Unix e o mainframe que ninguém mostra nos filmes
Agora apresentamos:
RACF
Não precisa virar administrador de segurança.
Mas precisa compreender:
USER
GROUP
RESOURCE
PROFILE
ACCESS
READ
UPDATE
CONTROL
ALTERE principalmente:
SAF
Comece a compreender que segurança em z/OS não é simplesmente “login e senha”.
🐧 USS
Surpresa.
Existe Unix dentro do z/OS.
Passepartout:
— Linux?
Não.
Unix System Services.
Aprenda:
PATH
FILE
DIRECTORY
PERMISSION
SHELL
PROCESSExperimente comandos familiares:
ls
cd
cat
grep
chmodAgora aquela divisão mental:
MAINFRAME | MUNDO MODERNOcomeça a desmoronar.
Como deveria.
🔧 Zowe + Git
Chegamos ao século XXI.
Conheça:
Zowe
VS Code
IBM Z Open Editor
Git
GitHub / GitLabAprenda o básico:
clone
branch
commit
merge
push
pullCOBOL pode perfeitamente participar de workflows modernos.
Não precisamos sacrificar cartões perfurados numa noite de lua cheia para compilar programa.
🌉 z/OS Connect e APIs
Agora faça a ponte:
MOBILE
↓
REST API
↓
z/OS CONNECT
↓
CICS
↓
COBOL
↓
DB2E finalmente compreenda uma coisa fundamental:
modernização não significa necessariamente reescrever.
Às vezes significa integrar.
🗽 DIAS 70–77 — NOVA YORK
DevOps: Phileas Fogg automatiza a viagem
Estamos quase voltando para Londres.
Agora precisamos transformar conhecimento isolado em pipeline.
Conheça:
CI/CD
BUILD
TEST
PACKAGE
DEPLOYFerramentas e conceitos possíveis:
DBB
zAppBuild
Jenkins
GitHub Actions
GitLab CI
UrbanCode
Ansible
Zowe
z/OSMFNão tente aprender profundamente todas.
Entenda:
o fluxo.
SOURCE
↓
GIT
↓
BUILD
↓
COMPILE
↓
TEST
↓
PACKAGE
↓
DEPLOY🧪 Testes
Aprenda a pensar em:
UNIT TEST
COMPONENT TEST
INTEGRATION TEST
E2EConheça:
ZUnit
COBOL Check
GalasaMais importante que decorar ferramentas:
faça código testável.
🤖 IA entra no trem
Naturalmente precisamos conversar sobre IA.
Use IA para:
EXPLICAR CÓDIGO
GERAR TESTES
DOCUMENTAR
ANALISAR ERROS
CRIAR HIPÓTESES
EXPLICAR JCL
ENTENDER COPYBOOKS
SUGERIR REFACTORINGMas lembre:
IA
↓
HIPÓTESEnão:
IA
↓
VERDADE ABSOLUTACompile.
Teste.
Valide.
🏁 DIAS 78–80 — ATLÂNTICO → LONDRES
A prova final
Phileas Fogg está voltando.
Passepartout olha para o calendário.
Três dias.
Agora não existe curso.
Não existe tutorial.
Não existe instrutor segurando sua mão.
Existe apenas uma especificação.
🎯 PROJETO FINAL — FOGG BANK
Construa uma pequena aplicação:
Cadastro e movimentação de clientes.
Ela deverá possuir:
COBOL
+
JCL
+
DATASET
+
VSAM ou Db2
+
CICS ou interface batchFluxo:
CLIENTE
↓
VALIDAÇÃO
↓
CONSULTA
↓
MOVIMENTAÇÃO
↓
ATUALIZAÇÃO
↓
RELATÓRIODepois coloque o source em Git.
Documente.
Teste.
Provoque erros.
Corrija.
Crie README.
Explique a arquitetura.
Se possível, exponha alguma funcionalidade como API.
Agora você possui algo muito mais importante que:
ASSISTI 80 HORAS DE CURSOVocê possui:
EU CONSTRUÍ ISTO.🧭 O MAPA COMPLETO
Depois de 80 dias nossa viagem ficou assim:
🌍 MAINFRAME ROAD MAP
IBM Z
│
z/OS
│
┌────────────┴────────────┐
│ │
TSO/ISPF USS
│ │
DATASETS SHELL
│
JCL
│
JES2
│
SDSF
│
COBOL
┌──────┼───────┐
│ │ │
VSAM Db2 CICS
│ │ │
└──────┼───────┘
│
RACF
│
APIs
│
z/OS Connect
│
Git
│
DevOps
│
Testing
│
IAAgora existe uma coisa preciosa:
CONTEXTO.
🎓 O que você NÃO será depois de 80 dias
Vamos destruir uma promessa de marketing antes que ela nasça.
Depois de 80 dias você provavelmente não será:
SYSTEM PROGRAMMER
DBA DB2
CICS ADMIN
RACF SPECIALIST
STORAGE SPECIALIST
PERFORMANCE SPECIALIST
SMP/E WIZARD
ASSEMBLER JEDIE está tudo bem.
Mainframe é um continente.
Não uma tecnologia.
Ninguém conhece tudo.
🧠 O que você PODE ser
Você pode conseguir olhar para:
JOB
↓
JCL
↓
COBOL
↓
CICS
↓
DB2e compreender aproximadamente o caminho.
Pode receber:
S0C7e não fugir pela janela.
Pode abrir SDSF.
Pode procurar o step.
Pode ler SYSOUT.
Pode compreender um programa COBOL.
Pode alterar.
Compilar.
Executar.
Investigar.
Testar.
E principalmente:
saber qual é a próxima pergunta.
Esse é um enorme avanço.
🎩 O relógio de Phileas Fogg
Londres.
Reform Club.
80º dia.
Os cavalheiros estão esperando.
Relógio:
20:44Nenhum sinal.
20:45.
Porta fechada.
A aposta parece perdida.
Então:
20:45:57A porta abre.
Phileas Fogg entra.
Passepartout atrás dele carrega um notebook.
Na tela:
FOGG80.COBOL
FOGG80.JCL
FOGG80.COPYLIB
FOGG80.TESTUm cavalheiro pergunta:
— Então aprendeu mainframe?
Fogg responde:
— Não.
Silêncio.
— Como assim?
Ele coloca o chapéu sobre a mesa.
— Aprendi o suficiente para compreender o tamanho daquilo que ainda preciso aprender.
O velho mainframeiro no fundo da sala sorri.
Porque essa talvez seja a primeira evidência de que Phileas Fogg realmente aprendeu alguma coisa.
☕ Epílogo — A aposta
Passepartout aproxima-se do terminal.
Submete o projeto final.
SUBMIT 'FOGG80.JCL(MOONJOB)'Não.
Arquivo errado.
Fogg olha para ele.
Passepartout:
— Desculpe, monsieur.
Agora:
SUBMIT 'FOGG80.JCL(FINALJOB)'JES2 recebe.
$HASP100 FINALJOB ON READERExecutando.
$HASP373 FINALJOB STARTEDTodos aguardam.
SDSF atualiza.
STEP010 RC 0000
STEP020 RC 0000
STEP030 RC 0000
STEP040 RC 0000Finalmente:
$HASP395 FINALJOB ENDEDFogg olha para o relógio.
Ainda dentro dos 80 dias.
Passepartout grita:
MAXCC=0000!
Champanhe.
Aplausos.
A aposta está ganha.
Então o instrutor Bellacosa aproxima-se lentamente.
Olha o relatório.
Franze a testa.
Pergunta:
— Fogg...
— Sim?
— O total deveria ser £20.000.
Na tela:
TOTAL = £200.000Silêncio absoluto.
Fogg tira o paletó.
Senta diante do terminal.
Abre o source.
Passepartout prepara café.
Porque Phileas Fogg acaba de descobrir a última e mais importante etapa do Road Map Mainframe:
DIA 81 — DEBUG.
🎩🌍🚂🚢☕🦖
E essa viagem...
meu caro Padawan...
não termina em 80 dias.
//WORLD80 JOB (COBOL),'PHILEAS FOGG'
//STEP01 EXEC PGM=LEARN
//SYSOUT DD SYSOUT=*
LEARNING IN PROGRESS...
DESTINATION: MAINFRAME
RETURN CODE: NEVER STOP
Sem comentários:
Enviar um comentário