| Bellacosa Mainframe e o choque cultural na chegada na Stack mainframe |
☕ Um Café no Bellacosa Mainframe
O Choque Cultural de Quem Sai do Mundo Windows/Linux e Entra em z/OS
Este post é excelente porque captura exatamente a sensação de quase todo profissional que chega ao universo IBM Z pela primeira vez.
A primeira impressão costuma ser:
"Isto não é um computador. Isto é uma máquina do tempo."
E, em parte, é verdade.
Mas também é uma das arquiteturas computacionais mais sofisticadas já produzidas.
Vamos desmontar alguns mitos e aprofundar os conceitos.
O primeiro choque: não existem pastas
Quem vem de Windows pensa:
C:
├── Projetos
│ ├── Cobol
│ ├── Testes
Quem vem de Linux pensa:
/opt/cobol/src/
/home/user/programs
No z/OS, historicamente não existiu um sistema de arquivos hierárquico.
Você encontra:
IBMUSER.TEST.COBOL
ou
BELLACOSA.DEV.SOURCE
ou
BANK01.CICS.COPYLIB
Não são diretórios.
São datasets.
Dataset é um conceito muito mais antigo que um arquivo
Dataset significa literalmente:
Conjunto de dados
Há vários tipos.
Sequential Dataset
PS
Exemplo:
USER01.JCL
Contém apenas um fluxo.
Como um TXT gigante.
PDS
Partitioned Data Set
Aqui começa o choque.
Imagine:
Windows
Cobol
├── CLIENTE.cbl
├── CONTA.cbl
└── CARTAO.cbl
No Mainframe:
Dataset
USER01.COBOL.SOURCE
Membros
CLIENTE
CONTA
CARTAO
Notação:
USER01.COBOL.SOURCE(CLIENTE)
Muito elegante.
Um único catálogo.
Milhares de programas.
O PDS não é uma pasta
Esta é uma distinção importante.
Um diretório moderno é dinâmico.
Um PDS é pré-alocado.
Você define:
Primary Space
Secondary Space
Directory Blocks
Exemplo:
SPACE=(CYL,(10,5,20))
20 blocos de diretório.
Acabaram?
Não cria sozinho.
Você recria.
Ou comprime.
Os fantasmas dentro do PDS
Essa foi uma observação muito boa do autor.
Quando alteramos:
CLIENTE
CLIENTE
CLIENTE
CLIENTE
O ISPF grava uma nova versão física.
A antiga continua ocupando espaço.
Marcada como deletada.
Mas ainda existe.
Igual um SSD sem TRIM.
Compress
No ISPF:
Utilities
3.1
Compress Dataset
ou
IEBCOPY
//STEP1 EXEC PGM=IEBCOPY
Ele reorganiza.
Remove membros mortos.
Compacta.
Recupera espaço.
O famoso ABEND Sx37
O texto menciona 0E37.
Na realidade os mais comuns são:
SB37
Sem espaço em disco
SE37
Sem extents disponíveis
SD37
Dataset VSAM cheio
No PDS, muitas vezes ocorre:
Directory Full
ou
SB37
dependendo da situação.
Compress normalmente resolve.
Regra de ouro do Sysprog:
Se um PDS antigo começou a se comportar estranho,
faça um compress.
O nome dos datasets
Ele fala em três níveis.
Na prática podem existir muitos.
Exemplo:
BANK01.DEV.COBOL.SOURCE
BANK01.TEST.COBOL.COPYLIB
BANK01.PROD.JCL.BATCH
BANK01.CICS.LOADLIB
Até 44 caracteres.
Qualificadores:
Primeiro nível
High Level Qualifier
HLQ
Exemplo:
IBMUSER
Segundo:
Aplicação
FINANCE
Terceiro:
Tipo
SOURCE
LOAD
COPYLIB
DBRM
JCL
PROC
O choque das 80 colunas
Outro fantasma tecnológico.
Cartões IBM.
80 posições.
Ainda hoje.
COBOL clássico:
1-6 Sequence
7 Indicator
8-11 Area A
12-72 Area B
73-80 Comentários
Exemplo:
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. CLIENTE.
ISPF é um editor absurdamente eficiente
No começo parece cruel.
Depois de alguns meses...
Você entende.
E não quer sair.
Comandos:
C
CC
M
MM
A
B
RR
Copiar.
Mover.
Repetir.
Excluir.
Tudo sem mouse.
Exemplo:
CC
...
CC
A
Copia cem linhas.
Instantaneamente.
Terminal versus GUI
Debate interessante.
GUI
Excelente descoberta.
Visual.
Baixa curva.
Terminal
Extremamente rápido.
Menos distrações.
Baixo consumo.
Automatizável.
Um Sysprog experiente parece um pianista.
F3
F7
F8
PF11
PF12
Enter
Tab
Em segundos percorre centenas de datasets.
Como começar no Mainframe?
Caminho 1 — IBM Z Xplore
Hoje é provavelmente o melhor caminho.
Laboratórios reais.
TSO.
JCL.
COBOL.
DB2.
USS.
RACF.
Sem instalar nada.
Excelente para iniciantes.
Caminho 2 — Hercules
Ótimo.
Mas exige bastante dedicação.
TK4-
MVS 3.8J
TK5
Ajuda muito a compreender:
JES2
Catalog
VTAM
TSO
ISPF
Porém não representa totalmente um z/OS moderno.
Caminho 3 — Zowe
Talvez seja o mais amigável.
VSCode.
Git.
SSH.
REST.
Terminal.
Mainframe híbrido.
Muito próximo do DevOps moderno.
O maior choque para quase todos os iniciantes
Normalmente é uma destas coisas:
Desenvolvedor Linux
Onde está o ls?
Desenvolvedor Windows
Cadê minhas pastas?
Programador Java
O que é um JCL?
Programador COBOL
Por que preciso dar BIND no DB2?
Sysadmin
Como assim reiniciar um LPAR custa milhões de dólares por hora?
A grande revelação
Depois de alguns meses, a percepção muda.
Você deixa de pensar em:
"Por que o Mainframe é tão estranho?"
E começa a perguntar:
"Por que os outros sistemas desperdiçam tantos recursos para fazer coisas que o Mainframe resolve há cinquenta anos?"
O IBM Z é menos um computador pessoal e mais uma infraestrutura industrial de processamento de transações, concebida para operar continuamente durante décadas, suportando bancos, bolsas de valores, seguradoras, governos e sistemas críticos. Muitas das suas peculiaridades não são limitações, mas decisões de engenharia tomadas para privilegiar estabilidade, previsibilidade, compatibilidade binária, desempenho e disponibilidade extrema. O verdadeiro desafio para quem está começando não é aprender COBOL ou decorar comandos do ISPF; é realizar uma mudança de paradigma e compreender que, no mundo do IBM Z, quase tudo foi projetado para minimizar riscos e garantir que um programa escrito há quarenta anos continue funcionando hoje, enquanto conversa com APIs REST, microsserviços, containers OpenShift e até aplicações de Inteligência Artificial. É justamente essa convivência entre passado, presente e futuro que torna o ecossistema do Mainframe tão fascinante.
Sem comentários:
Enviar um comentário