☕ 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

Mostrar mensagens com a etiqueta laboratório. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta laboratório. Mostrar todas as mensagens

quarta-feira, 29 de outubro de 2025

☕💣 Lab: SEU PRIMEIRO PLANTÃO NO MAINFRAME — LABORATÓRIO COMPLETO DE LÓGICA DE PROGRAMAÇÃO IBM Z PARA INICIANTES 💣☕

 

Bellacosa Mainframe Laboratorio de Logica de Programação Mainframe

☕💣 “SEU PRIMEIRO PLANTÃO NO MAINFRAME” — LABORATÓRIO COMPLETO DE LÓGICA DE PROGRAMAÇÃO IBM Z PARA INICIANTES 💣☕

Aprenda a pensar como um programador de alta plataforma antes mesmo de dominar COBOL


🔥 OBJETIVO DO LABORATÓRIO

Neste laboratório você irá aprender:

✅ Como pensar em lógica Mainframe
✅ Como funciona o raciocínio batch
✅ Variáveis
✅ Validações
✅ Estruturas de repetição
✅ Sections e Paragraphs
✅ Procedures
✅ Subrotinas
✅ Modularização
✅ Boas práticas de alta plataforma
✅ Erros clássicos de iniciantes
✅ Como programadores IBM Z organizam sistemas reais


☕ CENÁRIO DO LABORATÓRIO

Você foi contratado para trabalhar em um banco.

Sua missão:

💣 PROCESSAR UM ARQUIVO DE CLIENTES

Cada registro possui:

NOME
IDADE
SALDO
STATUS

O programa deve:

  1. Ler registros

  2. Validar dados

  3. Calcular bônus

  4. Gerar relatório

  5. Exibir totais


🔥 PRIMEIRA LIÇÃO — PENSAR COMO MAINFRAME

Antes do código:

☕ O PROGRAMADOR MAINFRAME PENSA EM FLUXO


Entrada

Arquivo de clientes

Processamento

Validar
Calcular
Atualizar
Contabilizar

Saída

Relatório
Arquivo atualizado
Totais

💣 ISSO É O DNA DO BATCH

No Mainframe:

  • entrada

  • processamento

  • saída

são sagrados.


☕ ETAPA 1 — DECLARANDO VARIÁVEIS

No Mainframe tudo precisa ser previsível.


🔥 TIPOS MAIS COMUNS

Texto

01 WS-NOME            PIC X(30).

Número inteiro

01 WS-IDADE           PIC 9(03).

Valores monetários

01 WS-SALDO           PIC 9(07)V99.

Indicadores lógicos

01 WS-FIM-ARQUIVO     PIC X VALUE 'N'.

☕ DICA BELLACOSA MAINFRAME

🔥 Nome de variável precisa explicar a intenção

RUIM:

01 A PIC 9(5).

BOM:

01 WS-TOTAL-CLIENTES PIC 9(5).

💣 O MAINFRAME SOBREVIVE POR LEGIBILIDADE

Quem mantém sistemas bancários precisa entender rápido o código.


☕ ETAPA 2 — ESTRUTURA DO PROGRAMA

O COBOL corporativo normalmente segue:

IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
PROCEDURE DIVISION

🔥 O CORAÇÃO DA LÓGICA

PROCEDURE DIVISION

Aqui vive:

  • fluxo

  • validação

  • cálculos

  • repetições


☕ ETAPA 3 — SECTIONS E PARAGRAPHS

SECTION

Agrupa grandes áreas do programa.


PARAGRAPH

Divide tarefas menores.


💣 EXEMPLO CORPORATIVO

PROCESSAMENTO-SECTION.

    PERFORM LE-ARQUIVO
    PERFORM VALIDA-DADOS
    PERFORM CALCULA-BONUS
    PERFORM GRAVA-RELATORIO.

☕ VANTAGEM DISSO

✅ Organização
✅ Manutenção
✅ Reuso
✅ Facilidade de debugging
✅ Clareza


🔥 ETAPA 4 — LEITURA DE REGISTROS

