← Últimos artigos
💻 computer science

Portable and Secure CI/CD for COBOL: Lessons from an Industrial Migration

Este artigo descreve a migração de um pipeline de CI/CD Jenkins para COBOL, utilizado pela cooperativa Bankdata, de uma arquitetura frágil e dependente de scripts Groovy para uma solução contêinerizada com abstração de plataforma e imagem OCI pré-construída, resultando em uma redução de 82% no tempo de execução e oferecendo lições valiosas para a modernização de sistemas legados em ambientes regulados.

Autores originais: Andreas Askholm, Kenneth Johnsen, Jacopo Mauro

Publicado 2026-04-02
📖 4 min de leitura☕ Leitura rápida

Autores originais: Andreas Askholm, Kenneth Johnsen, Jacopo Mauro

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que o Bankdata (uma grande cooperativa de bancos na Dinamarca) é como uma antiga e gigantesca fábrica de relógios. Essa fábrica usa máquinas incrivelmente precisas, mas que foram construídas há 40 anos (chamadas de mainframes rodando COBOL). Elas funcionam perfeitamente, mas são difíceis de mexer.

Para manter essa fábrica funcionando, eles precisavam de um "engenheiro de controle" (o sistema de CI/CD) que verificasse se cada nova peça de relógio estava correta antes de ser instalada. O problema é que esse engenheiro estava usando um manual de instruções muito antigo, escrito em uma linguagem confusa e dependente de uma única marca de ferramentas (o Jenkins).

Aqui está o que aconteceu, explicado de forma simples:

1. O Problema: Um Engenheiro Amarrado a um Cordão

Antes da mudança, o sistema de verificação era como um cozinheiro que tinha que ir até a mercearia comprar os ingredientes toda vez que ia fazer um prato.

  • Lento: Cada vez que precisavam testar um código, o sistema gastava tempo procurando e instalando ferramentas (como o "COBOL Expander" e compiladores).
  • Frágil: O manual de instruções estava espalhado em quatro livros diferentes (repositórios) e cheio de referências específicas apenas para a marca "Jenkins". Se a marca mudasse uma coisa pequena, o cozinheiro não sabia mais cozinhar.
  • Perigoso: Como as ferramentas eram baixadas na hora, havia risco de alguém colocar um ingrediente estragado (segurança) ou o prato sair diferente dependendo de quem estava cozinhando.

2. A Solução: A "Cozinha de Montagem" (Containerização)

A equipe decidiu mudar a abordagem. Em vez de um cozinheiro que compra ingredientes na hora, eles criaram uma caixa de viagem pronta (um Container).

  • A Caixa Mágica: Eles criaram uma "caixa" (imagem de container) que já vinha de fábrica com tudo o que era necessário: o compilador, as ferramentas de teste, o sistema operacional e até o manual de instruções.
  • O Abstrato: Eles criaram uma "camada de tradução". Imagine que o cozinheiro agora fala uma linguagem universal. Se ele precisa pedir algo para a máquina, ele fala com um tradutor. O tradutor sabe se a máquina é da marca "Jenkins" ou "GitHub Actions" e faz a tradução. Assim, o cozinheiro nunca precisa saber qual máquina está usando.

3. O Resultado: Velocidade e Segurança

Quando colocaram essa nova "caixa pronta" para funcionar no novo sistema (GitHub Actions), a mágica aconteceu:

  • Velocidade: O tempo de teste caiu de 724 segundos para apenas 130 segundos. É como se um prato que levava 12 minutos para ficar pronto, agora saísse em 2 minutos. Uma redução de 82% no tempo!
  • Segurança: Como a caixa já vem pronta e verificada, não há risco de ingredientes estragados entrarem na cozinha.
  • Liberdade: Agora, se eles quiserem mudar de marca de "cozinha" no futuro, basta trocar a caixa. O cozinheiro e o manual continuam os mesmos.

4. Lições Aprendidas (O Que Isso Ensina a Todos)

  • Não dependa de uma única marca: Se você amarra seu sistema a uma ferramenta específica, fica preso a ela. Criar camadas de abstração (tradutores) dá liberdade.
  • Leve a cozinha com você: Em vez de instalar coisas na hora, leve tudo pronto em um container. Isso garante que o resultado seja sempre o mesmo, não importa onde você esteja.
  • Pessoas são importantes: Não adianta ter a tecnologia mais rápida se os programadores (os cozinheiros) não entenderem como usá-la. Eles precisaram ser envolvidos no processo e receber treinamento para não se sentirem perdidos na nova interface.

Resumo da Ópera

O Bankdata pegou um sistema de verificação antigo, lento e preso a uma única tecnologia, e o transformou em algo rápido, portátil e seguro, usando "caixas prontas" (containers) e um "tradutor" inteligente. Isso permitiu que eles continuassem usando suas máquinas antigas e confiáveis (COBOL), mas com a agilidade de uma startup moderna.

A metáfora final: Eles trocaram um carro antigo que precisava de mecânico para trocar o óleo a cada 10km, por um carro elétrico que já vem com bateria carregada e pode rodar em qualquer estrada do mundo sem precisar de adaptações.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →