☕ 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

sexta-feira, 19 de junho de 2026

🚀 CICS BMS para Padawans: Do Primeiro MAP ao Mundo Real dos Sistemas Bancários

Selecione um artigo ☕





IBM MQ sem Mistérios: da Primeira Fila ao Salto Quântico da Integração Corporativa

 

Bellacosa Mainframe uma visao do ibm mq 10

☕ Um Café no Bellacosa Mainframe

IBM MQ sem Mistérios: da Primeira Fila ao Salto Quântico da Integração Corporativa

O guia do Programador COBOL Padawan para compreender mensagens, filas, Queue Managers, canais, segurança, clusters, containers e a evolução do MQSeries ao IBM MQ 10.0

Existe uma cena clássica em praticamente todo ambiente corporativo: de um lado, temos um programa COBOL executando tranquilamente no z/OS; do outro, uma aplicação Java, um aplicativo bancário, uma API escrita em Python, um sistema Linux, um serviço na nuvem ou algum microsserviço perdido dentro de um cluster Kubernetes.

Todos precisam conversar.

O problema é que eles não falam necessariamente a mesma língua, não estão ligados no mesmo horário, não possuem a mesma velocidade e, pior ainda, podem ficar indisponíveis justamente no momento em que a mensagem precisa ser entregue.

É aí que entra o IBM MQ.

O MQ funciona como uma espécie de Central de Comunicações da Frota Estelar. A USS Enterprise não precisa pousar em cada planeta para entregar uma ordem. Ela transmite a mensagem por uma infraestrutura preparada para transportar, proteger, armazenar e encaminhar a comunicação.

No mundo corporativo, o IBM MQ desempenha uma missão semelhante.

Ele permite que aplicações diferentes troquem informações com segurança, confiabilidade e independência. Um programa envia uma mensagem; o MQ armazena essa mensagem; outro programa a recebe quando estiver pronto.

A ideia parece simples.

Mas é justamente essa simplicidade que sustenta bancos, seguradoras, companhias aéreas, governos, varejistas, indústrias, sistemas de pagamento e inúmeras operações críticas ao redor do planeta.

Prepare sua caneca de café, ajuste o uniforme da Frota e ligue o terminal 3270. Nossa missão será atravessar mais de três décadas de evolução do IBM MQ, começando no antigo MQSeries e chegando ao IBM MQ 10.0.


Capítulo I — Antes do MQ: quando as aplicações precisavam esperar umas pelas outras

Imagine que um programa chamado PGMPED01 precise enviar um pedido para outro programa chamado PGMFAT01.

Sem mensageria, o primeiro programa poderia chamar diretamente o segundo:

PGMPED01 ───────────────► PGMFAT01
           chamada direta

Essa arquitetura pode funcionar enquanto tudo estiver perfeitamente disponível.

Mas o que acontece quando:

  • o segundo programa está parado;

  • a rede caiu;

  • o servidor remoto está em manutenção;

  • o processamento demora;

  • há milhares de solicitações simultâneas;

  • uma das aplicações é atualizada;

  • o sistema consumidor precisa ser transferido para outra plataforma?

Na comunicação direta, o produtor e o consumidor ficam fortemente acoplados.

O programa produtor precisa conhecer:

  • o endereço do consumidor;

  • o protocolo utilizado;

  • o formato esperado;

  • o tempo de resposta;

  • a condição de disponibilidade.

É como se o capitão de uma nave precisasse localizar pessoalmente cada tripulante para entregar uma ordem. Se o oficial estivesse dormindo, em missão externa ou preso no Holodeck, toda a operação ficaria bloqueada.

O MQ introduz um intermediário:

PGMPED01 ───► FILA.PEDIDOS ───► PGMFAT01

O produtor não entrega diretamente ao consumidor. Ele coloca a mensagem em uma fila.

O consumidor não precisa estar funcionando naquele instante. Quando estiver disponível, poderá retirar e processar a mensagem.

Esse é o coração da comunicação assíncrona.


Capítulo II — O que significa MQ?

MQ tornou-se associado a Message Queueing, ou enfileiramento de mensagens.

O produto começou como MQSeries em 1993, depois foi renomeado WebSphere MQ em 2002 e passou a se chamar IBM MQ em 2014. A solução cresceu de uma plataforma de filas para um conjunto completo de recursos de mensageria corporativa, disponível em z/OS, sistemas distribuídos, appliances, nuvem e containers. (Wikipedia)

Uma mensagem é uma unidade de informação enviada por uma aplicação.

Ela pode conter:

  • uma transação bancária;

  • um pedido de compra;

  • os dados de um cliente;

  • uma solicitação de pagamento;

  • uma notificação;

  • um evento de estoque;

  • um documento JSON;

  • um registro COBOL;

  • uma instrução para outro sistema;

  • até mesmo dados binários.

A fila é o local lógico onde essa mensagem aguarda processamento.

Pense em uma estação ferroviária.

Os passageiros são as mensagens.

A plataforma é a fila.

O trem é o canal de transporte.

A estação central é o Queue Manager.

Os fiscais são as regras de segurança.

O sistema de sinalização representa os mecanismos de confirmação, controle e recuperação.

No universo da Frota Estelar, podemos fazer outra analogia:

Mensagem        = ordem da missão
Fila            = caixa de comunicações
Queue Manager   = computador central da nave
Canal           = frequência de transmissão
Aplicação       = tripulante remetente ou destinatário

Capítulo III — A criatura mais importante: o Queue Manager

O Queue Manager, ou gerenciador de filas, é o coração operacional do IBM MQ.

Ele administra:

  • filas;

  • mensagens;

  • conexões;

  • canais;

  • segurança;

  • recuperação;

  • logs;

  • persistência;

  • transações;

  • entrega entre ambientes.

Um Queue Manager pode ser imaginado como uma agência central dos Correios. Ele conhece as caixas postais, controla o armazenamento e encaminha as mensagens para outros locais.

Exemplo conceitual:

+---------------------------------------+
|         QUEUE MANAGER QMZOS01         |
|                                       |
|  FILA.PEDIDOS                         |
|  FILA.PAGAMENTOS                      |
|  FILA.RESPOSTAS                       |
|  FILA.ERROS                           |
|                                       |
|  Canais, logs, segurança e controle   |
+---------------------------------------+

Um programa pode abrir uma fila e colocar uma mensagem usando uma chamada MQPUT.

Outro programa pode abrir a mesma fila e obter a mensagem usando MQGET.

Fluxo básico:

Programa produtor
      |
      | MQPUT
      v
FILA.PEDIDOS
      |
      | MQGET
      v
Programa consumidor

No mundo COBOL, essas operações podem ser efetuadas por meio da interface MQI, a Message Queue Interface.

Uma sequência lógica simplificada seria:

MQCONN  → conectar ao Queue Manager
MQOPEN  → abrir uma fila
MQPUT   → colocar uma mensagem
MQCLOSE → fechar a fila
MQDISC  → desconectar

Para consumir:

MQCONN  → conectar
MQOPEN  → abrir
MQGET   → obter a mensagem
MQCLOSE → fechar
MQDISC  → desconectar

Esse ciclo é quase um ritual de embarque:

  1. entrar na nave;

  2. abrir o canal;

  3. transmitir ou receber;

  4. fechar o canal;

  5. desembarcar.


Capítulo IV — 1993: nasce o MQSeries

A década de 1990 foi um período de enorme fragmentação tecnológica.

Empresas possuíam:

  • mainframes;

  • servidores Unix;

  • PCs;

  • bancos de dados diferentes;

  • sistemas departamentais;

  • aplicações cliente-servidor;

  • redes heterogêneas.

A comunicação entre essas plataformas era complicada.

O MQSeries surgiu para fornecer mensageria confiável entre sistemas distribuídos.

A grande inovação não era apenas transportar dados. Era permitir que a aplicação produtora continuasse trabalhando sem precisar esperar que a aplicação consumidora terminasse.

Veja a diferença.

Comunicação síncrona

Aplicação A chama Aplicação B
Aplicação A fica esperando
Aplicação B processa
Aplicação B responde
Aplicação A continua

Comunicação assíncrona

Aplicação A envia mensagem
Aplicação A continua trabalhando
Aplicação B processa quando puder

Esse desacoplamento oferece quatro liberdades importantes:

Liberdade de tempo

Produtor e consumidor não precisam estar ativos simultaneamente.

Liberdade de plataforma

Um pode estar no z/OS; o outro, no Linux.

Liberdade de velocidade

O produtor pode enviar rapidamente, enquanto o consumidor processa no próprio ritmo.

Liberdade de evolução

Uma aplicação pode ser modificada sem exigir alteração imediata na outra, desde que o contrato da mensagem seja preservado.

Essa filosofia permanece válida mesmo depois de três décadas.


Capítulo V — Mensagens persistentes: o diário de bordo que não pode desaparecer

Nem toda mensagem possui a mesma importância.

Uma notificação de temperatura pode eventualmente ser descartada.

Uma transferência bancária, não.

Por isso, o MQ diferencia mensagens persistentes e não persistentes.

Mensagem não persistente

É normalmente utilizada quando desempenho é mais importante e uma eventual perda pode ser tolerada.

