Mostrar mensagens com a etiqueta versionamento. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta versionamento. Mostrar todas as mensagens

sexta-feira, 26 de dezembro de 2025

UrbanCode DBB: Controle de Versionamento no Mainframe, do Jeito Certo


UrbanCode DBB: Controle de Versionamento no Mainframe, do Jeito Certo

Se você já trabalhou em mainframe, sabe que cada linha de código é sagrada. Um erro de versionamento e você pode acordar com todo o departamento olhando para você como se tivesse errado o compilador na sexta-feira à tarde. Foi justamente pensando nisso que nasceu o UrbanCode DBB, o guardião do código COBOL, PL/I, Assembler, JCL e tudo mais que roda em z/OS.


História e Origem

O DBB, que significa Dependency Based Build, começou sua vida nos laboratórios da IBM como uma forma de modernizar o build de aplicações mainframe. A ideia era simples: parar de depender de scripts complicados de JCL e REXX espalhados pelo servidor e criar algo que entendesse as dependências reais do seu código.

Em 2016, o UrbanCode comprou a tecnologia e integrou no seu portfólio de DevOps, transformando o DBB numa peça central para mainframe moderno, pronto para integração com pipelines CI/CD, Git, Jenkins e até o mundo do container e cloud.


Para que serve e por que usar

Imagine o seu sistema legado com dezenas de programas COBOL interdependentes. Alterou um copybook ou uma tabela DB2? Então você precisa recompilar tudo que depende disso, mas somente o que realmente depende. Aqui entra o DBB:

  • Detecção de dependências: Ele analisa seu código e entende as relações entre programas, módulos e copybooks.

  • Build incremental inteligente: Só recompila o que precisa, economizando horas de batch.

  • Integração DevOps: Pode ser chamado por Jenkins, GitLab, UrbanCode Deploy, tornando o mainframe parte do fluxo ágil.

Em resumo: DBB é o cupido do build, unindo o que mudou com o que precisa mudar.

Como usar: dicas práticas

  1. Estrutura de projetos: Organize seu código como projetos, módulos e pacotes. DBB adora clareza.

  2. Dependência declarativa: Marque copybooks, DB2 DDL e includes. Quanto mais informação ele tiver, mais eficiente será o build.

  3. Log e rastreabilidade: Sempre revise os logs. DBB é detalhista — ele te conta cada recompilação que fez.

  4. Pipeline CI/CD: Integre DBB ao Jenkins ou UrbanCode Deploy para builds automáticos e consistentes.

Exemplo básico

Imagine que você tem um programa PAYROLL que depende de EMPLOYEE e SALARY. Se você altera apenas SALARY, DBB identifica que apenas PAYROLL precisa de recompilação, poupando tempo e evitando que outros programas sejam recompilados desnecessariamente.

PROJECT PAYROLL
   MODULE EMPLOYEE
   MODULE SALARY
   MODULE PAYROLL
   DEPENDS_ON SALARY, EMPLOYEE
ENDPROJECT

Simples, mas poderoso.

Curiosidade e Easter Egg

Você sabia que o DBB foi inspirado em técnicas de build usadas em ambientes UNIX? A diferença é que ele traduziu essas ideias para o z/OS, entendendo a complexidade do JCL, copybooks e DB2.

E o easter egg? Se você examinar os logs detalhados, verá pequenos comentários de debug deixados pelos engenheiros: mensagens como "Aqui mora o fantasma do COBOL" ou "Não acorde o compilador antes do café"… só quem vive de batch entende.

Comentários finais

O DBB é um salvavidas para equipes que querem DevOps sem abandonar o mainframe. Ele reduz erros, agiliza deploys e ainda preserva aquela aura mística de que o código mainframe “funciona sozinho, mas precisa de respeito”.

Se você ainda não experimentou, vale a pena. Modernizar builds não é apenas um luxo, é sobre manter a sanidade e ganhar tempo para o café da tarde.

quinta-feira, 27 de março de 2014

Changeman - View Changes


Um Café no Bellacosa Mainframe

Changeman – View Changes

O “git log / git diff” raiz do z/OS, muito antes de virar moda 😉

Se você já trabalhou com CA Changeman em ambiente IBM Mainframe, sabe: ele não é apenas uma ferramenta de controle de mudanças. Ele é praticamente um guardião da sanidade do programador, do analista e do auditor.
E dentro desse universo, existe um recurso simples, poderoso e muitas vezes subestimado: View Changes.

Vamos destrinchar isso ao melhor estilo Bellacosa Mainframe: com história, passo a passo, dicas práticas, curiosidades, comandos e até alguns easter eggs que só quem já sofreu em produção entende 😄


1️⃣ O que é o Changeman?

O CA Changeman ZMF (Zero Migration Facility) é uma ferramenta de Change Management usada no z/OS para:

  • Controlar versões de programas (COBOL, PL/I, ASM, JCL, PROC, COPY, etc.)

  • Garantir rastreabilidade (quem mudou, quando, por quê)

  • Organizar ambientes (DEV → QA → HML → PRD)

  • Atender auditorias (SOX, PCI, ISO, BACEN feelings 😅)

