Translate

quarta-feira, 8 de março de 2017

O Choque Cultural de Quem Sai do Mundo Windows/Linux e Entra em z/OS

 

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