Todo batch gira em torno disso.


💣 MODELO CLÁSSICO MAINFRAME

PERFORM UNTIL WS-FIM-ARQUIVO = 'S'

    PERFORM LE-REGISTRO

    IF WS-FIM-ARQUIVO NOT = 'S'
       PERFORM PROCESSA-REGISTRO
    END-IF

END-PERFORM.

☕ O QUE O INICIANTE PRECISA ENTENDER

O batch:

  • processa

  • repete

até acabar o arquivo.


🔥 ETAPA 5 — LAÇOS DE REPETIÇÃO

☕ 1. PERFORM UNTIL

Mais usado em batch.


Exemplo

PERFORM UNTIL WS-FIM = 'S'

Repete até condição ser verdadeira.


☕ 2. PERFORM VARYING

Semelhante ao FOR.


Exemplo

PERFORM VARYING WS-INDICE FROM 1 BY 1
UNTIL WS-INDICE > 10

☕ 3. PERFORM TIMES

Executa quantidade fixa.


Exemplo

PERFORM 5 TIMES
   DISPLAY 'MAINFRAME'
END-PERFORM.

💣 ERRO CLÁSSICO DE INICIANTE

Criar loop infinito.

Exemplo perigoso:

PERFORM UNTIL WS-FIM = 'S'

Sem alterar WS-FIM.

Resultado:

  • CPU presa

  • JOB travado

  • consumo absurdo


☕ ETAPA 6 — VALIDAÇÕES

🔥 MAINFRAME AMA VALIDAÇÃO

Sistemas bancários precisam ser paranoicos.


☕ TIPOS DE VALIDAÇÃO


Campo vazio

IF WS-NOME = SPACES

Número inválido

IF WS-IDADE IS NUMERIC

Faixa permitida

IF WS-IDADE >= 18

Status permitido

IF WS-STATUS = 'A'

💣 DICA CORPORATIVA

Sempre valide:

  • entrada

  • arquivo

  • cálculo

  • retorno

  • integração


☕ ETAPA 7 — CÁLCULO DE BÔNUS

Regra:

Se saldo > 1000:

  • bônus = 10%


🔥 EXEMPLO

IF WS-SALDO > 1000
   COMPUTE WS-BONUS = WS-SALDO * 0.10
ELSE
   MOVE 0 TO WS-BONUS
END-IF.

☕ ETAPA 8 — MODULARIZAÇÃO

💣 O SEGREDO DOS SISTEMAS GIGANTES

Separar responsabilidades.


🔥 EXEMPLO

LEITURA
VALIDAÇÃO
PROCESSAMENTO
RELATÓRIO
FINALIZAÇÃO

☕ ISSO REDUZ

✅ Bugs
✅ Retrabalho
✅ Confusão
✅ Dependência de pessoas


☕ ETAPA 9 — SUBROTINAS

Grandes empresas usam MUITO isso.


🔥 O QUE É SUBROTINA?

Programa auxiliar reutilizável.


Exemplo

CALCULA-JUROS
VALIDA-CPF
FORMATA-DATA

💣 VANTAGEM

Um único módulo pode ser usado por:

  • banco

  • cartão

  • seguros

  • investimentos


☕ CHAMADA DE SUBROTINA

CALL 'CALCJURO'

☕ ETAPA 10 — FUNÇÕES

Funções retornam valores.


🔥 EXEMPLO

FUNCTION CURRENT-DATE

☕ MUITAS FUNÇÕES MODERNAS COBOL

  • data

  • matemática

  • string

  • conversão


💣 O QUE O INICIANTE PRECISA EVITAR


🔥 1. GOTO EM EXCESSO

Código vira espaguete.


🔥 2. NOMES RUINS

Dificultam manutenção.


🔥 3. DUPLICAÇÃO

Mesmo código repetido.


🔥 4. FALTA DE VALIDAÇÃO

Causa bugs perigosos.


🔥 5. TENTAR FAZER TUDO NUM BLOCO

Divida em procedures.


