Translate

Mostrar mensagens com a etiqueta Sistemas Críticos. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Sistemas Críticos. Mostrar todas as mensagens

domingo, 14 de junho de 2026

O Dia em que um Banco Declarou a Própria Liquidação: Lições de Engenharia, Governança e Confiabilidade a partir do Incidente do Nubank

Bellacosa Mainframe e o incidente informatico do Nubank

O Dia em que um Banco Declarou a Própria Liquidação: Lições de Engenharia, Governança e Confiabilidade a partir do Incidente do Nubank

Introdução

Em junho de 2026, um episódio incomum chamou a atenção do mercado financeiro brasileiro, dos profissionais de tecnologia e dos especialistas em gestão de riscos. Clientes do Nubank receberam comunicações oficiais informando que a instituição teria entrado em processo de liquidação. A mensagem, enviada por canais legítimos da empresa, parecia autêntica, utilizava terminologia regulatória correta e mencionava procedimentos relacionados ao Fundo Garantidor de Créditos (FGC).

O problema era simples e ao mesmo tempo alarmante: a informação era falsa.

Em poucas horas, a notícia se espalhou pelas redes sociais, grupos de investidores, fóruns especializados e veículos de imprensa. O Banco Central precisou esclarecer que não existia qualquer procedimento de liquidação em andamento. O Nubank confirmou que se tratava de um erro operacional decorrente de uma falha em processos internos.

À primeira vista, o incidente parece apenas um erro de comunicação. Entretanto, uma análise mais profunda revela um caso clássico de falha sistêmica envolvendo automação, governança, gestão de mudanças, segregação de ambientes e controles de produção.

Mais importante ainda: o episódio oferece uma oportunidade rara para discutir um tema frequentemente negligenciado em empresas digitais modernas — a diferença entre construir sistemas rápidos e construir sistemas confiáveis.


O que aconteceu

Segundo informações divulgadas publicamente, um fluxo responsável por notificações relacionadas a processos de liquidação institucional teria sido acionado indevidamente.

A comunicação foi distribuída para clientes reais utilizando canais oficiais.

Do ponto de vista do usuário final, todos os elementos indicavam legitimidade:

  • origem oficial;

  • identidade visual correta;

  • linguagem regulatória compatível;

  • referência ao FGC;

  • comunicação direta da instituição.

Em segurança da informação existe um princípio fundamental:

O usuário não possui mecanismos para diferenciar uma mensagem legítima de uma mensagem enviada legitimamente por engano.

Essa frase resume a gravidade do incidente.

Quando uma comunicação falsa vem de um atacante externo, o cliente pode desconfiar.

Quando a mesma comunicação vem do próprio banco, a confiança desaparece como mecanismo de defesa.


O erro informático por trás do incidente

Embora os detalhes técnicos completos não tenham sido divulgados, a descrição pública permite inferir algumas hipóteses plausíveis.

O problema parece ter ocorrido em uma combinação de:

  • automação de mensagens;

  • parametrização inadequada;

  • ausência de validações obrigatórias;

  • insuficiência de mecanismos de aprovação.

Em engenharia de software, isso é conhecido como um erro de "guard rails", ou seja, ausência de barreiras que impeçam uma ação perigosa.

Imagine um sistema com a seguinte lógica:

Evento:
Liquidação Institucional

Instituição:
[NOME_DO_BANCO]

Ação:
Enviar comunicação aos clientes

Se o campo da instituição estiver vazio, o sistema deveria interromper imediatamente o processo.

No entanto, em muitos sistemas corporativos existem valores padrão.

Exemplo:

if banco == null:
    banco = "Nubank"

Ou ainda:

if banco == "":
    utilizar_instituicao_padrao()

Pequenos atalhos criados durante desenvolvimento, testes ou homologação podem se transformar em bombas-relógio quando chegam à produção.


Quando ambientes de teste contaminam a produção

Uma das hipóteses mais discutidas é a existência de um fluxo originalmente criado para testes.

Esse cenário é extremamente comum.

Empresas desenvolvem sistemas utilizando ambientes distintos:

Desenvolvimento

Local onde programadores criam funcionalidades.

Homologação

Ambiente utilizado para validações.

Produção

Sistema real utilizado por clientes.

Na teoria, esses ambientes são completamente isolados.

Na prática, muitas organizações acabam criando atalhos.

Exemplos comuns:

  • cópia de bases produtivas;

  • reutilização de configurações;

  • compartilhamento de APIs;

  • uso de dados reais em homologação.

Quando isso acontece, uma fronteira crítica desaparece.

O resultado é que ações originalmente pensadas para teste passam a ter impacto real.


A armadilha da automação

O setor financeiro moderno depende de automação em larga escala.

Bancos digitais enviam diariamente:

  • notificações;

  • alertas;

  • extratos;

  • avisos regulatórios;

  • comunicações de segurança.

Uma única plataforma pode disparar milhões de mensagens por hora.

O benefício é evidente:

  • redução de custos;

  • velocidade operacional;

  • escalabilidade.

O problema é que a automação amplifica erros.

Um funcionário que envia uma mensagem errada manualmente afeta algumas pessoas.

Um sistema automatizado pode afetar milhões.

Existe uma máxima conhecida em operações de TI:

A automação não elimina erros humanos. Ela multiplica seus efeitos.

O incidente ilustra perfeitamente esse princípio.


O papel dos controles de mudança

Toda alteração em sistemas críticos deveria seguir um processo formal.

Esse processo normalmente inclui:

Revisão técnica

Validação por outros desenvolvedores.

Aprovação operacional

Análise dos impactos.

Aprovação de negócio

Validação da área responsável.

Testes

Verificação funcional.

Plano de rollback

Capacidade de reversão rápida.

Quando qualquer uma dessas etapas falha, o risco aumenta exponencialmente.

A questão não é impedir erros.

Erros são inevitáveis.

A questão é impedir que erros individuais alcancem clientes.


O conceito de “blast radius”

Engenheiros de confiabilidade utilizam o conceito de blast radius.

Traduzindo livremente:

"raio de explosão".

A pergunta é simples:

Se algo der errado, quantas pessoas serão afetadas?

Sistemas modernos devem ser projetados para minimizar esse impacto.

Exemplo:

Em vez de enviar uma comunicação para toda a base de clientes, o sistema deveria:

  1. enviar para um grupo piloto;

  2. validar resultados;

  3. liberar gradualmente;

  4. expandir para toda a população.

Essa técnica é utilizada por empresas como:

  • Google;

  • Amazon;

  • Microsoft;

  • Netflix.

Caso o disparo incorreto tivesse sido submetido a um rollout progressivo, o incidente provavelmente teria sido detectado nos primeiros minutos.


O problema dos dados reais em testes

Outro aprendizado importante envolve o uso de dados produtivos.

Muitas empresas utilizam bases reais para reproduzir cenários complexos.

Isso facilita testes.

Também aumenta riscos.

Dados reais possuem características imprevisíveis:

  • relacionamentos existentes;

  • integrações ativas;

  • gatilhos automáticos;

  • usuários legítimos.

Uma rotina criada para laboratório pode encontrar condições inesperadas quando executada em produção.

É por isso que organizações maduras investem em:

  • anonimização;

  • mascaramento de dados;

  • ambientes sintéticos.

O objetivo é reproduzir a realidade sem colocar clientes reais em risco.


O fator psicológico do incidente

Existe um aspecto pouco discutido.

O dano não foi apenas tecnológico.

Foi psicológico.

O sistema financeiro funciona baseado em confiança.

Quando um banco afirma que está sendo liquidado, o cliente não realiza uma análise técnica.

Ele reage emocionalmente.

As perguntas surgem imediatamente:

  • Meu dinheiro está seguro?

  • Preciso sacar recursos?

  • Minha conta continuará funcionando?

  • Meu cartão será cancelado?

  • Vou perder investimentos?

Em poucos minutos pode surgir um fenômeno conhecido como corrida informacional.

Não necessariamente uma corrida bancária tradicional.

Mas uma corrida por esclarecimentos.

Milhares de pessoas acessam simultaneamente:

  • aplicativo;

  • central de atendimento;

  • redes sociais;

  • imprensa.

O volume gerado pode se tornar um problema operacional por si só.


O impacto no mercado

Embora o incidente tenha sido rapidamente esclarecido, ele produziu repercussões relevantes.

Mercados financeiros são altamente sensíveis à informação.

Especialmente quando envolve:

  • liquidez;

  • solvência;

  • regulação.

Investidores institucionais monitoram continuamente sinais de risco.

Uma notícia sobre liquidação, ainda que falsa, pode provocar:

  • volatilidade;

  • aumento de dúvidas;

  • especulação;

  • pressão reputacional.

Mesmo após o esclarecimento, permanece uma questão:

Como um mecanismo tão crítico conseguiu ser acionado incorretamente?

Essa pergunta interessa mais ao mercado do que o próprio erro.

Porque ela trata da maturidade operacional da organização.


O custo invisível da reputação

Empresas costumam medir:

  • receita;

  • lucro;

  • crescimento;

  • número de clientes.

Poucas conseguem medir confiança.

Entretanto, confiança é um dos ativos mais valiosos do setor financeiro.

Uma instituição pode gastar bilhões em marketing.

Mas basta um único incidente de credibilidade para comprometer anos de construção de marca.

A reputação é semelhante a um sistema distribuído:

Leva muito tempo para convergir.

Pode ser afetada em segundos.


O que empresas podem aprender

O incidente produz diversas lições para organizações digitais.

1. Sistemas críticos precisam de múltiplas aprovações

Nenhuma comunicação regulatória deveria depender de uma única ação.

Princípio dos quatro olhos:

duas pessoas precisam validar.

2. Produção deve ser protegida contra operadores

O objetivo não é desconfiar das pessoas.

É reconhecer que erros acontecem.

Sistemas precisam impedir ações perigosas.

3. Rollouts graduais reduzem impacto

Nenhum disparo massivo deveria ocorrer instantaneamente.

4. Testes precisam ser isolados

Ambientes de homologação devem permanecer separados da produção.

5. Alertas precisam monitorar comportamentos anormais

Se uma mensagem de liquidação for enviada, alarmes automáticos deveriam disparar imediatamente.


O paradoxo dos bancos digitais

O caso revela um paradoxo interessante.

Os bancos digitais são extraordinariamente eficientes.

Conseguem:

  • abrir contas em minutos;

  • aprovar cartões rapidamente;

  • processar milhões de transações.

Mas velocidade e confiabilidade nem sempre evoluem no mesmo ritmo.

À medida que organizações crescem, seus sistemas tornam-se mais complexos.

Mais integrações.

Mais automações.

Mais dependências.

Mais pontos de falha.

O desafio deixa de ser construir funcionalidades.

Passa a ser controlar complexidade.


A maturidade dos sistemas modernos

Os maiores incidentes tecnológicos raramente acontecem por falhas sofisticadas.

Na maioria das vezes eles surgem de:

  • configurações incorretas;

  • permissões inadequadas;

  • processos incompletos;

  • validações ausentes.

A história da tecnologia está repleta de exemplos semelhantes.

Falhas milionárias já foram causadas por:

  • campos vazios;

  • scripts de manutenção;

  • comandos executados no ambiente errado;

  • parâmetros incorretos.

O problema não é a tecnologia.

O problema é a interação entre tecnologia, pessoas e processos.


Conclusão

O episódio envolvendo a falsa comunicação de liquidação do Nubank não deve ser interpretado apenas como um erro operacional isolado.

Ele representa um estudo de caso sobre os desafios da engenharia moderna em sistemas de missão crítica.

O incidente demonstrou como um único evento pode atravessar múltiplas camadas organizacionais:

  • tecnologia;

  • governança;

  • comunicação;

  • segurança;

  • reputação;

  • mercado financeiro.

Mais importante, revelou uma verdade frequentemente esquecida em ambientes digitais:

A confiabilidade não nasce da ausência de erros.

Ela nasce da capacidade de impedir que erros inevitáveis se transformem em crises.

Em um mundo onde bancos são plataformas de software, cada linha de código, cada configuração e cada processo operacional participa diretamente da construção da confiança do cliente.

E confiança, diferentemente do software, não pode ser restaurada simplesmente com um novo deploy.

Ela precisa ser reconquistada.

Para ir mais longe

Bellacosa Mainframe e o incidente do nubank







sábado, 13 de junho de 2026

Guard Rails, COBOL, Mainframe, Engenharia de Software, Desenvolvimento COBOL, Sistemas Críticos, Confiabilidade, Governança de TI, DevOps, Arquitetura de Software, Batch Processing, Segurança da Informação, SRE, Boas Práticas, Tecnologia Bancária

 

Bellacosa Mainframe e o guard rails em desenvolvimento de software

Guard Rails: A Arte de Impedir que um Desenvolvedor Derrube o Banco

Uma conversa que todo desenvolvedor COBOL deveria ter

Imagine a seguinte situação.

Você acabou de entrar em uma instituição financeira.

É seu terceiro mês como desenvolvedor COBOL.

Depois de semanas corrigindo pequenos bugs, finalmente recebe uma tarefa importante.

Uma rotina responsável pelo envio de notificações para clientes.

O gerente explica:

— Precisamos incluir um novo tipo de comunicação.

Você faz a alteração.

Compila.

Executa os testes.

Tudo parece funcionar.

A mudança é promovida para produção.

Horas depois, milhares de clientes recebem uma mensagem errada.

O call center entra em colapso.

O aplicativo registra picos de acesso.

O time de negócios inicia uma reunião de emergência.

A diretoria quer explicações.

E então surge a pergunta:

Como isso foi possível?

A resposta geralmente não é:

"Porque o desenvolvedor errou."

A resposta correta costuma ser:

"Porque o sistema permitiu que um erro chegasse à produção."

É exatamente nesse ponto que surge um dos conceitos mais importantes da engenharia moderna:

Guard Rails.


O que são Guard Rails?

A tradução literal seria:

"trilhos de proteção".

A inspiração vem das rodovias.

Quando um carro sai da pista, existe uma barreira metálica para impedir que ele caia de um penhasco.

O guard rail não evita o erro do motorista.

Ele reduz as consequências.

Na engenharia de software acontece exatamente a mesma coisa.

Os desenvolvedores inevitavelmente cometerão erros.

Os analistas inevitavelmente esquecerão requisitos.

Os operadores inevitavelmente clicarão em algo errado.

Os administradores inevitavelmente executarão comandos incorretos.

O objetivo não é eliminar o erro humano.

O objetivo é impedir que o erro se transforme em desastre.


O erro é inevitável

Desenvolvedores juniores costumam acreditar que sistemas caem porque alguém não sabia programar.

Essa visão desaparece rapidamente em ambientes corporativos.

Os maiores incidentes da história da tecnologia não foram causados por programadores incompetentes.

Foram causados por profissionais experientes trabalhando sob pressão.

Pessoas excelentes.

Pessoas inteligentes.

Pessoas treinadas.

Pessoas humanas.

A questão nunca foi:

"Quem errou?"

A questão sempre foi:

"Por que o sistema permitiu?"

Essa diferença muda completamente a forma de construir software.


Um exemplo COBOL simples

Considere um programa que realiza transferência bancária.

Versão sem Guard Rails:

IF SALDO-CONTA > 0
   SUBTRACT VALOR FROM SALDO-CONTA
END-IF.

Parece correto.

Mas existe um problema.

Suponha:

Saldo = 100

Transferência = 1000

O programa permitirá saldo negativo.

Agora uma versão mais segura.

IF VALOR > SALDO-CONTA
   DISPLAY "TRANSFERENCIA NEGADA"
   GO TO FIM-PROGRAMA
END-IF.

O sistema agora protege o negócio.

Isso é um Guard Rail.


Guard Rail não é regra de negócio

Esse é um erro comum.

Muitos desenvolvedores confundem os dois conceitos.

Regra de negócio:

"O cliente não pode sacar mais que possui."

Guard Rail:

"Mesmo que alguém esqueça a regra, o sistema impedirá a operação."

Uma regra define comportamento.

Um Guard Rail protege comportamento.


A filosofia do mainframe

Durante décadas, os ambientes mainframe desenvolveram uma cultura diferente do mundo moderno.

Em startups existe uma frase famosa:

Move fast.

Nos bancos existe outra:

Don't break production.

A razão é simples.

Um erro em rede social gera reclamações.

Um erro bancário gera prejuízo.

Por isso o mundo COBOL sempre valorizou:

  • validação;

  • redundância;

  • auditoria;

  • segregação;

  • rastreabilidade.

Sem perceber, os ambientes mainframe implementavam Guard Rails muito antes do conceito ganhar popularidade.


O caso clássico do JCL

Todo profissional de mainframe já ouviu histórias de horror envolvendo JCL.

Imagine um dataset:

CLIENTES.PRODUCAO

Agora imagine um utilitário de exclusão.

DELETE CLIENTES.PRODUCAO

Um comando simples.

Um erro simples.

Um desastre gigantesco.

Por isso empresas maduras criam Guard Rails.

Por exemplo:

  • confirmação obrigatória;

  • aprovação dupla;

  • ambiente segregado;

  • backup automático.

A exclusão continua possível.

Mas torna-se muito mais difícil.


O princípio do “Are You Sure?”

Existe uma categoria inteira de Guard Rails baseada em confirmação.

Exemplo.

Você tenta apagar um arquivo.

O sistema pergunta:

"Tem certeza?"

Parece algo trivial.

Mas essa simples pergunta já evitou milhões de erros ao longo da história da computação.

Em sistemas financeiros essa ideia evolui.

Em vez de uma confirmação:

  • duas confirmações;

  • dois operadores;

  • dois gestores;

  • duas aprovações.

Chamamos isso de Four Eyes Principle.

Princípio dos quatro olhos.


Guard Rails em processamento batch

O universo COBOL vive cercado de batches.

Folha de pagamento.

Compensação bancária.

Fechamento contábil.

Liquidação financeira.

Imagine um programa que processa:

10.000 registros

Normal.

Agora imagine:

100 milhões de registros

Algo está errado.

Sem Guard Rails o programa continua.

Com Guard Rails ele interrompe:

IF QTDE-REGISTROS > LIMITE-MAXIMO
   DISPLAY "PROCESSAMENTO ANORMAL"
   ABEND
END-IF.

Esse simples teste pode evitar horas de caos operacional.


O conceito de Fail Fast

Existe um princípio muito importante:

Fail Fast.

Falhe rapidamente.

Muitos sistemas tentam continuar funcionando mesmo após identificar inconsistências.

Isso parece inteligente.

Na prática costuma piorar tudo.

Se um dado crítico estiver errado, o melhor comportamento é parar imediatamente.

Exemplo:

IF CODIGO-CLIENTE = SPACES
   ABEND
END-IF.

Parar cedo é melhor do que produzir milhões de registros incorretos.


Guard Rails contra desenvolvedores

Esse é um tema que incomoda iniciantes.

Ninguém gosta de ouvir:

"O sistema precisa proteger a empresa de você."

Mas essa é a realidade.

Um Guard Rail existe justamente porque até profissionais excelentes erram.

Imagine um comando SQL.

Sem proteção:

DELETE FROM CLIENTES;

Com proteção:

DELETE FROM CLIENTES
WHERE ID = :CLIENTE;

Ou ainda melhor.

Permissão somente leitura em produção.

O desenvolvedor continua competente.

O ambiente apenas se torna mais seguro.


O incidente do Nubank e os Guard Rails

O caso do falso aviso de liquidação tornou-se um exemplo interessante.

Independentemente dos detalhes internos, uma pergunta surgiu:

Como uma comunicação tão crítica chegou aos clientes?

A resposta provavelmente envolve ausência ou falha de Guard Rails.

Por exemplo:

  • validação insuficiente;

  • aprovação inadequada;

  • rollout inexistente;

  • testes incompletos.

Nenhum sistema deveria conseguir informar a liquidação de um banco sem múltiplas camadas de proteção.


Rollout gradual

Imagine um envio para:

50 milhões de clientes

Sem Guard Rail:

envio imediato.

Com Guard Rail:

1% da base.

Validação.

5%.

Validação.

10%.

Validação.

100%.

Empresas como Google, Amazon e Netflix utilizam esse modelo constantemente.

O objetivo é reduzir o raio da explosão.


Blast Radius

Todo arquiteto experiente faz uma pergunta.

Se isso falhar, quantas pessoas serão afetadas?

Chamamos isso de Blast Radius.

Raio de explosão.

Exemplo.

Erro em um batch:

Impacto:

500 clientes.

Blast Radius pequeno.

Erro em compensação nacional:

Impacto:

50 milhões de clientes.

Blast Radius enorme.

Guard Rails existem para reduzir esse raio.


Observabilidade também é Guard Rail

Muitos desenvolvedores acreditam que Guard Rails são apenas validações.

Não.

Monitoramento também é proteção.

Imagine:

Processamento esperado:

1000 transações por minuto

Sistema detecta:

500.000 transações por minuto

Algo claramente está errado.

Um bom sistema dispara alarmes.

Isso também é Guard Rail.


O conceito de Circuit Breaker

Em sistemas distribuídos modernos existe outro Guard Rail famoso.

Circuit Breaker.

Inspirado nos disjuntores elétricos.

Se uma dependência começa a falhar:

o sistema corta a conexão.

Em vez de derrubar tudo.

No mundo mainframe encontramos equivalentes há décadas:

  • limites operacionais;

  • interrupções controladas;

  • filas protegidas;

  • rejeições automáticas.

A ideia é a mesma.

Conter danos.


O erro mais caro é o silencioso

Existe uma frase conhecida entre engenheiros de confiabilidade:

Sistemas barulhentos são irritantes.

Sistemas silenciosamente errados são perigosos.

Um programa que falha imediatamente chama atenção.

Um programa que produz dados incorretos durante três dias pode gerar prejuízos gigantescos.

Por isso Guard Rails modernos privilegiam transparência.

Tudo deve ser:

  • registrado;

  • monitorado;

  • auditado;

  • rastreável.


A maturidade profissional

Existe um momento na carreira em que o desenvolvedor deixa de pensar:

"Meu código funciona."

E começa a pensar:

"O que acontece quando ele falhar?"

Essa mudança separa programadores iniciantes de engenheiros experientes.

O foco deixa de ser funcionalidade.

Passa a ser confiabilidade.


O que um desenvolvedor COBOL Jr deve fazer

Sempre pergunte:

O que pode dar errado?

Quem será impactado?

Existe limite operacional?

Existe validação?

Existe rollback?

Existe auditoria?

Existe monitoramento?

Existe aprovação?

Existe segregação?

Existe plano de contingência?

Se alguma resposta for "não sei", continue investigando.


A grande lição

Guard Rails não existem porque desenvolvedores são ruins.

Eles existem porque sistemas são complexos.

Quanto maior a empresa, mais perigoso se torna assumir que ninguém cometerá erros.

O verdadeiro papel da engenharia não é criar sistemas perfeitos.

É criar sistemas resilientes.

Sistemas que sobrevivam a erros humanos.

Sistemas que sobrevivam a falhas operacionais.

Sistemas que sobrevivam a decisões equivocadas.

No universo bancário, onde bilhões de reais transitam diariamente por programas COBOL escritos ao longo de décadas, essa diferença não é apenas uma questão técnica.

É uma questão de sobrevivência operacional.

E talvez a principal lição para qualquer desenvolvedor COBOL Jr seja esta:

Seu trabalho não é apenas fazer o programa funcionar.

Seu trabalho é impedir que ele cause danos quando inevitavelmente algo der errado.

Esse é o verdadeiro significado de Guard Rails.


sexta-feira, 12 de junho de 2026

Blast Radius: Por Que um Pequeno Erro Pode Derrubar um Banco Inteiro

 

Bellacosa Mainframe e o blast radius em desenvolvimento de software

Blast Radius: Por Que um Pequeno Erro Pode Derrubar um Banco Inteiro

Uma das perguntas mais importantes da engenharia moderna

Imagine que você acabou de entrar em uma grande instituição financeira.

Você é um desenvolvedor COBOL Jr.

Recebe uma tarefa aparentemente simples.

Alterar uma rotina de validação em um programa batch.

O código possui apenas algumas linhas.

A mudança é pequena.

O teste passou.

O deploy foi aprovado.

Tudo parece sob controle.

Dois dias depois surge uma reunião de crise.

Executivos estão reunidos.

Gerentes estão nervosos.

Equipes de infraestrutura trabalham durante a madrugada.

Milhões de registros foram processados incorretamente.

O prejuízo é enorme.

E então alguém faz uma pergunta que todo arquiteto experiente conhece:

Qual era o Blast Radius dessa mudança?

Essa pergunta vale mais do que qualquer revisão de código.

Mais do que qualquer ferramenta de monitoramento.

Mais do que qualquer framework moderno.

Porque ela determina o tamanho potencial do desastre.


O que significa Blast Radius?

A tradução literal seria:

Raio de Explosão.

O termo vem do universo militar.

Quando ocorre uma explosão, existe uma área diretamente afetada.

Quanto maior a explosão, maior o raio de destruição.

A engenharia de software adotou exatamente a mesma ideia.

Quando um sistema falha, uma pergunta precisa ser respondida:

Quantas pessoas, sistemas, operações ou clientes serão impactados?

Essa área de impacto é chamada Blast Radius.


O erro que afeta um cliente

Imagine um programa COBOL responsável por atualizar dados cadastrais.

Um erro afeta:

1 cliente

Problema?

Sim.

Crise?

Provavelmente não.

O impacto é localizado.

O Blast Radius é pequeno.


O erro que afeta um banco inteiro

Agora imagine um programa responsável pela compensação financeira nacional.

Um erro afeta:

30 milhões de clientes

Mesma quantidade de linhas alteradas.

Mesmo programador.

Mesmo tipo de erro.

Resultado completamente diferente.

Por quê?

Porque o Blast Radius mudou.


A pergunta que diferencia um programador de um engenheiro

O desenvolvedor iniciante normalmente pergunta:

Meu código funciona?

O engenheiro experiente pergunta:

O que acontece se ele falhar?

Essa mudança de mentalidade é uma das maiores evoluções na carreira de tecnologia.

Porque sistemas críticos não são avaliados apenas pelo sucesso.

Eles são avaliados pela forma como falham.


O mito do pequeno erro

Existe uma crença perigosa em ambientes corporativos.

"Foi só uma alteração pequena."

O tamanho do código raramente determina o tamanho do impacto.

Um único caractere já derrubou sistemas inteiros.

Um único parâmetro incorreto já gerou perdas milionárias.

Uma única configuração errada já interrompeu operações globais.

O impacto depende do Blast Radius.

Não da quantidade de código.


O universo COBOL e o poder invisível

Desenvolvedores COBOL trabalham em uma situação peculiar.

Muitas vezes manipulam sistemas que movimentam bilhões de reais diariamente.

Mas a interface parece simples.

Uma tela verde.

Alguns arquivos.

JCLs.

Datasets.

Rotinas batch.

Tudo parece tranquilo.

Até que alguém descobre que aquele programa processa:

  • contas correntes;

  • cartões;

  • empréstimos;

  • investimentos;

  • liquidações;

  • compensações.

De repente o código ganha outra dimensão.


O efeito dominó

Imagine uma falha em um cadastro.

Cliente incorreto.

Esse dado alimenta:

  • CRM;

  • antifraude;

  • cobrança;

  • compliance;

  • atendimento;

  • relatórios regulatórios.

Agora uma pequena falha inicial se transforma em dezenas de falhas secundárias.

Isso é amplificação de Blast Radius.


O conceito de dependências

Sistemas modernos não vivem isolados.

Um programa chama outro.

Que chama outro.

Que alimenta outro.

Que gera arquivos para outro.

O resultado é uma rede gigantesca.

Quando um componente falha, o impacto se propaga.

Como peças de dominó.


O exemplo do CPF inválido

Imagine uma rotina simples.

Um CPF inválido passa pela validação.

O erro parece pequeno.

Mas esse dado segue adiante.

Abre conta.

Gera cartão.

Produz relatórios.

Entra em auditorias.

Alimenta modelos analíticos.

Meses depois ninguém sabe mais onde o problema começou.

O Blast Radius cresceu silenciosamente.


O incidente do Nubank como estudo de caso

O episódio envolvendo o falso aviso de liquidação trouxe uma lição interessante.

Independentemente dos detalhes internos, a pergunta arquitetural é:

Qual era o Blast Radius daquele processo?

Se a mensagem atingisse:

10 clientes

O incidente seria pequeno.

Se atingir milhões:

O cenário muda completamente.

A mesma falha produz consequências exponencialmente maiores.


Blast Radius e ambientes de produção

Uma regra simples:

Quanto mais próximo da produção, maior o Blast Radius.

Ambiente de desenvolvimento:

Impacto quase zero.

Homologação:

Impacto limitado.

Produção:

Impacto real.

Produção financeira:

Impacto potencialmente gigantesco.

É por isso que instituições financeiras possuem tantos controles.

Não por burocracia.

Mas porque o custo do erro é enorme.


O perigo dos batches

O mundo COBOL é dominado por processamento em massa.

Um programa pode executar durante horas.

Processando milhões de registros.

O problema é simples.

Se houver um erro:

Ele será repetido milhões de vezes.

Um erro individual torna-se um erro industrializado.


O erro multiplicado

Imagine:

1 registro incorreto

Sem batch:

impacto pequeno.

Agora imagine:

50 milhões de registros

Processados pela mesma lógica defeituosa.

O erro não mudou.

O Blast Radius mudou.


Como arquitetos pensam

Arquitetos raramente perguntam:

"Qual tecnologia usamos?"

Eles perguntam:

"Qual o pior cenário possível?"

Essa pergunta direciona toda a arquitetura.

Porque sistemas críticos são construídos para sobreviver a falhas.

Não apenas para funcionar.


Blast Radius e permissões

Um desenvolvedor possui acesso de leitura.

Blast Radius reduzido.

Um desenvolvedor possui acesso irrestrito.

Blast Radius elevado.

É por isso que ambientes maduros trabalham com:

  • menor privilégio;

  • segregação;

  • controle de acesso;

  • aprovações.

Tudo isso é gestão de Blast Radius.


Blast Radius e banco de dados

Imagine um comando SQL.

Primeiro cenário:

UPDATE CLIENTES
SET STATUS='A'
WHERE ID=100;

Impacto:

um cliente.

Segundo cenário:

UPDATE CLIENTES
SET STATUS='A';

Impacto:

todos os clientes.

A diferença visual é mínima.

A diferença operacional é gigantesca.


O princípio da contenção

Existe uma palavra muito importante.

Contenção.

Todo sistema moderno deveria conter falhas.

Não espalhá-las.

Por isso empresas investem em:

  • segmentação;

  • isolamento;

  • partições;

  • zonas independentes.

O objetivo é impedir que uma falha local se torne global.


O conceito de células

Empresas como Amazon popularizaram a ideia de Cell Architecture.

Em vez de uma estrutura única gigante.

Criam-se células menores.

Se uma célula falhar:

As demais continuam operando.

Isso reduz drasticamente o Blast Radius.


Mainframe já fazia isso há décadas

Curiosamente, ambientes mainframe utilizavam conceitos semelhantes muito antes da computação em nuvem.

Exemplos:

  • LPARs;

  • regiões CICS;

  • filas separadas;

  • ambientes segregados;

  • jobs independentes.

A filosofia era exatamente a mesma.

Conter impactos.


O problema do compartilhamento excessivo

Quanto mais sistemas compartilham recursos, maior o Blast Radius.

Banco compartilhado.

Fila compartilhada.

Storage compartilhado.

Processamento compartilhado.

Tudo isso cria pontos únicos de falha.

Um problema em um componente afeta dezenas de outros.


O conceito de Blast Radius Humano

Pouca gente fala sobre isso.

Mas pessoas também possuem Blast Radius.

Imagine:

Um único operador consegue executar qualquer comando em produção.

Blast Radius enorme.

Agora imagine:

Necessidade de aprovação dupla.

Blast Radius reduzido.

A governança existe para limitar o alcance dos erros humanos.


O papel dos Guard Rails

Blast Radius e Guard Rails caminham juntos.

Guard Rails tentam impedir erros.

Blast Radius tenta limitar consequências.

Exemplo:

Guard Rail:

impedir exclusão acidental.

Blast Radius:

caso a exclusão ocorra, limitar o impacto.

São conceitos complementares.


Rollout gradual

Uma das formas mais modernas de controlar Blast Radius é o rollout progressivo.

Em vez de liberar uma mudança para todos.

Liberamos para poucos.

Por exemplo:

1%.

Depois 5%.

Depois 10%.

Depois 100%.

Se houver erro, ele será detectado cedo.

O impacto permanece pequeno.


O medo saudável da produção

Existe uma característica interessante nos profissionais experientes de mainframe.

Eles respeitam produção.

Não porque tenham medo da tecnologia.

Mas porque entendem o Blast Radius.

Produção concentra:

  • clientes;

  • dinheiro;

  • contratos;

  • obrigações regulatórias;

  • reputação.

Uma pequena falha pode produzir consequências gigantescas.


Observabilidade e Blast Radius

Você não controla aquilo que não consegue enxergar.

Por isso monitoramento é fundamental.

Imagine um batch que normalmente processa:

500 mil registros

Hoje processou:

50 milhões

Algo claramente está errado.

Um sistema observável detecta rapidamente.

Quanto mais cedo o problema é identificado, menor o Blast Radius.


O custo da reputação

Em bancos existe um ativo invisível.

Confiança.

Quando uma falha afeta poucos clientes, a recuperação costuma ser simples.

Quando afeta milhões, surge um problema adicional.

Reputação.

O Blast Radius passa a incluir:

  • imprensa;

  • investidores;

  • reguladores;

  • mercado.

O dano deixa de ser apenas tecnológico.


O exercício mental que todo COBOL Jr deveria fazer

Antes de qualquer alteração, pergunte:

Se eu errar:

  • Quantos clientes serão impactados?

  • Quantos sistemas dependem disso?

  • Existe rollback?

  • Existe monitoramento?

  • Existe plano de contingência?

  • Existe limite operacional?

  • Existe validação?

  • Existe segregação?

Essas perguntas valem mais do que qualquer linha de código.


A verdadeira maturidade profissional

Existe um momento em que o desenvolvedor deixa de ser apenas um programador.

Ele passa a enxergar sistemas.

Passa a enxergar operações.

Passa a enxergar negócios.

Passa a enxergar riscos.

Nesse momento surge uma nova pergunta.

Não mais:

O programa funciona?

Mas sim:

Qual é o Blast Radius se ele parar de funcionar?

Essa mudança de perspectiva transforma a forma de desenvolver software.


Conclusão

Blast Radius é um dos conceitos mais importantes da engenharia moderna porque nos obriga a pensar além do código.

Ele nos força a enxergar impacto.

A enxergar consequências.

A enxergar riscos.

Para um desenvolvedor COBOL Jr, compreender Blast Radius significa entender que o tamanho de uma alteração não determina sua importância.

Uma linha de código pode alterar milhões de contas.

Um único parâmetro pode interromper operações nacionais.

Uma pequena falha pode se propagar por dezenas de sistemas.

Os melhores engenheiros não são aqueles que acreditam que nunca errarão.

São aqueles que projetam sistemas assumindo que erros inevitavelmente acontecerão.

E quando eles acontecerem, o objetivo não será impedir a explosão.

Será garantir que o raio da explosão seja o menor possível.

Esse é o verdadeiro significado de Blast Radius.


domingo, 26 de abril de 2026

💣🔥 VOCÊ PROGRAMA COBOL… MAS QUEM MANDA NO JOGO É O JCL — O SEGREDO QUE NINGUÉM TE CONTA NO MAINFRAME 🔥💣

 

Bellacosa Mainframe mostra o poder do batch COBOL e JCL dupla imbativel

💣🔥 VOCÊ PROGRAMA COBOL… MAS QUEM MANDA NO JOGO É O JCL — O SEGREDO QUE NINGUÉM TE CONTA NO MAINFRAME 🔥💣

No universo mainframe, existe uma ilusão perigosa — e eu vou quebrar ela agora:

Muita gente acha que COBOL é o protagonista.

Mas sem JCL… COBOL não passa de código parado no disco.