Exemplos:

  • telemetria temporária;

  • atualização visual;

  • evento sem valor transacional;

  • informação que pode ser recriada.

Mensagem persistente

É protegida pelos mecanismos de log e recuperação do Queue Manager.

Exemplos:

  • pagamento;

  • transferência;

  • pedido;

  • alteração de conta;

  • movimentação contábil;

  • reserva de passagem.

Se o sistema falhar, a mensagem persistente pode ser recuperada.

É o equivalente ao diário de bordo da Enterprise. Mesmo que a nave sofra uma pane, as informações essenciais da missão não podem simplesmente evaporar no espaço.


Capítulo VI — Commit e Backout: quando o MQ entra na transação

O MQ também pode participar de unidades de trabalho.

Imagine que um programa COBOL:

  1. leia uma mensagem da fila;

  2. atualize uma tabela Db2;

  3. grave um registro;

  4. confirme a transação.

Se tudo funcionar:

COMMIT

A mensagem é definitivamente removida da fila e a atualização do banco é confirmada.

Se ocorrer um erro:

ROLLBACK ou BACKOUT

A atualização é desfeita e a mensagem pode retornar à fila para nova tentativa.

Esse comportamento é fundamental para evitar o pior cenário de integração:

Mensagem removida
+
Banco não atualizado
=
Transação perdida

Quando MQ e Db2 estão coordenados corretamente, o processamento pode obedecer ao princípio:

Ou tudo acontece, ou nada acontece.

É a famosa atomicidade transacional.

Nenhum oficial da Frota gostaria de registrar “torpedo disparado” sem que o torpedo tivesse realmente sido lançado — ou lançar o torpedo sem atualizar o diário da batalha.


Capítulo VII — Canais: as rotas interestelares do MQ

Quando dois Queue Managers precisam conversar, normalmente utilizam canais.

Exemplo:

QMZOS01 ───────────────► QMLNX01
        canal emissor

Em uma configuração distribuída clássica, podemos encontrar:

  • Sender Channel;

  • Receiver Channel;

  • Server Connection Channel;

  • Client Connection Channel;

  • Cluster Sender;

  • Cluster Receiver.

Um Sender Channel envia mensagens.

Um Receiver Channel recebe.

Um Server Connection Channel permite que uma aplicação cliente se conecte remotamente a um Queue Manager.

Para o Programador COBOL iniciante, a distinção essencial é:

Aplicação local
    usa o Queue Manager próximo

Queue Manager
    usa canais para conversar com outro Queue Manager

A aplicação não precisa conhecer todos os detalhes da rota.

Ela coloca a mensagem em uma fila. O MQ resolve o transporte segundo a configuração existente.

É como pedir ao computador da nave:

“Entregue esta mensagem à Base Estelar 12.”

O tripulante não precisa calcular cada dobra espacial, cada repetidor subespacial ou cada salto intermediário.


Capítulo VIII — Filas locais, remotas e de transmissão

Uma fila local armazena mensagens dentro do Queue Manager.

FILA.LOCAL.PEDIDOS

Uma definição de fila remota representa um destino existente em outro Queue Manager.

FILA.REMOTA.FATURAMENTO

Uma fila de transmissão armazena temporariamente mensagens destinadas a outro Queue Manager.

Fluxo simplificado:

Aplicação
   |
   v
Definição remota
   |
   v
Fila de transmissão
   |
   v
Sender Channel
   |
   v
Receiver Channel
   |
   v
Fila local no destino

Você pode imaginar a fila remota como o endereço da Base Estelar, enquanto a fila de transmissão funciona como o compartimento de carga onde as mensagens aguardam a próxima nave de transporte.


Capítulo IX — Final dos anos 1990: agrupamento e clustering

À medida que o MQ crescia, surgiram necessidades mais sofisticadas.

Uma delas era transportar conjuntos de mensagens relacionadas.

Imagine um pedido composto por:

  • cabeçalho;

  • cliente;

  • dez itens;

  • pagamento;

  • entrega.

Essas partes podem ser enviadas como mensagens separadas, mas precisam ser processadas como um grupo lógico.

Outro avanço importante foi o clustering.

Sem cluster:

Aplicação
   |
   v
Queue Manager único

Se esse Queue Manager sofrer uma interrupção, o caminho pode ficar indisponível.

Com um cluster:

                  ┌──► QM01
Aplicação ────────┼──► QM02
                  └──► QM03

O cluster oferece mecanismos para distribuir mensagens entre instâncias de filas disponíveis em diferentes Queue Managers.

Mas atenção, Padawan: cluster não é sinônimo automático de alta disponibilidade completa.

Ele ajuda na conectividade e distribuição de carga, mas o projeto ainda precisa considerar:

  • disponibilidade do Queue Manager;

  • armazenamento;

  • aplicações consumidoras;

  • rede;

  • recuperação de desastre;

  • persistência;

  • afinidade de mensagens;

  • monitoramento.

Essa é uma armadilha frequente.

Cluster não é magia Jedi. É arquitetura.


Capítulo X — 2002: a era WebSphere MQ

Em 2002, o produto passou a integrar a família WebSphere e recebeu o nome WebSphere MQ. A mudança refletia o período em que arquiteturas Java, J2EE, serviços Web e integração corporativa ganhavam enorme importância. (Wikipedia)

Era a era da SOA: Service-Oriented Architecture.

A empresa deixava de pensar apenas em programas isolados e passava a organizar funcionalidades como serviços.

Exemplo:

Serviço de Cliente
        |
        v
       MQ
        |
        v
Serviço de Crédito
        |
        v
       MQ
        |
        v
Serviço de Faturamento

O MQ tornou-se um elemento essencial para conectar serviços sem criar dependências rígidas.

Muito antes de expressões como “microsserviços” e “cloud native” dominarem as conferências, o MQ já praticava princípios que permanecem modernos:

  • desacoplamento;

  • comunicação assíncrona;

  • contratos de mensagem;

  • tolerância a falhas;

  • processamento distribuído;

  • segurança;

  • rastreabilidade.

Curiosidade: vários conceitos vendidos hoje como novidades absolutas já frequentavam os corredores do mainframe quando muito desenvolvedor moderno ainda usava conexão discada.


Capítulo XI — Publish/Subscribe: uma mensagem para muitos ouvintes

No modelo tradicional de fila, uma mensagem é normalmente consumida por um consumidor.

Produtor ───► Fila ───► Consumidor

No modelo Publish/Subscribe, o produtor publica uma informação em um tópico.

Vários assinantes podem recebê-la.

                         ┌──► Assinante A
Publicador ──► Tópico ───┼──► Assinante B
                         └──► Assinante C

Exemplo: uma transação de venda foi concluída.

O evento pode interessar a:

  • estoque;

  • faturamento;

  • logística;

  • análise de fraude;

  • programa de fidelidade;

  • data lake;

  • sistema de notificações.

Em vez de o sistema de vendas chamar seis aplicações diferentes, ele publica um evento:

VENDA.CONCLUIDA

Cada assinante recebe e processa a informação segundo sua finalidade.

Essa arquitetura reduz acoplamento e facilita a inclusão de novos consumidores.

A ponte da Enterprise anuncia:

“Alerta vermelho!”

Segurança, Engenharia, Enfermaria e Comando recebem o mesmo evento, mas cada departamento toma uma ação diferente.

Isso é Publish/Subscribe explicado pela Frota Estelar.


Capítulo XII — WebSphere MQ 7 e a abertura para JMS, MQTT e alta disponibilidade

A evolução do MQ acompanhou Java, dispositivos conectados e arquiteturas distribuídas.

JMS facilitou a integração com aplicações Java.

MQTT tornou-se especialmente importante em cenários de dispositivos leves e telemetria.

Imagine:

Sensor industrial
       |
       | MQTT
       v
Gateway ou infraestrutura de mensageria
       |
       v
IBM MQ
       |
       v
Sistema corporativo

Um sensor não precisa executar um cliente pesado. Ele pode publicar dados usando um protocolo enxuto, enquanto a infraestrutura corporativa recebe, converte, distribui e processa as informações.

O MQ começou como um mensageiro entre sistemas corporativos e evoluiu para participar de ecossistemas com:

  • dispositivos;

  • aplicações móveis;

  • sistemas web;

  • Java;

  • integração empresarial;

  • serviços externos.


Capítulo XIII — Segurança: não basta entregar, é preciso proteger

Em mensageria corporativa, temos pelo menos cinco perguntas fundamentais:

  1. Quem está se conectando?

  2. A pessoa ou aplicação está autenticada?

  3. Ela tem autorização para acessar a fila?

  4. A comunicação está criptografada?

  5. A mensagem pode ser auditada?

A segurança pode envolver:

  • TLS;

  • certificados;

  • autenticação;

  • autorização;

  • CHLAUTH;

  • CONNAUTH;

  • RACF no z/OS;

  • proteção de filas;

  • identidades de usuários;

  • políticas de Advanced Message Security;

  • registros e monitoramento.

No z/OS, o RACF pode controlar o acesso aos recursos do MQ.

Exemplo conceitual:

Usuário APPPED01
pode PUT em FILA.PEDIDOS

Usuário APPFAT01
pode GET em FILA.PEDIDOS

Usuário DESCONHECIDO
não pode acessar

Uma boa prática é seguir o princípio do menor privilégio.

O produtor não precisa necessariamente retirar mensagens.

O consumidor não precisa necessariamente colocar mensagens.

O operador não precisa ler o conteúdo comercial.

O auditor não precisa alterar configurações.

Cada tripulante deve possuir apenas os acessos necessários para a própria missão.

Dar autoridade total a todas as aplicações seria como distribuir códigos de autodestruição da Enterprise para qualquer cadete recém-chegado.


Capítulo XIV — Advanced Message Security e Managed File Transfer

O Advanced Message Security permite aplicar proteção à própria mensagem.

Isso é diferente de proteger somente o canal.

TLS protege a comunicação durante o transporte:

Aplicação A ===== canal protegido ===== MQ

A proteção no nível da mensagem pode manter o conteúdo protegido mesmo enquanto ele passa por intermediários.

É a diferença entre:

  • transportar uma carta dentro de um túnel seguro;

  • colocar a carta em um envelope que somente o destinatário pode abrir.

O Managed File Transfer utiliza a infraestrutura e os controles de MQ para transferências de arquivos gerenciadas.

Isso pode oferecer:

  • auditoria;

  • rastreabilidade;

  • automação;

  • segurança;

  • confirmação;

  • integração com processos;

  • tratamento de falhas.

Em muitas empresas, mover um arquivo não significa simplesmente executar FTP. É preciso saber:

  • quem enviou;

  • quando enviou;

  • qual era o tamanho;

  • se chegou;

  • se foi processado;

  • se houve erro;

  • se ocorreu nova tentativa.

O MFT transforma a transferência em uma operação governada.


Capítulo XV — 2014: nasce oficialmente o nome IBM MQ

Em 2014, o produto deixou a identidade WebSphere e passou a chamar-se IBM MQ. (Wikipedia)

A mudança simbolizou sua independência e amplitude.

O MQ já não era apenas uma peça de um conjunto de ferramentas web. Era uma plataforma de mensageria com identidade própria, presente em múltiplos sistemas operacionais e arquiteturas.

Nessa fase ganharam destaque recursos como:

  • interfaces administrativas modernas;

  • console web;

  • conectividade aprimorada;

  • appliances;

  • maior integração operacional.

O IBM MQ Appliance ofereceu uma forma integrada de executar mensageria em equipamento dedicado, reduzindo parte do trabalho de montagem da pilha de infraestrutura.

Para algumas organizações, isso significava receber uma espécie de “nave pronta para voar”, em vez de montar motor, casco, computador, escudos e sistema de dobra separadamente.


Capítulo XVI — LTS e Continuous Delivery

A partir da família 9, compreender os modelos de entrega tornou-se essencial.

LTS — Long Term Support

Destinado a organizações que priorizam estabilidade e permanência em uma linha de manutenção por um período prolongado.

A IBM define o LTS como o nível recomendado para ambientes que exigem máxima estabilidade. Atualizações LTS recebem correções de defeitos e segurança, enquanto novas capacidades chegam por novas bases LTS ou são incorporadas a partir da evolução do fluxo CD. (IBM)

CD — Continuous Delivery

Entrega funcionalidades com maior frequência.

Exemplos de numeração:

9.4.0 = base LTS
9.4.1 = CD
9.4.2 = CD
9.4.3 = CD

A IBM explica que versões LTS utilizam normalmente o nível de modificação zero, enquanto as entregas CD utilizam níveis subsequentes. (IBM)

A escolha depende da missão.

Um banco com processos rígidos pode preferir LTS.

Um laboratório, uma equipe de inovação ou um ambiente que necessita rapidamente de determinada capacidade pode adotar CD.

Não existe “melhor” universal.

Existe o modelo adequado ao risco, governança e velocidade da organização.


Capítulo XVII — IBM MQ 9.1, 9.2, 9.3 e 9.4: o MQ entra definitivamente na era híbrida

A família 9 consolidou o MQ dentro do novo universo tecnológico:

  • containers;

  • Docker;

  • Kubernetes;

  • OpenShift;

  • REST;

  • JSON;

  • autenticação moderna;

  • observabilidade;

  • automação;

  • integração híbrida.

O IBM MQ 9.4 LTS tornou-se disponível em junho de 2024. Entre suas capacidades estavam melhorias administrativas, ampliação de escalabilidade no channel initiator do z/OS, aprimoramentos nos registros SMF, evolução do console e mensageria remota por REST API. (IBM)

Observe o que isso representa.

Um produto nascido em 1993 consegue operar em um ambiente com:

COBOL + CICS + Db2 + z/OS
              |
              v
             MQ
              |
              v
Java + Spring Boot + OpenShift + Kubernetes

Não foi necessário jogar fora o mainframe.

Não foi necessário reescrever todos os programas COBOL.

Foi criada uma ponte.

Essa é uma das maiores lições do MQ: modernização não significa necessariamente substituição.

Muitas vezes, modernizar significa expor, integrar, proteger, automatizar e observar melhor aquilo que já funciona.


Capítulo XVIII — 2026: IBM MQ 10.0 entra em cena

O IBM MQ 10.0 LTS foi anunciado em abril de 2026 e disponibilizado em junho de 2026, sucedendo o IBM MQ 9.4.0 LTS e a última entrega CD da linha 9.4, a versão 9.4.5. (IBM)

A versão reforça uma mensagem importante:

O MQ não está sendo mantido apenas por compatibilidade. Ele continua evoluindo para enfrentar novos problemas corporativos.

Entre os avanços documentados para o MQ 10.0 aparecem recursos ligados a:

  • conectividade simplificada com a nuvem;

  • melhorias de console;

  • recuperação de site alternativo;

  • monitoramento de Native HA;

  • tracing integrado com OpenTelemetry;

  • aprimoramentos administrativos;

  • segurança;

  • containers;

  • resiliência. (IBM)

No campo da segurança, o MQ 10.0 também trouxe suporte a mecanismos de troca de chaves quantum-safe baseados em FIPS 203 e ML-KEM para canais TLS 1.3 em plataformas compatíveis. A finalidade é ajudar a proteger comunicações contra o cenário conhecido como “coletar agora e descriptografar depois”. (IBM)

Aqui está o grande salto histórico:

1993: transportar mensagens entre aplicações

2026: transportar mensagens com integração híbrida,
observabilidade, automação, segurança moderna,
containers e preparação criptográfica para o futuro

A missão original permaneceu.

A nave ganhou novos motores.


Capítulo XIX — Exemplo completo: um pagamento processado por COBOL

Considere um aplicativo de pagamento.

O cliente realiza uma transferência.

Etapa 1 — Aplicativo envia a solicitação

{
  "contaOrigem": "12345",
  "contaDestino": "98765",
  "valor": 150.00
}

Etapa 2 — API valida o formato

A API verifica token, campos obrigatórios e limites básicos.

Etapa 3 — API publica no MQ

FILA.PAGAMENTOS.ENTRADA

Etapa 4 — Programa COBOL consome

Um programa CICS ou batch executa MQGET.

Etapa 5 — Regra de negócio é aplicada

O programa verifica:

  • saldo;

  • situação da conta;

  • limite;

  • bloqueios;

  • antifraude;

  • dados cadastrais.

Etapa 6 — Db2 é atualizado

UPDATE CONTA
SET SALDO = SALDO - :VALOR
WHERE NUM_CONTA = :ORIGEM

Etapa 7 — Transação é confirmada

Se tudo funcionar:

COMMIT

Etapa 8 — Resposta é publicada

FILA.PAGAMENTOS.RESPOSTA

Etapa 9 — Aplicativo recebe a confirmação

{
  "status": "APROVADO",
  "codigo": "TX458902"
}

Agora suponha que o programa COBOL esteja indisponível durante três minutos.

A API não precisa perder o pagamento.

A mensagem pode permanecer na fila até que o consumidor retorne.

Esse é o verdadeiro poder do desacoplamento temporal.


Capítulo XX — Dead-letter queue: o cemitério que precisa ser investigado

Quando uma mensagem não consegue chegar ao destino, ela pode ser encaminhada para a Dead-Letter Queue.

Mas cuidado com o nome.

Ela não deve ser tratada como um lixão.

Uma mensagem na DLQ representa uma anomalia:

  • destino inexistente;

  • fila cheia;

  • erro de roteamento;

  • configuração incorreta;

  • autorização;

  • canal indisponível;

  • definição remota errada.

Uma DLQ ignorada é como uma cápsula de fuga à deriva. Pode parecer apenas um ponto luminoso no radar, mas talvez contenha informações vitais.

Boas práticas:

  • monitore a DLQ;

  • investigue o motivo;

  • corrija a causa;

  • reencaminhe quando apropriado;

  • mantenha trilha de auditoria;

  • evite simplesmente apagar.


Capítulo XXI — Backout Queue: a mensagem Klingon indestrutível

Imagine que uma mensagem defeituosa seja lida por um programa.

O programa falha.

A transação executa rollback.

A mensagem retorna à fila.

O programa lê novamente.

Falha novamente.

Isso pode criar um loop:

GET
erro
ROLLBACK
GET
erro
ROLLBACK
GET
erro
ROLLBACK

Para evitar esse ciclo, é possível utilizar mecanismos de backout.

Após determinada quantidade de tentativas, a mensagem pode ser movida para uma fila de exceção:

FILA.PAGAMENTOS.BACKOUT

Essa mensagem é frequentemente chamada de poison message.

Ela não é literalmente venenosa, mas provoca falha repetitiva no consumidor.

Dica de campo: sempre trate o contador de backout e projete uma estratégia para mensagens problemáticas. Não deixe o programa lutar eternamente contra o mesmo Klingon em um loop temporal.


Capítulo XXII — Passo a passo para o COBOL Padawan começar a estudar

Passo 1 — Domine os conceitos

Antes de instalar qualquer coisa, compreenda:

  • mensagem;

  • fila;

  • Queue Manager;

  • canal;

  • persistência;

  • commit;

  • rollback;

  • produtor;

  • consumidor;

  • cluster;

  • Publish/Subscribe.

Passo 2 — Desenhe um fluxo simples

PRODUTOR → FILA → CONSUMIDOR

Depois acrescente:

PRODUTOR → QM1 → CANAL → QM2 → CONSUMIDOR

Passo 3 — Conheça as chamadas MQI

Estude inicialmente:

MQCONN
MQOPEN
MQPUT
MQGET
MQCLOSE
MQDISC

Depois avance para:

MQBEGIN
MQCMIT
MQBACK
MQINQ
MQSET

Passo 4 — Aprenda MQSC

MQSC é a linguagem administrativa usada para definir e controlar objetos.

Exemplos conceituais:

DEFINE QLOCAL(FILA.TESTE)
DISPLAY QLOCAL(FILA.TESTE)
ALTER QLOCAL(FILA.TESTE)
DELETE QLOCAL(FILA.TESTE)

Passo 5 — Crie um laboratório produtor/consumidor

O produtor envia:

USS ENTERPRISE NCC-1701

O consumidor lê e exibe.

Esse será nosso primeiro Easter egg.

Depois envie:

RESISTANCE IS FUTILE

Caso a mensagem pare na Dead-Letter Queue, saberemos que os Borg assumiram o canal.

Passo 6 — Teste persistência

Envie uma mensagem persistente, interrompa o Queue Manager de forma controlada e confirme a recuperação após a reinicialização.

Passo 7 — Teste transação

Faça o consumidor:

  1. obter a mensagem;

  2. provocar um erro;

  3. executar rollback;

  4. verificar o retorno da mensagem.

Passo 8 — Estude segurança

Crie usuários com permissões distintas.

Teste quem pode:

  • conectar;

  • colocar;

  • retirar;

  • consultar;

  • administrar.

Passo 9 — Adicione um segundo Queue Manager

Configure uma rota entre dois ambientes.

Observe:

  • fila remota;

  • transmission queue;

  • sender channel;

  • receiver channel.

Passo 10 — Monitore

Acompanhe:

  • profundidade da fila;

  • mensagens antigas;

  • canais parados;

  • erros;

  • DLQ;

  • desempenho;

  • logs;

  • consumo;

  • tentativas de autenticação.


Capítulo XXIII — Dez dicas do engenheiro-chefe

1. Não use uma fila como banco de dados

Fila é mecanismo de transporte e desacoplamento, não repositório permanente de consulta histórica.

2. Defina contratos de mensagem

Documente:

  • formato;

  • campos;

  • versão;

  • codificação;

  • tamanho;

  • obrigatoriedade;

  • tratamento de erro.

3. Pense em idempotência

O consumidor deve, quando possível, tolerar o recebimento repetido de uma mensagem sem executar duas vezes um efeito indevido.

4. Use identificadores de correlação

Eles ajudam a relacionar uma resposta à solicitação original.

5. Monitore idade, não apenas quantidade

Uma fila com dez mensagens antigas pode ser mais grave que uma fila com mil mensagens processadas rapidamente.

6. Planeje mensagens inválidas

Toda arquitetura precisa responder:

O que faremos quando o conteúdo não puder ser processado?

7. Proteja os canais

Não exponha canais administrativos ou permissões excessivas.

8. Evite mensagens gigantes sem necessidade

Mensagens muito grandes aumentam consumo de rede, armazenamento, log e tempo de processamento.

9. Conheça a semântica da entrega

“Coloquei na fila” não significa necessariamente “o negócio foi concluído”.

Significa que a responsabilidade foi transferida para outra etapa.

10. Documente o caminho completo

Não basta saber o nome da fila.

Registre:

  • produtor;

  • consumidor;

  • Queue Manager;

  • canais;

  • regras de segurança;

  • formato;

  • retentativas;

  • DLQ;

  • backout;

  • alertas;

  • responsáveis.


Capítulo XXIV — MQ versus chamadas REST

REST e MQ não são inimigos.

REST funciona muito bem quando:

  • a resposta imediata é necessária;

  • o consumidor está disponível;

  • o fluxo é simples;

  • a interação é síncrona.

MQ funciona muito bem quando:

  • o consumidor pode estar indisponível;

  • a operação precisa ser armazenada;

  • há grande volume;

  • os sistemas possuem velocidades diferentes;

  • retentativa e recuperação são necessárias;

  • o processamento pode ser assíncrono.

Uma arquitetura real pode usar ambos:

Aplicativo
   |
   | REST
   v
API
   |
   | MQ
   v
COBOL/CICS

REST recebe a solicitação.

MQ protege e desacopla o processamento.

COBOL executa a regra crítica.

É uma aliança entre planetas, não uma guerra entre tecnologias.


Capítulo XXV — O maior ensinamento da linha do tempo

O IBM MQ atravessou:

  • cliente-servidor;

  • Internet;

  • Java;

  • SOA;

  • Web Services;

  • integração empresarial;

  • cloud;

  • containers;

  • Kubernetes;

  • OpenShift;

  • observabilidade;

  • segurança pós-quântica.

E, apesar de toda essa evolução, sua ideia central continua reconhecível:

Uma aplicação produz uma mensagem.
Outra aplicação consome.
O MQ garante a travessia.

Essa permanência ensina algo precioso ao Programador COBOL Padawan.

Uma tecnologia não permanece relevante porque recusa mudanças.

Ela permanece relevante porque preserva seus princípios fundamentais enquanto adapta sua implementação ao novo mundo.

O COBOL também sobreviveu seguindo lógica semelhante.

O z/OS também.

O Db2 também.

O CICS também.

Eles não ficaram congelados em uma fotografia de 1970. Evoluíram, ganharam APIs, segurança moderna, integração, automação e novos modelos operacionais.

O IBM MQ tornou-se uma ponte entre gerações.

De um lado:

COBOL
CICS
IMS
Db2
z/OS

Do outro:

Java
Python
REST
JSON
Containers
Kubernetes
Cloud
IA

No centro:

IBM MQ

Conclusão — A mensagem precisa chegar

No final de nossa missão, percebemos que IBM MQ não é apenas uma ferramenta para criar filas.

Ele é uma filosofia de arquitetura.

Uma filosofia baseada em:

  • desacoplamento;

  • resiliência;

  • segurança;

  • persistência;

  • transações;

  • integração;

  • confiabilidade.

Para o Programador COBOL iniciante, aprender MQ é descobrir como o mainframe conversa com o restante da galáxia digital.

Seu programa COBOL não precisa compreender cada detalhe de uma aplicação móvel, de um container ou de uma API em nuvem.

Ele precisa conhecer o contrato da mensagem.

Precisa saber onde recebê-la.

Precisa processá-la corretamente.

Precisa confirmar ou desfazer a transação.

O restante fica sob responsabilidade da infraestrutura de mensageria.

Talvez essa seja a verdadeira genialidade do MQ: permitir que sistemas de épocas, linguagens e plataformas diferentes cooperem sem exigir que todos se transformem na mesma coisa.

Na Frota Estelar, vulcanos, humanos, andorianos, klingons e inúmeras espécies trabalham lado a lado. Cada uma mantém sua identidade, mas utiliza protocolos comuns para colaborar.

No ambiente corporativo, COBOL, Java, Python, Linux, z/OS, containers e APIs fazem exatamente isso.

E o IBM MQ permanece no meio da ponte de comando, silencioso, transportando milhões de mensagens enquanto quase ninguém percebe.

Até o dia em que ele para.

Nesse instante, todos descobrem que o mensageiro discreto era, na verdade, um dos sistemas mais importantes da nave.

Vida longa e próspera às filas.

E lembre-se do código secreto escondido no log da missão:

MSGID: NCC1701
CORRELID: BELLACOSA
REASON: 00000000
STATUS: MESSAGE DELIVERED

A transmissão foi concluída. ☕🖖

quinta-feira, 18 de junho de 2026

Git, GitHub e DevOps para Profissionais IBM Z Por que COBOL Developers, Sysprogs e Sysadmins precisam dominar Git em 2026

 

Bellacosa Mainframe e o Git Github e DevOps para Mainframers

☕🚀 Um Café no Bellacosa Mainframe

Git, GitHub e DevOps para Profissionais IBM Z

Por que COBOL Developers, Sysprogs e Sysadmins precisam dominar Git em 2026

"Deleted your code by mistake? Without Git, it's gone forever."

Confesso que, ao observar aqueles infográficos coloridos sobre Git e DevOps, senti algo curioso.

Em poucos segundos eles conseguiram condensar uma transformação tecnológica que levou quase quarenta anos para acontecer.

Para muitos jovens desenvolvedores, Git sempre existiu.

Para nós, veteranos do Mainframe, sabemos que não foi assim.

Nós vivemos outra realidade.

Vivemos a era dos datasets PDS.

Vivemos a era dos backups manuais.

Vivemos a era do Panvalet.

Do Librarian.

Do Endevor.

Do Changeman.

Do SCLM.

Do ISPW.

Do membro COBOL001.

Do COBOL001.BKP.

Do COBOL001.OLD.

Do COBOL001.TESTE.

Do COBOL001.NOVO.

Do COBOL001.NOVO2.

Do COBOL001.NOVO3.

E, inevitavelmente, do lendário:

COBOL001.FINAL

COBOL001.FINAL2

COBOL001.FINAL_DEFINITIVO

COBOL001.FINAL_DEFINITIVO_OK

COBOL001.AGORA_VAI

Parece piada.

Mas muitos de nós trabalhamos exatamente dessa maneira.

E foi justamente para resolver esse caos que surgiu uma das ferramentas mais importantes da história da Engenharia de Software.

Git.

E não estou exagerando.

Git talvez seja tão revolucionário para o desenvolvimento moderno quanto o JES2 foi para processamento batch, quanto o CICS foi para processamento online ou quanto o DB2 foi para persistência transacional.

Git mudou a maneira como produzimos software.

Bellacosa Mainframe e a evolucao da gestao dos fontes

A primeira geração do controle de versões

Antes do Git existiam várias abordagens.

RCS.

SCCS.

CVS.

Visual SourceSafe.

Subversion.

ClearCase.

Perforce.

Cada um tentou resolver o mesmo problema.

Como permitir que múltiplas pessoas trabalhem no mesmo código sem destruir o trabalho umas das outras?

No Mainframe, resolvemos isso de forma diferente.

Panvalet.

Librarian.

Endevor.

ISPW.

Changeman.

Essas ferramentas foram brilhantes.

E continuam sendo.

Especialmente em ambientes regulados.

Bancos.

Seguradoras.

Governo.

Utilities.

Mas havia uma diferença.

Grande parte delas era centralizada.

Tudo dependia de um servidor.

Git mudou isso.

Git é distribuído.

E isso altera completamente a arquitetura do desenvolvimento.

O que realmente é Git?

A maioria dos cursos ensina:

Git é um sistema de versionamento.

Tecnicamente está correto.

Mas é uma definição pobre.

Git é muito mais.

Git é um banco de dados.

Git é uma máquina do tempo.

Git é um mecanismo de auditoria.

Git é uma ferramenta de colaboração.

Git é um sistema de rastreabilidade.

Git é um gatilho para automação.

Git é praticamente o sistema nervoso central do DevOps moderno.

Cada commit registra:

Quem alterou.

Quando alterou.

Por que alterou.

Qual requisito atendeu.

Qual incidente corrigiu.

Qual sprint participou.

Qual história de usuário foi implementada.

Qual vulnerabilidade foi mitigada.

Git não apenas salva arquivos.

Git preserva conhecimento organizacional.

O segredo escondido do Git

Poucos profissionais conhecem sua arquitetura interna.

Git não armazena arquivos.

Git armazena objetos.

Blob.

Tree.

Commit.

Tag.

Blob representa dados.

Tree representa diretórios.

Commit representa estados.

Tag representa marcos.

Cada commit possui um hash.

Durante muitos anos SHA-1.

Hoje caminhando para SHA-256.

Um commit não é uma diferença.

Ele é uma fotografia completa.

Um snapshot.

É por isso que Git consegue voltar meses no passado.

Como um SMF para código-fonte.

Aliás...

Talvez essa seja a analogia perfeita para um sysprog.

Git é quase um SMF de desenvolvimento.

Cada alteração gera um registro permanente.

O Sysprog e o Git

Talvez alguns sysprogs pensem:

"Mas Git é coisa de desenvolvedor."

Não.

Não mais.

Hoje praticamente toda infraestrutura está migrando para Infrastructure as Code.

Parmlibs.

Policies.

WLM.

NetView.

SA z/OS.

Ansible.

Terraform.

Scripts REXX.

Procedures.

JCL.

USS scripts.

Tudo pode estar em Git.

Imagine uma alteração em uma política WLM.

Antigamente:

Editar.

Salvar.

Copiar.

Torcer.

Hoje:

Criar branch.

Modificar.

Commit.

PR.

Review.

Merge.

Deploy automatizado.

Rollback imediato.

A governança melhora absurdamente.

O Sysadmin moderno também virou desenvolvedor

Existe uma transformação interessante acontecendo.

Sysadmins estão programando.

Desenvolvedores estão automatizando infraestrutura.

DBAs escrevem pipelines.

Sysprogs utilizam APIs REST.

Todos começam a convergir.

A linha entre operações e desenvolvimento desaparece.

Foi exatamente isso que criou DevOps.

DevOps não é ferramenta

Essa talvez seja a maior confusão do mercado.

DevOps não é Jenkins.

Não é GitHub.

Não é Kubernetes.

Não é Docker.

Não é Ansible.

DevOps é cultura.

É reduzir silos.

Eliminar burocracias.

Aproximar pessoas.

Automatizar processos.

Aumentar feedback.

Reduzir tempo de entrega.

No Mainframe isso é extremamente relevante.

Porque o Mainframe sempre teve uma cultura muito compartimentalizada.

Equipe COBOL.

Equipe DB2.

Equipe CICS.

Equipe Storage.

Equipe RACF.

Equipe Sysprog.

Equipe Operações.

Equipe Middleware.

Equipe Rede.

Equipe Segurança.

DevOps propõe outra visão.

Todos trabalham pelo mesmo objetivo.

Entregar valor ao negócio.

GitHub não é Git

Muitos iniciantes confundem.

Git é tecnologia.

GitHub é plataforma.

GitLab é plataforma.

Bitbucket é plataforma.

Azure DevOps é plataforma.

Git continua sendo Git.

Independentemente da hospedagem.

GitHub adicionou uma camada extremamente poderosa.

Issues.

Actions.

Codespaces.

Security.

Dependabot.

Packages.

Container Registry.

Wiki.

Pull Requests.

Tudo integrado.

Pull Request: a maior revolução social do desenvolvimento

Eu particularmente considero Pull Request uma das melhores invenções da engenharia moderna.

Porque ela resolve algo difícil.

Compartilhar conhecimento.

Imagine um desenvolvedor COBOL júnior.

Ele escreve:

MOVE WS-CPF TO WS-TEMP

Um desenvolvedor sênior comenta:

"Poderíamos validar antes."

Outro comenta:

"Talvez usar EVALUATE seja melhor."

Outro:

"Precisamos mascarar LGPD."

Resultado?

O código melhora.

O profissional melhora.

A equipe melhora.

A empresa melhora.

PR é mentoria embutida.

O medo do merge conflict

Todo desenvolvedor já sentiu frio na barriga.

git pull

CONFLICT

Automatic merge failed.

Para iniciantes parece um desastre.

Para equipes maduras é rotina.

Conflitos indicam colaboração.

Duas pessoas trabalharam na mesma área.

Git apenas pede ajuda.

Ele não consegue decidir sozinho.

Você decide.

Git apenas documenta.

Git Flow versus GitHub Flow

Durante anos utilizamos Git Flow.

Main.

Develop.

Feature.

Release.

Hotfix.

Funciona muito bem.

Especialmente em bancos.

Porém empresas modernas começaram simplificar.

GitHub Flow.

Main.

Feature.

PR.

Merge.

Deploy.

Google foi além.

Trunk Based Development.

Branches curtíssimas.

Commits pequenos.

Integração contínua.

Menos divergência.

Menos conflitos.

Mais velocidade.

Git para COBOL Developers

Aqui entramos em um ponto fascinante.

Durante muito tempo dizia-se:

COBOL não combina com Git.

Hoje isso é completamente falso.

IBM DBB.

IBM Dependency Based Build.

zAppBuild.

Z Open Editor.

Rocket Git.

Git Integration for Endevor.

ISPW Git Integration.

IDz.

Wazi Developer.

VS Code.

Tudo isso mudou o cenário.

Hoje um desenvolvedor COBOL pode trabalhar assim.

Abrir VS Code.

Editar programa COBOL.

Executar testes.

Commit.

Push.

Criar PR.

Executar pipeline.

Compilar.

Linkedit.

DB2 Bind.

Newcopy CICS.

Deploy.

Exatamente como Java.

Exatamente como Python.

Exatamente como Node.

Jenkins: o operador automático

Se Git é o cérebro.

Jenkins é o operador.

Ele observa commits.

Dispara builds.

Executa testes.

Compila COBOL.

Gera relatórios.

Aciona SonarQube.

Publica artefatos.

Executa deploy.

Notifica equipes.

No fundo, Jenkins faz o papel que muitos operadores humanos executavam.

Só que 24 horas por dia.

Sem esquecer etapas.

Sem distrações.

GitOps: talvez a próxima revolução

GitOps é simples.

Tudo é Git.

Deseja mudar um cluster Kubernetes?

Commit.

Deseja alterar firewall?

Commit.

Deseja atualizar pipeline?

Commit.

Deseja modificar política?

Commit.

Git torna-se a fonte única da verdade.

Single Source of Truth.

Isso é extremamente poderoso.

Porque elimina configurações manuais.

Elimina servidores "snowflake".

Elimina ambientes misteriosos.

Tudo fica reproduzível.

E a segurança?

Segurança também mudou.

DevSecOps nasceu justamente aqui.

SAST.

DAST.

Dependency Scan.

Secrets Detection.

SBOM.

Tudo integrado ao pipeline.

O desenvolvedor faz commit.

Ferramentas verificam.

Bibliotecas vulneráveis.

Credenciais expostas.

Falhas conhecidas.

Antes de chegar em produção.

No Mainframe isso pode incluir:

RACF reviews.

JCL analysis.

CICS security checks.

DB2 privilege validation.

SMF auditing.

O papel do Sysprog em 2026

Antigamente o Sysprog era apenas administrador.

Hoje é arquiteto.

Automatizador.

Consultor.

Especialista em APIs.

Especialista em observabilidade.

Especialista em pipelines.

Especialista em integração.

Especialista em segurança.

Sysprog moderno entende:

Git.

GitHub.

GitLab.

Ansible.

Python.

REXX.

Jenkins.

OpenShift.

Containers.

z/OSMF.

Zowe.

REST APIs.

Porque o Mainframe deixou de ser uma ilha.

Ele tornou-se parte do ecossistema corporativo.

O novo profissional IBM Z

Acredito que o profissional IBM Z de maior valor em 2026 possui uma característica interessante.

Ele pensa como um desenvolvedor.

Age como um administrador.

Automatiza como um engenheiro DevOps.

Protege como um especialista em segurança.

E governa como um arquiteto.

Ele consegue conversar com:

Desenvolvedor Java.

Equipe Cloud.

Kubernetes.

Segurança.

Storage.

Networking.

Data Science.

IA.

Sem abandonar aquilo que torna o Mainframe único.

Confiabilidade.

Escalabilidade.

Disponibilidade.

Integridade transacional.

Processamento massivo.

Pensando durante o café

Talvez a grande mensagem escondida por trás daqueles simpáticos desenhos coloridos seja esta:

Git não substitui o conhecimento Mainframe.

Git potencializa o conhecimento Mainframe.

Ele não aposenta COBOL.

Ele amplia o alcance do COBOL.

Ele não elimina o Sysprog.

Ele transforma o Sysprog em um engenheiro de plataforma.

Ele não mata operações.

Ele automatiza operações repetitivas.

A próxima geração de profissionais IBM Z provavelmente não conhecerá Panvalet.

Talvez nunca utilize Librarian.

Possivelmente jamais veja um Changeman clássico.

Mas certamente abrirá um Pull Request.

Criará uma branch.

Executará uma pipeline.

Fará deploy automatizado.

E continuará processando bilhões de transações por dia em um IBM Z.

Porque, no final das contas, o objetivo nunca foi Git.

Nunca foi GitHub.

Nunca foi Jenkins.

Nunca foi Kubernetes.

O objetivo sempre foi o mesmo desde os tempos do System/360.

Entregar software confiável.

Mais rápido.

Mais seguro.

Mais auditável.

Mais sustentável.

E, se possível, com uma boa xícara de café ao lado do teclado 3270.

quarta-feira, 17 de junho de 2026

☕🏠☁️ CLOUD REPATRIATION — QUANDO AS EMPRESAS DESCOBREM QUE NEM TUDO DEVERIA TER IDO PARA A NUVEM

 

Bellacosa Mainframe e a tecnica de cloud repatriation

☕🏠☁️ CLOUD REPATRIATION — QUANDO AS EMPRESAS DESCOBREM QUE NEM TUDO DEVERIA TER IDO PARA A NUVEM

Se você é uma Analista COBOL Júnior, provavelmente cresceu ouvindo uma frase que parecia uma verdade absoluta:

"O futuro está na nuvem."

Durante mais de uma década, empresas do mundo inteiro migraram aplicações, bancos de dados, sistemas corporativos e ambientes inteiros para AWS, Azure e Google Cloud.

As apresentações dos fornecedores mostravam um cenário quase perfeito.

Tudo seria:

  • mais rápido;

  • mais moderno;

  • mais simples;

  • mais seguro;

  • mais barato.

Executivos ficaram encantados.

Arquitetos embarcaram na jornada.

Consultorias venderam projetos bilionários.

E milhares de empresas iniciaram aquilo que ficou conhecido como:

Cloud Migration.

Mas alguns anos depois algo inesperado começou a acontecer.

Empresas gigantes passaram a fazer o caminho inverso.

Sim.

O movimento contrário.

Retirar sistemas da nuvem.

Trazer aplicações de volta para datacenters próprios.

Mover cargas para ambientes especializados.

Consolidar plataformas.

Esse fenômeno ganhou um nome que talvez você escute cada vez mais nos próximos anos:

Cloud Repatriation.

Ou simplesmente:

Repatriação da Nuvem.

E para quem trabalha com Mainframe, COBOL e sistemas corporativos, entender esse conceito é fundamental.

Porque ele está mudando a forma como as empresas enxergam tecnologia.


O sonho da nuvem

Vamos voltar alguns anos.

Imagine uma empresa tradicional.

Ela possui:

  • servidores físicos;

  • storage;

  • rede;

  • datacenter;

  • equipe de infraestrutura.

Tudo precisa ser comprado.

Tudo precisa ser instalado.

Tudo precisa ser mantido.

Quando a nuvem chegou, a promessa parecia revolucionária.

Ao invés de comprar:

  • você alugaria.

Ao invés de esperar semanas:

  • criaria recursos em minutos.

Ao invés de investir milhões:

  • pagaria apenas pelo uso.

Parecia perfeito.

E para muitas situações realmente era.


O nascimento do "Cloud First"

Entre 2015 e 2022 surgiu uma expressão muito popular.

Cloud First.

Ou seja:

"A nuvem primeiro."

Toda nova solução deveria nascer em cloud.

Muitas organizações foram além.

Não apenas criaram sistemas novos.

Também migraram sistemas antigos.

Tudo virou candidato à nuvem.

ERP.

CRM.

Banco de dados.

Analytics.

Arquivos.

Aplicações críticas.

Em muitos casos sem uma análise profunda de custo-benefício.


A pergunta que ninguém fazia

Durante a fase de entusiasmo existia uma pergunta que poucos executivos faziam:

"Quanto isso custará daqui a cinco anos?"

A maioria analisava apenas:

  • velocidade;

  • facilidade;

  • inovação.

Mas ignorava:

  • crescimento;

  • consumo;

  • escalabilidade financeira.

A conta parecia pequena no início.

Mas crescia silenciosamente.


A armadilha do sucesso

Imagine uma fintech.

Primeiro ano:

100 mil clientes.

Segundo ano:

1 milhão.

Terceiro ano:

10 milhões.

Quarto ano:

50 milhões.

Tudo parece ótimo.

Mas existe um detalhe.

Cada cliente gera:

  • armazenamento;

  • processamento;

  • logs;

  • backups;

  • monitoramento;

  • tráfego de rede.

Quanto mais sucesso a empresa tem, maior fica a fatura.

O paradoxo é interessante.

O crescimento do negócio aumenta também o custo operacional da nuvem.


Quando chega a conta

É nesse momento que começa a repatriação.

Os diretores financeiros começam a fazer perguntas.

Por exemplo:

  • Estamos usando tudo que pagamos?

  • Precisamos realmente dessa configuração?

  • Existe alternativa mais barata?

  • O custo por transação está aumentando?

  • O retorno continua justificando o investimento?

E muitas vezes a resposta é surpreendente.

Nem toda carga de trabalho se beneficia economicamente da nuvem.


A analogia da casa

Uma das formas mais simples de entender Cloud Repatriation é imaginar um imóvel.

No começo você mora de aluguel.

Faz sentido.

Você ainda está começando.

Precisa de flexibilidade.

Não quer investir muito.

Mas imagine que passaram vinte anos.

Você continua pagando aluguel.

Todo mês.

Sem parar.

Em algum momento surge a pergunta:

"Não seria melhor comprar?"

A repatriação nasce exatamente dessa reflexão.


O caso do Dropbox

Um dos exemplos mais famosos ocorreu com o Dropbox.

Durante anos a empresa utilizou cloud pública.

Mas conforme cresceu percebeu algo importante.

O volume de armazenamento era gigantesco.

A escala era enorme.

A previsibilidade era alta.

O resultado?

Passou a investir fortemente em infraestrutura própria.

A economia foi medida em centenas de milhões de dólares ao longo dos anos.

Isso chamou a atenção do mercado.


O caso da 37signals

Outro exemplo muito discutido foi a empresa por trás do Basecamp.

Após anos utilizando cloud pública, seus executivos anunciaram um movimento de retorno para infraestrutura própria.

O argumento principal?

Economia.

Segundo eles, a redução de custos seria enorme.

A notícia gerou debates em toda a indústria.


O que isso ensina para uma Analista COBOL?

Ensina algo extremamente importante.

Tecnologia não é religião.

Não existe:

  • Mainframe bom.

  • Cloud ruim.

Nem o contrário.

Existe apenas:

o ambiente correto para a carga correta.

Essa é uma das maiores lições da arquitetura moderna.


Nem toda carga é igual

Imagine duas aplicações.

Primeira aplicação:

  • Website promocional.

  • Acessos variáveis.

  • Crescimento imprevisível.

Cloud faz sentido.

Agora imagine:

  • processamento de contas bancárias;

  • liquidação financeira;

  • batch noturno;

  • milhões de transações previsíveis.

Talvez a análise econômica seja diferente.

Talvez uma plataforma especializada seja mais eficiente.

Talvez um mainframe seja mais competitivo.

Tudo depende do contexto.


O papel do Mainframe nessa história

É aqui que muitos jovens profissionais ficam surpresos.

Durante anos ouviram que o Mainframe estava desaparecendo.

Mas a realidade mostrou algo curioso.

Enquanto algumas empresas tentavam migrar tudo para cloud, outras perceberam que certas cargas continuavam extremamente eficientes no IBM Z.

Por quê?

Porque o Mainframe foi construído justamente para:

  • alta escala;

  • alta disponibilidade;

  • processamento transacional;

  • confiabilidade extrema.

Essas características continuam valiosas.

Muito valiosas.


O custo invisível da nuvem

Uma Analista COBOL costuma enxergar claramente os custos de CPU e disco em ambientes tradicionais.

Na cloud surgem custos menos óbvios.

Por exemplo:

  • transferência de dados;

  • snapshots;

  • logs;

  • replicação;

  • monitoramento;

  • APIs;

  • tráfego entre regiões.

Cada item parece pequeno.

Somados podem se tornar gigantescos.

É por isso que tantas empresas passaram a adotar práticas de FinOps.


O nascimento do FinOps

FinOps significa:

Financial Operations.

Ou seja:

Operações financeiras aplicadas à tecnologia.

Hoje muitas empresas possuem equipes inteiras dedicadas a responder perguntas como:

  • Quem está consumindo recursos?

  • Quanto custa cada aplicação?

  • Qual é o custo por cliente?

  • Qual é o custo por transação?

Isso praticamente não existia no início da corrida para a nuvem.


A verdade que ninguém gosta de ouvir

Existe uma verdade que incomoda muitos vendedores de tecnologia.

Nem toda inovação reduz custos.

Algumas aumentam custos.

Mas aumentam receita.

E isso pode ser perfeitamente aceitável.

Cloud frequentemente se encaixa nesse cenário.

A empresa paga mais.

Mas cresce mais rápido.

Lança produtos mais rapidamente.

Conquista clientes mais cedo.

Portanto o custo adicional pode valer a pena.


Então por que repatriar?

Porque chega um momento em que determinadas cargas se tornam:

  • previsíveis;

  • estáveis;

  • maduras.

Nesse ponto a elasticidade da cloud perde parte do valor.

E a eficiência operacional começa a ganhar importância.

A pergunta muda.

Deixa de ser:

"Como crescer?"

E passa a ser:

"Como operar com eficiência?"


O futuro é híbrido

Talvez essa seja a maior conclusão.

O futuro não parece ser:

  • tudo na cloud;

  • tudo no mainframe;

  • tudo on-premises.

O futuro parece híbrido.

Cada carga de trabalho executada no ambiente mais adequado.

É exatamente isso que vemos nos grandes bancos.

Itaú.

Bradesco.

Banco do Brasil.

Santander.

Caixa.

Todos operam ambientes mistos.

Cloud.

Linux.

Containers.

APIs.

Mainframe.

Tudo convivendo.

Tudo integrado.


O que você deve aprender como profissional

Se você está começando em COBOL, não caia na armadilha de pensar que sua carreira está presa ao passado.

Pelo contrário.

O mercado está procurando profissionais que entendam integração.

Profissionais que consigam conversar sobre:

  • COBOL;

  • APIs;

  • Cloud;

  • Mensageria;

  • Kubernetes;

  • IBM Z;

  • Arquitetura distribuída.

Porque a verdadeira transformação digital não consiste em destruir o legado.

Consiste em conectá-lo ao futuro.


Conclusão: O Retorno da Maturidade Tecnológica

Cloud Repatriation não significa fracasso da nuvem.

Também não significa vitória do Mainframe.

Significa algo muito mais interessante.

Significa maturidade.

O mercado finalmente começou a entender que tecnologia não deve ser escolhida por moda.

Nem por marketing.

Nem por tendências.

Ela deve ser escolhida por critérios objetivos:

  • custo;

  • desempenho;

  • segurança;

  • disponibilidade;

  • escalabilidade.

A nuvem continuará crescendo.

Os datacenters continuarão existindo.

Os mainframes continuarão processando bilhões de transações.

E as arquiteturas híbridas se tornarão cada vez mais comuns.

Para uma Analista COBOL Júnior, essa é uma excelente notícia.

Porque mostra que o conhecimento de sistemas corporativos continua extremamente relevante.

O profissional do futuro não será aquele que conhece apenas uma tecnologia.

Será aquele que entende quando usar cada uma delas.

E talvez essa seja a maior lição da Cloud Repatriation.

Às vezes a inovação não está em mover tudo para a nuvem.

Às vezes a inovação está em descobrir o que nunca deveria ter saído de casa.

terça-feira, 16 de junho de 2026

IBM 115 Anos: A Empresa que Ajudou a Construir o Mundo Digital


Bellacosa Mainframe e historia da IBM em resumo


IBM 115 Anos: A Empresa que Ajudou a Construir o Mundo Digital

Uma viagem pela história, curiosidades, desafios e segredos da gigante que ainda move bilhões de transações por dia

16 de junho.

Para muitos, apenas mais um dia no calendário.

Para quem trabalha com Mainframe, COBOL, z/OS, CICS, DB2 e tecnologia corporativa, é uma data especial: o aniversário da IBM, uma das empresas mais influentes da história da humanidade.

Em 16 de junho de 1911 nasceu uma organização que sobreviveria a duas guerras mundiais, à Grande Depressão, à Guerra Fria, ao surgimento do computador pessoal, à internet, ao smartphone, à computação em nuvem e agora à Inteligência Artificial.

Poucas empresas conseguem permanecer relevantes durante cinco anos.

Algumas sobrevivem vinte.

Raríssimas chegam aos cinquenta.

A IBM chegou aos 115 anos.

E continua ajudando a processar boa parte do dinheiro que circula no planeta.

Para um Desenvolvedor COBOL Jr., compreender a história da IBM é entender a própria história da computação.


Bellacosa Mainframe e os 115 anos da IBM

Antes da IBM Existia um Problema

Imagine o mundo em 1890.

Não havia computadores.

Não havia bancos de dados.

Não havia internet.

Não havia sequer calculadoras eletrônicas.

Governos precisavam contar milhões de pessoas manualmente.

Empresas precisavam processar montanhas de documentos em papel.

Folhas de pagamento eram calculadas à mão.

Erros eram frequentes.

Processos demoravam meses.

Foi nesse cenário que apareceu Herman Hollerith.


O Homem que Criou o Conceito de Processamento de Dados

Herman Hollerith era um engenheiro americano que observou um problema gigantesco:

O censo dos Estados Unidos de 1880 demorou quase oito anos para ser concluído.

Se nada mudasse, o próximo censo demoraria mais do que o intervalo entre censos.

Era matematicamente impossível continuar daquele jeito.

Sua solução foi revolucionária.

Ele criou cartões perfurados capazes de armazenar informações.

Cada furo representava um dado.

Máquinas eletromecânicas liam esses cartões e realizavam contagens automaticamente.

Pela primeira vez na história, uma máquina processava dados em larga escala.

Nascia o conceito que décadas depois evoluiria para os computadores modernos.


O Verdadeiro Nascimento da IBM

Em 1911 várias empresas se fundiram para formar a:

Computing-Tabulating-Recording Company (CTR)

O nome era enorme.

Pouco elegante.

Pouco memorável.

Em 1924, Thomas J. Watson decidiu mudar tudo.

A empresa passou a se chamar:

International Business Machines

Ou simplesmente:

IBM

Uma mudança que parece simples, mas que carregava uma visão ousada.

Watson acreditava que as máquinas de processamento de dados teriam alcance mundial.

Na década de 1920 isso parecia exagero.

Hoje sabemos que ele estava certo.


O Primeiro Easter Egg da IBM

A famosa frase:

"THINK"

foi criada por Thomas Watson Sr.

Ela surgiu em uma reunião onde um executivo perguntou:

"Como resolveremos este problema?"

Watson respondeu:

"Think."

A palavra virou slogan oficial.

Décadas depois inspirou o nome do notebook ThinkPad.