☕ LABORATÓRIO PRÁTICO — FLUXO COMPLETO

💣 OBJETIVO

Processar 3 clientes.


🔥 PASSO 1 — INICIALIZAÇÃO

MOVE 0 TO WS-TOTAL
MOVE 'N' TO WS-FIM

🔥 PASSO 2 — LOOP PRINCIPAL

PERFORM UNTIL WS-FIM = 'S'

🔥 PASSO 3 — LEITURA

READ CLIENTE-ARQ

🔥 PASSO 4 — VALIDAÇÃO

IF WS-SALDO IS NUMERIC

🔥 PASSO 5 — PROCESSAMENTO

COMPUTE WS-BONUS = WS-SALDO * 0.10

🔥 PASSO 6 — ACUMULADOR

ADD WS-BONUS TO WS-TOTAL

🔥 PASSO 7 — RELATÓRIO

DISPLAY WS-TOTAL

☕ RESULTADO FINAL ESPERADO

O programa:

  • processa clientes

  • valida dados

  • calcula bônus

  • gera total


💣 ISSO É O INÍCIO DA ENGENHARIA MAINFRAME

Você acabou de praticar:

✅ lógica imperativa
✅ lógica procedural
✅ lógica estruturada


☕ COMO PROGRAMADORES MAINFRAME PENSAM?

Eles perguntam:

O dado entrou correto?
O arquivo está íntegro?
A rotina está modularizada?
O batch aguenta milhões de registros?
O operador conseguirá diagnosticar erro?

🔥 ISSO É ALTA PLATAFORMA

Não é apenas programar.

É:

  • previsibilidade

  • confiabilidade

  • rastreabilidade

  • engenharia


☕ CURIOSIDADES DO MUNDO REAL


💣 Muitos bancos ainda usam lógica escrita nos anos 80

E continuam funcionando.


💣 Um erro de loop pode consumir milhões em CPU

Por isso revisão é levada extremamente a sério.


💣 COBOL foi desenhado para manutenção humana

Legibilidade sempre foi prioridade.


💣 Grandes batches processam bilhões de registros

Tudo baseado nessa lógica.


☕ DESAFIO FINAL PARA O ALUNO

Tente adicionar:

✅ validação de idade
✅ tratamento de saldo negativo
✅ contador de clientes inválidos
✅ relatório final formatado
✅ cálculo de média


🔥 MISSÃO CONCLUÍDA

Você deu os primeiros passos no raciocínio que move:

  • bancos

  • governos

  • cartões

  • seguradoras

  • bolsas financeiras


💣 A GRANDE VERDADE DO MAINFRAME

Antes de aprender comandos…

☕ O PROGRAMADOR IBM Z PRECISA APRENDER A PENSAR COMO ENGENHEIRO.


domingo, 15 de junho de 2025

Laboratório Prático de COBOL Mainframe

 

Bellacosa Mainframe e o laboratorio pratico de COBOL

☕ Um Café no Bellacosa Mainframe

Laboratório Prático de COBOL Mainframe

Este laboratório foi desenvolvido utilizando uma metodologia de aprendizagem incremental, semelhante ao treinamento de um Padawan: cada exercício introduz um novo conceito, reforça os conhecimentos anteriores e prepara o aluno para o próximo desafio. A ideia não é apenas aprender comandos da linguagem COBOL, mas compreender como um programador de Mainframe pensa, organiza e resolve problemas de negócio.

Durante a execução dos laboratórios, preste atenção principalmente na estrutura dos programas, na nomenclatura das variáveis, na organização das divisões (DIVISION, SECTION e PARAGRAPH), na indentação do código e nas mensagens emitidas pelo compilador. Um bom desenvolvedor COBOL dedica mais tempo entendendo a lógica do programa do que simplesmente escrevendo instruções.

Evite copiar e colar as soluções. Antes de consultar o gabarito, tente resolver cada exercício sozinho. Os erros fazem parte do aprendizado e ajudam a desenvolver o raciocínio lógico necessário para ambientes corporativos.