Vamos destrinchar isso no estilo raiz — direto do chão de fábrica do z/OS.


🧠 ESSÊNCIA (SEM ENROLAÇÃO)

No ecossistema mainframe, duas siglas reinam:

  • COBOL → linguagem de programação
  • JCL → linguagem de controle

E aqui está a verdade crua:

🔥 COBOL pensa. JCL executa.


🔹 COBOL — O CÉREBRO DO NEGÓCIO

COBOL (Common Business-Oriented Language) é onde mora a inteligência do sistema.

É nele que você define:

  • Cálculos (juros, impostos, tarifas)
  • Regras de negócio
  • Validações
  • Leitura e gravação de dados

👉 Em outras palavras:

COBOL é onde a regra do banco, da seguradora, do governo ganha vida.

💥 Exemplo clássico:

IF SALDO > 1000
COMPUTE JUROS = SALDO * 0.05
END-IF

Aqui está a lógica. Mas… isso ainda não roda sozinho.


🔹 JCL — O MAESTRO INVISÍVEL

JCL (Job Control Language) não é linguagem de programação.

Ele é o orquestrador do caos.

Ele diz ao sistema:

  • Quando executar
  • Qual programa rodar
  • Quais arquivos usar
  • Em que ordem executar os passos
  • Quais recursos alocar

👉 Tradução Bellacosa:

JCL é o cara que aperta o botão, monta o ambiente e garante que tudo aconteça.


⚙️ EXEMPLO REAL (RAIZ DE PRODUÇÃO)

🧠 COBOL (a lógica)

Programa que calcula juros.

⚙️ JCL (a execução)

//JUROS JOB (ACCT),'CALCULO'
//STEP1 EXEC PGM=CALCJUROS
//INPUT DD DSN=CLIENTES.DADOS,DISP=SHR
//OUTPUT DD DSN=CLIENTES.RESULT,DISP=NEW

👉 O que está acontecendo aqui?

  • O JCL chama o programa COBOL (CALCJUROS)
  • Define os arquivos de entrada e saída
  • Controla execução e recursos

💥 Sem isso?
O programa COBOL nunca sai do papel.


🧩 ANALOGIA PODEROSA (GUARDA ISSO)

Pensa assim:

  • 🧠 COBOL = o chef que sabe cozinhar
  • 🎛️ JCL = o gerente da cozinha que liga o fogão, entrega ingredientes e organiza os pedidos

👉 Sem o chef → não tem comida
👉 Sem o gerente → ninguém cozinha


🚨 ERRO CLÁSSICO DE INICIANTE

Muita gente entra no mainframe achando:

“Vou aprender COBOL e pronto.”

❌ Errado.

Sem entender JCL você não sabe:

  • Submeter jobs
  • Controlar batch
  • Interpretar abends
  • Trabalhar com datasets
  • Entender fluxo real de produção

👉 Resultado?
Fica dependente de outros… ou perdido no spool.


🔥 O PONTO QUE SEPARA AMADOR DE PROFISSIONAL

Quem domina só COBOL:

  • escreve código

Quem domina COBOL + JCL:

  • entende o sistema inteiro

E aqui está o salto de carreira:

💣 Mainframe não é só programar. É orquestrar processamento.


📊 BATCH: ONDE TUDO ACONTECE

O JCL brilha principalmente no mundo batch:

  • Processamento noturno
  • Milhões de registros
  • Integração entre sistemas
  • Fechamentos financeiros

👉 É aqui que o mainframe mostra por que ainda domina o mundo.


🧠 RESUMO BELLACOSA (NA VEIA)

  • COBOL → o que fazer
  • JCL → como, quando e com o quê fazer

🔥 COBOL sem JCL é potencial.
JCL sem COBOL é vazio.
Juntos? Missão crítica rodando há décadas.


💬 REFLEXÃO FINAL

Se você quer realmente entrar no jogo do mainframe…

Não escolha entre COBOL e JCL.

Domine os dois.

Porque no mundo real:

  • O banco não quer só código
  • Ele quer processamento funcionando
  • Sem falha
  • Sem atraso
  • Sem desculpa

💣 FRASE PRA LEVAR PRA VIDA

“Quem escreve COBOL acha que manda.
Quem domina JCL sabe que manda.”

sábado, 25 de abril de 2026

💣🔥 ZXplore — O “TSO Gamificado” da Nova Geração: você ainda está lendo manual… enquanto o mercado está jogando? 🔥💣

 

Bellacosa Mainframe e o TSO Gameficado ZXplore

💣🔥 ZXplore — O “TSO Gamificado” da Nova Geração: você ainda está lendo manual… enquanto o mercado está jogando? 🔥💣

Existe um momento na história da TI em que o jogo vira.

Não é quando surge uma nova linguagem.
Não é quando muda o hardware.
É quando a forma de aprender muda.

E é exatamente isso que a plataforma IBM Z Xplore representa.


🧠 O nascimento: do “Master the Mainframe” ao laboratório infinito

Antes de existir o ZXplore, havia um ritual quase lendário: o programa Master the Mainframe.

Era sazonal.
Era desafiador.
Era quase um “rite of passage” para quem queria tocar no z/OS sem pedir permissão.

Mas tinha um problema:
👉 acabava.

Então a IBM fez algo que poucos perceberam na época:

Transformou um evento… em um ecossistema contínuo.

➡️ O ZXplore nasce oficialmente por volta de 2021 como sucessor direto desse programa, agora disponível o ano inteiro, sob demanda, sem barreiras

💡 Tradução Bellacosa:

O mainframe saiu do calendário… e entrou no fluxo.


⚙️ O que é o ZXplore (sem marketing, só realidade crua)

A plataforma é um ambiente de aprendizado hands-on, baseado em desafios, onde você literalmente executa tarefas de mundo real no universo IBM Z.

Sem enrolação. Sem PDF infinito.

Você entra e:

  • Cria datasets
  • Executa JCL
  • Escreve COBOL, REXX, Python
  • Navega no USS
  • Interage com Db2, VSAM, TSO/ISPF

Tudo isso na prática, não na teoria

E o mais absurdo:

👉 Totalmente gratuito e global
👉 Sem pré-requisito
👉 Com badge reconhecido pelo mercado

Sim… você ganha credencial que aparece no LinkedIn e pode te colocar em radar de recrutador.


🎮 A sacada genial: transformar mainframe em “game loop”

Aqui está o pulo do gato.

O ZXplore não ensina como um curso.
Ele ensina como um jogo.

Você tem:

  • Missões (challenges)
  • Níveis (Fundamental → Advanced → Extended)
  • Recompensas (badges)
  • Progressão clara

E isso muda TUDO.

Porque o cérebro humano responde melhor a:

👉 progresso visível
👉 pequenas vitórias
👉 sensação de conquista

💡 Isso é neurociência aplicada ao mainframe.


🧬 O paradoxo mais intrigante

Pense nisso:

  • O mainframe é a tecnologia mais antiga ainda em uso massivo (raiz lá no System/360 de 1964)
  • E o ZXplore é uma das formas mais modernas de aprendizado digital

👉 Velho + novo = vantagem absurda

Enquanto o mundo aprende cloud com hype,
quem aprende Z com profundidade entra em um mercado onde:

  • 68% das transações globais passam por mainframe
  • Existe escassez REAL de profissionais
  • E a curva de entrada ainda assusta iniciantes

💣 Resultado: menos concorrência, mais valor


