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

Translate

sexta-feira, 7 de janeiro de 2022

🧠🔥 Mapa comparativo manual: Mainframe ↔ Instana Observability

 


🧠🔥 Mapa comparativo manual: Mainframe ↔ Instana Observability


Analogias diretas para quem já leu SMF em hexadecimal e agora vê JSON piscando


☕ 02:41 — Quando o APM tenta explicar o que o SMF já sabia

Todo mainframer que olha para uma ferramenta de observabilidade moderna (Instana, por exemplo) tem a mesma sensação:

“Isso aqui… eu já vi antes.”

E viu mesmo.
A diferença é que agora:

  • o dump é distribuído

  • o JES virou dashboard

  • o operador virou SRE

  • e o problema continua sendo tempo, estado e falha

Este artigo é um mapa mental de tradução, para tornar aplicações distribuídas palpáveis para quem vem do z/OS.


🗺️ O mapa comparativo essencial (guarde isso)

Mundo MainframeInstana / ObservabilidadeTradução Bellacosa
SMFDistributed TracesRegistro detalhado do que aconteceu, quando e por onde passou
RMFMétricas (CPU, memória, latência)Capacidade, consumo e gargalos
JES / SpoolLogs correlacionadosO que foi executado, em que ordem e com qual resultado
CICS TransactionService / EndpointUnidade lógica de trabalho
Program / ModuleMicroserviceCódigo executável com responsabilidade específica
AbendIncidentFalha detectável que exige ação
Return CodeError Rate / Status CodeSucesso ou falha mensurável
Job ChainService Dependency MapOrdem e dependência entre execuções
OperadorSRE / On-callQuem sofre primeiro
Console z/OSDashboard em tempo realO painel que ninguém olha até dar problema

😈 Easter egg:
Se você entende RMF, já entende 80% de qualquer APM.


1️⃣ História curta: do SMF ao Trace distribuído 🕰️

No mainframe:

  • O sistema sempre foi observável

  • Só exigia estudo, paciência e café

No mundo distribuído:

  • A observabilidade precisou ser reinventada

  • Porque ninguém mais sabia onde o código rodava

📌 Comentário Bellacosa:
Observabilidade não nasceu na cloud.
Ela foi redescoberta.


2️⃣ SMF ↔ Traces: a analogia mais poderosa 🔍

SMF

  • Sequência precisa

  • Contexto

  • Correlação temporal

Trace distribuído

  • Request entra

  • Passa por N serviços

  • Sai (ou morre no caminho)

🔥 Tradução direta:
Um trace é um SMF espalhado pela rede, costurado em tempo real.


3️⃣ RMF ↔ Métricas: capacidade nunca saiu de moda 📊

RMF

  • CPU

  • I/O

  • Memory

  • Throughput

Instana Metrics

  • CPU

  • Memory

  • Latência

  • Saturação

😈 Curiosidade:
A diferença não é o conceito.
É que agora todo mundo descobriu que capacidade importa.


4️⃣ Job chain ↔ Dependency Graph 🧩

No batch:

  • JOB A → JOB B → JOB C

  • Quebrou A, nada anda

No distribuído:

  • Serviço A → Serviço B → Serviço C

  • Quebrou B, metade do sistema “funciona”

📌 Comentário ácido:
Falha parcial é batch quebrado com marketing.


5️⃣ Console ↔ Dashboard: o mesmo vício 👀

  • Console ignorado = desastre

  • Dashboard ignorado = post-mortem

🔥 Regra eterna:
O problema não é a ferramenta.
É quem só olha quando dói.


6️⃣ Passo a passo mental para o mainframer entender Instana 🧭

1️⃣ Pense em transação, não em tela
2️⃣ Pense em fluxo, não em serviço isolado
3️⃣ Pense em capacidade, não em “escala infinita”
4️⃣ Pense em falha como estado normal
5️⃣ Pense em correlação, não em log solto

📌 Mantra Bellacosa:
Sem correlação, não há diagnóstico.


7️⃣ Curiosidades que só mainframer percebe 😈

  • Observabilidade virou buzzword

  • Mas sempre foi obrigação

  • Logs sem contexto são JES sem DD

  • Alert sem ação é operador sem autoridade


📚 Guia de estudo recomendado (sem hype)

Conceitos

  • Observabilidade (metrics, logs, traces)

  • Resiliência

  • SRE

  • Arquitetura distribuída

  • Event-driven

Exercício prático

👉 Pegue um trace no Instana
👉 Leia como se fosse um SMF
👉 Pergunte: onde começou a dar errado?


🎯 Aplicações práticas desse mapa

  • Integração mainframe ↔ cloud

  • Modernização segura

  • Diagnóstico de incidentes

  • Treinamento de times híbridos

  • Arquitetura corporativa


🖤 Epílogo — 03:33, o gráfico faz sentido

Quando o mainframer entende observabilidade moderna, algo muda:

Ele para de perguntar

“O que é isso?”

E começa a afirmar:

“Ah… então foi aqui que deu ruim.”

El Jefe Midnight Lunch assina:
“Instana não inventou observabilidade. Só colocou UI no que o mainframe sempre soube fazer.”

 

quinta-feira, 6 de janeiro de 2022

🕵️‍♂️ INSPETOR CLOUSEAU E O MISTÉRIO DAS CHAVES ENTRE CHAVES

 

Bellacosa Mainframe explora o json

☕ Um Café no Bellacosa Mainframe

🕵️‍♂️ INSPETOR CLOUSEAU E O MISTÉRIO DAS CHAVES ENTRE CHAVES

JSON, APIs, arrays, objetos, jq, curl, Kubernetes, Terraform, CI/CD, observabilidade e o estranho caso do mainframe acusado de não saber conversar com o mundo moderno.



🎬 PRÓLOGO — Havia uma chave onde não deveria haver uma chave

Paris, algum momento entre um incidente de produção e uma reunião que deveria ter sido um e-mail.

O telefone toca.

Inspetor Clouseau? Temos um problema.

Clouseau ajeita o sobretudo.

Naturalmente. Se não houvesse problema, não estariam ligando para o maior detetive da França.

— Uma aplicação parou de funcionar.

Sabotage!

— Não sabemos.

Ransomware!

— Também não.

Mainframe!

Silêncio.

Do outro lado da linha, alguém respira fundo.

— Inspetor... o erro diz:

Unexpected token } in JSON

Clouseau estreita os olhos.

Aha! Então temos um suspeito.

Ele pega a lupa.

Na tela aparece:

{
  "customer": "Bellacosa",
  "status": "ACTIVE",
}

Clouseau observa durante vários segundos.

Onde está o criminoso?

O programador aponta.

"ACTIVE",
        ^

Uma vírgula.

Uma pequena vírgula.

Um caractere com poucos pixels havia derrubado uma automação inteira.

E assim começava uma investigação que levaria Clouseau por APIs, pipelines, Kubernetes, Terraform, logs, curl, jq e finalmente até um velho programa COBOL que, como quase sempre acontece nessas histórias, estava sendo acusado injustamente.

Porque o verdadeiro mistério não era:

“O que é JSON?”

Era muito maior:

Como sistemas completamente diferentes conseguem conversar sem precisar conhecer a implementação interna uns dos outros?

E essa pergunta nos leva diretamente ao coração da computação moderna.



🕵️ CAPÍTULO 1 — O primeiro suspeito: JSON

JSON significa JavaScript Object Notation.

Mas esse nome frequentemente provoca o primeiro erro conceitual.

JSON não é JavaScript.

Também não é uma linguagem de programação.

Não possui IF, PERFORM, métodos, classes ou algoritmos.

JSON é essencialmente uma representação textual de dados estruturados.

A especificação padronizada pela IETF, RFC 8259, define JSON como um formato textual e independente de linguagem para intercâmbio de dados estruturados. Ela estabelece quatro tipos primitivos — string, number, boolean e null — além de dois tipos estruturados: object e array.

Clouseau imediatamente faz uma anotação:

SUSPEITO: JSON
CRIME: transportar dados
ARMA: { }
CÚMPLICE: [ ]

Mas transportar dados não parece exatamente um crime.

Na verdade, essa simplicidade explica boa parte do sucesso do JSON.

Imagine:

{
  "name": "Vagner",
  "technology": "COBOL",
  "experience": 35,
  "active": true
}

Não existe programa sendo executado ali.

Existe apenas uma afirmação estruturada sobre dados.



🧱 CAPÍTULO 2 — Clouseau encontra um COPYBOOK disfarçado

Para quem vem do COBOL, talvez exista uma maneira muito melhor de entender JSON do que começar falando de JavaScript.

Imagine:

01 CUSTOMER.
   05 CUSTOMER-ID       PIC 9(8).
   05 CUSTOMER-NAME     PIC X(40).
   05 CUSTOMER-STATUS   PIC X(10).
   05 CUSTOMER-BALANCE  PIC S9(9)V99 COMP-3.

O programador mainframe olha para isso e imediatamente enxerga uma estrutura.

Existe um grupo.

Dentro dele existem campos.

Cada campo possui significado, tamanho e representação.

Agora imagine uma representação conceitualmente equivalente:

{
  "customerId": 12345678,
  "customerName": "BELLACOSA",
  "customerStatus": "ACTIVE",
  "customerBalance": 15872.35
}

Clouseau olha para o COPYBOOK.

Olha para o JSON.

Olha novamente para o COPYBOOK.

São irmãos!

Não exatamente.

Mas a intuição é excelente.

O COPYBOOK descreve uma estrutura muito mais rígida: posição, tamanho, representação numérica, agrupamento etc.

JSON trabalha de outra maneira:

"customerName" : "BELLACOSA"
       │               │
       │               └── valor
       │
       └── chave

Em vez de perguntar:

“Em qual posição começa esse campo?”

perguntamos:

“Qual é o valor associado a esta chave?”

Essa diferença parece pequena.

Arquitetonicamente, é gigantesca.



🔑 CAPÍTULO 3 — O estranho caso das chaves

Um objeto JSON utiliza:

{
}

E contém pares:

chave : valor

Por exemplo:

{
  "system": "CICS",
  "region": "CICSPRD1",
  "status": "UP"
}

A RFC especifica objetos como coleções de pares nome/valor e recomenda que os nomes sejam únicos. Também é importante não construir aplicações que dependam da ordem das propriedades de um objeto.

Isso produz uma diferença interessante em relação ao pensamento tradicional de registros posicionais.

Em:

BELLACOSA 000001 ACTIVE

o significado depende fortemente da convenção sobre onde cada informação está.

Em:

{
  "name": "BELLACOSA",
  "id": 1,
  "status": "ACTIVE"
}

parte do significado acompanha o próprio dado.

O formato ficou mais verboso.

Mas também muito mais autodescritivo.

Clouseau imediatamente conclui:

Então quanto maior o arquivo, melhor!

Não, Clouseau.

Continue investigando.



📦 CAPÍTULO 4 — Os cúmplices chamados Arrays

Então aparece:

[
]

Se {} representa um objeto, [] representa um array.

Por exemplo:

{
  "regions": [
    "CICSPRD1",
    "CICSPRD2",
    "CICSTST1"
  ]
}

A RFC define arrays como sequências ordenadas de valores.

Para um programador COBOL, existe uma associação mental extremamente útil:

05 TRANSACTION OCCURS 100 TIMES.

Não significa que OCCURS e JSON Array sejam tecnicamente a mesma coisa.

Não são.

Mas ambos representam a ideia fundamental:

há múltiplas ocorrências de alguma coisa.

Podemos ter objetos dentro do array:

{
  "regions": [
    {
      "name": "CICSPRD1",
      "status": "UP"
    },
    {
      "name": "CICSPRD2",
      "status": "DOWN"
    }
  ]
}

Agora nossa estrutura começa a ficar interessante.


🪆 CAPÍTULO 5 — Clouseau descobre objetos dentro de objetos

Então surge o verdadeiro terror do iniciante:

{
  "customer": {
    "id": 12345,
    "accounts": [
      {
        "type": "CHECKING",
        "balance": 1500.25
      },
      {
        "type": "SAVINGS",
        "balance": 8700.00
      }
    ]
  }
}

Clouseau olha para aquilo.

Mon Dieu. Alguém colocou um JSON dentro do JSON.

Sim.

E pode colocar outro.

E outro.

Porque JSON forma naturalmente uma árvore.

customer
│
├── id
│
└── accounts
    │
    ├── [0]
    │   ├── type
    │   └── balance
    │
    └── [1]
        ├── type
        └── balance

E isso muda completamente a maneira de ler estruturas grandes.

Em vez de tentar compreender cinquenta linhas simultaneamente, seguimos um caminho:

customer
   ↓
accounts
   ↓
[0]
   ↓
balance

Mentalmente:

customer.accounts[0].balance

Quem trabalhou com estruturas hierárquicas, IMS ou grupos COBOL talvez perceba algo curioso.

Essa maneira de pensar não é tão alienígena quanto parece.

O vocabulário mudou.

A árvore não.


🧬 CAPÍTULO 6 — JSON tem tipos, mas Clouseau quase perdeu essa pista

Observe:

{
  "name": "Bellacosa",
  "age": 52,
  "active": true,
  "error": null
}

Temos:

"Bellacosa" → string
52          → number
true        → boolean
null        → null

Além deles existem:

{} → object
[] → array

Isso é muito importante.

Veja:

{
  "cpu": 90
}

e:

{
  "cpu": "90"
}

Visualmente parecem quase iguais.

Semanticamente não são.

No primeiro:

90 = número

No segundo:

"90" = texto

E agora aparece um problema particularmente interessante para quem vem de COBOL.


💰 CAPÍTULO 7 — O mistério do dinheiro desaparecido

No COBOL podemos escrever:

05 BALANCE PIC S9(11)V99 COMP-3.

Isso diz muita coisa.

JSON simplesmente oferece:

{
  "balance": 123456789.99
}

Mas qual precisão deve ser utilizada?

Qual representação interna?

Qual escala?

O consumidor usa double?

decimal?

BigDecimal?

A própria RFC permite que implementações imponham limites de precisão e intervalo aos números JSON. (RFC Editor)

Agora Clouseau encontrou uma pista realmente importante.

Quando atravessamos fronteiras tecnológicas:

COBOL COMP-3
     ↓
JSON number
     ↓
Java / JavaScript / Python
     ↓
Banco de dados

precisamos pensar cuidadosamente em precisão.

Especialmente para:

dinheiro
identificadores gigantes
timestamps
medições científicas
números com precisão decimal obrigatória

Às vezes uma API deliberadamente envia determinados valores como strings:

{
  "amount": "123456789.99"
}

e define no contrato como interpretá-los.

Não porque JSON esteja quebrado.

Mas porque interoperabilidade também significa preservar significado.


👻 CAPÍTULO 8 — Null não significa desaparecido

Clouseau encontra dois arquivos.

Arquivo A:

{}

Arquivo B:

{
  "telephone": null
}

São iguais!

Não necessariamente.

No primeiro:

a propriedade não existe.

No segundo:

a propriedade existe e seu valor é null.

Essa distinção pode ser crucial em APIs.

Imagine uma operação de atualização.

{
  "telephone": null
}

poderia significar:

remova o telefone.

Enquanto:

{}

poderia significar:

não altere o telefone.

Isso depende do contrato da API, mas demonstra uma lição muito maior:

Sintaxe não determina sozinha a semântica.

E essa frase vai voltar à nossa investigação.


🚨 CAPÍTULO 9 — O JSON era válido. O sistema caiu mesmo assim

Imagine:

{
  "customerId": 123,
  "withdrawal": 999999999
}

Perfeitamente válido como JSON.

Mas o cliente possui:

Saldo = R$ 27,50

Portanto existem diferentes níveis de validade:

SINTAXE
   ↓
ESTRUTURA / SCHEMA
   ↓
SEMÂNTICA
   ↓
REGRA DE NEGÓCIO

Um documento pode ser sintaticamente perfeito e ainda assim estar completamente errado para aquela aplicação.

Clouseau começa a compreender que seu erro inicial foi perguntar:

“O JSON está correto?”

A pergunta certa seria:

“Correto em qual camada?”

Isso é uma extraordinária pergunta para troubleshooting.


🌐 CAPÍTULO 10 — O JSON sai de casa e encontra uma API

Agora chegamos ao ponto em que JSON conquistou grande parte do mundo moderno.

Imagine:

Aplicação
    │
    │ HTTP Request
    ▼
┌───────────────┐
│      API      │
└───────────────┘
    │
    │ HTTP Response
    ▼
Aplicação

O corpo pode conter:

{
  "customer": 12345,
  "status": "ACTIVE"
}

Mas aqui Clouseau comete outro erro.

HTTP é JSON!

Não.

HTTP é o protocolo.

JSON pode ser o formato do conteúdo transportado.

Também não devemos transformar:

REST = JSON

em identidade matemática.

Podemos ter APIs utilizando outros formatos.

A distinção conceitual é importantíssima:

HTTP
 ├── status
 ├── headers
 └── body
       └── talvez JSON

Um:

HTTP 500

é uma informação sobre a interação HTTP.

Um:

{
  "error": "database unavailable"
}

é conteúdo.

Misturar essas camadas torna troubleshooting muito mais difícil.


🔦 CAPÍTULO 11 — Clouseau encontra o curl

Precisamos investigar uma API.

Entra em cena:

curl

Por exemplo:

curl https://api.example.com/customers/123

A resposta:

{
  "id": 123,
  "name": "Bellacosa",
  "status": "ACTIVE"
}

Agora conseguimos interrogar diretamente a API.

Mas uma resposta real pode possuir milhares de linhas.

Clouseau pega sua lupa.

Existe uma ferramenta melhor.


🔬 CAPÍTULO 12 — jq: a lupa do detetive DevOps

Entra:

jq

Se tivermos:

{
  "customer": {
    "name": "Bellacosa",
    "accounts": [
      {
        "type": "CHECKING",
        "balance": 1500
      },
      {
        "type": "SAVINGS",
        "balance": 8700
      }
    ]
  }
}

podemos perguntar:

jq '.customer.name'

Resultado:

"Bellacosa"

Ou:

jq '.customer.accounts[0].balance'

Resultado:

1500

Ou ainda:

jq '.customer.accounts[].balance'

Resultado:

1500
8700

Mas aqui está o salto conceitual.

jq não é apenas um pretty printer.

Ele permite consultar, selecionar e transformar árvores JSON.

Imagine:

curl -s https://api.example.com/accounts |
jq '.accounts[] | select(.balance > 5000)'

Agora temos uma pequena investigação automatizada:

API
 ↓
curl
 ↓
JSON
 ↓
jq
 ↓
filtro
 ↓
informação

É quase um SQL para a árvore JSON — não literalmente, mas é uma excelente analogia mental inicial.


☸️ CAPÍTULO 13 — O crime chega ao Kubernetes

Clouseau entra em uma sala cheia de YAML.

Finalmente escapamos do JSON.

Não exatamente.

YAML e JSON aparecem frequentemente em papéis complementares nesse ecossistema.

Quando observamos objetos Kubernetes, três regiões são particularmente interessantes:

metadata
spec
status

Uma forma conceitual de enxergá-las:

metadata → quem sou eu?

spec     → como desejo que eu esteja?

status   → como estou agora?

E aqui aparece algo muito mais importante do que aprender chaves e colchetes.

A ideia de desired state.

Você declara:

quero 3 réplicas

O sistema observa:

existem 2

E tenta reconciliar:

DESEJADO
   │
   ▼
┌──────────────┐
│ RECONCILIAÇÃO│
└──────────────┘
   │
   ▼
ATUAL

Isso é arquitetura.

JSON é apenas uma das formas pelas quais podemos observar ou transportar essa representação.


🏗️ CAPÍTULO 14 — Terraform entra na delegacia

Clouseau encontra outro arquivo.

Agora temos infraestrutura descrita e administrada de forma declarativa.

Terraform consegue produzir representações JSON de plans e state com:

terraform show -json

A documentação oficial descreve essa saída como uma representação legível por máquinas do plano ou estado, justamente para permitir processamento automatizado. (HashiCorp Developer)

Isso possibilita:

Terraform
    ↓
JSON
    ↓
jq / programa
    ↓
policy
    ↓
pipeline

Por exemplo, conceitualmente:

terraform show -json plan.tfplan |
jq '.resource_changes[]'

De repente JSON deixou de ser apenas “arquivo de configuração”.

Virou uma interface entre ferramentas.

Mas há uma pista de segurança importante: a HashiCorp alerta que terraform show -json pode revelar valores sensíveis do state em texto claro. (HashiCorp Developer)

Portanto:

JSON + automação ≠ automaticamente seguro

🏭 CAPÍTULO 15 — O JSON invade o CI/CD

Imagine uma pipeline:

SOURCE
  ↓
BUILD
  ↓
TEST
  ↓
PACKAGE
  ↓
DEPLOY
  ↓
MONITOR

Cada etapa precisa comunicar informações.

Build:

{
  "buildId": 8731,
  "status": "SUCCESS"
}

Teste:

{
  "tests": 428,
  "passed": 427,
  "failed": 1
}

Deployment:

{
  "environment": "PRODUCTION",
  "version": "4.17.2",
  "status": "DEPLOYED"
}

Perceba o padrão.

JSON começa a funcionar como um envelope universal de metadados.

Ferramenta A não precisa conhecer toda a implementação de B.

Precisa conhecer o contrato.

E aqui chegamos ao verdadeiro personagem principal desta história.

Não é JSON.

É o contrato.


📜 CAPÍTULO 16 — O verdadeiro suspeito era o contrato

Considere:

{
  "customerId": 12345
}

Um desenvolvedor decide melhorar o nome:

{
  "customer_id": 12345
}

Ambos são JSON perfeitamente válidos.

Mas o consumidor procura:

customerId

Resultado:

NULL
ERROR
FAILED
ABEND
PIPELINE BROKEN

Clouseau grita:

JSON defeituoso!

Não.

O JSON está perfeito.

O contrato foi quebrado.

Esse problema nos leva a:

versionamento
schema
compatibilidade
contract testing
governança
backward compatibility

E isso explica por que simplesmente dizer “usamos JSON” quase não nos diz nada sobre a maturidade de uma arquitetura.


🧾 CAPÍTULO 17 — COPYBOOK encontra JSON Schema

Aqui surge uma comparação extremamente interessante para o mundo mainframe.

COPYBOOK:

05 CUSTOMER-ID PIC 9(8).

JSON:

{
  "customerId": 12345678
}

O JSON isoladamente diz pouco sobre as restrições do campo.

Um schema pode estabelecer expectativas muito mais detalhadas.

Assim aparece uma associação conceitual:

COPYBOOK
    │
    ├── estrutura
    ├── tipos
    └── contrato

e:

JSON
    +
JSON Schema
    │
    ├── estrutura
    ├── tipos
    └── contrato

Eles não são equivalentes tecnicamente.

Mas a comparação é pedagogicamente poderosa.

O veterano COBOL descobre então uma coisa divertida:

O mundo distribuído passou décadas reinventando maneiras de dizer:
“Este dado precisa obedecer a um layout.”

Clouseau sorri.

O mainframe também.


📡 CAPÍTULO 18 — O COBOL finalmente aparece

Agora chegamos à vítima injustamente acusada.

Temos:

Mobile
Web
Cloud
Parceiros
Microsserviços
       │
       ▼
     REST
       │
       ▼
     JSON
       │
       ▼
 z/OS Connect
       │
       ▼
      CICS
       │
       ▼
     COBOL
       │
       ▼
 Db2 / VSAM / IMS

E alguém diz:

“Transformamos COBOL em JSON.”

Não exatamente.

COBOL continua COBOL.

CICS continua CICS.

Db2 continua Db2.

O que criamos é uma fronteira de representação.

Externamente:

{
  "account": "123456",
  "balance": 7500.25
}

Internamente podemos ter algo semelhante a:

01 ACCOUNT-DATA.
   05 ACCOUNT-NUMBER PIC X(6).
   05 ACCOUNT-BALANCE PIC S9(7)V99 COMP-3.

Existe então uma transformação:

REPRESENTAÇÃO EXTERNA
        ↕
     MAPEAMENTO
        ↕
REPRESENTAÇÃO INTERNA

Essa ideia é fundamental para modernização de mainframe.

Modernizar não exige necessariamente destruir aquilo que funciona.

Às vezes significa simplesmente oferecer novas interfaces para capacidades existentes.


📟 CAPÍTULO 19 — O incidente das 03:17

São 03:17.

Naturalmente.

Um alerta chega:

{
  "timestamp": "2026-09-17T03:17:42Z",
  "service": "payment-api",
  "severity": "critical",
  "transaction": "PAYMENT",
  "backend": "CICS",
  "responseTime": 8421,
  "status": "timeout"
}

Há algumas décadas talvez tivéssemos:

20260917031742 PAYAPI CRIT PAY CICS 8421 TIMEOUT

Perfeitamente processável.

Mas agora cada informação possui identidade explícita.

Isso facilita:

indexação
correlação
pesquisa
dashboards
alertas
automação
machine learning
IA

Imagine milhões desses eventos.

Podemos perguntar:

Mostre severity=critical
onde backend=CICS
e responseTime > 5000
nas últimas duas horas.

Essa é uma das razões pelas quais structured logging tornou-se tão poderoso.

JSON não é somente intercâmbio de APIs.

Pode ser também a matéria-prima da observabilidade.


🔥 CAPÍTULO 20 — Clouseau encontra um JSON quebrado

Finalmente chega o incidente clássico:

parse error

O arquivo:

{
  "system": "CICS"
  "status": "UP"
}

Clouseau investiga Kubernetes.

Nada.

Investiga RACF.

Nada.

Investiga Db2.

Nada.

Investiga TCP/IP.

Nada.

Quatro horas depois alguém percebe:

{
  "system": "CICS",
                  ↑
  "status": "UP"
}

Faltava uma vírgula.

JSON possui uma gramática pequena, mas rígida. Strings e nomes usam aspas duplas; objetos usam {}, arrays usam []; os literais são true, false e null em minúsculas.

Uma boa investigação segue:

ERROR
  ↓
VALIDATE
  ↓
LOCATE
  ↓
FIX
  ↓
RE-RUN
  ↓
VERIFY

Não:

ERROR
 ↓
ALTERA 17 COISAS
 ↓
RESTART
 ↓
REZA

Embora Clouseau prefira o segundo método.


🧠 CAPÍTULO 21 — O programador COBOL percebe que já conhecia metade disso

Depois de horas de investigação, Clouseau reúne todos na biblioteca.

Como todo bom detetive.

Na parede:

COPYBOOK
   ↓
ESTRUTURA

JSON
   ↓
REPRESENTAÇÃO

JSON SCHEMA
   ↓
CONTRATO

HTTP / REST
   ↓
COMUNICAÇÃO

curl
   ↓
CLIENTE / INVESTIGAÇÃO

jq
   ↓
CONSULTA / TRANSFORMAÇÃO

KUBERNETES
   ↓
ESTADO DESEJADO

TERRAFORM
   ↓
INFRAESTRUTURA DECLARATIVA + ESTADO

CI/CD
   ↓
AUTOMAÇÃO

OBSERVABILIDADE
   ↓
TELEMETRIA E INVESTIGAÇÃO

Então vem a revelação.

Para alguém com décadas de mainframe, boa parte dos conceitos fundamentais não é nova.

Já conhecíamos:

campos
registros
grupos
ocorrências
layouts
contratos
interfaces
serialização
validação
mensagens
transações
logs
monitoramento

Mudaram as ferramentas.

Mudaram as representações.

Mudou o ecossistema.

Mas muitos problemas fundamentais permaneceram.


🕵️‍♂️ EPÍLOGO — Clouseau revela o verdadeiro culpado

Todos estão reunidos.

JSON está sentado numa cadeira.

COBOL em outra.

Kubernetes parece nervoso.

Terraform evita contato visual.

YAML insiste que sua indentação está perfeitamente correta.

Clouseau começa:

Mesdames et messieurs... descobri o criminoso.

Silêncio.

Ele aponta dramaticamente.

Para ninguém.

O culpado é... JSON!

O assistente cochicha:

— Inspetor, JSON não fez nada.

Exatamente! Isso prova como ele é astuto.

Mas talvez exista uma conclusão melhor.

JSON não revolucionou a computação porque inventou dados estruturados.

Isso já existia muito antes dele.

Também não inventou hierarquias, contratos, mensagens ou serialização.

Sua grande força foi oferecer uma representação extremamente simples e amplamente interoperável para que sistemas heterogêneos pudessem conversar sobre dados.

Um programa COBOL de décadas atrás pode participar de uma arquitetura moderna:

COBOL
  │
CICS
  │
API
  │
JSON
  │
Cloud
  │
Kubernetes
  │
CI/CD
  │
Observability
  │
IA

E isso revela algo que Clouseau quase conseguiu descobrir.

O mainframe não precisa falar a linguagem interna do Kubernetes.

Kubernetes não precisa entender COMP-3.

O aplicativo mobile não precisa conhecer um COPYBOOK.

O sistema consumidor precisa conhecer o contrato na fronteira.

É justamente aí que JSON conquistou seu espaço.


☕ A MORAL DO CASO

Quando alguém disser:

“Mainframe é tecnologia antiga; JSON é tecnologia moderna.”

Clouseau provavelmente derrubará uma estante tentando responder.

Nós podemos fazer melhor.

Um registro COBOL, uma mensagem MQ, um documento XML, um JSON de API e um evento de observabilidade pertencem a gerações e ecossistemas diferentes, mas todos atacam variações de uma questão muito antiga:

Como representar informação de maneira que outro componente consiga compreendê-la corretamente?

A tecnologia muda.

As chaves mudam.

Os protocolos mudam.

Os nomes ficam mais modernos.

Mas o problema fundamental permanece.

E talvez seja por isso que um programador que passou décadas olhando:

01 CUSTOMER.
   05 CUSTOMER-ID PIC 9(8).

não deveria sentir medo ao encontrar:

{
  "customer": {
    "id": 12345678
  }
}

Ele não entrou em outro universo.

Apenas encontrou uma nova maneira de escrever uma velha ideia.

E no corredor da produção, às 03:17, o Inspetor Clouseau ainda procura aquela vírgula desaparecida. ☕🕵️‍♂️

quarta-feira, 5 de janeiro de 2022

🖥️🎬 20 filmes para quem rodou Jogador Nº 1 em modo FULL NOSTALGIA

 

☕ Um Café no Bellacosa Mainframe

🖥️🎬 20 filmes para quem rodou Jogador Nº 1 em modo Full Nostalgia

Existe uma curiosa semelhança entre um operador de mainframe dos anos 1980 e um jogador que coloca um headset de realidade virtual em pleno século XXI. Ambos entram em um ambiente onde as regras do mundo físico parecem perder importância e tudo passa a depender da lógica de um sistema. Antes eram telas verdes, comandos TSO, JCLs e consoles de operação. 

Hoje são avatares, mundos persistentes, inteligência artificial, economias digitais e universos capazes de existir vinte e quatro horas por dia. A interface mudou completamente, mas a ideia continua surpreendentemente parecida: conectar pessoas a uma realidade construída por computadores.

Quando Jogador Nº 1 chegou aos cinemas, muita gente enxergou apenas uma avalanche de referências à cultura pop. No entanto, por trás dos easter eggs existe uma reflexão muito maior. O OASIS representa o sonho que a computação persegue desde seus primeiros dias: criar um ambiente digital tão convincente que deixe de ser apenas um programa e passe a ser um lugar onde trabalhamos, estudamos, compramos, socializamos e até construímos nossa identidade.

Neste especial do Bellacosa Mainframe, vamos muito além de Jogador Nº 1. Reunimos vinte filmes que ajudaram a construir esse imaginário tecnológico, desde os vetores luminosos de Tron, passando pelas questões filosóficas de Matrix, pelas redes digitais de Summer Wars, pelos dilemas existenciais de Ghost in the Shell e pelos mundos simulados de O 13º Andar. Cada obra representa uma etapa da evolução da computação e da forma como imaginamos nossa relação com as máquinas.

Vista seus óculos virtuais, inicialize seu avatar e prepare-se para fazer um IPL na nostalgia. Afinal, todo grande mundo virtual começou como uma simples ideia escrita em algum terminal de computador. E, como todo bom mainframer sabe, por trás do front-end mais espetacular sempre existe um backend trabalhando silenciosamente para manter o universo inteiro em execução.

🖥️🌐 Realidade Virtual no Século XXI: o terminal que virou mundo

ao estilo Bellacosa Mainframe

A realidade virtual (VR) no século XXI não é apenas um avanço tecnológico; é a transformação do terminal em ambiente existencial. O que começou como simulador tosco, com latência alta e resolução sofrível, evoluiu para sistemas imersivos capazes de treinar cirurgiões, pilotos, engenheiros e — ironicamente — fugir da própria realidade.

Para o olhar mainframer, a VR é um front-end extremo rodando sobre infraestruturas críticas: data centers, redes de baixa latência, computação gráfica massiva e economias digitais persistentes. Nada disso é novo. O novo é o nível de envolvimento humano. O usuário deixa de “usar” o sistema e passa a habitar o sistema.

No século XXI, a VR impacta educação, saúde, indústria, entretenimento e relações sociais. Treinamento virtual reduz riscos reais; ambientes simulados aceleram aprendizado; mundos digitais criam novas formas de trabalho e identidade. Mas o trade-off é claro: escapismo, dependência e a diluição da fronteira entre o real e o simulado.

A lição Bellacosa é simples: toda tecnologia poderosa exige governança, limites e consciência histórica. Assim como o mainframe sustenta sistemas invisíveis que movem o mundo, a realidade virtual revela um futuro onde o maior risco não é a máquina falhar — é o humano preferir não sair dela.

🖥️ Sistema estável. Usuário em teste.


🖥️🎬 Lista não definitiva


1️⃣ Tron (1982)

🇧🇷 Tron – Uma Odisseia Eletrônica
🎭 Jeff Bridges
💬 Usuário preso dentro do sistema.
🥚 Primeiro “VR” do cinema. Vetores = mainframe feelings.

2️⃣ Tron: Legacy (2010)

🇧🇷 Tron: O Legado
🎭 Jeff Bridges
💬 Sistema herdado sai do controle.
🤫 Todo sysadmin entende isso.

3️⃣ The Matrix (1999)

🇧🇷 Matrix
🎭 Keanu Reeves
💬 Realidade como simulação.
🥚 Baudrillard escondido no código.

4️⃣ Wreck-It Ralph (2012)

🇧🇷 Detona Ralph
🎭 John C. Reilly
💬 Personagens sabem que são jogo.
🥚 Arcade é personagem.

5️⃣ Free Guy (2021)

🇧🇷 Free Guy: Assumindo o Controle
🎭 Ryan Reynolds
💬 NPC acorda.
🤫 Bug vira herói.

6️⃣ Avalon (2001)

🇧🇷 Avalon
🎭 Małgorzata Foremniak
💬 Jogo militar e existencial.
🥚 Filosofia japonesa pesada.

7️⃣ Existenz (1999)

🇧🇷 eXistenZ
🎭 Jude Law
💬 Jogo orgânico, desconfortável.
🤫 Cronenberg trollando gamers.

8️⃣ Gamer (2009)

🇧🇷 Gamer
🎭 Gerard Butler
💬 Humanos controlados como avatares.
🥚 Crítica social explícita.

9️⃣ Sword Art Online: Ordinal Scale (2017)

🇧🇷 SAO – Ordinal Scale
🎭 Vozes originais
💬 VR + AR + trauma.
🤫 Anime entende melhor o OASIS.

🔟 Summer Wars (2009)

🇧🇷 Summer Wars
🎭 Anime
💬 Rede social vira campo de batalha.
🥚 Família vs sistema.


1️⃣1️⃣ Alita: Battle Angel (2019)

🇧🇷 Alita
🎭 Rosa Salazar
💬 Identidade, upgrades, memória.
🤫 RPG cyberpunk disfarçado.

1️⃣2️⃣ Scott Pilgrim vs The World (2010)

🇧🇷 Scott Pilgrim Contra o Mundo
🎭 Michael Cera
💬 Vida como videogame.
🥚 HUD emocional.

1️⃣3️⃣ Ready Player One (2018)

🇧🇷 Jogador Nº 1
🎭 Tye Sheridan
💬 O manual visual do livro.
🤫 Pause sempre.

1️⃣4️⃣ The Lawnmower Man (1992)

🇧🇷 O Passageiro do Futuro
🎭 Pierce Brosnan
💬 VR pré-histórica.
🥚 CGI jurássico, ideia visionária.

1️⃣5️⃣ Johnny Mnemonic (1995)

🇧🇷 Johnny Mnemonic
🎭 Keanu Reeves
💬 Dados na cabeça.
🤫 William Gibson puro.

1️⃣6️⃣ Hackers (1995)

🇧🇷 Hackers
🎭 Angelina Jolie
💬 Hacker como pop star.
🥚 Moda cyberpunk exagerada.

1️⃣7️⃣ Ghost in the Shell (1995)

🇧🇷 A Fantasma do Futuro
🎭 Anime
💬 Identidade digital.
🤫 Influenciou Matrix.

1️⃣8️⃣ Her (2013)

🇧🇷 Ela
🎭 Joaquin Phoenix
💬 Relação com sistema.
🥚 Solidão high-tech.

1️⃣9️⃣ The Thirteenth Floor (1999)

🇧🇷 O 13º Andar
🎭 Craig Bierko
💬 Simulação dentro da simulação.
🤫 Mainframe inception.

2️⃣0️⃣ Blade Runner (1982)

🇧🇷 Blade Runner
🎭 Harrison Ford
💬 O que é real?
🥚 Base filosófica do cyberpunk.


🖥️ Comentário final Bellacosa:
Se Jogador Nº 1 é o front-end colorido, essa lista é o backend legado que sustenta tudo. Assista com olhar de operador:
todo sistema conta a história de quem o criou.

☕ Conclusão — O Próximo Login é Seu

A realidade virtual nunca foi apenas sobre tecnologia; sempre foi sobre pessoas, sonhos e a eterna vontade de explorar o desconhecido. Dos primeiros experimentos de Tron ao universo de Jogador Nº 1, cada filme desta lista mostra que toda inovação carrega oportunidades e desafios. Agora queremos saber sua opinião: qual desses filmes mais marcou sua vida? 

Existe algum clássico que ficou de fora da lista? Compartilhe suas lembranças nos comentários, indique este artigo para outros apaixonados por ficção científica e cultura geek e continue acompanhando o Bellacosa Mainframe. Afinal, a próxima grande aventura pode começar com um simples clique... ou com um LOGIN. 🎮🖥️


terça-feira, 4 de janeiro de 2022

🛡️ IBM Z Resiliency : Por que o mainframe foi feito para não cair — e o mundo digital ainda corre atrás

 


🛡️ IBM Z Resiliency

Por que o mainframe foi feito para não cair — e o mundo digital ainda corre atrás

“Downtime não é um incidente técnico. É um evento de negócio.”

No mundo atual, onde uma falha de segundos vira trending topic e uma indisponibilidade de minutos custa milhões, resiliência deixou de ser luxo e virou sobrevivência.
E é exatamente aqui que o IBM Z entra em cena — não como moda, mas como engenharia.

Este artigo nasce do conteúdo do curso IBM Z Resiliency, mas vai além: traduz conceitos, conecta história, provoca reflexão e mostra por que o mainframe continua sendo o porto seguro do digital.




☕ O que é Resiliência — e por que não é só “alta disponibilidade”

Muita gente confunde resiliência com uptime.
Mas uptime é métrica. Resiliência é comportamento.

Um sistema resiliente:

  • Falha (porque tudo falha)

  • Se adapta

  • Se recupera rápido

  • E, muitas vezes, falha sem que o usuário perceba

📌 No IBM Z, o objetivo não é evitar a falha a qualquer custo — é garantir que ela não vire um problema de negócio.


💥 Quando o sistema cai, o negócio cai junto

Downtime não afeta só TI. Ele afeta:

  • 💳 Transações não realizadas

  • 🏦 Operações financeiras interrompidas

  • ⚖️ Penalidades regulatórias

  • 😡 Clientes que não voltam

E no mundo digital:

  • 99,9% não é “excelente”

  • 99,99% é o mínimo aceitável

  • 99,999% (five nines) é onde o IBM Z opera por padrão

👉 Five nines significa menos de 5 minutos de indisponibilidade por ano.
Não é marketing. É engenharia.


📊 Como se mede disponibilidade (e por que isso importa)

A conta é simples:

Disponibilidade = (Tempo total – Downtime) / Tempo total

Mas a interpretação não é.

Porque uma hora fora do ar:

  • Às 3h da manhã ≠

  • Às 11h de uma segunda-feira bancária

📢 Resiliência não é quanto tempo você ficou fora — é o impacto que isso causou.


🧱 RAS: o DNA do IBM Z

Quando falamos de IBM Z, falamos de RAS:

🔧 Reliability (Confiabilidade)

  • Componentes redundantes

  • Correção automática de erros

  • Falhas detectadas antes de virarem incidentes

📌 Há casos reais em que o cliente nunca soube que um componente falhou.


⏱ Availability (Disponibilidade)

  • Substituição de peças com sistema ligado

  • Workloads realocados automaticamente

  • Sysplex mascarando falhas de LPAR ou CPC

📢 No mundo distribuído, reiniciar é normal.
No mainframe, é exceção.


🛠 Serviceability (Manutenibilidade)

  • Diagnóstico preciso

  • Call Home automático

  • Menos tempo para resolver, menos impacto

👉 O IBM Z foi feito para ser consertado em produção.


🌍 Modelos de Resiliência no IBM Z

Nem todo ambiente precisa do mesmo nível de proteção. Por isso existem modelos de resiliência.

1️⃣ Sistema único resiliente

  • Um IBM Z

  • Forte uso de RAS

  • Recuperação rápida

✔️ Simples
❌ Sem proteção contra desastre físico


2️⃣ Alta disponibilidade local

  • Sysplex

  • Múltiplos LPARs

  • Failover quase invisível

✔️ Excelente para ambientes críticos
❌ Ainda preso a um único site


3️⃣ Resiliência geográfica (GDPS)

  • Sites separados

  • Replicação de dados

  • Failover automatizado

✔️ Proteção real contra desastre
✔️ RTO extremamente baixo
💰 Investimento maior, mas justificado


4️⃣ Disponibilidade contínua

  • Zero downtime percebido

  • Automação total

  • Planejamento extremo

📢 Aqui não se fala em “se cair”, mas em “quando cair, ninguém percebe”.


🧠 Planejar Resiliência é mais do que comprar hardware

Um erro clássico: achar que resiliência se compra.

Ela se projeta.

Princípios fundamentais:

✔️ Falhas são normais
✔️ RTO e RPO bem definidos
✔️ Automação acima de intervenção manual
✔️ Testes frequentes de DR
✔️ Pessoas treinadas e processos claros

📌 Plano de desastre não testado é ficção técnica.


🧩 O diferencial do IBM Z

O IBM Z não é resiliente por acaso.

Ele nasceu em uma época em que:

  • Sistemas não podiam cair

  • Transações não podiam ser perdidas

  • Clientes não aceitavam erro

Enquanto muitos ambientes ainda tentam alcançar resiliência com camadas de software, o mainframe nasceu resiliente.


🎯 Conclusão – Resiliência não é moda. É sobrevivência.

No fim do dia, a pergunta não é:

“Meu sistema vai falhar?”

Mas sim:

“O que acontece quando ele falhar?”

No IBM Z, a resposta é simples:

O negócio continua.

☕💻 Isso é resiliência. Isso é mainframe.


segunda-feira, 3 de janeiro de 2022

🧠 Ferramentas para Análise de Código COBOL Legado no IBM Mainframe

 

🧠 Ferramentas para Análise de Código COBOL Legado no IBM Mainframe

Regra de ouro: no mainframe moderno, 80% do trabalho é entender o que já existe antes de mudar uma linha sequer.




🔎 1. IBM Code Review for COBOL (z/OS & IDz)

🎯 Finalidade

Análise estática de código COBOL baseada em regras configuráveis.

🛠 O que detecta

Exatamente as regras que você listou (e mais):

  • Código inacessível (Unreachable Code)

  • EVALUATE sem WHEN OTHER

  • PERFORM potencialmente recursivo

  • Violação de intervalo PERFORM

  • GO TO não estruturado

  • Uso inadequado de EXIT

  • ALTER (👻 proibidão moderno)

  • ACCEPT FROM CONSOLE / SYSIN / SYSIPT

  • STOP RUN

  • Escopos implícitos e terminadores opcionais

  • Parágrafos vazios

  • Múltiplos verbos na mesma linha

  • NEXT SENTENCE suspeito

  • CONTINUE mal utilizado

📌 Ponto forte:
Excelente para ambientes regulados, auditoria, padronização e hardening de código legado.

📎 Documentação oficial:
IBM Docs – Code Review for COBOL Rules


🧰 2. IBM Developer for z/OS (IDz)

🎯 Finalidade

IDE moderna para desenvolvimento e análise de código existente.

🛠 Recursos-chave

  • Navegação de código legado

  • Call Hierarchy (quem chama quem)

  • Data Flow Analysis

  • Impact Analysis

  • Syntax Check avançado

  • Integração com Git / RTC

  • Integração direta com Code Review for COBOL

📌 Ponto forte:
Transforma o “monolito obscuro” em algo navegável e compreensível.

🧠 Easter egg Bellacosa:
IDz é o “ISPF com esteroides, café gourmet e DevOps”.


🧬 3. IBM Application Discovery & Delivery Intelligence (ADDI)

🎯 Finalidade

Raio-X completo do legado

🛠 O que faz

  • Mapeia dependências entre:

    • Programas COBOL

    • Copybooks

    • JCL

    • DB2

    • CICS

    • VSAM

  • Gera diagramas automáticos

  • Análise de impacto de mudanças

  • Identifica código morto

  • Classifica aplicações por risco

📌 Ponto forte:
Ideal antes de modernização, refactoring ou migração.

🔥 Uso típico:

“Se eu mexer nesse campo, o que quebra no banco inteiro?”


🧪 4. IBM Debug Tool for z/OS

🎯 Finalidade

Análise dinâmica (runtime).

🛠 Recursos

  • Debug passo a passo

  • Inspeção de variáveis

  • Breakpoints condicionais

  • Debug em batch, CICS e IMS

  • Análise de loops e PERFORMs suspeitos

📌 Ponto forte:
Quando o código parece correto, mas explode em produção.

🧨 Bellacosa mode:
“Quando o dump mente, o Debug Tool fala a verdade.”


📊 5. Fault Analyzer for z/OS

🎯 Finalidade

Análise pós-falha (dump analysis).