Ao concluir cada laboratório, faça pequenas modificações no programa: altere valores, acrescente novos campos, crie validações e experimente diferentes abordagens. Essa prática fortalece a compreensão da linguagem e aumenta sua confiança.

Para evoluir, revise frequentemente os laboratórios anteriores, leia códigos escritos por outros desenvolvedores, estude JCL, VSAM, Db2 e CICS paralelamente e mantenha uma rotina constante de prática. No Mainframe, experiência é construída linha por linha, programa por programa e desafio após desafio.

20 Labs para Transformar um Jovem Aprendiz em um Programador COBOL Padawan

Objetivo: Este laboratório foi criado para quem possui apenas conhecimentos básicos de informática (Windows, arquivos, pastas e editores de texto) e deseja aprender COBOL de forma prática, evoluindo passo a passo até os primeiros programas profissionais em IBM Mainframe.

Cada laboratório foi organizado da seguinte forma:

  • 🎯 Objetivo

  • 📚 O que você aprenderá

  • 🛠️ Passo a passo

  • 💻 Exercício

  • ✅ Solução comentada

  • 💡 Dicas Bellacosa

  • ☕ Curiosidade Mainframe


LAB 01 – Seu Primeiro "Hello World"

🎯 Objetivo

Aprender a estrutura básica de um programa COBOL.

📚 Conceitos

  • IDENTIFICATION DIVISION

  • PROCEDURE DIVISION

  • DISPLAY

  • STOP RUN

🛠️ Passo a passo

  1. Crie um novo programa.

  2. Dê o nome HELLO001.

  3. Digite a estrutura mínima.

  4. Compile.

  5. Execute.

💻 Exercício

Exiba:

Olá Mainframe!

✅ Solução

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO001.

PROCEDURE DIVISION.
    DISPLAY "OLA MAINFRAME!"
    STOP RUN.

💡 Dicas

Sempre utilize nomes significativos.

Evite nomes como:

AAA001
TESTE99
PROGRAMA1

Prefira:

CLIENTE
CALCSAL
FATURA

☕ Curiosidade

Um programa COBOL pode conter dezenas de milhares de linhas sem perda de legibilidade quando bem organizado.


LAB 02 – Conhecendo as DIVISIONS

Objetivo

Entender a organização de um programa COBOL.

Aprender:

  • Identification

  • Environment

  • Data

  • Procedure

Exercício

Adicione todas as DIVISIONS mesmo que estejam vazias.

Curiosidade

Essa organização existe desde 1959.

Ainda funciona perfeitamente.


LAB 03 – Variáveis (WORKING-STORAGE)

Aprender:

  • PIC X

  • PIC 9

  • VALUE

Exercício

Criar:

Nome
Idade
Cidade

Mostrar na tela.

Solução

Utilizar DISPLAY para cada variável.

Dica

Pense na WORKING-STORAGE como a memória RAM do programa.


LAB 04 – MOVE

Aprender:

MOVE

Exercício

Mover:

JOÃO

para

CLIENTE

Depois mostrar.

Curiosidade

MOVE é uma das instruções mais utilizadas do COBOL.


LAB 05 – Matemática

Aprender

ADD

SUBTRACT

MULTIPLY

DIVIDE

COMPUTE

Exercício

Criar uma calculadora simples.

Entrada:

10

20

Saída:

Soma

Subtração

Multiplicação

Divisão

Dica

Prefira COMPUTE quando a expressão ficar grande.


LAB 06 – IF

Aprender decisões.

Exercício

Se idade >=18

Mostrar

MAIOR

Senão

MENOR

Curiosidade

IF aninhado pode ficar difícil de ler.

Nos próximos labs veremos alternativas melhores.


LAB 07 – EVALUATE

Aprender o "switch" do COBOL.

Exercício

Digite:

1
2
3

Mostrar:

Janeiro

Fevereiro

Março

Dica Bellacosa

Muitos programadores usam IF.

Os experientes preferem EVALUATE.


LAB 08 – PERFORM

Criar laços.

Exercício

Mostrar:

1

2

3

...

10

Aprender

PERFORM VARYING


LAB 09 – Tabelas

Aprender:

OCCURS

Exercício

Cadastrar

5 nomes.

Mostrar todos.

Curiosidade

Aqui começa o verdadeiro poder do COBOL.


LAB 10 – SEARCH

Pesquisar dentro da tabela.

Exercício

Encontrar

MARIA

na lista.

Dica

Depois compare SEARCH com SEARCH ALL.


LAB 11 – STRING

Concatenar textos.

JOAO

+

SILVA

Resultado

JOAO SILVA

LAB 12 – UNSTRING

Separar:

JOAO;SILVA;25

em três campos.

Hoje isso é muito usado em integração de sistemas.


LAB 13 – Arquivos Sequenciais

Criar arquivo.

Gravar:

ANA

CARLOS

PEDRO

Depois ler.

Curiosidade

Antes dos bancos de dados, praticamente tudo funcionava assim.


LAB 14 – Arquivos Indexados (VSAM)

Introdução ao KSDS.

Entender:

  • Chave

  • Registro

  • Índice

Mesmo que o ambiente de testes utilize arquivos simplificados, o conceito prepara você para ambientes corporativos.


LAB 15 – Datas

Utilizar:

FUNCTION CURRENT-DATE

Mostrar:

  • Ano

  • Mês

  • Dia

Dica

Evite criar rotinas próprias de data quando houver função intrínseca.


LAB 16 – Funções Intrínsecas

Explorar:

  • LENGTH

  • UPPER-CASE

  • LOWER-CASE

  • NUMVAL

  • INTEGER

  • RANDOM

Exercício

Converter um nome para maiúsculas e minúsculas.


LAB 17 – Modularização

Criar:

Programa Principal

Subprograma

Enviar parâmetros.

Curiosidade

Grandes bancos possuem milhares de subprogramas reutilizados por diversos sistemas.


LAB 18 – SQL em COBOL

Introdução ao Embedded SQL.

Criar:

SELECT

INSERT

UPDATE

Mesmo sem Db2 instalado, entender a sintaxe e o fluxo de execução já coloca o aluno em contato com a realidade do Mainframe.


LAB 19 – JSON

Gerar JSON.

Utilizar:

JSON GENERATE

Depois fazer:

JSON PARSE

Curiosidade

Hoje milhares de APIs REST utilizam exatamente essas instruções para conversar com aplicativos móveis e sistemas web.


LAB 20 – Projeto Final

Construir um pequeno sistema de cadastro.

Funcionalidades:

  • Cadastrar cliente

  • Alterar cliente

  • Excluir cliente

  • Consultar cliente

  • Relatório

  • Total de clientes

  • Validação de dados

  • Tratamento de erros

  • Mensagens amigáveis

Neste projeto, o aluno reúne praticamente todos os conceitos aprendidos nos laboratórios anteriores.


Dicas de Codificação que Todo Padawan Deveria Conhecer

  • Escreva um programa por vez e faça-o funcionar antes de adicionar novas funcionalidades.

  • Use nomes claros para variáveis: WS-NOME-CLIENTE é melhor que A1.

  • Comente por que o código existe, não apenas o que ele faz.

  • Padronize a indentação. Um código bem alinhado é muito mais fácil de manter.

  • Evite duplicação de lógica. Se um trecho será usado várias vezes, transforme-o em um parágrafo ou subprograma.

  • Compile frequentemente. Encontrar um erro logo após escrevê-lo é muito mais fácil do que depurar centenas de linhas depois.

  • Leia mensagens do compilador com atenção; elas ensinam muito.


Easter Eggs do COBOL

🔹 EVALUATE TRUE pode substituir longas cadeias de IF.

🔹 88-Level Condition Names deixam o código muito mais legível, permitindo escrever condições como IF CLIENTE-ATIVO.

🔹 REDEFINES permite enxergar a mesma área de memória de formas diferentes, um recurso poderoso quando usado com critério.