Bellacosa Mainframe te desafia torne-se um Mainframer


🧠 Curiosidades que pouca gente comenta

🔥 1. Você já está usando mainframe… sem saber

Cartão, PIX, companhia aérea, banco…
Tudo isso roda em IBM Z.

👉 ZXplore é basicamente o “bastidor do mundo”.


🔥 2. Não é só COBOL

Muita gente entra achando que é um museu.

E descobre:

  • Node.js
  • Machine Learning
  • APIs
  • Automação com Ansible

👉 O Z virou híbrido, moderno e conectado.


🔥 3. A IBM está resolvendo um problema silencioso

Existe um “apagão geracional” no mainframe.

O ZXplore é a resposta:

👉 treinar nova geração sem depender de universidades
👉 criar pipeline de talentos global


🔥 4. Aprender aqui muda sua mentalidade

Você para de pensar como dev comum
e começa a pensar como engenheiro de sistemas críticos

  • performance real
  • consistência
  • disponibilidade
  • zero downtime

🧩 Dicas no estilo Bellacosa (ouro puro aqui)

💡 1. Não pule os fundamentos

Dataset e JCL parecem “chatos”…
até você perceber que isso é o coração do sistema


💡 2. Pense como operador, não só programador

Mainframe não é só código.

É:

  • fluxo
  • batch
  • integração
  • controle

💡 3. Use erro como professor

ZXplore não entrega resposta pronta.

👉 E isso é INTENCIONAL.

Erro aqui = aprendizado real.


💡 4. Faça os challenges como se fosse produção

Não é exercício.

👉 É simulação de ambiente corporativo.


🚀 O impacto real (sem romantizar)

Quem completa o ZXplore não vira “expert”.

Mas vira algo muito mais valioso:

👉 alguém que entrou no ecossistema

E isso muda o jogo porque:

  • Você entende o ambiente
  • Você fala a linguagem
  • Você reduz o medo do mainframe

E onde há menos medo… há mais oportunidade.


💣 Conclusão — o alerta que ninguém te deu

Enquanto muita gente:

  • discute linguagem da moda
  • pula de framework em framework
  • corre atrás do hype da semana

Existe um sistema silencioso rodando o mundo.

E agora existe um portal de entrada.

👉 O ZXplore.

A pergunta não é se vale a pena.

A pergunta é:

🔥 Você vai continuar assistindo tutorial… ou vai entrar no sistema que nunca parou?


segunda-feira, 20 de abril de 2026

💣 COBOL NÃO É LEGADO — É CARÁTER: O CAMINHO DO DEV QUE QUER SAIR DO “OPERADOR DE JOB” PARA ENGENHEIRO DE MISSÃO CRÍTICA

 

Bellacosa Mainframe uma conversa com DEVs Programadores COBOL

💣 COBOL NÃO É LEGADO — É CARÁTER: O CAMINHO DO DEV QUE QUER SAIR DO “OPERADOR DE JOB” PARA ENGENHEIRO DE MISSÃO CRÍTICA


Existe um mito silencioso no mundo corporativo:
o de que o desenvolvedor COBOL é apenas um “mantenedor de código antigo”.

Isso não só está errado — é perigoso.

Porque enquanto muitos enxergam “legado”, poucos entendem que estão sentados em cima de o sistema nervoso de bancos, seguradoras, bolsas e governos inteiros.

E aí vem a pergunta que separa os comuns dos raros:

👉 Você é um digitador de programa… ou um engenheiro de sistema crítico?


🧭 ORIGEM: QUANDO O COBOL NÃO ERA “VELHO” — ERA REVOLUCIONÁRIO

COBOL nasceu nos anos 60 com uma missão ousada:

ser compreensível para humanos de negócio

Enquanto outras linguagens eram matemáticas, o COBOL era quase… literatura.

Exemplo clássico:

ADD SALARIO TO TOTAL-PAGAMENTO.

Isso não é código. Isso é intenção.

💡 Easter Egg histórico:
A linguagem foi fortemente influenciada por Grace Hopper, que defendia que código deveria ser legível como inglês — algo que hoje o mundo redescobre com “clean code”.


⚠️ O PROBLEMA MODERNO: O DEV QUE PAROU NO TEMPO

O erro mais comum não é técnico.

É mental.

O dev COBOL muitas vezes cai em um desses perfis:

  • 🔁 “Eu só faço manutenção”
  • 🧱 “Sempre foi assim”
  • 📦 “Não mexe nisso que funciona”

Esse mindset transforma profissionais em… gargalos humanos.

E o mercado já percebeu isso.

Hoje não falta vaga para COBOL.
Falta gente que pensa além do COBOL.


🧠 EVOLUÇÃO REAL: O QUE SEPARA O DEV COMUM DO DIFERENCIADO

Vamos direto ao ponto.

1. 📊 ENTENDER O NEGÓCIO (DE VERDADE)

Se você não sabe o que seu programa faz no negócio…

👉 você é substituível.

Um dev COBOL de alto nível sabe responder:

  • Esse programa impacta qual produto bancário?
  • Qual risco financeiro existe aqui?
  • Qual o impacto de uma falha?

💡 Exemplo real:

Um simples IF mal feito pode gerar milhões em prejuízo em cálculo de juros.


2. 🔍 LER MAIS DO QUE ESCREVER

Dev COBOL sênior não escreve código rápido.

Ele entende código legado absurdo com facilidade.

Exemplo clássico:

IF WS-IND = 'S' OR 'Y' AND NOT = 'N'

👉 Isso aqui é bug esperando acontecer.

O profissional evoluído:

  • refatora
  • documenta
  • simplifica

3. ⚙️ DOMINAR O ECOSSISTEMA (NÃO SÓ COBOL)

COBOL sozinho não vive.

Você precisa dominar:

  • JCL (o sangue do batch)
  • CICS (o tempo real)
  • DB2 (a memória do sistema)
  • VSAM (o legado vivo)
  • SORT / IDCAMS (os bastidores)

💥 Easter Egg técnico:
Muitos problemas de “performance COBOL” são, na verdade, problemas de JCL mal desenhado ou acesso ineficiente ao DB2.


4. 🚀 PERFORMANCE É DIFERENCIAL (E POUCOS DOMINAM)

Um dev comum faz funcionar.
Um dev avançado faz escalar.

Exemplo:

  • Evitar READ NEXT desnecessário
  • Usar buffers corretamente
  • Reduzir I/O
  • Escolher entre VSAM vs DB2 com critério

💡 Curiosidade:
Mainframe ainda processa bilhões de transações por dia — e COBOL está no centro disso.


5. 🌐 APRENDER A CONVERSAR COM O MUNDO MODERNO

Aqui está o divisor de águas atual.

Você precisa saber integrar COBOL com:

  • APIs REST
  • JSON
  • Mensageria
  • z/OS Connect
  • Microservices

Exemplo simples de mentalidade:

Antes:

Programa batch gera arquivo

Depois:

Programa expõe serviço consumido por app mobile

💥 Isso muda tudo.


6. 🧩 REFACTORING: A ARTE QUE QUASE NINGUÉM FAZ

Código COBOL antigo muitas vezes é um labirinto.

Mas cuidado:

👉 refatorar sem entender é quebrar produção.

O profissional diferenciado:

  • entende fluxo completo
  • cria versões paralelas
  • valida com dados reais
  • documenta decisões

7. 📚 DOCUMENTAR COMO SE SUA VIDA DEPENDESSE DISSO