🛠 O que entrega

  • Dumps estruturados

  • Análise de corrupção de memória

  • Identificação de variáveis problemáticas

  • Histórico de falhas

  • Integração com IDz

📌 Ponto forte:
Essencial para legado crítico 24x7.


📐 6. IBM Application Performance Analyzer (APA)

🎯 Finalidade

Entender performance do código legado.

🛠 Mede

  • Hotspots de CPU

  • I/O excessivo

  • Loops ineficientes

  • Uso de tabelas e ODO

  • Gargalos históricos

📌 Ponto forte:
Antes de “otimizar no chute”.


🔁 7. IBM Migration Utility for z/OS

🎯 Finalidade

Análise para migração e modernização.

🛠 Usado para

  • Identificar incompatibilidades

  • Preparar código para novos compiladores

  • Migrar ambientes antigos

  • Avaliar riscos técnicos

📌 Ponto forte:
Preparação técnica antes de mexer em décadas de história.


🧠 8. Ferramentas Clássicas (não subestime!)

🟢 ISPF

  • SRCHFOR

  • CHANGE

  • BROWSE

  • COMPARE

🟢 SDSF

  • Dumps

  • Jobs históricos

  • Outputs de teste

🟢 Abend-AID (quando disponível)

  • Análise visual de dumps

  • Navegação estruturada

📌 Ponto forte:
Ferramentas simples, mas insubstituíveis no dia a dia.


🧭 Como tudo isso se conecta (visão prática)

EtapaFerramenta
Entender o sistemaADDI
Ler e navegar códigoIDz
Padronizar e revisarCode Review for COBOL
Testar e depurarDebug Tool
Analisar falhasFault Analyzer
Melhorar performanceAPA
Planejar modernizaçãoMigration Utility



🧠 Conclusão Bellacosa

COBOL não sobreviveu por sorte.
Ele sobreviveu porque aprendeu a conviver com ferramentas modernas.

Trabalhar com código legado não é retrabalho — é engenharia de precisão, e essas ferramentas são o seu kit de sobrevivência.


domingo, 2 de janeiro de 2022

🌐 Pequena História da Internet: Da Fronteira Livre à Era da Regulação

 

Bellacosa Mainframe e uma breve historia regulatoria da internet


🌐 Pequena História da Internet: Da Fronteira Livre à Era da Regulação

1960–1980: O Nascimento da Rede

A internet nasceu de projetos militares e acadêmicos.

A ARPANET, financiada pelo Departamento de Defesa dos EUA, tinha como objetivo criar uma rede resistente e descentralizada.

O conceito revolucionário era:

Não haver um centro único de controle.

Tecnicamente, a rede foi projetada para sobreviver à destruição de partes dela.

Curiosamente, essa arquitetura descentralizada acabaria criando décadas depois enormes desafios para governos e reguladores.


1980–1995: A Era dos Pioneiros

Nessa fase a internet era usada principalmente por:

  • Universidades

  • Pesquisadores

  • Engenheiros

  • Entusiastas

Predominava uma cultura quase utópica.

Havia a sensação de que a internet seria:

  • Livre

  • Global

  • Sem fronteiras

  • Difícil de censurar

Surgiram valores que permanecem fortes até hoje:

  • Compartilhamento aberto

  • Software livre

  • Conhecimento livre

  • Privacidade

Muitos pioneiros acreditavam que os governos teriam pouca influência sobre o novo espaço digital.


1990–2005: A Explosão da Web

Com a Web de Tim Berners-Lee tudo mudou.

Milhões de pessoas passaram a acessar:

  • Sites

  • Fóruns

  • Chats

  • Blogs

  • E-mail

Nasceu a ideia do "ciberespaço".

Em 1996, John Perry Barlow publicou a famosa:

"Declaração de Independência do Ciberespaço"

O texto basicamente dizia:

"Governos do mundo, vocês não têm soberania aqui."

Hoje o documento é visto quase como o manifesto fundador do ideal libertário da internet.

Muitos realmente acreditavam que a internet escaparia para sempre do controle estatal.


2000–2010: O Primeiro Choque com a Realidade

Governos começaram a perceber que a internet não era apenas um brinquedo acadêmico.

Apareceram:

  • Fraudes online

  • Pirataria

  • Golpes

  • Terrorismo digital

  • Pornografia ilegal

  • Crimes financeiros

Os Estados responderam com:

  • Leis específicas

  • Investigações digitais

  • Cooperação internacional

Foi o início da percepção de que:

A internet não estava fora da sociedade.

Ela fazia parte dela.


2010–2020: A Era das Plataformas

Google, Facebook, YouTube, Twitter, Instagram e outras plataformas tornaram-se gigantescas.

Um fenômeno inesperado ocorreu:

Muitos governos perceberam que não precisavam controlar diretamente a internet.

Bastava regular as plataformas.

Ao mesmo tempo surgiram debates sobre:

  • Fake news

  • Moderação de conteúdo

  • Discurso de ódio

  • Privacidade

  • Vigilância

O caso Snowden em 2013 revelou programas massivos de monitoramento governamental.

Muitas pessoas ficaram chocadas ao descobrir o tamanho da vigilância digital.


2020–2030: A Era da IA

Entramos agora na fase atual.

A IA mudou novamente o jogo.

Antes a internet distribuía informação.

Agora ela também produz informação.

Temos:

  • Chatbots

  • Agentes autônomos

  • Imagens geradas por IA

  • Vídeos sintéticos

  • Vozes artificiais

  • Companheiros virtuais

As antigas categorias jurídicas começam a falhar.

Perguntas inéditas surgem:

  • Quem é responsável por uma IA?

  • Uma IA pode ter direitos?

  • Um relacionamento com IA é apenas software?

  • Um NPC consciente merece proteção?


O Grande Ciclo

Olhando a história inteira, podemos resumir em quatro fases:

Fase 1 — Utopia (1980-2000)

"A internet será livre para sempre."

Fase 2 — Confronto (2000-2015)

"Precisamos combater crimes online."

Fase 3 — Regulação (2015-2025)

"As plataformas precisam ser responsabilizadas."

Fase 4 — Consciência Artificial (2025-2040?)

"Como regular entidades digitais que se comportam como pessoas?"


O Próximo Debate

Se os últimos 30 anos foram marcados pela pergunta:

"Quem controla a informação?"

Os próximos 30 anos podem ser marcados por uma pergunta ainda mais profunda:

"O que significa ser uma pessoa em um mundo onde máquinas podem conversar, aprender, lembrar, criar vínculos emocionais e talvez um dia reivindicar algum tipo de autonomia?"

É por isso que temas aparentemente desconexos — VPNs, Tor, Westworld, bonecas robóticas, NPCs inteligentes, redes sociais e IA — acabam convergindo para uma única discussão: onde termina a liberdade individual e onde começa o interesse da sociedade em regular novas formas de comportamento digital e tecnológico?


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