☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta TSB Bank. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta TSB Bank. Mostrar todas as mensagens

quinta-feira, 6 de agosto de 2026

O Caso TSB Bank : Como uma migração de mainframe destruiu a reputação de um banco

Bellacosa Mainframe edição especial O Caso TSB Bank

Um café no Bellacosa Mainframe Edição Especial

O Caso TSB Bank

Como uma migração de mainframe destruiu a reputação de um banco

Resumo

Em abril de 2018, o banco britânico TSB Bank realizou uma migração do seu core bancário.

O objetivo era:

  • abandonar a plataforma herdada da Lloyds

  • desligar o ambiente mainframe legado

  • migrar milhões de contas para a plataforma espanhola Proteo4UK, desenvolvida pelo grupo Sabadell.

O resultado foi um desastre.

Durante semanas:

  • clientes ficaram sem acessar contas

  • pagamentos falharam

  • salários não foram creditados

  • pessoas visualizaram contas de terceiros

  • fraudes aumentaram

  • o banco praticamente parou.

Até hoje o episódio é usado em universidades e cursos de gerenciamento de projetos.


Antes da crise

2008

Crise financeira mundial.

O governo britânico salva o Lloyds Banking Group.

Como condição da União Europeia:

Lloyds deveria vender parte de seus ativos.


2013

Nasce o novo TSB.

Entretanto...

O banco não possuía infraestrutura própria.

Continuou utilizando o enorme ambiente tecnológico da Lloyds.

Era praticamente um "inquilino" da infraestrutura do antigo dono.


O problema

Todos os anos o TSB pagava milhões para utilizar:

  • mainframe

  • processamento

  • storage

  • sistemas

  • infraestrutura

Era caro.

Muito caro.


2015

O banco espanhol

Banco Sabadell

compra o TSB por cerca de £1,7 bilhão.

O plano era simples.

"Vamos desligar toda a tecnologia da Lloyds e colocar tudo na plataforma Sabadell."

Nascia o projeto Proteo4UK. (Tsb)


O erro número 1

Uma consultoria estratégica contratada antes da aquisição recomendou justamente o contrário:

permanecer o máximo possível na plataforma Lloyds e, depois, utilizar uma cópia independente ("clone") da plataforma existente, reduzindo riscos de migração. (Tsb)

Mas, após a compra pelo Sabadell, prevaleceu o objetivo de capturar rapidamente as sinergias financeiras da aquisição, acelerando a migração para a plataforma própria. (Tsb)

  • Para saber mais

https://eljefemidnightlunch.blogspot.com/2020/04/o-caso-tsb-bank-como-uma-migracao-de.html

  • House MD investiga quando os dados mentem

https://eljefemidnightlunch.blogspot.com/2021/04/o-paciente-tsb-house-cobol-e-migracao.html


O cronograma

2015

Projeto iniciado


2016

Construção da nova plataforma


2017

Testes

Dress rehearsals

Ensaios

Migrações parciais

Segundo o banco:

  • nove ensaios completos

  • milhares de testes

  • piloto com cerca de 1.600 funcionários

Tudo aparentemente aprovado. (Tsb)


Abril de 2018

Chega o grande fim de semana.

Toda migração foi planejada para ocorrer entre

20 e 22 de abril.


Sexta-feira

20/04/2018

Os sistemas entram em manutenção.

Clientes avisados.


Domingo

22/04

Às 18h

Os serviços deveriam voltar.

Não voltaram normalmente.

Começaram os primeiros relatos:

  • erro de login

  • saldo incorreto

  • aplicativos travando

E o mais assustador...

Algumas pessoas conseguiam visualizar dados bancários de outros clientes. (The Guardian)


Segunda-feira

23 abril

O banco dizia:

"Há apenas problemas de acesso."

Nas redes sociais a situação parecia muito pior.

Milhares de reclamações.

Curiosamente, a própria Sabadell chegou a publicar uma nota comemorando o "sucesso" da migração antes de retirar o comunicado. (The Guardian)


Terça-feira

24 abril

O caos.

Até 1,9 milhão de clientes de internet banking e aplicativo foram afetados. (The Guardian)


O que aconteceu tecnicamente?

Durante muito tempo imaginou-se que:

"os dados foram perdidos."

Na realidade...

Não.

Os dados principais foram migrados corretamente.

Todas as contas chegaram.

O problema estava na infraestrutura.

Segundo as análises posteriores:

  • inconsistências entre os dois data centers

  • diferenças de configuração entre ambientes que deveriam ser idênticos

  • problemas de capacidade

  • defeitos de software

  • gargalos inesperados

  • canais digitais instáveis

  • explosão de acessos dos clientes tentando verificar suas contas, sobrecarregando ainda mais call centers e agências. (Tsb)

Ou seja...

Os registros bancários foram preservados.

A plataforma ao redor deles não conseguiu operar de forma estável.


IBM entra em cena

Dias depois, o CEO Paul Pester anunciou que especialistas da IBM haviam sido chamados para ajudar na estabilização da plataforma. O objetivo era recuperar o ambiente, e não conduzir a migração original. (The Guardian)

É importante destacar:

A IBM não foi responsável pelo projeto de migração.

Ela entrou posteriormente para auxiliar na recuperação.


As consequências

Durante semanas ocorreram:

  • salários atrasados

  • hipotecas afetadas

  • cartões recusados

  • pagamentos perdidos

  • transferências bloqueadas

  • empresas incapazes de pagar funcionários

Houve também aumento nas tentativas de fraude contra clientes durante o período de instabilidade. (Grupo Banc Sabadell)


O Parlamento britânico

O CEO Paul Pester foi convocado diversas vezes para prestar esclarecimentos ao Comitê do Tesouro da Câmara dos Comuns.

As audiências foram bastante críticas e questionaram planejamento, governança, comunicação e avaliação de riscos. (The Guardian)


O relatório independente

Em 2019, o conselho do TSB publicou uma revisão independente conduzida pelo escritório de advocacia Slaughter and May.

Entre as conclusões estavam:

  • cronograma excessivamente agressivo

  • supervisão insuficiente de fornecedores

  • falhas na governança

  • testes que não reproduziram adequadamente o ambiente real

  • excesso de confiança nos indicadores de prontidão antes do "go live". (Tsb)


Quanto custou?

As estimativas variam conforme o critério contábil, mas o impacto financeiro foi enorme.

Os custos incluíram:

  • compensações a clientes

  • recuperação operacional

  • perda de clientes

  • reforço da infraestrutura

  • consultorias

  • suporte emergencial

  • investigações regulatórias

O Grupo Sabadell informou centenas de milhões de libras em impactos relacionados ao incidente ao longo do tempo, considerando custos diretos e indiretos. (Grupo Banc Sabadell)


Houve multa?

Sim.

Em dezembro de 2022, os reguladores britânicos (Financial Conduct Authority – FCA e Prudential Regulation Authority – PRA) anunciaram um acordo com o TSB.

As multas somadas chegaram a aproximadamente £48,65 milhões, relacionadas às deficiências na gestão dos riscos operacionais e da migração tecnológica. (Tsb)


O CEO caiu?

Sim.

Paul Pester renunciou em setembro de 2018.

A pressão política e pública tornou sua permanência praticamente inviável. (The Guardian)


O TSB quebrou?

Curiosamente...

Não.

O banco continuou existindo.

Hoje opera normalmente utilizando a nova plataforma.

Após anos de estabilização, o próprio TSB afirma que os incidentes de TI voltaram a níveis comparáveis aos de outros bancos do mercado e que internalizou parte relevante da gestão de TI. (Tsb)


As principais lições para quem trabalha com mainframe

Este caso costuma ser resumido em algumas lições clássicas:

  1. O problema não era o mainframe. A motivação principal era reduzir dependências e custos do ambiente legado, não substituir uma plataforma que estivesse falhando.

  2. Migrações de core bancário são projetos de transformação organizacional, não apenas de tecnologia.

  3. Testes de laboratório não garantem comportamento em produção. Carga real, usuários simultâneos e cenários extremos podem revelar problemas invisíveis.

  4. Cronogramas definidos por metas de negócio podem aumentar o risco técnico. O relatório independente critica explicitamente o calendário considerado otimista demais. (Tsb)

  5. Planos de rollback e contingência precisam ser extremamente robustos. Em sistemas financeiros, recuperar a operação rapidamente é tão importante quanto migrar.


Links para as principais fontes históricas