Porque depende.

Mainframe tem um problema clássico:

conhecimento tribal

Se você sair… o sistema para.

Quem documenta bem:

  • vira referência
  • cresce rápido
  • reduz riscos

🧪 EXEMPLO PRÁTICO: DO DEV COMUM AO ENGENHEIRO

Situação:

Programa COBOL lê VSAM e calcula saldo.

Dev comum:

  • ajusta campo
  • recompila
  • entrega

Dev evoluído:

  • entende regra de negócio
  • valida consistência histórica
  • analisa impacto em batch downstream
  • melhora performance
  • documenta fluxo
  • sugere evolução (API, por exemplo)

👉 Resultado: ele não entrega código.

Ele entrega segurança operacional.


🧿 FILOSOFIA DO MAINFRAME: DISCIPLINA > MODISMO

Enquanto o mundo corre atrás de frameworks…

o mainframe exige:

  • precisão
  • previsibilidade
  • responsabilidade

💡 Um erro aqui não derruba um site.

👉 Derruba um banco.


🧨 EASTER EGG FINAL (PARA QUEM É RAIZ)

Se você nunca:

  • analisou um dump S0C7 na unha
  • perseguiu um abend fantasma
  • ou depurou JOB em produção

… você ainda não viu o verdadeiro mainframe.


🏁 CONCLUSÃO: O DEV COBOL DO FUTURO NÃO É LEGADO — É RARO

O mercado não quer mais alguém que “sabe COBOL”.

Quer alguém que:

  • entende negócio
  • domina ecossistema
  • pensa em arquitetura
  • integra com o mundo moderno
  • resolve problemas críticos

👉 Isso não é um programador.

Isso é um engenheiro de missão crítica.


☕ FRASE FINAL (ESTILO BELLACOSA)

“COBOL não é sobre o passado.
É sobre quem tem coragem de carregar o presente… sem margem para erro.”

 

quinta-feira, 16 de abril de 2026

💥 CICS Não é Legado: Como o CICS TS 6.3 Está Processando Milhões de Transações por Segundo (Enquanto o Mundo Ainda Subestima o Mainframe)

 

Bellacosa Mainframe apresenta o CICS TS versão 6.3

💥 CICS Não é Legado: Como o CICS TS 6.3 Está Processando Milhões de Transações por Segundo (Enquanto o Mundo Ainda Subestima o Mainframe)

🧠 CICS Transaction Server – visão geral atual

O produto que manda no jogo é o
👉 IBM CICS Transaction Server for z/OS

  • Middleware transacional de altíssimo volume
  • Base de praticamente todos os bancos, seguradoras e governos
  • Arquitetura cooperativa de multitarefa (quase um “mini-OS dentro do z/OS”)

🚀 Versão mais recente (estado da arte)

👉 Versão atual: CICS TS 6.3
👉 Data de GA: 05 de setembro de 2025

📌 Importante:

  • A linha 6.x segue modelo continuous delivery
  • Atualizações continuam saindo (inclusive em 2026)

🧬 Evolução recente (6.1 → 6.2 → 6.3)

🟢 CICS TS 6.1 (2022)

  • Base da nova geração
  • Foco:
    • APIs modernas
    • Cloud enablement
    • Melhor governança operacional

🟡 CICS TS 6.2 (2024)

  • Performance tuning pesado
  • Melhorias operacionais reais (não só dev)
  • Consolidação da documentação (6.x unificado)

💡 Destaque Bellacosa:

Aqui o CICS começou a “respirar DevOps de verdade”


🔵 CICS TS 6.3 (2025 – atual)

  • Foco forte em:
    • Observabilidade (OpenTelemetry)
    • Segurança
    • Automação operacional
    • Integração com APIs modernas

Exemplo prático:

  • Flush automático de dados de telemetria (SMF + observabilidade moderna)

🔐 Segurança evoluída

  • HSTS (HTTP Strict Transport Security)
  • Melhor visibilidade de login (tentativas, timestamps)

⚙️ Limites operacionais (o que ninguém te explica direito)

Agora vem o ouro 👇 (estilo Bellacosa raiz)

👥 Limite de usuários

👉 Não existe limite fixo definido pelo CICS

Depende de:

  • Região (QR TCB)
  • Storage (EDSAs / GDSA / RDSA)
  • Tuning de SIT

💡 Na prática:

  • Milhares de usuários simultâneos são comuns
  • Bancos operam com dezenas de milhares

🧵 Limite de tasks (TCLASS / MAXTASKS)

👉 Controlado por:

  • MXT (Max Tasks global da região)
  • TCLASS (limite por tipo de workload)

💥 Valores típicos:

  • MXT: 500 até 2000+ (ou mais em ambientes modernos)
  • Pode escalar dependendo de CPU e tuning

📌 Importante:

  • Cada transação = 1 TASK
  • CICS é cooperativo (não preemptivo)

🔁 Limite de transações por segundo (TPS)

👉 Não existe limite fixo no produto

Depende de:

  • CPU (MSU / MIPS)
  • I/O (VSAM / DB2 / MQ)
  • Locking
  • Design da aplicação

💥 Casos reais:

  • 10.000+ TPS → comum
  • 50.000+ TPS → ambientes financeiros pesados

🧠 Limite de memória (Storage)

Controlado por:

  • DSAs:
    • CDSA
    • EDSA
    • RDSA
  • 31-bit vs 64-bit storage

💡 Tendência moderna:
👉 mover tudo possível para 64-bit storage (above the bar)


🧬 Limite de regiões CICS

👉 Ilimitado na prática (depende do z/OS)

Arquiteturas modernas usam:

  • CICSPlex SM
  • TOR / AOR / FOR separation

🏗️ Arquitetura operacional (visão de campo)

🧩 Componentes chave

  • QR TCB → coração da região
  • Open TCBs → paralelismo real (DB2, MQ, Java)
  • Dispatcher CICS → controla multitarefa
  • Program Control (PC)
  • Task Control (TC)

🔄 Modelo de execução

  1. Terminal / API chama transação
  2. CICS cria TASK
  3. Dispatcher gerencia CPU
  4. TASK usa serviços:
    • VSAM
    • DB2
    • MQ
  5. Commit (syncpoint)

🔥 O que realmente mudou (visão prática)

Antes (CICS clássico)

  • 3270
  • COBOL puro
  • VSAM pesado
  • Transação síncrona

Agora (CICS moderno)

  • REST via z/OS Connect
  • APIs JSON
  • Observabilidade (OpenTelemetry)
  • Integração cloud
  • DevOps pipeline

💥 Em resumo:
👉 CICS virou Application Server corporativo de missão crítica


📊 Pontos fortes atuais

  • Escalabilidade absurda (vertical + horizontal)
  • Resiliência (quase zero downtime)
  • Integração híbrida (legacy + cloud)
  • Segurança nível bancário

⚠️ Gargalos reais (sem romantizar)

  • Aplicação mal escrita = gargalo (não o CICS)
  • Lock em VSAM/DB2
  • TASK segurando CPU (não liberando)
  • Storage mal dimensionado
  • Falta de paralelismo (Open TCB subutilizado)

🧠 Conclusão estilo Bellacosa

CICS hoje não é legado.

👉 É core digital escondido atrás de APIs modernas

E a versão 6.3 consolida isso:

  • Mais observável
  • Mais seguro
  • Mais integrado
  • Mais preparado para cloud