🔹 COPYBOOKS evitam duplicação e garantem padronização entre programas.

🔹 INSPECT pode substituir diversos loops para contar ou substituir caracteres.

🔹 INITIALIZE é uma forma elegante de limpar grupos inteiros de variáveis.

🔹 PERFORM THRU, apesar de existir, deve ser usado com cautela em novos projetos.


Como Evoluir Após os 20 Labs

Se você concluiu todos os laboratórios, já domina uma base sólida de COBOL. O próximo passo é expandir seu conhecimento para o ecossistema IBM Z.

Uma trilha recomendada é:

  1. JCL (Job Control Language)

  2. TSO/ISPF

  3. VSAM

  4. Db2 for z/OS

  5. CICS Transaction Server

  6. IMS DB/DC

  7. SORT (DFSORT e SyncSort)

  8. REXX

  9. Git e GitHub

  10. VS Code + Zowe Explorer

  11. DevOps para Mainframe

  12. APIs REST com z/OS Connect

  13. IBM MQ

  14. Testes com ZUnit

  15. Observabilidade, OpenTelemetry e automação com Ansible

Ao final dessa jornada, o aluno deixa de ser apenas um iniciante e passa a compreender como os grandes bancos, seguradoras e empresas de cartão de crédito desenvolvem e mantêm sistemas que processam milhões de transações diariamente.

Conclusão

Estes 20 laboratórios foram pensados para ensinar COBOL da mesma forma que um mestre Jedi ensina um Padawan: começando pelos fundamentos, praticando continuamente e aumentando a dificuldade de forma gradual. Em vez de decorar comandos, o aluno aprende a raciocinar como um desenvolvedor Mainframe, compreendendo não apenas como escrever código, mas por que determinadas práticas existem e como elas contribuem para criar sistemas robustos, seguros e preparados para décadas de evolução.

 

domingo, 20 de novembro de 2022

Laboratório CI/CD para Coboleiros Padawans

 

Bellacosa Mainframe e o laboratorio pratico em CI/CD para mainframers

☕ Um Café no Bellacosa Mainframe

Laboratório CI/CD para Coboleiros Padawans

Bem-vindo ao laboratório CI/CD para Coboleiros Padawans, uma jornada prática criada para mostrar que Continuous Integration e Continuous Delivery não são conceitos exclusivos do mundo distribuído, mas práticas cada vez mais presentes no ecossistema IBM Z. O objetivo deste treinamento é capacitar o desenvolvedor COBOL Jr a compreender como Git, pipelines, automação, testes, Docker, Jenkins, Zowe e ferramentas modernas trabalham em conjunto para entregar aplicações com mais qualidade, velocidade e segurança.

A metodologia é baseada em aprendizado progressivo (Learning by Doing). Cada laboratório apresenta um desafio prático, seguido de sua solução comentada e de uma explicação relacionando os conceitos modernos ao cotidiano do desenvolvedor mainframe. A cada etapa, o aluno evolui do entendimento dos fundamentos de versionamento até a construção de pipelines completos semelhantes aos utilizados em bancos, seguradoras e grandes corporações.

Durante os exercícios, o participante será incentivado a experimentar, cometer erros, interpretar logs, analisar falhas de compilação, resolver conflitos de merge e compreender o impacto das alterações em programas COBOL, COPYBOOKs, JCLs e ambientes de desenvolvimento. Afinal, falhas fazem parte do processo de aprendizado e representam oportunidades para desenvolver habilidades de diagnóstico e resolução de problemas.

Como ponto de atenção, este laboratório não pretende substituir os processos específicos adotados por cada empresa. Cada organização possui suas próprias ferramentas, políticas de aprovação, padrões de desenvolvimento e modelos de implantação. O foco está em desenvolver uma mentalidade DevOps aplicada ao Mainframe, permitindo que o aluno compreenda os princípios por trás das ferramentas e consiga adaptar esse conhecimento a qualquer ambiente IBM Z moderno. O objetivo final é formar profissionais capazes de integrar a tradição e a robustez do COBOL com as práticas contemporâneas de engenharia de software.