Até hoje a cultura IBM incentiva seus profissionais a pensarem antes de agir.

Uma filosofia simples.

Mas extremamente poderosa.


A IBM e a Segunda Guerra Mundial

Durante os anos 1940 a IBM cresceu enormemente.

Suas máquinas de tabulação eram usadas para processar informações em velocidade inédita para a época.

A guerra acelerou a necessidade de automação.

Governos precisavam controlar:

  • Estoques

  • Logística

  • Produção industrial

  • Recursos militares

A IBM tornou-se referência mundial em processamento de informações.

Mas a verdadeira revolução ainda estava por vir.


O Computador Entra em Cena

Na década de 1950 o mundo testemunhou o nascimento dos computadores eletrônicos.

Grandes máquinas ocupavam salas inteiras.

Consumiam energia absurda.

Possuíam menos capacidade computacional que um relógio inteligente moderno.

Mesmo assim representavam um salto gigantesco.

A IBM rapidamente percebeu que o futuro estava nos computadores.

Surgiram máquinas históricas como:

IBM 650

IBM 701

IBM 704

IBM 7070

Cada uma delas ajudou a criar os alicerces da computação corporativa.


A Maior Aposta da História da Computação

Em 1964 a IBM tomou uma decisão considerada loucura por muitos analistas.

Ela investiu aproximadamente 5 bilhões de dólares no desenvolvimento de uma nova arquitetura.

A aposta recebeu um nome simples:

System/360

Hoje parece apenas mais um produto.

Na época foi uma revolução.


Bellacosa Mainframe e a evolução historica do logotipo IBM

Por Que o System/360 Mudou o Mundo?

Antes do System/360 cada computador era praticamente incompatível com os demais.

Trocar de equipamento significava reescrever programas.

Refazer processos.

Treinar equipes novamente.

A IBM propôs algo radical.

Uma família inteira de computadores compatíveis entre si.

O programa escrito para um modelo poderia funcionar em outro.

Esse conceito influenciou praticamente toda a indústria.

Windows.

Linux.

Unix.

Cloud.

Todos herdaram, direta ou indiretamente, ideias introduzidas pelo System/360.


O Nascimento do Mainframe Moderno

Quando um profissional fala em Mainframe hoje, está falando do descendente direto do System/360.

A linha evoluiu:

System/360

System/370

390

zSeries

System z

IBM Z

z16

z17

Existe uma linha evolutiva contínua de mais de sessenta anos.

Pouquíssimas tecnologias possuem essa continuidade.


Onde Entra o COBOL?

Em 1959 surgiu o COBOL.

Seu objetivo era simples:

Permitir que pessoas de negócios compreendessem programas.

Por isso comandos como:

ADD

SUBTRACT

MOVE

READ

WRITE

são tão próximos da linguagem humana.

A IBM adotou COBOL massivamente.

Bancos.

Seguradoras.

Governos.

Empresas aéreas.

Todos começaram a construir sistemas corporativos usando COBOL.

Muitos desses sistemas continuam funcionando até hoje.


O Grande Mito Sobre COBOL

Você provavelmente já ouviu:

"COBOL está morto."

Curiosamente essa frase existe desde os anos 1980.

Mas o COBOL continua processando:

  • Folhas de pagamento

  • Cartões de crédito

  • PIX

  • TED

  • DOC

  • Seguros

  • Aposentadorias

  • Impostos

Na prática, ele sobrevive porque resolve muito bem problemas de negócios.

Tecnologia não vence porque é nova.

Vence porque funciona.


A Curiosidade Que Surpreende Todo Iniciante

Muitos aplicativos modernos dependem de COBOL sem que seus usuários saibam.

Quando alguém usa:

  • Aplicativo bancário

  • Caixa eletrônico

  • Portal de investimentos

  • Sistema de previdência

Existe uma chance enorme de uma transação COBOL estar participando do processo.

O aplicativo bonito do smartphone frequentemente é apenas a ponta do iceberg.

A parte invisível muitas vezes roda em Mainframe.


O Mainframe Nunca Foi Embora

Existe uma narrativa popular de que Mainframes desapareceram.

Isso nunca aconteceu.

O que aconteceu foi algo diferente.

Eles ficaram invisíveis.

Ninguém vê o Mainframe.

Mas todos usam.

Quando você passa um cartão.

Quando faz PIX.

Quando compra uma passagem aérea.

Quando consulta um seguro.

Quando paga impostos.

Existe uma grande probabilidade de um Mainframe estar envolvido.


O Desafio dos Anos 2000

Um dos maiores momentos da história da IBM foi o famoso Bug do Milênio.

Muitos sistemas armazenavam anos usando apenas dois dígitos.

Exemplo:

99

00

Quando chegasse o ano 2000, milhões de programas poderiam interpretar:

00

como 1900.

O mundo inteiro entrou em pânico.

Governos contrataram milhares de programadores COBOL.

Muitos profissionais construíram carreiras inteiras trabalhando nesse projeto.

O curioso?

Grande parte do sucesso ocorreu justamente porque Mainframes eram sistemas extremamente bem documentados.


O Segundo Easter Egg

Existe uma brincadeira antiga no mundo Mainframe:

"Mainframe é a única tecnologia que os jornais só mencionam quando para."

Quando tudo funciona, ninguém fala.

Quando um banco fica indisponível por dez minutos, vira manchete nacional.

Isso mostra o quanto esses sistemas se tornaram essenciais.


A Era da Internet

Quando a internet surgiu, muitos especialistas declararam o fim do Mainframe.

Aconteceu exatamente o contrário.

A internet aumentou a demanda por processamento.

Mais acessos.

Mais transações.

Mais clientes.

Mais integrações.

O Mainframe tornou-se ainda mais importante.


O Nascimento do DB2

Outro capítulo fundamental da IBM foi o DB2.

Criado a partir das pesquisas de Edgar F. Codd sobre bancos relacionais.

O DB2 ajudou a transformar a forma como empresas armazenam dados.

Hoje conceitos como:

SELECT

JOIN

INDEX

TABLE

são comuns.

Mas houve uma época em que tudo isso era revolucionário.


A Revolução do CICS

Outro herói pouco conhecido é o CICS.

Customer Information Control System.

Ele permitiu que sistemas deixassem de ser exclusivamente batch.

Agora usuários podiam interagir online.

Em tempo real.

Caixas eletrônicos.

Terminais bancários.

Consultas instantâneas.

Tudo isso foi potencializado pelo CICS.


O Que Um COBOL Jr Deve Aprender Com a História da IBM?

Primeira lição:

Tecnologia é uma maratona.

Não uma corrida de cem metros.

A IBM não sobreviveu 115 anos perseguindo modismos.

Ela sobreviveu resolvendo problemas reais.


Segunda lição:

Confiabilidade vale ouro.

Uma aplicação pode ser bonita.

Pode usar a linguagem da moda.

Pode ter milhões de downloads.

Mas se não for confiável, não sobrevive.


Terceira lição:

Fundamentos importam.

COBOL.

JCL.

VSAM.

DB2.

CICS.

Datasets.

Esses conceitos parecem antigos.

Mas continuam sustentando operações críticas.


O Futuro Chegou

Hoje a IBM investe pesadamente em:

  • Inteligência Artificial

  • WatsonX

  • Quantum Computing

  • Cloud Híbrida

  • OpenShift

  • Red Hat

  • Automação

Mas existe algo interessante.

Ela não abandonou o Mainframe.

Pelo contrário.

Ela o integrou ao futuro.

O IBM Z moderno executa:

  • Containers

  • APIs REST

  • Java

  • Python

  • Node.js

  • COBOL

  • IA

Tudo no mesmo ecossistema.


O Maior Easter Egg de Todos

Existe uma ironia divertida na história da tecnologia.

Muitos desenvolvedores passam anos tentando criar sistemas escaláveis.

Altamente disponíveis.

Seguros.

Auditáveis.

Transacionais.

E acabam redescobrindo conceitos que o Mainframe já utilizava há décadas.

Controle transacional.

Alta disponibilidade.

Particionamento.

Segurança centralizada.

Recuperação automática.

Observabilidade.

Governança.

Tudo isso já fazia parte do universo IBM muito antes da maioria das plataformas modernas existir.


Conclusão

Quando comemoramos os 115 anos da IBM, não estamos celebrando apenas uma empresa.

Estamos celebrando uma parte importante da história da computação.

Dos cartões perfurados de Hollerith ao IBM z17.

Do COBOL ao WatsonX.

Do System/360 à Inteligência Artificial.

A IBM ajudou a construir a infraestrutura invisível que move a economia global.

E para você, Desenvolvedor COBOL Jr., existe uma mensagem importante nessa história:

Aprenda as tecnologias modernas.

Explore IA.

Conheça Cloud.

Estude APIs.

Mas nunca subestime os fundamentos.

Porque enquanto o mundo muda de linguagem a cada poucos anos, os sistemas críticos continuam exigindo aquilo que sempre importou:

Confiabilidade.

Performance.

Segurança.

Disponibilidade.

E é exatamente nesse ponto que o Mainframe e a IBM construíram um legado que atravessa gerações.

Parabéns, IBM.

115 anos conectando passado, presente e futuro.


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