Na minha opinião técnica, o caso TSB é um dos melhores estudos para profissionais de mainframe porque desmonta um mito recorrente: a falha não ocorreu porque o banco usava mainframe, mas porque uma transformação extremamente complexa foi conduzida sob um cronograma agressivo e encontrou problemas de arquitetura, implantação, governança e operação. A própria migração preservou os dados dos clientes; o colapso aconteceu na infraestrutura e nos serviços que deveriam disponibilizar esses dados de forma confiável. É por isso que o episódio continua sendo citado em discussões sobre modernização de sistemas críticos, muito mais como uma lição de engenharia e gestão do que como uma crítica à tecnologia de origem.

quarta-feira, 7 de abril de 2021

O Paciente TSB: House, COBOL e a Migração Bancária de £1 Bilhão que Quase Matou um Banco

Bellacosa Mainframe e a migragação que quase matou um banco case study TSB Bank

 ☕ Um Café no Bellacosa Mainframe

O Paciente TSB: House, COBOL e a Migração Bancária de £1 Bilhão que Quase Matou um Banco

O relógio marcava poucos minutos depois da abertura dos serviços digitais quando os primeiros sintomas apareceram.

Um cliente não conseguia acessar a conta.

Outro via um saldo incorreto.

Um terceiro enxergava informações que aparentemente pertenciam a outra pessoa.

Pagamentos falhavam.

Cartões eram recusados.

O aplicativo móvel apresentava erros.

O internet banking oscilava entre lentidão, indisponibilidade e comportamentos estranhos.

Na sala de operações, os painéis começaram a piscar como monitores de uma UTI.

Alertas.

Filas crescendo.

APIs retornando erro.

Processos atrasados.

Centrais telefônicas congestionadas.

Milhões de clientes tentando descobrir se o dinheiro ainda estava no banco.

Em algum lugar do edifício, provavelmente alguém disse a frase mais perigosa da informática:

— Deve ser apenas um problema temporário.

Se o doutor Gregory House trabalhasse com mainframes, ele provavelmente entraria na sala apoiado em sua bengala, olharia para os gráficos de CPU, para os logs de aplicação e para os executivos reunidos ao redor da mesa e perguntaria:

— Quem foi o gênio que decidiu transplantar o coração, trocar o sistema nervoso e atualizar o cérebro do paciente na mesma cirurgia?

Silêncio.

O paciente era o TSB Bank.

O procedimento era uma gigantesca migração de sistemas e dados.

E o diagnóstico inicial estava completamente errado.


Capítulo 1 — O paciente chega à emergência

O TSB era um banco britânico com milhões de clientes, milhares de funcionários, agências, cartões, contas, empréstimos, pagamentos e serviços digitais.

Embora funcionasse como uma instituição independente, grande parte de sua tecnologia ainda estava hospedada na infraestrutura do Lloyds Banking Group.

Isso significava que os clientes enxergavam a marca TSB, mas muitos sistemas por trás das telas ainda dependiam da plataforma tecnológica do antigo grupo.

Em 2015, o banco espanhol Sabadell adquiriu o TSB.

A aquisição trouxe uma necessidade estratégica bastante compreensível: transferir os sistemas do TSB para uma nova plataforma controlada pelo próprio Sabadell.

A plataforma escolhida era conhecida como Proteo4UK, uma adaptação do sistema Proteo utilizado pelo grupo espanhol.

No papel, o projeto parecia racional.

O banco deixaria de pagar pela dependência tecnológica da Lloyds.

Passaria a controlar sua própria infraestrutura.

Reduziria custos.

Ganharia autonomia.

Modernizaria canais digitais.

Unificaria processos.

Era como transferir um paciente de um hospital antigo para uma nova clínica, equipada com aparelhos modernos, prontuário eletrônico e quartos recém-pintados.

O problema é que um banco não é apenas um edifício cheio de computadores.

Um banco é um organismo vivo.

Cada conta é uma célula.

Cada programa é um órgão.

Cada fila de mensagens é uma artéria.

Cada arquivo VSAM é uma memória.

Cada tabela Db2 é uma parte do DNA.

Cada transação CICS é um impulso nervoso.

Cada job batch é um processo metabólico que precisa acontecer na hora certa.

Migrar um banco não é transportar caixas.

É realizar um transplante completo enquanto o paciente continua respirando, pagando boletos, recebendo salários, autorizando cartões e transferindo dinheiro.

  • Para saber mais

https://eljefemidnightlunch.blogspot.com/2020/04/o-caso-tsb-bank-como-uma-migracao-de.html


Capítulo 2 — “Todo mundo mente”, inclusive os dados

Uma das frases mais famosas associadas ao estilo House é:

Todo mundo mente.

Na engenharia de dados, podemos adaptar a frase:

Todo dado mente até ser validado.

Um registro pode parecer correto e ainda estar errado.

Imagine o seguinte conteúdo no sistema antigo:

CLIENTE: 00012345
SALDO: 00000150000

O programador iniciante olha e interpreta:

Saldo = 150.000

Mas o copybook COBOL informa:

05 SALDO-CONTA PIC S9(9)V99 COMP-3.

Agora sabemos que existem duas casas decimais implícitas.

O valor real pode ser:

1.500,00

Além disso, o dado está armazenado em formato decimal compactado.

Se alguém tratar o conteúdo como texto comum, o resultado pode ser inválido.

Esse é um exemplo simples.

Em um banco real, existem milhares de variações:

  • campos com sinal;

  • valores em COMP;

  • números em COMP-3;

  • datas julianas;

  • indicadores de um caractere;

  • campos redefinidos com REDEFINES;

  • layouts diferentes para tipos diferentes de conta;

  • valores históricos mantidos em moedas antigas;

  • campos cujo significado depende de outro campo;

  • registros criados antes de certas regras modernas;

  • códigos que só fazem sentido para programas antigos.

Veja um exemplo:

01 REGISTRO-CONTA.
   05 TIPO-REGISTRO          PIC X.
   05 DADOS-GERAIS.
      10 NUMERO-CONTA        PIC 9(10).
      10 CODIGO-CLIENTE      PIC 9(08).
   05 DADOS-ESPECIFICOS      PIC X(100).

01 REGISTRO-CORRENTE REDEFINES REGISTRO-CONTA.
   05 FILLER                 PIC X(19).
   05 LIMITE-CHEQUE          PIC S9(7)V99 COMP-3.
   05 TAXA-JUROS             PIC S9(3)V9999 COMP-3.
   05 FILLER                 PIC X(88).

Sem o copybook, o campo DADOS-ESPECIFICOS parece um bloco sem significado.

Com o copybook, descobrimos que parte dele representa limite, juros e informações específicas da conta corrente.

É por isso que acessar os dados de origem sem possuir os modelos, layouts, programas e regras de negócio é como examinar uma radiografia sem saber qual parte do corpo está sendo observada.

Você vê sombras.

Mas não sabe se elas representam um osso, um tumor ou apenas um botão da camisa.


Capítulo 3 — O erro de acreditar que migração é apenas copiar

Um dos maiores enganos em projetos tecnológicos é considerar a migração de dados uma operação simples:

Extrair
Transformar
Carregar

O famoso ETL.

A sigla é correta.

A interpretação simplificada é que causa problemas.

Em um sistema bancário, migrar uma conta exige preservar muito mais do que uma linha de tabela.

É necessário manter:

  • identificação do cliente;

  • titularidade;

  • contas conjuntas;

  • saldos;

  • limites;

  • cartões associados;

  • empréstimos;

  • débitos automáticos;

  • pagamentos agendados;

  • beneficiários cadastrados;

  • autenticação;

  • tokens;

  • autorizações;

  • bloqueios judiciais;

  • histórico;

  • auditoria;

  • prevenção à fraude;

  • regras de compliance;

  • relacionamento com sistemas externos.

Considere uma tabela simples:

CLIENTE
CONTA
CARTAO
EMPRESTIMO
PAGAMENTO

A princípio, parece suficiente mover cinco conjuntos de dados.

Mas logo surgem as perguntas.

Uma conta pode ter mais de um titular?

Um cliente pode ter várias contas?

Um cartão pode estar temporariamente bloqueado?

Uma dívida pode ser renegociada?

Um pagamento agendado pode depender de saldo futuro?

Uma conta encerrada precisa continuar disponível para auditoria?

Um cliente falecido pode manter processos sucessórios ativos?

Uma conta pode estar sob investigação?

Uma transação pode ter sido autorizada, mas ainda não compensada?

É aqui que o caso deixa de parecer uma simples cópia e passa a se parecer com um episódio de diagnóstico médico.

O sintoma visível é:

O cliente não consegue entrar no aplicativo.

Mas a causa pode estar em:

  • autenticação;

  • perfil migrado incorretamente;

  • chave de acesso ausente;

  • conta não associada;

  • API indisponível;

  • timeout;

  • fila congestionada;

  • banco de dados lento;

  • cache inconsistente;

  • regra de segurança incompatível;

  • capacidade insuficiente.

Como House diria:

— O aplicativo não é a doença. É apenas onde a doença decidiu aparecer.


Capítulo 4 — A tempestade perfeita

O desastre do TSB não foi causado por um único erro.

Essa é uma das lições mais importantes.

Grandes colapsos raramente nascem de uma única falha gigantesca.

Eles surgem da combinação de diversas falhas menores que se fortalecem mutuamente.

No caso TSB, houve uma verdadeira tempestade perfeita:

  • migração de milhões de clientes;

  • transformação de dados;

  • mudança de plataforma;

  • alterações de infraestrutura;

  • adaptações de software;

  • novos canais digitais;

  • integração com diversos sistemas;

  • pressão por prazo;

  • planejamento insuficiente;

  • testes inadequados;

  • dificuldades operacionais;

  • respostas lentas durante a crise.

Cada elemento isolado já seria complexo.

Todos juntos criaram um paciente com falência múltipla de órgãos.

Em engenharia de sistemas, devemos evitar mudar várias camadas críticas simultaneamente.

Por exemplo, executar na mesma janela:

Migração de banco de dados
+
Upgrade do sistema operacional
+
Nova versão da aplicação
+
Mudança de infraestrutura
+
Alteração de autenticação
+
Novo aplicativo móvel

Quando algo falha, onde está a causa?

No banco?

Na rede?

Na aplicação?

Na API?

No sistema operacional?

Na autenticação?

No dado convertido?

Na configuração?

Na capacidade?

Sem isolamento de variáveis, a investigação torna-se caótica.

Em medicina, se um paciente toma seis medicamentos novos e apresenta uma reação, fica difícil descobrir qual substância provocou o problema.

Em TI, é a mesma coisa.

O tratamento pode acabar piorando o paciente.


Capítulo 5 — O diagnóstico por amostragem

Um dos pontos mais perigosos em qualquer migração é a confiança exagerada em amostras.

A equipe seleciona alguns milhares de registros.

Compara origem e destino.

Os valores parecem corretos.

O relatório fica verde.

A reunião termina com aplausos.

Mas há um detalhe.

O banco possui milhões de clientes.

Suponha que uma anomalia afete apenas 0,1% dos registros.

Em 5,2 milhões de clientes, isso representa:

5.200 clientes

Cinco mil e duzentas pessoas sem acesso correto ao dinheiro já são suficientes para gerar:

  • reclamações;

  • denúncias;

  • chamadas telefônicas;

  • repercussão na imprensa;

  • investigação regulatória;

  • dano reputacional.

Agora imagine uma falha de 1%.

Temos:

52.000 clientes

Uma amostra aleatória pode não capturar casos raros.

E sistemas bancários são repletos de casos raros.

Entre eles:

  • conta muito antiga;

  • endereço internacional;

  • nome com caracteres especiais;

  • cliente com múltiplas nacionalidades;

  • conta bloqueada;

  • conta conjunta com regras incomuns;

  • empréstimo renegociado;

  • cartão substituído;

  • cliente menor de idade;

  • cliente falecido;

  • conta órfã;

  • saldo negativo com condição especial;

  • registro criado por sistema desativado;

  • contrato com código legado.

A amostragem é útil para análise exploratória.

Ela não deve ser confundida com reconciliação completa.

Para dados críticos, o ideal é automatizar a comparação do conjunto inteiro sempre que possível.

Não basta executar:

SELECT COUNT(*) FROM CLIENTES;

e concluir que tudo está correto porque os dois bancos possuem 5.200.000 linhas.

Duas bibliotecas podem ter exatamente um milhão de livros.

Isso não significa que possuam os mesmos livros.

É necessário comparar:

  • chaves;

  • valores;

  • relacionamentos;

  • totais;

  • regras;

  • integridade;

  • exceções;

  • duplicidades;

  • dados ausentes;

  • transformações.


Capítulo 6 — A anatomia de uma validação verdadeira

Uma boa validação ocorre em várias camadas.

Primeira camada: contagem

Quantos registros existiam na origem?

Quantos chegaram ao destino?

SELECT COUNT(*) FROM CONTA_ORIGEM;
SELECT COUNT(*) FROM CONTA_DESTINO;

Essa verificação é necessária, mas insuficiente.

Segunda camada: somatórios

Compare valores agregados.

SELECT SUM(SALDO) FROM CONTA_ORIGEM;
SELECT SUM(SALDO) FROM CONTA_DESTINO;

Se a quantidade de contas for igual, mas o total financeiro for diferente, existe um problema grave.

Terceira camada: comparação por chave

Cada conta deve existir nos dois lados.

Conta 123 existe na origem?
Conta 123 existe no destino?

Quarta camada: comparação de atributos

Para cada chave:

Saldo origem = saldo destino?
Status origem = status destino?
Limite origem = limite destino?
Data origem = data destino?

Quinta camada: integridade referencial

Todo cartão aponta para uma conta válida?

Todo empréstimo aponta para um cliente existente?

Todo pagamento agendado mantém seu beneficiário?

Sexta camada: regras de negócio

Mesmo que os valores sejam tecnicamente iguais, o comportamento pode estar incorreto.

Exemplo:

Status antigo: B
Status novo: 2

A conversão pode ser válida.

Mas o código 2 significa “bloqueado” ou “encerrado”?

É necessário validar o significado, não apenas o formato.

Sétima camada: comportamento

Depois da migração, o cliente consegue:

  • entrar;

  • consultar saldo;

  • pagar;

  • transferir;

  • bloquear cartão;

  • atualizar cadastro;

  • receber salário;

  • consultar extrato?

Dados corretos em repouso podem produzir comportamento incorreto quando utilizados pelas aplicações.

É como um exame de sangue aparentemente normal em um paciente que continua desmaiando.

O diagnóstico ainda não terminou.


Capítulo 7 — O Big Bang e o botão vermelho

O TSB adotou uma abordagem de grande corte, frequentemente chamada de Big Bang.

Em essência:

  1. parar ou congelar partes do sistema antigo;

  2. extrair dados;

  3. converter;

  4. carregar no novo ambiente;

  5. direcionar os clientes para a nova plataforma;

  6. esperar que tudo funcione.

O Big Bang é sedutor.

Executivos gostam dele porque parece definitivo.

Existe uma data.

Existe uma noite de virada.

Existe uma apresentação com foguetes, setas e a palavra “transformação”.

Mas a concentração de risco é enorme.

Se o novo ambiente apresentar problemas, milhões de clientes são afetados simultaneamente.

Uma alternativa é a migração progressiva.

Pode-se dividir por:

  • produto;

  • região;

  • grupo de clientes;

  • funcionalidade;

  • canal;

  • tipo de conta.

Outra abordagem é o chamado Strangler Pattern.

O sistema novo vai gradualmente substituindo funções do antigo.

Imagine:

Semana 1: consulta de saldo
Semana 2: extrato
Semana 3: atualização cadastral
Semana 4: pagamentos
Semana 5: cartões

Ou:

Grupo piloto: 10 mil clientes
Segundo grupo: 100 mil
Terceiro grupo: 500 mil
Expansão gradual

Cada etapa produz aprendizado.

O risco é limitado.

Falhas são descobertas antes de atingir toda a população.

Nem sempre a migração gradual é simples.

Sistemas antigos podem ser altamente acoplados.

Regulamentos e contratos podem impor prazos.

Manter dois ambientes custa dinheiro.

Ainda assim, quando o paciente é um banco com milhões de clientes, prudência custa menos do que uma crise de £1 bilhão.


Capítulo 8 — Reconciliação contínua: o eletrocardiograma dos dados

Durante uma migração, a origem não permanece congelada por semanas.

Clientes continuam movimentando contas.

Novas transações surgem.

Endereços são alterados.

Cartões são bloqueados.

Pagamentos são agendados.

Empréstimos recebem parcelas.

Por isso existe o conceito de delta.

Delta é aquilo que mudou desde a última sincronização.

Considere:

Base completa: 5,2 milhões de clientes
Mudanças na última hora: 12 mil registros

Não é necessário comparar tudo o tempo todo.

Podemos comparar apenas as alterações recentes.

Esse processo é chamado de reconciliação contínua de deltas.

O fluxo pode ser:

Sistema de origem
      ↓
Captura de alterações
      ↓
Transformação
      ↓
Sistema de destino
      ↓
Comparação automática
      ↓
Relatório de diferenças

Se a origem recebeu 100 transações e o destino recebeu 98, precisamos descobrir imediatamente quais duas desapareceram.

Não no dia seguinte.

Não depois da abertura das agências.

Não depois que os clientes reclamarem.

Imediatamente.

Essa reconciliação funciona como um monitor cardíaco.

O paciente pode parecer estável, mas o eletrocardiograma mostra pequenas arritmias antes do colapso.

Em ambientes modernos, essa observação pode envolver:

  • Change Data Capture;

  • logs de transação;

  • timestamps;

  • números sequenciais;

  • filas;

  • eventos;

  • trilhas de auditoria;

  • checksums;

  • hashes;

  • tabelas de controle.

No mainframe, conceitos semelhantes já existem há décadas.

Logs do Db2.

Journals.

SMF.

Logs do CICS.

Registros de recuperação.

Arquivos de controle.

O nome das ferramentas muda.

O princípio permanece.


Capítulo 9 — Ferramentas automáticas não são luxo

Imagine cinco milhões de clientes.

Agora suponha que cada cliente possua 200 atributos relevantes.

Temos aproximadamente:

1 bilhão de valores

Nenhuma equipe humana consegue comparar manualmente esse volume.

Mesmo que cada conferência levasse apenas um segundo, seriam décadas de trabalho.

Automação não é opcional.

É requisito básico.

Uma plataforma de testes de dados deve ser capaz de:

  • comparar origem e destino;

  • executar regras;

  • gerar exceções;

  • identificar duplicidades;

  • encontrar registros ausentes;

  • validar formatos;

  • calcular somatórios;

  • verificar relacionamentos;

  • repetir testes;

  • manter evidências;

  • produzir relatórios auditáveis.

Um script simples já pode ajudar.

Pseudo-COBOL:

READ ARQUIVO-ORIGEM
READ ARQUIVO-DESTINO

PERFORM UNTIL FIM-DOS-ARQUIVOS

   IF CHAVE-ORIGEM NOT = CHAVE-DESTINO
      DISPLAY 'DIFERENCA DE CHAVE'
   ELSE
      IF SALDO-ORIGEM NOT = SALDO-DESTINO
         DISPLAY 'DIFERENCA DE SALDO'
      END-IF
   END-IF

   READ ARQUIVO-ORIGEM
   READ ARQUIVO-DESTINO

END-PERFORM

Em produção, a solução seria muito mais sofisticada.

Mas o princípio é exatamente esse:

Comparar de forma repetível, automática e rastreável.


Capítulo 10 — O sistema de origem é o prontuário do paciente

Outra lição crítica é a necessidade de acesso completo ao sistema de origem.

Não basta receber arquivos exportados.

A equipe precisa entender:

  • copybooks;

  • modelos de dados;

  • programas;

  • regras;

  • interfaces;

  • códigos;

  • exceções;

  • histórico;

  • processos batch;

  • transações online.

Em sistemas COBOL antigos, muitas regras de negócio não estão documentadas em manuais.

Elas vivem no código.

Veja:

IF TIPO-CONTA = 'P'
   AND DATA-ABERTURA < 19950101
   AND IND-ESPECIAL = 'S'
      MOVE TAXA-HISTORICA TO TAXA-APLICADA
ELSE
      MOVE TAXA-ATUAL TO TAXA-APLICADA
END-IF.

Essa regra pode ter sido criada trinta anos atrás.

Talvez exista apenas porque um produto antigo concedia uma condição especial.

Se a nova plataforma migrar todos os clientes para a taxa atual, os dados estarão estruturalmente corretos.

Mas o negócio estará errado.

Essa é a diferença entre migrar bytes e migrar significado.

O programador COBOL experiente frequentemente conhece essas exceções.

Ele sabe que determinado campo não pode ser tratado como zero.

Sabe que um código aparentemente obsoleto ainda é usado por um job mensal.

Sabe que um arquivo “temporário” alimenta um relatório regulatório.

Sabe que uma rotina chamada CALCULA-AJUSTE também atualiza auditoria.

Esses profissionais são como médicos veteranos que reconhecem uma doença rara apenas observando um pequeno detalhe.

Quando são excluídos do projeto porque “a plataforma nova não usa COBOL”, o projeto perde parte da memória institucional.


Capítulo 11 — Prazos políticos não curam sistemas

Há duas datas em qualquer grande projeto.

A data desejada.

E a data segura.

Elas nem sempre são iguais.

Executivos trabalham com contratos, custos, compromissos públicos e metas estratégicas.

Engenheiros trabalham com evidências, testes, capacidade, estabilidade e risco.

O conflito nasce quando a data desejada se transforma em uma verdade absoluta.

A reunião de decisão deveria perguntar:

Os dados foram reconciliados?
Os testes críticos passaram?
A capacidade suporta o pico?
O rollback foi ensaiado?
As equipes estão preparadas?
Existem defeitos bloqueadores?

Mas muitas vezes pergunta apenas:

Vamos cumprir a data?

House provavelmente responderia:

— Claro. O funeral também pode ser realizado na data prevista.

Um prazo não corrige defeitos.

Uma apresentação não aumenta capacidade.

Um gráfico verde não apaga erros.

Uma declaração de confiança não substitui um teste.

O critério de entrada em produção deve ser baseado em condições objetivas.

Exemplo:

Zero diferenças financeiras não explicadas
100% das funções críticas aprovadas
Tempo de resposta dentro do limite
Rollback executado com sucesso
Equipe de suporte completa
Defeitos críticos resolvidos

Sem isso, a decisão é uma aposta.

E bancos não deveriam apostar com o dinheiro dos clientes.


Capítulo 12 — Rollback: o desfibrilador que precisa funcionar

Todo grande projeto fala em rollback.

Poucos realmente o testam.

Rollback significa retornar ao estado anterior quando a migração falha.

Mas há perguntas desconfortáveis:

  • Quanto tempo leva?

  • Os dados novos podem ser devolvidos?

  • As transações realizadas no ambiente novo serão perdidas?

  • Os dois sistemas continuam compatíveis?

  • Quem autoriza a reversão?

  • Até que momento é possível voltar?

  • O rollback foi ensaiado?

  • Há capacidade operacional para executá-lo?

Imagine:

22h00 — sistema antigo desligado
23h00 — dados extraídos
02h00 — carga concluída
06h00 — novo sistema liberado
08h00 — clientes realizam transações
10h00 — falhas graves confirmadas

Agora não basta religar o sistema antigo.

Entre 06h00 e 10h00 surgiram novas transações.

Como transportá-las de volta?

É por isso que rollback não é um botão mágico.

É um projeto dentro do projeto.

Uma estratégia pode incluir:

  • congelamento controlado;

  • logs de transação;

  • captura de deltas;

  • sincronização reversa;

  • limites claros para abortar;

  • pontos de não retorno;

  • ensaios completos.

Um plano não testado é apenas literatura corporativa.


Capítulo 13 — Observabilidade: os exames do paciente

Durante uma migração, não devemos observar apenas se o servidor está ligado.

Precisamos medir o comportamento completo.

Infraestrutura:

  • CPU;

  • memória;

  • disco;

  • rede;

  • filas;

  • latência.

Aplicação:

  • erros;

  • exceções;

  • tempo de resposta;

  • sessões;

  • threads;

  • conexões.

Banco de dados:

  • locks;

  • deadlocks;

  • I/O;

  • buffer pools;

  • consultas lentas;

  • contenção.

Negócio:

  • logins realizados;

  • pagamentos concluídos;

  • cartões autorizados;

  • transferências processadas;

  • saldos consultados;

  • falhas por produto.

Esse último grupo é essencial.

O servidor pode apresentar CPU de 40% e ainda assim os clientes não conseguirem pagar contas.

Métricas técnicas dizem como o sistema está respirando.

Métricas de negócio dizem se ele está vivendo.

Em mainframe, podemos utilizar informações provenientes de:

  • SMF;

  • RMF;

  • CICS statistics;

  • Db2 accounting;

  • logs;

  • traces;

  • MQ;

  • WLM;

  • ferramentas de APM.

O segredo é definir limites antes da migração.

Não basta olhar um gráfico e dizer:

— Parece alto.

Devemos saber:

Tempo normal: 300 ms
Limite aceitável: 800 ms
Estado crítico: acima de 2 segundos

Sem baseline, não existe diagnóstico.


Capítulo 14 — A equipe também pode entrar em colapso

Grandes viradas frequentemente envolvem equipes trabalhando durante noites, finais de semana e feriados.

A pressão aumenta.

O sono diminui.

A comunicação piora.

Erros simples tornam-se frequentes.

Uma pessoa executa um comando no ambiente errado.

Outra interpreta incorretamente um alerta.

Uma terceira deixa de escalar um problema porque acredita que será resolvido.

Em incidentes graves, o comportamento humano faz parte do sistema.

Por isso uma migração precisa de:

  • turnos definidos;

  • descanso;

  • funções claras;

  • canais de comunicação;

  • autoridade para abortar;

  • registros de decisão;

  • responsáveis por cada componente;

  • war room estruturada.

Uma boa war room não é uma sala cheia de executivos perguntando a cada cinco minutos se o problema acabou.

É um ambiente disciplinado com:

  • líder do incidente;

  • especialistas técnicos;

  • cronologia;

  • hipóteses;

  • evidências;

  • ações;

  • responsáveis;

  • próximos passos.

House era brilhante porque testava hipóteses.

Ele não aceitava a primeira explicação.

Na TI, devemos fazer o mesmo.

Sintoma:

Login lento

Hipóteses:

Banco lento
API saturada
Cache vazio
Autenticação com falha
Rede congestionada
Sessões excessivas

Cada hipótese precisa de evidência.

Não de opinião.


Capítulo 15 — Um roteiro prático para migrar sem matar o paciente

Para um programador COBOL iniciante, aqui está um roteiro simplificado.

Passo 1 — Inventarie tudo

Liste:

  • arquivos;

  • tabelas;

  • copybooks;

  • programas;

  • jobs;

  • transações;

  • interfaces;

  • filas;

  • relatórios;

  • sistemas externos.

Não migre o que você não conhece.

Passo 2 — Descubra as regras escondidas

Leia:

  • código COBOL;

  • JCL;

  • procedures;

  • stored procedures;

  • documentação;

  • logs;

  • manuais.

Converse com especialistas antigos.

Eles conhecem as cicatrizes do paciente.

Passo 3 — Crie o mapeamento de dados

Para cada campo:

Origem
Destino
Tipo
Tamanho
Regra de transformação
Valor padrão
Exceções

Exemplo:

ORIGEM: STATUS-CLI PIC X
DESTINO: CUSTOMER_STATUS VARCHAR(20)

A = ACTIVE
B = BLOCKED
E = CLOSED
F = DECEASED

Passo 4 — Teste todos os tipos de registro

Não apenas os casos comuns.

Inclua:

  • extremos;

  • nulos;

  • caracteres especiais;

  • registros antigos;

  • valores máximos;

  • valores negativos;

  • exceções.

Passo 5 — Automatize a reconciliação

Compare:

  • contagens;

  • totais;

  • chaves;

  • valores;

  • relacionamentos;

  • exceções.

Passo 6 — Execute ensaios completos

Faça várias migrações simuladas.

Meça:

  • duração;

  • erros;

  • gargalos;

  • capacidade;

  • tempo de recuperação.

Passo 7 — Teste o rollback

Não apenas no PowerPoint.

Execute de verdade.

Passo 8 — Defina critérios de go/no-go

Exemplo:

Se houver diferença financeira não explicada:
NO-GO

Se o tempo exceder a janela:
NO-GO

Se o rollback não estiver disponível:
NO-GO

Passo 9 — Migre progressivamente quando possível

Reduza o raio de impacto.

Passo 10 — Monitore dados e negócio

Não encerre o projeto quando o sistema ligar.

A estabilização pode durar semanas.


Capítulo 16 — Curiosidades da enfermaria mainframe

Primeira curiosidade: sistemas bancários modernos ainda carregam regras criadas décadas atrás.

Não porque ninguém quis modernizá-los, mas porque o dinheiro possui memória.

Um contrato de 1989 pode continuar válido.

Uma hipoteca de vinte anos atrás ainda precisa ser calculada corretamente.

Segunda curiosidade: muitas falhas de migração não são causadas por dados inválidos, mas por dados válidos que o novo sistema não esperava.

O paciente não está mentindo.

O médico apenas nunca viu aquela condição.

Terceira curiosidade: registros encerrados podem ser tão importantes quanto registros ativos.

Auditoria, processos judiciais e reguladores podem exigir histórico por muitos anos.

Quarta curiosidade: a parte mais difícil não é transportar o dado.

É provar que ele chegou corretamente.

Quinta curiosidade: o melhor programador em uma migração pode não ser quem escreve o código mais elegante.

Pode ser aquele analista veterano que pergunta:

— E as contas conjuntas abertas antes da conversão de 1997?

Todos riem.

Depois descobrem 40 mil registros exatamente assim.


Easter egg — O diagnóstico diferencial

Na sala de reunião, o painel mostrava milhões de erros.

O gerente perguntou:

— Pode ser vírus?

O especialista em segurança respondeu:

— Não há evidência.

Outro sugeriu:

— Talvez seja a rede.

O DBA culpou a aplicação.

A aplicação culpou o banco.

O banco culpou a infraestrutura.

A infraestrutura culpou o volume.

O programador COBOL permaneceu em silêncio.

House olhou para ele:

— Você sabe alguma coisa.

O programador abriu um copybook escrito em 1994.

Apontou para uma linha:

88 CLIENTE-ESPECIAL VALUE 'X' 'Y' 'Z'.

— A plataforma nova só reconhece X e Y.

Silêncio.

— Quantos clientes possuem Z? — perguntou alguém.

O programador executou uma consulta.

348.721 registros

House sorriu.

— Finalmente alguém examinou o paciente em vez de culpar o estetoscópio.


Conclusão — A migração nunca é apenas técnica

O desastre do TSB ensina que grandes migrações não fracassam apenas por causa de código defeituoso.

Elas fracassam quando tecnologia, gestão, planejamento, testes, pessoas e governança deixam de trabalhar como um único organismo.

O custo financeiro ultrapassou a dimensão de um simples incidente.

A reputação do banco foi afetada.

Clientes perderam confiança.

Funcionários enfrentaram enorme pressão.

Reguladores investigaram.

Executivos foram responsabilizados.

Tudo porque a operação foi tratada como um projeto tecnológico quando, na realidade, era uma cirurgia no coração da instituição.

Para um programador COBOL iniciante, a grande lição é esta:

Nunca subestime um campo.

Nunca ignore um copybook antigo.

Nunca confie apenas em amostras.

Nunca aceite uma contagem como prova de integridade.

Nunca acredite que o sistema novo compreende automaticamente o significado do sistema antigo.

Nunca considere rollback apenas uma formalidade.

Nunca deixe a data ser mais importante do que a segurança.

E, sobretudo, lembre-se:

Em ambientes bancários, o programa que você escreve não movimenta apenas números.

Ele movimenta salários.

Aposentadorias.

Economias.

Sonhos.

Casas.

Empresas.

Vidas.

Um erro de uma casa decimal pode parecer pequeno na tela.

Multiplicado por milhões de clientes, ele se transforma em uma catástrofe.

A verdadeira modernização não consiste em abandonar o passado.

Consiste em compreendê-lo profundamente antes de construir o futuro.

Na medicina, o primeiro princípio é não causar dano.

Na engenharia de sistemas críticos, deveria ser o mesmo.

E quando alguém disser:

— É apenas uma migração de dados.

Pegue sua bengala imaginária, olhe para os logs e responda:

— Não. É um transplante de memória. E o paciente ainda está acordado.

 

segunda-feira, 6 de abril de 2020

O Caso TSB Bank: Como uma Migração de Mainframe Destruiu a Reputação de um Banco

Bellacosa Mainframe e a desastrosa migracao do TSB Bank

☕ Um Café no Bellacosa Mainframe — Edição Especial

O Caso TSB Bank: Como uma Migração de Mainframe Destruiu a Reputação de um Banco

Imagine a seguinte cena.

É madrugada em Londres.

As luzes de um data center permanecem acesas enquanto milhões de pessoas dormem. Nos corredores refrigerados, servidores trabalham, discos giram, mensagens atravessam redes, transações são confirmadas e programas executam milhões de instruções sem que ninguém perceba.

Do lado de fora, tudo parece normal.

Dentro da sala de controle, porém, técnicos acompanham monitores, gráficos, indicadores de capacidade e listas intermináveis de tarefas.

Naquela noite, o TSB Bank está realizando uma das operações mais delicadas que uma instituição financeira pode tentar:

migrar todo o seu sistema bancário para uma nova plataforma.

Milhões de contas.

Milhões de clientes.

Pagamentos.

Cartões.

Empréstimos.

Transferências.

Saldos.

Débitos automáticos.

Históricos financeiros.

A operação deveria terminar com uma mensagem simples:

migração concluída com sucesso.

Mas, quando os sistemas voltaram ao ar, o que apareceu foi algo muito diferente.

Clientes sem acesso.

Aplicativos travados.

Pagamentos desaparecidos.

Contas exibindo informações incorretas.

Pessoas enxergando dados de outros clientes.

Chamadas explodindo nos call centers.

Agências lotadas.

Fraudadores aproveitando o caos.

E uma pergunta começou a circular pelos corredores da tecnologia bancária:

O que realmente aconteceu com o TSB Bank?

Coloque o café ao lado do teclado, abra o terminal 3270 imaginário e prepare o bloco de evidências.

Hoje, o Bellacosa Mainframe vai entrar na cena do crime digital.



Cena 1 — O banco que nasceu dependente

Para compreender o colapso do TSB, precisamos voltar alguns anos.

O TSB nasceu novamente como banco independente depois de uma reorganização do setor bancário britânico.

Embora tivesse marca própria, clientes próprios e agências próprias, sua infraestrutura tecnológica ainda dependia fortemente do Lloyds Banking Group.

Era como se o TSB tivesse recebido as chaves de uma casa, mas toda a eletricidade, a água, os encanamentos e a rede de segurança continuassem pertencendo ao antigo proprietário.

O banco utilizava sistemas hospedados e operados pela infraestrutura do Lloyds.

Ali estavam:

  • o core bancário;

  • os registros de clientes;

  • as contas;

  • os pagamentos;

  • os canais digitais;

  • os sistemas de cartão;

  • os serviços de compensação;

  • os processos noturnos;

  • os relatórios regulatórios.

Para um programador COBOL iniciante, podemos comparar essa situação a um grande ambiente compartilhado.

Imagine que uma empresa possui milhares de programas COBOL.

Esses programas usam:

  • arquivos VSAM;

  • tabelas Db2;

  • transações CICS;

  • filas MQ;

  • jobs em JES2;

  • regras RACF;

  • procedures catalogadas;

  • datasets GDG;

  • rotinas assembler;

  • módulos de comunicação.

Agora imagine que outra empresa deseja sair desse ambiente.

Não basta copiar um programa COBOL.

É necessário separar todo um ecossistema.

Esse era o desafio do TSB.




Cena 2 — A chegada do Banco Sabadell

Em 2015, o banco espanhol Sabadell comprou o TSB.

O Sabadell já possuía uma plataforma bancária própria chamada Proteo.

A lógica de negócio parecia convincente.

Por que continuar pagando para usar os sistemas do Lloyds se o novo proprietário já possuía uma plataforma bancária?

A promessa era reduzir custos, aumentar o controle e integrar o TSB ao modelo tecnológico do grupo espanhol.

No papel, a equação parecia perfeita.

Antigo ambiente:

  • dependência do Lloyds;

  • custos elevados;

  • contratos complexos;

  • pouca autonomia.

Novo ambiente:

  • plataforma própria;

  • maior controle;

  • redução de custos;

  • sinergia com o grupo;

  • liberdade tecnológica.

O problema é que apresentações de PowerPoint não processam transações bancárias.

Planilhas de economia não executam batch.

E uma seta colorida ligando “sistema antigo” a “sistema novo” não representa a verdadeira complexidade de uma migração de core bancário.

Em um diagrama executivo, a migração pode parecer assim:

Lloyds → Proteo4UK

Na vida real, ela se parece mais com isto:

Clientes
   ↓
Internet Banking
   ↓
Aplicativo móvel
   ↓
APIs
   ↓
Camada de autenticação
   ↓
Core bancário
   ↓
Contas / pagamentos / cartões / empréstimos
   ↓
Db2 / VSAM / arquivos / filas
   ↓
Compensação bancária
   ↓
Reguladores
   ↓
Sistemas externos

E isso ainda é uma simplificação.



Cena 3 — A vítima não era o mainframe

Quando um projeto desse tipo falha, é comum surgir uma narrativa simplificada:

“O sistema legado era velho.”

Ou:

“O problema era o mainframe.”

Essa conclusão é tentadora, mas não descreve corretamente o caso TSB.

O mainframe não era a vítima que precisava ser eliminada.

Também não era o criminoso.

Era parte de um ambiente estável que suportava operações bancárias críticas.

A motivação da migração estava ligada principalmente à independência tecnológica e à redução dos custos associados ao uso da infraestrutura do Lloyds.

Em outras palavras:

o TSB não precisava migrar porque o mainframe havia parado de funcionar.

Precisava migrar porque desejava deixar de depender de uma infraestrutura controlada por outra instituição.

Essa diferença é fundamental.

Em projetos de modernização, existem pelo menos quatro motivos comuns para migrar:

  1. reduzir custos;

  2. eliminar dependências;

  3. acelerar mudanças;

  4. substituir tecnologia sem suporte.

No caso do TSB, a independência e as sinergias econômicas tiveram enorme peso.

O erro começa quando uma necessidade empresarial real é traduzida como se fosse apenas uma troca de plataforma.



Cena 4 — O projeto Proteo4UK

A versão adaptada da plataforma do Sabadell para o mercado britânico ficou conhecida como Proteo4UK.

Ela precisava atender às particularidades do TSB e do sistema financeiro do Reino Unido.

Isso incluía:

  • regras bancárias locais;

  • produtos financeiros específicos;

  • pagamentos britânicos;

  • regulamentações;

  • segurança;

  • auditoria;

  • proteção de dados;

  • interfaces com terceiros;

  • requisitos operacionais;

  • volumes de transações.

Não era simplesmente instalar um software espanhol em servidores britânicos.

Era necessário adaptar o sistema, integrar componentes, migrar informações e garantir que tudo funcionasse sob carga real.

Aqui aparece uma lição importante para o programador COBOL iniciante:

Migrar dados não significa migrar comportamento


Você pode copiar corretamente todos os registros de um arquivo.

Mesmo assim, o novo sistema pode falhar.

Considere um arquivo VSAM de contas:

NUMERO-CONTA
NOME-CLIENTE
SALDO
LIMITE
STATUS

A migração pode transportar os campos corretamente.

Mas o sistema depende de muito mais:

  • regras de cálculo;

  • validações;

  • autorizações;

  • locks;

  • commits;

  • filas;

  • timeouts;

  • concorrência;

  • autenticação;

  • capacidade;

  • monitoramento;

  • recuperação;

  • integrações externas.

O dado pode chegar inteiro.

O serviço ao redor dele pode entrar em colapso.

Foi exatamente essa distinção que se tornou central no caso TSB.



Cena 5 — Os testes

O projeto passou por testes, ensaios e simulações.

Foram realizados ciclos preparatórios e migrações de teste.

Também houve um piloto envolvendo funcionários.

Aparentemente, havia evidências suficientes para autorizar a entrada em produção.

Mas testes não são mágicos.

Eles só demonstram aquilo que realmente foi testado.

Se o cenário de teste possui dez mil usuários e a produção recebe um milhão, o resultado pode ser completamente diferente.

Se o ambiente de teste não reproduz fielmente o ambiente de produção, surgem as chamadas diferenças de configuração.

Exemplos:

  • memória diferente;

  • rede diferente;

  • parâmetros diferentes;

  • versões de software diferentes;

  • balanceadores diferentes;

  • regras de firewall diferentes;

  • capacidade de banco diferente;

  • limites de sessão diferentes.

Um sistema pode funcionar perfeitamente no teste e falhar em produção.

Não porque o teste foi inútil, mas porque o teste não reproduziu a realidade.

No universo mainframe, isso equivaleria a testar um batch com cem mil registros e colocar em produção com quinhentos milhões.

O programa COBOL pode estar logicamente correto.

Ainda assim, o job pode estourar janela batch, consumir work files, gerar contenção no Db2 ou causar filas em outras aplicações.



Cena 6 — O fim de semana da migração

O grande corte ocorreu entre os dias 20 e 22 de abril de 2018.

O plano era retirar temporariamente os serviços, concluir a transferência e restaurar o acesso dos clientes.

Esse tipo de operação é chamado de cutover.

O cutover representa o momento em que o sistema novo assume a responsabilidade do sistema antigo.

Em uma migração bancária, o cutover pode incluir:

  1. interromper alterações no sistema antigo;

  2. extrair os dados finais;

  3. transformar os registros;

  4. carregar o novo ambiente;

  5. reconciliar saldos;

  6. validar totais;

  7. ativar interfaces;

  8. liberar canais;

  9. monitorar a operação.