20 Labs para levar um Desenvolvedor COBOL Jr do "DISPLAY 'HELLO'" até um Pipeline Enterprise IBM Z

"Ninguém aprende CI/CD lendo slides. Aprende quebrando pipelines, corrigindo builds e descobrindo por que um simples COPYBOOK pode parar uma esteira inteira."

Este laboratório foi pensado para quem conhece COBOL, JCL e o mundo IBM Z, mas nunca trabalhou com DevOps, Git, Docker ou CI/CD. A ideia é evoluir passo a passo, sempre fazendo analogias com o ambiente mainframe.


Filosofia

Cada laboratório possui:

  • 🎯 Objetivo

  • 📚 Conceitos

  • 🔨 Exercício

  • ✅ Solução

  • ⭐ Nível

Ao final dos 20 laboratórios o aluno terá contato com praticamente todo o ciclo moderno de desenvolvimento envolvendo aplicações COBOL.


LAB 01 — O que é um Pipeline?

Nível

Objetivo

Entender visualmente um Pipeline.

Exercício

Desenhe um fluxo para um programa COBOL.

Fonte COBOL

↓

Compilação

↓

LinkEdit

↓

Testes

↓

Homologação

↓

Produção

Solução

O aluno percebe que um Pipeline nada mais é que uma sequência automatizada de etapas.


LAB 02 — Git é o novo PDS

Objetivo

Entender Git usando conceitos de Mainframe.

Exercício

Compare:

PDS

Git Repository
Membro

Arquivo
Backup

Commit

Solução

O aluno entende que Git é um versionador e não um diretório de arquivos.


LAB 03 — Primeiro Commit

Criar um repositório.

git init

Adicionar

HELLO.CBL

Executar

git add .
git commit

Solução

Criado o primeiro histórico.


LAB 04 — Branch é igual ambiente paralelo

⭐⭐

Criar

feature/cartao

Modificar o programa.

Fazer Merge.

Solução

Entender desenvolvimento paralelo.


LAB 05 — Conflito de COPYBOOK

⭐⭐

Dois alunos alteram

CLIENTE.CPY

Realizar Merge.

Resolver conflito.

Solução

Aprender Merge Conflict.


LAB 06 — O Build Manual

⭐⭐

Criar um fluxo.

Compila

↓

Link

↓

Executa

↓

Testa

Executar manualmente.

Solução

Perceber quanto trabalho existe.


LAB 07 — Automatizando o Build

⭐⭐

Criar um script.

build.sh

que execute todas as etapas.

Solução

Primeira automação.


LAB 08 — Docker para Coboleiros

⭐⭐

Criar um container Ubuntu.

Entrar.

Instalar Git.

Executar scripts.

Solução

Entender Container.

Easter Egg:

Container lembra JOB Batch.


LAB 09 — Criando uma Docker Image

⭐⭐⭐

Criar

Dockerfile

Adicionar

Git

Java

Python

Construir.

Solução

Image pronta para Pipeline.


LAB 10 — Jenkins faz o JCL Moderno

⭐⭐⭐

Criar um Job.

Sempre que ocorrer

git push

executar

build.sh

Solução

Primeiro Pipeline.


LAB 11 — Pipeline com Erro

⭐⭐⭐

Inserir erro proposital.

DISPLAY "OI"

remover ponto.

Pipeline deve falhar.

Solução

Aprender Build Failed.


LAB 12 — Quality Gate

⭐⭐⭐

Executar análise estática.

Encontrar

  • variáveis mortas

  • código duplicado

  • GO TO desnecessário

Solução

Entender qualidade.


LAB 13 — Testes Automatizados

⭐⭐⭐⭐

Criar casos.

Entrada

100

Saída

Juros

Executar automaticamente.

Solução

Pipeline não depende do usuário.


LAB 14 — Integração com Banco

⭐⭐⭐⭐

Criar ambiente.

Docker

↓

Db2 Simulado

↓

Programa

Executar testes.

