Translate

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.


Sem comentários:

Enviar um comentário