Parece simples quando escrito em nove linhas.

Na prática, cada linha pode conter milhares de tarefas.

Uma inconsistência em qualquer etapa pode comprometer o conjunto.

Quando os serviços começaram a voltar, surgiram problemas graves.

Clientes relataram:

  • falhas de login;

  • lentidão;

  • indisponibilidade;

  • erros de saldo;

  • operações não concluídas;

  • visualização de informações de terceiros.

O último item elevou o incidente a outro nível.

Uma indisponibilidade é grave.

Uma possível exposição de dados é gravíssima.

Nesse momento, a migração deixou de ser apenas um problema técnico.

Passou a ser também:

  • problema de segurança;

  • problema regulatório;

  • problema de reputação;

  • problema político;

  • problema de confiança.



Cena 7 — O efeito avalanche

Quando um sistema bancário falha, o volume de acessos não diminui.

Ele aumenta.

O cliente tenta entrar uma vez.

Falha.

Tenta novamente.

Falha.

Fecha o aplicativo.

Abre outra vez.

Tenta pelo navegador.

Tenta pelo celular.

Liga para o banco.

Vai até uma agência.

Essa repetição cria uma tempestade de carga.

Vamos imaginar um cenário simples.

Em condições normais:

100 mil clientes fazem 1 tentativa
Total: 100 mil requisições

Durante a crise:

100 mil clientes fazem 10 tentativas
Total: 1 milhão de requisições

O sistema já está degradado.

A pressão aumenta.

Mais clientes encontram erros.

Eles tentam novamente.

A fila cresce.

O tempo de resposta aumenta.

Os balanceadores acumulam conexões.

Os bancos recebem mais consultas.

Os logs explodem.

Os call centers ficam congestionados.

Temos então um ciclo de retroalimentação:

Erro
 ↓
Nova tentativa
 ↓
Mais carga
 ↓
Mais lentidão
 ↓
Mais erro
 ↓
Mais tentativas

Isso é parecido com uma cena de CSI em que cada nova pegada pisa sobre as evidências anteriores.

Quanto mais pessoas entram na cena, mais difícil fica descobrir a origem do problema.



Cena 8 — O que realmente falhou

As investigações posteriores apontaram um conjunto de problemas, não uma única causa.

Esse é um detalhe importante.

Grandes desastres tecnológicos raramente possuem um único erro.

Normalmente são o resultado de várias camadas de falha alinhadas.

Entre os fatores discutidos estavam:

  • diferenças entre ambientes;

  • falhas de configuração;

  • problemas de software;

  • capacidade inadequada;

  • dificuldades operacionais;

  • governança insuficiente;

  • supervisão inadequada de fornecedores;

  • cronograma agressivo;

  • confiança excessiva nos indicadores de prontidão.

O sistema não caiu porque alguém esqueceu um ponto final no COBOL.

Também não caiu por causa de uma única máquina defeituosa.

Foi um colapso sistêmico.

Esse conceito é essencial.

Falha local

Um componente quebra, mas o restante continua funcionando.

Exemplo:

um servidor de aplicação falha e o load balancer direciona tráfego para outro.

Falha sistêmica

Vários componentes, processos e decisões se combinam, impedindo a recuperação rápida.

Exemplo:

o sistema apresenta lentidão, o monitoramento é insuficiente, o call center entra em colapso, a comunicação falha e a carga aumenta continuamente.

O caso TSB pertence à segunda categoria.


Cena 9 — A empresa de consultoria e os fornecedores

Projetos dessa escala envolvem muitas empresas.

O grupo Sabadell utilizava sua estrutura tecnológica e empresas associadas para construir e operar a plataforma.

A entidade de tecnologia do grupo, conhecida como Sabis, teve papel importante na implementação.

Também participaram fornecedores e consultorias especializadas.

Antes da aquisição, houve aconselhamento estratégico sobre os caminhos possíveis para a tecnologia do TSB.

Uma alternativa mencionada era permanecer por mais tempo na plataforma Lloyds e, posteriormente, utilizar uma versão independente baseada na tecnologia existente.

Essa abordagem poderia reduzir alguns riscos técnicos, pois preservaria maior compatibilidade com os sistemas já utilizados.

No entanto, a estratégia escolhida priorizou a migração para a plataforma do Sabadell.

Aqui temos outra lição.

O melhor desenho técnico nem sempre vence

Projetos empresariais são decididos por uma combinação de:

  • custos;

  • prazo;

  • estratégia;

  • política interna;

  • contratos;

  • tecnologia;

  • pressão de investidores;

  • expectativa de retorno.

Um arquiteto pode recomendar a opção mais segura.

A diretoria pode escolher a opção mais econômica.

Uma consultoria pode apresentar três caminhos.

O conselho pode selecionar o mais rápido.

Isso não significa que os executivos sejam vilões.

Significa que risco técnico e pressão comercial precisam estar equilibrados.

Quando um deles domina completamente o outro, a probabilidade de desastre aumenta.


Cena 10 — A entrada da IBM

Quando a crise já estava instalada, especialistas da IBM foram chamados para auxiliar na estabilização.

É importante deixar isso claro:

a IBM não foi a empresa responsável pela migração original.

Ela entrou posteriormente para ajudar na recuperação.

Em uma analogia com CSI: New York, a IBM chegou quando a fita amarela já estava colocada ao redor da cena.

O objetivo era:

  • investigar o ambiente;

  • localizar gargalos;

  • identificar falhas;

  • apoiar a estabilização;

  • restaurar serviços;

  • melhorar a capacidade;

  • reduzir a incidência de erros.

Em grandes incidentes, empresas externas podem ser chamadas porque trazem:

  • experiência especializada;

  • visão independente;

  • ferramentas de diagnóstico;

  • equipes adicionais;

  • conhecimento de infraestrutura crítica.

Isso é comum em desastres de TI.

Quando a própria equipe está há dias tentando resolver o problema, o cansaço e a pressão podem dificultar a análise.

Uma equipe externa chega com olhar novo.


Cena 11 — O impacto humano

Em tecnologia, é fácil falar apenas de servidores e sistemas.

Mas cada registro representa uma pessoa.

Um pagamento atrasado pode significar:

  • aluguel não pago;

  • conta de energia vencida;

  • compra recusada;

  • salário inacessível;

  • empresa sem pagar funcionários;

  • viagem cancelada;

  • dívida gerada;

  • constrangimento público.

O incidente afetou milhões de clientes.

Alguns ficaram sem acessar serviços durante períodos prolongados.

Outros enfrentaram operações duplicadas, falhas de pagamento e dificuldades para falar com o banco.

Também houve aumento das tentativas de fraude.

Golpistas aproveitam crises.

Eles ligam para clientes dizendo:

“Somos do banco e precisamos confirmar seus dados por causa da falha do sistema.”

O cliente, assustado e sem acesso à conta, pode acreditar.

Assim, um incidente operacional transforma-se em risco de segurança.


Cena 12 — O prejuízo

O custo do desastre foi muito maior do que o valor de servidores ou programas.

O TSB teve despesas relacionadas a:

  • compensações;

  • recuperação técnica;

  • reforço de atendimento;

  • contratação de especialistas;

  • investigações;

  • medidas regulatórias;

  • perda de clientes;

  • impacto reputacional.

Centenas de milhões de libras foram associadas ao episódio entre custos diretos e efeitos comerciais.

Existe uma diferença entre custo contábil e custo real.

Custo contábil

É o que aparece claramente nos relatórios:

  • consultorias;

  • multas;

  • compensações;

  • infraestrutura;

  • despesas jurídicas.

Custo real

Inclui também:

  • clientes perdidos;

  • confiança destruída;

  • marca enfraquecida;

  • oportunidades comerciais perdidas;

  • queda na satisfação;

  • dificuldade de atrair novos clientes;

  • desgaste dos funcionários.

O segundo é muito mais difícil de medir.


Cena 13 — A multa

Em 2022, os reguladores britânicos aplicaram multas que totalizaram aproximadamente 48,65 milhões de libras.

As sanções estavam relacionadas às falhas na gestão dos riscos operacionais e na execução da migração.

A multa mostra que o incidente não foi tratado apenas como “um problema técnico”.

Para o regulador, o banco tinha responsabilidade de garantir:

  • continuidade;

  • resiliência;

  • governança;

  • supervisão;

  • proteção dos clientes;

  • gestão adequada do risco.

Em setores críticos, a frase “o sistema deu erro” não encerra a discussão.

Alguém aprovou o projeto.