Solução

Primeiro teste integrado.


LAB 15 — Deploy Automatizado

⭐⭐⭐⭐

Pipeline publica automaticamente.

DEV

↓

QA

Solução

Entrega contínua.


LAB 16 — Rollback

⭐⭐⭐⭐

Deploy gera erro.

Voltar versão anterior.

Solução

Rollback automático.


LAB 17 — Pipeline Enterprise IBM Z

⭐⭐⭐⭐⭐

Adicionar

Git

↓

Jenkins

↓

DBB

↓

Compile

↓

Link

↓

Bind

↓

Deploy

Solução

Pipeline semelhante ao de grandes bancos.


LAB 18 — Pipeline Híbrido

⭐⭐⭐⭐⭐

Frontend

Docker

API

MQ

COBOL

Db2

Solução

Mostrar que o Mainframe faz parte do Pipeline.

Não está isolado.


LAB 19 — Pipeline Completo

⭐⭐⭐⭐⭐

Fluxo

Git Push

↓

Build

↓

Docker

↓

Sonar

↓

Testes

↓

Artifact

↓

Deploy DEV

↓

Deploy QA

↓

Aprovação

↓

Produção

Solução

Pipeline Enterprise.


LAB 20 — Missão Final

⭐⭐⭐⭐⭐

Criar um Pipeline completo.

Projeto:

Sistema Bancário.

Alterar

CLIENTE.CBL

Executar

  • Build

  • Testes

  • Merge

  • Docker

  • Jenkins

  • Publicação

  • Rollback

Documentar tudo.

Solução

O aluno entrega um Pipeline funcional semelhante ao utilizado em grandes instituições financeiras.


🏆 Desafio Bônus 1 — O Pipeline Quebrado

O instrutor entrega um pipeline com cinco falhas escondidas:

  • branch incorreta;

  • variável de ambiente ausente;

  • caminho inválido para um COPYBOOK;

  • etapa de testes desabilitada;

  • deploy apontando para o ambiente errado.

O objetivo é investigar logs, identificar a causa e restaurar a execução.

Competências desenvolvidas: leitura de logs, troubleshooting e análise de causa raiz.


🏆 Desafio Bônus 2 — O Detetive do COPYBOOK

Um único COPYBOOK foi alterado.

O aluno deve identificar:

  • quais programas precisam ser recompilados;

  • quais JCLs podem ser impactados;

  • quais testes devem ser executados.

Competências desenvolvidas: análise de dependências e impacto.


🏆 Desafio Bônus 3 — Pipeline Seguro

Adicionar ao pipeline:

  • aprovação obrigatória antes da produção;

  • Quality Gate mínimo (ex.: 80%);

  • bloqueio de merge se houver falha nos testes;

  • geração automática de relatório.

O objetivo é entender que CI/CD também envolve governança.


🎓 Projeto Final — O Banco Bellacosa

Ao final do curso, o aluno recebe uma aplicação COBOL composta por:

  • 12 programas COBOL;

  • 8 COPYBOOKs;

  • 6 JCLs;

  • 2 tabelas Db2;

  • 1 transação CICS;

  • repositório Git inicial.

A missão é modernizar o processo de entrega criando um pipeline completo que:

  • utilize Git com branches (main, develop e feature/*);

  • automatize build e testes;

  • execute análise de qualidade;

  • gere artefatos versionados;

  • promova automaticamente para DEV e QA;

  • exija aprovação para produção;

  • implemente rollback para a última versão estável;

  • documente toda a esteira.

Ao concluir esse projeto, o COBOL Jr terá percorrido uma jornada que começa com um simples git init e termina entendendo como grandes bancos entregam software crítico no IBM Z. Mais importante do que decorar comandos, ele terá desenvolvido a mentalidade de engenharia de software moderna, percebendo que, no universo Bellacosa Mainframe, o programa COBOL é apenas uma peça de uma engrenagem muito maior: uma esteira automatizada que garante qualidade, rastreabilidade e segurança do primeiro commit até a produção.


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