👉 Antes do GitHub existir, o Changeman já fazia controle de versão sério no mainframe.


2️⃣ O que é o View Changes?

O View Changes permite visualizar as diferenças entre versões de um componente antes, durante ou depois de uma migração.

Em outras palavras:

“O que exatamente mudou nesse programa?”

Ele compara:

  • Baseline × Working

  • Package × Baseline

  • Versão antiga × versão nova

  • Antes da promoção × depois da promoção

📌 É o diff do mainframe, só que com gravata e crachá corporativo.


3️⃣ Um pouco de história 📜

Antes do Changeman:

  • Alterações eram feitas direto em PDS

  • Versionamento? → “Salva uma cópia com outro nome”

  • Auditoria? → “Confia em mim”

  • Rastreabilidade? → JES2 $HASP050 de nervoso

O Changeman surgiu para organizar o caos, trazendo:

  • Processos formais

  • Packages

  • Approvals

  • Promote / Demote

  • E claro… comparação de mudanças

O View Changes nasce exatamente dessa necessidade:
👉 Mostrar claramente o impacto de cada alteração.


4️⃣ Onde o View Changes aparece no dia a dia?

Você vai encontrar o View Changes principalmente em:

  • Component List

  • Package List

  • Baseline Browse

  • Staging / Promotion Review

Normalmente acessado via ISPF menus do Changeman.


5️⃣ Passo a passo – View Changes na prática 🧭

🔹 1. Acesse o Changeman

Via ISPF:

=CM

(ou a opção configurada no seu shop)


🔹 2. Entre em um Package ou Application

  • Selecione a Application

  • Escolha o Package

  • Liste os Components


🔹 3. Selecione o componente desejado

Exemplo:

  • Programa COBOL

  • JCL

  • Copybook

Normalmente usando:

S (Select)

ou

V (View)

🔹 4. Escolha View Changes

Dependendo do menu, pode aparecer como:

  • View Changes

  • Compare

  • Diff

  • Browse Changes

O Changeman então:
✔ Compara a versão atual com a versão anterior
✔ Abre uma tela de comparação lado a lado ou inline


🔹 5. Analise as diferenças

Você verá:

  • Linhas adicionadas

  • Linhas removidas

  • Linhas alteradas

  • Numeração original do source

🎯 Aqui está a verdade nua e crua da mudança.


6️⃣ Como a comparação aparece? 👀

Geralmente:

  • Linhas alteradas marcadas com símbolos

  • Prefixos como:

    • + inclusão

    • - remoção

    • ! modificação

  • Numeração antiga × nova

📌 Dica Bellacosa:

Leia o diff antes de promover. Depois não adianta chorar no console.


7️⃣ Comandos úteis durante o View Changes ⌨️

Dentro da tela de visualização:

  • FIND 'STRING'
    🔎 Localiza mudanças específicas

  • LOCATE nnnnnn
    📍 Vai direto para uma linha

  • UP / DOWN
    📜 Navegação

  • RFIND
    🔁 Repetir busca

  • LEFT / RIGHT
    ↔ Em comparações lado a lado


8️⃣ Dicas práticas (experiência de trincheira) 🧠

Sempre use View Changes antes do Promote
Evita aquele clássico: “Não era isso que eu tinha mudado”.

Use em JCL também!
Um DISP=SHR que virou OLD já derrubou muita madrugada.

Compare COPYBOOKs com carinho
Uma mudança pequena pode quebrar 20 programas.

Leia o diff como auditor
Se você não consegue explicar a mudança, o auditor vai adorar perguntar 😄


9️⃣ Curiosidades ☕

  • Changeman faz diff linha a linha, não lógico

  • Espaços contam (sim, COBOL feelings)

  • Comentários alterados aparecem como mudança

  • Alguns shops limitam o View Changes por perfil RACF


🔟 Easter Eggs Bellacosa 🥚

🥚 Mudança fantasma
Você jura que não mudou nada… mas o View Changes mostra diferenças.
👉 Normalmente:

  • Espaço a mais

  • Tab invisível

  • Fim de linha diferente

🥚 Comentário que salva auditoria
Um simples comentário bem escrito no source pode justificar toda a alteração no diff.

🥚 O “View Changes do susto”
Quando você percebe que alguém alterou algo que não estava no request
e o Changeman virou sua testemunha oficial 😎


1️⃣1️⃣ Changeman vs Git (comparação inevitável)

ConceitoChangemanGit
DiffView Changesgit diff
HistóricoPackagescommits
AprovaçãoApprovalspull request
ProduçãoPromotemerge/main

👉 Moral da história:
Mainframe sempre esteve anos à frente – só não tinha hype.


1️⃣2️⃣ Comentário final Bellacosa Mainframe ☕

O View Changes é simples, mas poderoso.
Ele:

  • Evita erros

  • Salva horas de debug

  • Ajuda auditorias

  • Protege produção

  • E ensina disciplina técnica

Se você trabalha com Changeman e não usa View Changes, está pilotando um z/OS de olhos fechados.

Mainframe não perdoa achismo. Ele exige evidência.

E o View Changes é uma das melhores evidências que você pode ter. 

Z.CH

5 – List Package

S2 – View objects in Package

VC – View Changes