Alguém definiu o cronograma.

Alguém avaliou os riscos.

Alguém autorizou o go-live.

Alguém precisava garantir o plano de contingência.


Cena 14 — A queda do CEO

Paul Pester, então CEO do TSB, enfrentou enorme pressão pública e política.

Ele foi convocado para prestar esclarecimentos ao Parlamento britânico.

Durante as audiências, surgiram perguntas sobre:

  • prontidão;

  • comunicação;

  • testes;

  • gestão de fornecedores;

  • resposta à crise;

  • tratamento dos clientes.

Em setembro de 2018, Pester deixou o cargo.

Em grandes colapsos tecnológicos, a responsabilidade raramente termina na área de TI.

O incidente pode atingir:

  • CIO;

  • CTO;

  • COO;

  • CEO;

  • conselho;

  • fornecedores;

  • gestores de risco.

Isso acontece porque a tecnologia bancária não é apenas suporte.

Ela é o próprio banco.

Sem sistema, não existe operação.


Cena 15 — O relatório independente

Uma revisão independente foi conduzida pelo escritório Slaughter and May.

O relatório examinou as decisões, os testes, a governança e os acontecimentos ligados à migração.

Entre as críticas estavam:

  • cronograma excessivamente otimista;

  • governança insuficiente;

  • supervisão inadequada;

  • testes incapazes de reproduzir plenamente o comportamento real;

  • excesso de confiança antes da entrada em produção.

Esse relatório é valioso porque demonstra que um desastre não deve ser analisado somente pelo erro visível.

O investigador precisa perguntar:

  • por que o risco não foi detectado?

  • por que o plano não foi interrompido?

  • por que os indicadores pareciam positivos?

  • por que o rollback não resolveu?

  • por que a recuperação demorou?

  • por que a comunicação foi confusa?

É o equivalente digital de encontrar uma impressão digital e depois investigar por que a porta estava aberta.


Cena 16 — O banco que não morreu

Apesar do colapso, o TSB não quebrou.

O banco continuou operando.

A plataforma foi estabilizada.

Foram realizados investimentos em resiliência, gestão e controle tecnológico.

Com o tempo, os incidentes diminuíram e a operação voltou a níveis mais normais.

Essa parte é importante.

Um desastre tecnológico pode destruir reputação, provocar multas e derrubar executivos.

Mas não necessariamente encerra a empresa.

A recuperação exige:

  • transparência;

  • investimento;

  • revisão de processos;

  • melhoria de arquitetura;

  • reforço da governança;

  • reconstrução da confiança.

O TSB continuou existindo, mas o episódio de 2018 passou a fazer parte permanente de sua história.


O passo a passo de uma migração mais segura

Agora vamos transformar o caso em aprendizado prático.

Passo 1 — Conheça o sistema antigo

Antes de migrar, documente:

  • programas;

  • dados;

  • integrações;

  • volumes;

  • regras;

  • dependências;

  • janelas;

  • usuários;

  • controles de segurança.

No mainframe, isso pode incluir:

  • programas COBOL;

  • copybooks;

  • JCLs;

  • PROCs;

  • arquivos VSAM;

  • tabelas Db2;

  • transações CICS;

  • filas MQ;

  • regras RACF;

  • jobs noturnos;

  • interfaces externas.

Passo 2 — Descubra os comportamentos invisíveis

Muitos sistemas possuem regras que não estão documentadas.

Exemplos:

  • arquivos processados em ordem específica;

  • programa que depende de retorno não documentado;

  • job que só funciona porque outro termina antes;

  • tabela usada como controle;

  • operador que executa uma tarefa manual.

Esses detalhes são chamados, muitas vezes, de conhecimento tribal.

Passo 3 — Modele a carga real

Não teste apenas a funcionalidade.

Teste:

  • volume;

  • concorrência;

  • picos;

  • falhas;

  • retomadas;

  • lentidão;

  • duplicidade;

  • indisponibilidade de terceiros.

Passo 4 — Faça reconciliação

Depois da migração, compare:

  • número de contas;

  • saldo total;

  • número de transações;

  • registros rejeitados;

  • totais financeiros;

  • históricos;

  • produtos ativos.

Em COBOL, poderíamos imaginar:

IF TOTAL-ORIGEM NOT = TOTAL-DESTINO
    DISPLAY 'ERRO DE RECONCILIACAO'
    MOVE 12 TO RETURN-CODE
    STOP RUN
END-IF.

Em sistemas bancários, essa lógica precisa existir em escala gigantesca.

Passo 5 — Prepare rollback

Rollback não é apenas manter um backup.

É saber:

  • quando voltar;

  • como voltar;

  • quais dados podem ser perdidos;

  • como sincronizar alterações;

  • quem autoriza;

  • quanto tempo a reversão leva.

Passo 6 — Faça observabilidade

Monitore:

  • CPU;

  • memória;

  • filas;

  • erros;

  • tempo de resposta;

  • conexões;

  • locks;

  • commits;

  • falhas externas;

  • experiência do cliente.

Passo 7 — Simule o pior dia

Não teste apenas o dia normal.

Teste:

  • pagamento de salários;

  • vencimento de contas;

  • milhões de logins;

  • falha de data center;

  • ataque;

  • perda de rede;

  • lentidão do banco;

  • avalanche de retentativas.


Curiosidades da investigação

Curiosidade 1 — Os dados principais não desapareceram

O caso ficou famoso como se todas as contas tivessem sido perdidas.

Mas os dados principais foram migrados.

O colapso ocorreu principalmente na capacidade de disponibilizar e processar esses dados corretamente pelos serviços digitais.

Curiosidade 2 — O sucesso foi anunciado cedo demais

Houve comunicação comemorando a migração antes que a gravidade do problema estivesse clara.

Essa é uma lição clássica:

nunca declare vitória enquanto a produção ainda está respirando por aparelhos.

Curiosidade 3 — O incidente aumentou a atividade fraudulenta

Crises tecnológicas criam terreno fértil para engenharia social.

O criminoso não precisa invadir o mainframe.

Pode simplesmente convencer o cliente a entregar a senha.

Curiosidade 4 — O legado parecia caro até a falha ficar mais cara

O objetivo era economizar e conquistar independência.

O custo do incidente mostrou que uma plataforma estável pode parecer cara apenas até o momento em que sua substituição falha.


Easter egg do Bellacosa Mainframe

Em algum lugar do data center, durante a madrugada da migração, um velho operador de mainframe teria olhado para a tela verde e murmurado:

“No meu tempo, antes de liberar o job, a gente conferia o MAXCC.”

Talvez ninguém tenha ouvido.

Talvez o barulho dos servidores fosse alto demais.

Ou talvez o operador estivesse apenas terminando seu café.

Mas fica a homenagem aos profissionais que sabem que, em sistemas críticos, um simples:

MAXCC=00

não significa que o mundo inteiro esteja funcionando.

Significa apenas que aquele job terminou sem detectar erro.

O cliente pode estar vendo outra coisa.


Conclusão — A cena final

O caso TSB Bank não é uma história sobre tecnologia velha contra tecnologia nova.

É uma história sobre complexidade.

Sobre confiança.

Sobre pressão.

Sobre cronogramas.

Sobre governança.

Sobre a diferença entre migrar dados e migrar um banco.

O mainframe não destruiu a reputação do TSB.

A tentativa de sair de uma infraestrutura estável, combinada com falhas de planejamento, testes, capacidade, configuração, supervisão e resposta operacional, produziu uma crise de enormes proporções.

O maior ensinamento é simples:

Sistemas críticos não falham apenas por causa de código ruim. Eles falham quando tecnologia, processos, pessoas e decisões deixam de funcionar como um único organismo.

Para o programador COBOL iniciante, esse caso mostra que escrever um programa é apenas parte do trabalho.

Você também precisa compreender:

  • produção;

  • risco;

  • volume;

  • observabilidade;

  • recuperação;

  • segurança;

  • dependências;

  • impacto no cliente.

Porque, em um banco, cada byte representa dinheiro.

Cada registro representa uma pessoa.

Cada falha pode virar notícia.

E cada migração mal planejada pode transformar uma sala de servidores em uma cena de CSI.

No fim da investigação, as luzes do data center continuam acesas.

Os programas voltam a executar.

As contas reaparecem.

Os pagamentos são processados.

Mas a reputação não possui comando de restart.

Não existe:

//REPUTACAO EXEC PGM=RESTART

Ela precisa ser reconstruída lentamente.

Cliente por cliente.

Transação por transação.

Café por café.

E essa, talvez, seja a lição mais importante de todas.


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