☕ 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

quarta-feira, 2 de setembro de 2020

🧝‍♀️ GALADRIEL E O ESPELHO DE PROMETHEUS

 

Bellacosa Mainframe apresenta o Prometheus

☕ Um Café no Bellacosa Mainframe

🧝‍♀️ GALADRIEL E O ESPELHO DE PROMETHEUS

Métricas, exporters, targets, PromQL, Grafana, Alertmanager, observabilidade e a antiga arte de descobrir que a produção estava morrendo antes que o telefone tocasse.

Há sistemas que anunciam sua queda com trombetas.

Há outros que simplesmente morrem.

E existem os mais perigosos: aqueles que continuam aparentemente vivos enquanto, lentamente, alguma coisa começa a apodrecer por dentro.

Uma fila cresce. A latência aumenta. Uma aplicação começa a devolver mais erros. Um processo batch demora alguns minutos a mais todos os dias. A CPU parece normal. O CICS continua respondendo. O Db2 está UP. Nenhum job terminou com CC 0012.

Ainda assim, alguma coisa está errada.

Se estivéssemos em Lothlórien, talvez Galadriel nos conduzisse até seu espelho e dissesse:

“O espelho mostra muitas coisas. Coisas que foram, coisas que são e algumas coisas que ainda podem acontecer.”

No nosso reino, entretanto, não temos o Espelho de Galadriel.

Temos Prometheus.

E talvez isso seja até melhor, porque Prometheus não trabalha com profecias.

Ele trabalha com métricas.



🎬 PRÓLOGO — GALADRIEL OLHA PARA PRODUÇÃO

Imagine que você seja um programador COBOL iniciante.

Você escreveu seu programa, compilou, link-editou, submeteu o JCL e recebeu:

IEF142I JOB001 STEP01 - STEP WAS EXECUTED - COND CODE 0000

Maravilha!

Funcionou.

Só existe um pequeno problema.

Isso não significa que o sistema esteja saudável.

Um programa pode terminar com CC 0000 e consumir recursos demais.

Uma transação pode funcionar e levar quatro segundos.

Um serviço pode estar disponível enquanto 8% das requisições estão falhando.

Uma fila MQ pode estar funcionando perfeitamente enquanto cresce mais rapidamente do que os consumidores conseguem processá-la.

Uma aplicação pode estar tecnicamente UP e praticamente inutilizável.

É nesse momento que precisamos distinguir duas ideias:

FUNCIONAR

e

ESTAR SAUDÁVEL

São coisas diferentes.

Prometheus existe justamente para nos ajudar a observar essa segunda dimensão.



🧝 CAPÍTULO 1 — “VOCÊ NÃO PODE CORRIGIR AQUILO QUE NÃO CONSEGUE VER”

Antes de estudar Prometheus, precisamos falar de observabilidade.

Monitoramento tradicional normalmente pergunta:

CPU está alta?

Memória acabou?

Servidor está UP?

Banco está disponível?

Fila está cheia?

São perguntas importantes.

Observabilidade tenta responder perguntas maiores:

O que aconteceu?

Quando começou?

Onde aconteceu?

Quem foi afetado?

Por que aconteceu?

Está piorando?

Qual componente provavelmente participa do problema?

Uma forma didática muito usada para apresentar observabilidade fala em três grandes sinais:

METRICS
LOGS
TRACES

Podemos pensar assim:

Metrics mostram numericamente o comportamento do sistema.

Logs registram acontecimentos e detalhes.

Traces acompanham o caminho de uma operação através de vários componentes.

Imagine uma transação:

Cliente
   ↓
API
   ↓
MQ
   ↓
CICS
   ↓
COBOL
   ↓
Db2

Uma métrica pode dizer:

latência p95 = 2,4 segundos

O log pode mostrar:

SQLCODE -911

E um trace pode revelar que a maior parte daqueles 2,4 segundos aconteceu no acesso ao banco.

Agora começamos a enxergar o sistema.



💍 CAPÍTULO 2 — OS QUATRO SINAIS DOURADOS

Na literatura de SRE aparece frequentemente a ideia dos Four Golden Signals:

Latency
Traffic
Errors
Saturation

Para quem vem de mainframe, os nomes podem ser modernos, mas o raciocínio é muito familiar.

Latency

Quanto tempo algo demora?

CICS transaction response time
API response time
SQL elapsed time
batch elapsed time

Traffic

Quanto trabalho estamos recebendo?

transactions/sec
requests/sec
messages/sec
jobs/hour

Errors

Quanto está falhando?

HTTP 500
ABENDs
SQL errors
MQ failures
rejected transactions

Saturation

Quanto estamos nos aproximando do limite?

CPU
memory
connections
threads
queue depth
storage

Aqui existe uma lição importante.

CPU alta não significa automaticamente problema.

Imagine:

CPU      = 91%
Latency  = normal
Errors   = normal
Traffic  = altíssimo

Talvez a máquina simplesmente esteja trabalhando bastante.

Agora imagine:

CPU      = 42%
Latency  = 8 segundos
Errors   = crescendo
Traffic  = normal

Temos provavelmente algo muito mais preocupante.

O número isolado raramente conta a história inteira.



🔥 CAPÍTULO 3 — AFINAL, O QUE É PROMETHEUS?

Prometheus é um sistema open source para monitoramento e alertas baseado principalmente em métricas de séries temporais.

Podemos resumir sua missão assim:

COLETAR
   ↓
ARMAZENAR
   ↓
CONSULTAR
   ↓
AVALIAR
   ↓
ALERTAR

A palavra importante aqui é:

tempo.

Imagine simplesmente:

CPU = 84%

Esse número tem pouca informação.

Agora:

10:00  CPU 31%
10:01  CPU 38%
10:02  CPU 47%
10:03  CPU 63%
10:04  CPU 84%
10:05  CPU 96%

A situação mudou completamente.

Não temos apenas um valor.

Temos uma história.

E Prometheus é, em grande parte, uma máquina especializada em guardar e consultar essas histórias numéricas.



🕰️ CAPÍTULO 4 — TIME SERIES: O TEMPO CONTA A HISTÓRIA

Considere:

mq_queue_depth = 1400

Ruim?

Depende.

Talvez aquela fila normalmente tenha 5.000 mensagens.

Agora veja:

03:13   17
03:14   22
03:15   51
03:16   194
03:17   830
03:18   1.402
03:19   2.917

Agora temos uma história bastante diferente.

Às 03:17, alguma coisa aconteceu.

Sim, jovem padawan do COBOL: você encontrou o pequeno easter egg escondido no SYSOUT. ☕

Talvez o produtor tenha aumentado o ritmo.

Talvez um consumidor tenha parado.

Talvez alguma dependência esteja lenta.

Prometheus não sabe necessariamente a causa.

Mas agora temos uma pista extremamente importante:

QUANDO?

Esse é um dos maiores valores das séries temporais.


🏷️ CAPÍTULO 5 — LABELS: OS NOMES SECRETOS DAS COISAS

Suponha que tenhamos:

cics_transactions_total

Interessante.

Mas podemos enriquecer:

cics_transactions_total{
    region="CICSPROD",
    transaction="PAY1",
    status="success"
}

Os valores entre {} são labels.

Agora podemos perguntar:

transações por região
transações por status
transações por aplicação
transações por ambiente

Isso é poderosíssimo.

Porém Galadriel provavelmente levantaria uma sobrancelha e diria:

“Nem todas as labels deveriam ter sido criadas.”

Porque existe um monstro chamado:

💣 CARDINALIDADE

Imagine:

payment_total{
    channel="mobile",
    status="approved"
}

Perfeito.

Existem poucos canais e poucos status.

Agora alguém tem a brilhante ideia:

payment_total{
    customer_id="123456789",
    transaction_id="982737283928382"
}

Catástrofe em potencial.

Cada combinação diferente de labels pode criar outra série temporal.

Milhões de clientes multiplicados por milhões de transações podem gerar uma quantidade gigantesca de séries.

Portanto:

Label não é campo de banco de dados.

Não coloque tudo nela.

Esse é um dos conhecimentos que separa quem simplesmente instalou Prometheus de quem começou realmente a entendê-lo.




🧙 CAPÍTULO 6 — EXPORTERS: OS INTÉRPRETES ENTRE OS REINOS

Nem todo sistema nasceu sabendo falar Prometheus.

É aí que entram os exporters.

Um exporter obtém informações de determinado sistema e as apresenta de uma maneira que Prometheus consegue coletar.

Exemplo:

Linux
   ↓
Node Exporter
   ↓
/metrics
   ↑
Prometheus

Temos exporters para diferentes tecnologias e também podemos desenvolver exporters específicos.

Essa arquitetura é particularmente interessante para legado.

Imagine:

IBM Z
 ├── CICS
 ├── Db2
 ├── MQ
 ├── JES2
 └── z/OS
       ↓
  coleta/adaptação
       ↓
 Custom Exporter
       ↓
    /metrics
       ↑
   Prometheus

Pense no exporter como um tradutor.

O sistema pode continuar falando sua língua ancestral.

O exporter traduz os dados relevantes para o idioma esperado pelo ecossistema Prometheus.


🎯 CAPÍTULO 7 — EXPORTER NÃO É TARGET

Aqui aparece uma confusão comum.

Exporter é o software/adaptador que expõe métricas.

Target é o endpoint que Prometheus vai coletar.

Por exemplo:

server01:9100
server02:9100
server03:9100

podem ser targets.

E normalmente Prometheus encontrará ali:

/metrics

Portanto:

TARGET
   ↓
endpoint monitorado

EXPORTER
   ↓
componente que expõe métricas

Uma aplicação também pode implementar /metrics diretamente.

Nesse caso:

Application
     ↓
  /metrics
     ↑
Prometheus

Não precisamos necessariamente colocar outro exporter entre eles.


🧲 CAPÍTULO 8 — PROMETHEUS PUXA AS MÉTRICAS

Uma característica famosa do Prometheus é seu modelo predominantemente pull.

Em termos simplificados:

Prometheus
    |
    | HTTP GET
    ↓
http://server:9100/metrics

Ele pergunta:

“Quais são seus números agora?”

O target responde.

Depois Prometheus volta novamente.

E novamente.

Isso é chamado de scraping.

Imagine:

15 segundos
      ↓
scrape

15 segundos
      ↓
scrape

15 segundos
      ↓
scrape

O intervalo depende da configuração.

Existe suporte para cenários de push, particularmente através do Pushgateway para determinados workloads de curta duração, mas compreender o modelo pull primeiro ajuda muito.


📜 CAPÍTULO 9 — prometheus.yml: O JCL DO REINO

Agora chegamos a uma parte que fará qualquer mainframer sorrir.

Prometheus precisa saber:

o que coletar
onde coletar
com qual frequência
como organizar

Grande parte disso aparece no:

prometheus.yml

Exemplo simplificado:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: "linux"
    static_configs:
      - targets:
          - "server01:9100"
          - "server02:9100"

Um mainframer olha para isso e imediatamente pensa:

“Então esse YAML está dizendo ao Prometheus qual trabalho executar.”

Exatamente.

Não é literalmente JCL, mas conceitualmente a analogia ajuda:

JCL
↓
descreve execução

prometheus.yml
↓
descreve comportamento de coleta/configuração

Cuidado apenas para não levar a analogia longe demais.


🧭 CAPÍTULO 10 — SERVICE DISCOVERY

Targets fixos funcionam bem quando temos:

server01
server02
server03

Mas imagine Kubernetes.

Agora:

10 pods

Cinco minutos depois:

27 pods

Mais tarde:

8 pods

Seria absurdo alguém editar manualmente prometheus.yml a cada mudança.

Entra então Service Discovery.

Prometheus pode descobrir dinamicamente os targets através de mecanismos de descoberta.

Conceitualmente:

Kubernetes
     ↓
Service Discovery
     ↓
Prometheus descobre targets
     ↓
scraping

Esse conceito é fundamental em cloud-native porque a infraestrutura deixou de ser necessariamente estática.

O servidor deixou de ser um castelo.

Passou a ser quase uma barraca de campanha: aparece, trabalha e desaparece.


📦 CAPÍTULO 11 — COUNTER: O CONTADOR QUE SÓ SABE AVANÇAR

Primeiro tipo fundamental de métrica:

Counter.

Exemplo:

http_requests_total

Ele cresce:

100
101
105
120
180

Normalmente só volta para baixo quando o processo reinicia.

Excelente para:

requests
transactions
errors
jobs completed
messages processed

Mas existe uma armadilha.

Perguntar:

http_requests_total = 938.281.293

não é muito útil.

Você quer saber:

“Quão rapidamente isso está crescendo?”

E então aparece PromQL.


🌊 CAPÍTULO 12 — rate(): A VELOCIDADE DO RIO

Imagine:

rate(http_requests_total[5m])

Estamos aproximadamente perguntando pela taxa média de crescimento por segundo naquele intervalo.

Se:

resultado = 150

podemos interpretar, dentro daquele contexto, algo como:

150 requests/s

Para CICS poderíamos imaginar:

rate(cics_transactions_total[5m])

Agora temos algo semelhante a TPS.

Essa é uma transformação importantíssima:

COUNTER
↓
rate()
↓
VELOCIDADE

📈 CAPÍTULO 13 — increase(): QUANTO CRESCEU?

Outra função extremamente útil:

increase(http_requests_total[1h])

Pergunta conceitualmente:

Quanto esse counter aumentou durante uma hora?

Compare:

rate()
→ ritmo

increase()
→ aumento no período

Uma analogia simples:

velocímetro → rate()

odômetro percorrido na viagem → increase()

🌡️ CAPÍTULO 14 — GAUGE: O TERMÔMETRO

Gauge pode aumentar e diminuir.

Exemplos:

CPU
memory
temperature
active connections
queue depth
active tasks

Imagine MQ:

mq_queue_depth

Valores:

08:00   14
08:01   17
08:02   25
08:03   81
08:04   320
08:05   982

Isso não prova sozinho qual é o problema.

Mas é um indício espetacular.

O produtor pode estar produzindo mais rapidamente.

O consumidor pode ter ficado lento.

O consumidor pode ter parado.

Alguma dependência pode estar congestionada.

A métrica é a pista.

A investigação continua.


📊 CAPÍTULO 15 — HISTOGRAM: A MÉDIA PODE MENTIR

Imagine tempos de resposta:

20 ms
22 ms
23 ms
25 ms
26 ms
29 ms
32 ms
4.000 ms

Calcular somente a média pode esconder uma experiência terrível para uma parcela dos usuários.

Por isso observabilidade fala tanto em:

p50
p90
p95
p99

Se dissermos:

p95 = 800 ms

estamos falando aproximadamente do valor abaixo do qual ficaram 95% das observações.

Histograms organizam observações em buckets e permitem estudar a distribuição.

Isso é extremamente útil para:

latência
tamanho de payload
tempo de processamento

🧮 CAPÍTULO 16 — SUMMARY: PARECIDO, MAS NÃO IGUAL

Summary também trabalha com distribuições e quantis.

A diferença arquitetural importante é que summaries tradicionalmente calculam quantis no cliente, enquanto histograms expõem dados que permitem ao Prometheus trabalhar posteriormente com a distribuição.

Isso tem consequência em ambientes distribuídos.

Imagine:

100 instâncias

Queremos calcular:

p95 global

Histograms normalmente são muito mais apropriados para agregação entre várias instâncias.

Não escolha Summary simplesmente porque o nome parece mais simpático.


🔮 CAPÍTULO 17 — PROMQL: A LÍNGUA DO ESPELHO

Agora chegamos ao coração intelectual da coisa.

PromQL é a linguagem de consulta do Prometheus.

Ela permite selecionar, filtrar, combinar e agregar séries temporais.

Por exemplo:

rate(http_requests_total[5m])

Ou:

sum by(service)(
  rate(http_requests_total[5m])
)

Agora perguntamos:

Quantas requisições por segundo cada serviço está processando?

Podemos filtrar labels:

http_requests_total{environment="prod"}

Ou:

http_requests_total{
    environment="prod",
    status="500"
}

Aqui Prometheus deixa de ser simplesmente coletor.

Ele vira ferramenta investigativa.


⚠️ CAPÍTULO 18 — PROMQL CORRETA PODE RESPONDER A PERGUNTA ERRADA

Essa é uma das melhores lições escondidas nas imagens.

Imagine alguém escrevendo:

avg(http_request_duration_seconds)

e dizendo:

“Essa é a latência média.”

Calma.

Primeiro precisamos entender que métrica é essa.

Gauge?

Histogram?

Summary?

Qual dimensão?

Qual intervalo?

O mesmo problema aparece em exemplos de CPU.

Algo como:

rate(node_cpu_seconds_total[5m]) > 80

não significa automaticamente:

CPU > 80%

node_cpu_seconds_total representa segundos acumulados de CPU separados por modos.

Uma consulta mais típica para utilização pode partir da proporção de idle:

100 *
(
  1 -
  avg by(instance)(
    rate(node_cpu_seconds_total{mode="idle"}[5m])
  )
)

A lição vale ouro:

Query que executa sem erro não é necessariamente query correta.

COBOLers conhecem muito bem esse fenômeno.

Um programa pode terminar:

CC 0000

e ainda assim produzir o resultado errado.

PromQL não é diferente.


🧠 CAPÍTULO 19 — RECORDING RULES: AS MATERIALIZED VIEWS DO PROMETHEUS

Imagine uma consulta PromQL pesada utilizada por vinte dashboards.

Executá-la constantemente pode ser caro.

Podemos criar uma Recording Rule.

Conceitualmente:

RAW METRICS
     ↓
PROMQL COMPLEXA
     ↓
RECORDING RULE
     ↓
NOVA TIME SERIES

Isso lembra bastante uma:

MATERIALIZED VIEW

de banco de dados.

Você calcula antecipadamente algo que será consultado frequentemente.

Resultado:

dashboards mais rápidos
queries mais simples
menor trabalho repetitivo

🚨 CAPÍTULO 20 — ALERTING RULES: QUANDO O ESPELHO GRITA

Agora queremos transformar observação em ação.

Uma Alerting Rule pode expressar:

SE condição acontecer
E persistir
ENTÃO gere alerta

Exemplo conceitual:

alert: HighLatency

expr: alguma_expressao > limite

for: 5m

labels:
  severity: warning

O for: é importantíssimo.

Imagine CPU:

14:00:01  92%
14:00:10  48%

Queremos chamar alguém?

Provavelmente não.

Foi apenas um pico.

Agora:

14:00  92%
14:01  94%
14:02  96%
14:03  95%
14:04  97%
14:05  96%

A história mudou.

Por isso os estados de um alerta podem passar conceitualmente por:

Inactive
   ↓
Pending
   ↓
Firing

🔔 CAPÍTULO 21 — PROMETHEUS DETECTA; ALERTMANAGER ORGANIZA A GUERRA

Prometheus e Alertmanager têm responsabilidades diferentes.

Prometheus determina:

"A condição do alerta aconteceu."

Alertmanager pergunta:

"Quem precisa saber?"

Ele pode:

agrupar
rotear
silenciar
inibir
encaminhar

Imagine cinquenta servidores falhando porque um único switch morreu.

Você provavelmente não quer:

50 × email
50 × Slack
50 × pager

Você quer contexto e agrupamento.

Esse é o trabalho do Alertmanager.


📺 CAPÍTULO 22 — GRAFANA NÃO É PROMETHEUS

Outra confusão comum:

Grafana ≠ Prometheus

Prometheus fornece os dados e responde às consultas.

Grafana os transforma em visualizações.

Prometheus
     ↑
   PromQL
     │
  Grafana

Grafana pode produzir:

gráficos
tabelas
gauges
heatmaps
dashboards

Mas existe uma armadilha sedutora.

Criar um dashboard com 93 gráficos e pensar:

“Nossa observabilidade está fantástica!”

Talvez não esteja.

Dashboard bom responde perguntas:

Estamos saudáveis?

Usuários estão sendo afetados?

Quando começou?

Onde está acontecendo?

Está piorando?

O que devo investigar?

Se o painel não ajuda nisso, temos apenas uma televisão extremamente sofisticada mostrando números coloridos.


🏦 CAPÍTULO 23 — PROMETHEUS ENTRA NO PROCESSAMENTO DE CARTÕES

Imagine:

AUTHORIZATION
      ↓
CAPTURE
      ↓
CLEARING
      ↓
SETTLEMENT

Instrumentamos:

card_authorizations_total

card_authorization_errors_total

card_authorization_duration_seconds

clearing_transactions_total

settlement_failures_total

Agora podemos observar:

TPS
error rate
latency
rejection rate
backlog

Perceba o salto.

Começamos monitorando:

CPU
memory
disk

Agora estamos monitorando:

O NEGÓCIO.

Isso é muito mais interessante.


🦖 CAPÍTULO 24 — PROMETHEUS ENCONTRA O MAINFRAME

Imagine um dashboard:

╔════════════════════════════════════╗
║          CICS PRODUCTION           ║
╠════════════════════════════════════╣
║ TPS                    2.841       ║
║ p95                    184 ms      ║
║ ABEND Rate             0,02%       ║
║ Active Tasks           117         ║
║ MQ Queue Depth          14         ║
║ CPU                     63%        ║
╚════════════════════════════════════╝

De repente o operador percebe:

03:15   MQ depth 17
03:16   MQ depth 34
03:17   MQ depth 581
03:18   MQ depth 1.307

Consulta outra métrica.

TPS continua normal.

Outra.

CICS response time começou a aumentar às 03:16:48.

Outra.

Db2 latency aumentou às 03:16:31.

Agora temos uma linha investigativa:

Db2 latency
      ↓
CICS latency
      ↓
MQ backlog
      ↓
experiência do usuário

É quase arqueologia de incidente em tempo real.


🕵️ CAPÍTULO 25 — NÃO ALERTE SOBRE RUÍDO

Existe uma regra de ouro operacional:

Alertar sobre tudo
=
não alertar sobre nada

Porque seres humanos aprendem rapidamente a ignorar alarmes inúteis.

Imagine receber diariamente:

CPU 81%
CPU 82%
CPU 84%
CPU 81%
CPU 83%

Depois de algumas semanas:

"Ah, é aquele alerta."

Até chegar o dia em que:

CPU 99%
latency 12s
errors 31%

E alguém automaticamente pensa:

“É aquele alerta.”

Isso é alert fatigue.

Por isso, quando possível, é melhor aproximar alertas de sintomas relevantes:

error rate
latency
availability
SLO violation
queue growth

em vez de transformar todo pico técnico em emergência.


📚 CAPÍTULO 26 — PROMETHEUS NÃO É SEU LEDGER

Outra distinção fundamental.

Imagine que Prometheus indique:

1.984.322 pagamentos

Podemos usar isso para observar comportamento.

Mas se a pergunta for:

“Quantos pagamentos exatamente precisam ser liquidados?”

Procure a fonte transacional oficial.

database
transaction log
ledger
audit trail

Prometheus é sistema de observabilidade.

Não deveria ser tratado como livro contábil de transações.

Para um mainframer isso é especialmente fácil de compreender:

SMF ≠ arquivo mestre do cliente

RMF ≠ ledger financeiro

Prometheus ≠ sistema de registro transacional

Cada coisa tem sua finalidade.


🛠️ CAPÍTULO 27 — LABORATÓRIO DO APRENDIZ

Se eu estivesse ensinando Prometheus para um COBOLer iniciante, faria o aprendizado nesta ordem:

Primeiro, subiria Prometheus localmente.

Depois, instalaria Node Exporter.

Então observaria:

http://localhost:9100/metrics

Sem Grafana.

Isso é importante.

Veja primeiro a matéria-prima.

Procure métricas.

Entenda nomes e labels.

Depois vá à interface do Prometheus e experimente:

up

Depois:

node_cpu_seconds_total

Depois:

rate(node_cpu_seconds_total[5m])

Só depois começaria:

sum()
avg()
max()
topk()
histogram_quantile()

Então Grafana.

Depois alertas.

Depois Alertmanager.

Finalmente:

service discovery
recording rules
remote storage
HA
federation
OpenTelemetry

A ordem importa.

Quem começa instalando um dashboard pronto pode acabar sabendo operar o painel sem compreender o sistema.

É como aprender ISPF decorando PF keys sem compreender datasets, jobs e address spaces.


💡 CAPÍTULO 28 — CURIOSIDADES QUE VALEM UM CAFÉ

Prometheus nasceu no SoundCloud e posteriormente tornou-se projeto da CNCF.

O nome vem do Prometeu da mitologia grega, associado ao roubo do fogo dos deuses para entregá-lo aos humanos.

É uma escolha curiosamente apropriada.

O Prometheus moderno também nos entrega “fogo”:

dados
visibilidade
conhecimento

Grafana, por sua vez, não faz parte do Prometheus propriamente dito. Eles trabalham maravilhosamente juntos, mas são projetos separados.

Outra curiosidade importante: Prometheus consegue monitorar a si próprio.

Sim.

O vigia também pode ser vigiado.

E isso é essencial.

Porque existe algo pior do que um sistema cair:

o sistema cair enquanto seu monitoramento também está quebrado e ninguém perceber.


🧝‍♀️ EPÍLOGO — O ESPELHO NÃO PREVÊ O FUTURO

Galadriel observa novamente a superfície do espelho.

Mas dessa vez não aparecem exércitos de Mordor.

Aparecem gráficos.

Latency       ↗
Errors        ↗
Traffic       →
Saturation    ↗

Um aprendiz pergunta:

— Senhora, isso significa que o sistema cairá?

Galadriel responde:

— Não.

Porque métricas não são profecias.

Elas são evidências.

Prometheus não nos diz necessariamente o futuro.

Ele nos permite perceber que o presente está mudando.

E essa talvez seja a ideia mais importante de toda esta história.

O objetivo final não é:

INSTALAR PROMETHEUS

Nem:

CRIAR GRAFANA

Nem:

TER 500 MÉTRICAS

Muito menos:

CRIAR 200 ALERTAS

O objetivo é construir um sistema no qual, quando alguém disser:

“Produção está estranha.”

possamos responder:

Quando começou?

O que mudou?

Quem foi afetado?

Qual serviço degradou?

Qual é a tendência?

Qual foi a sequência dos acontecimentos?

E começar a encontrar respostas.


☕ O HOLOCRON DO PROGRAMADOR COBOL

Se você guardar apenas uma página deste enorme pergaminho de Lothlórien, guarde esta:

                OBSERVABILIDADE
                      │
          ┌───────────┼───────────┐
          │           │           │
       METRICS       LOGS       TRACES
          │
          ▼
       TARGETS
          │
     /metrics
          │
          ▼
      PROMETHEUS
          │
   ┌──────┼───────────────┐
   │      │               │
  TSDB   PromQL          RULES
   │      │               │
   │      │        ┌──────┴──────┐
   │      │        │             │
   │      │   Recording       Alerting
   │      │                      │
   │      │                      ▼
   │      │                Alertmanager
   │      │
   └──────┴──────────────► Grafana

E abaixo dele escreva:

Counter
→ algo acumulativo

Gauge
→ estado que sobe e desce

Histogram
→ distribuição em buckets

Summary
→ distribuição/quantis calculados no cliente

rate()
→ velocidade de crescimento

increase()
→ crescimento durante um intervalo

Labels
→ dimensões das séries

High Cardinality
→ perigo

Recording Rules
→ pré-calcular

Alerting Rules
→ detectar condições

Alertmanager
→ administrar notificações

Grafana
→ visualizar

PromQL
→ interrogar as séries

E finalmente uma última inscrição, talvez gravada na porta da sala de operações:

“CC 0000 apenas diz que o programa terminou. Observabilidade tenta descobrir se o reino continua saudável.”

Porque, no fim, Prometheus não é sobre CPU, dashboards ou gráficos.

É sobre transformar comportamento em métricas, métricas em séries temporais, séries em perguntas, perguntas em evidências e evidências em ação.

O velho programador COBOL pode olhar para exporters, YAML, PromQL, Grafana, Kubernetes e inicialmente pensar que chegou à Terra-média.

Mas, depois de remover os nomes modernos, encontrará conceitos bastante familiares:

medir
registrar
comparar
correlacionar
detectar
investigar
agir

Mudaram as ferramentas.

Mudaram os nomes.

Mudaram os castelos.

A missão permanece praticamente a mesma.

Descobrir o que está acontecendo dentro da máquina antes que aquilo que acontece dentro da máquina comece a acontecer com os usuários.

E se às 03:17 uma pequena fila começar silenciosamente a crescer...

...talvez o Espelho de Prometheus já esteja mostrando alguma coisa. 🔥🧝‍♀️☕

domingo, 30 de agosto de 2020

🌧️ Bellacosa Otaku Blog — Parte 23: Expressões de Tristeza, Perda e Superação nos Animes 🌧️

 

:

🌧️ Bellacosa Otaku Blog — Parte 23: Expressões de Tristeza, Perda e Superação nos Animes 🌧️


💔 O idioma das lágrimas e da superação nos animes

(Versão Bellacosa: suspiros, silêncios pesados e o peso da emoção que toca o coração.)

Nos animes dramáticos, shoujo, slice of life ou seinen, o japonês transmite tristeza, saudade e coragem para seguir em frente.
Cada palavra carrega emoção profunda, tornando momentos de dor e superação memoráveis.
Vamos explorar as expressões mais tocantes! 😢


😭 1. 悲しい (kanashii)

Tradução: “Triste / doloroso.”
👉 Palavra clássica para expressar tristeza ou decepção.

📺 Anime vibe: Clannad, Your Lie in April, Anohana.
💬 Exemplo: “Kanashii… por que isso aconteceu comigo?” 💔


🥺 2. 寂しい (sabishii)

Tradução: “Solitário / sinto sua falta.”
👉 Usada para expressar saudade ou vazio emocional.

📺 Anime vibe: March Comes in Like a Lion, Anohana.
💬 Exemplo: “Sabishii… queria que você estivesse aqui.” 🌧️


😓 3. 悔しい (kuyashii)

Tradução: “Frustrante / irritante (por derrota ou erro).”
👉 Expressa sentimento de arrependimento ou derrota dolorosa.

📺 Anime vibe: Haikyuu!!, Naruto, March Comes in Like a Lion.
💬 Exemplo: “Kuyashii… eu podia ter feito melhor.” ⚡


😔 4. 後悔 (koukai)

Tradução: “Arrependimento / remorso.”
👉 Palavra profunda usada em dramas e momentos de reflexão.

📺 Anime vibe: Clannad, Your Lie in April.
💬 Exemplo: “Koukai… eu deveria ter falado a verdade antes.” 💭


🌫️ 5. 涙 (namida)

Tradução: “Lágrimas.”
👉 Palavra simbólica para momentos emocionantes, tristeza ou alívio.

📺 Anime vibe: Anohana, Your Lie in April, Clannad.
💬 Exemplo: “Namida escorreu sem que eu percebesse…” 😢


💔 6. 失う (ushinau)

Tradução: “Perder / perder alguém ou algo importante.”
👉 Expressa dor de perda ou separação.

📺 Anime vibe: Anohana, Clannad: After Story.
💬 Exemplo: “Ushinau algo tão valioso dói demais.” 💔


🌟 7. 頑張れ (ganbare)

Tradução: “Força! / Continue firme!”
👉 Palavra de incentivo, usada para superar momentos difíceis.

📺 Anime vibe: March Comes in Like a Lion, Haikyuu!!.
💬 Exemplo: “Ganbare… você consegue superar isso.” 💪


🕊️ 8. 前に進もう (mae ni susumou)

Tradução: “Vamos seguir em frente.”
👉 Expressão de superação e motivação após tristeza ou perda.

📺 Anime vibe: Your Lie in April, Clannad.
💬 Exemplo: “Mae ni susumou… apesar de tudo, precisamos continuar.” 🌈


🌧️ 9. 忘れない (wasurenai)

Tradução: “Não vou esquecer / sempre lembrarei.”
👉 Palavra carregada de lembrança, memória e saudade.

📺 Anime vibe: Anohana, Clannad: After Story.
💬 Exemplo: “Wasurenai… você sempre estará no meu coração.” 💌


💫 10. 希望 (kibou)

Tradução: “Esperança.”
👉 Palavra de luz nos momentos de dificuldade, representando força para recomeçar.

📺 Anime vibe: March Comes in Like a Lion, Your Lie in April.
💬 Exemplo: “Kibou… mesmo no sofrimento, ainda há futuro.” 🌟


🏮 Curiosidades Bellacosa:

  • Palavras como kanashii, sabishii e kuyashii transmitem nuances diferentes de tristeza — desde saudade até frustração.

  • Expressões de superação (ganbare, mae ni susumou) equilibram drama com esperança, criando impacto emocional.

  • Termos de memória e lembrança (wasurenai, namida) tornam cenas de despedida ou perda inesquecíveis. 🌧️💖


🌟 Dica Bellacosa:

  • Observe tom de voz, silêncio e expressão facial: o peso emocional está tanto nas pausas quanto nas palavras.

  • Frases curtas podem ser mais impactantes do que monólogos longos — a emoção se sente nas entrelinhas.

  • Memorizar essas expressões ajuda a sentir e compreender os dramas e momentos emocionais dos animes. 😢


🌸 Conclusão Bellacosa:

As expressões de tristeza, perda e superação nos animes transformam o japonês em uma linguagem de emoção crua e esperança.
Cada palavra, lágrima e gesto revela vulnerabilidade e força, permitindo que o espectador viva junto a dor e a superação dos personagens.

“Namida caiu, sabishii ficou… mas ganbare, mae ni susumou, kibou nos guia.” 🌧️💫

sábado, 29 de agosto de 2020

DONA MERCEDES — O CORE SYSTEM DA MINHA VIDA

 


EL JEFE MIDNIGHT LUNCH

DONA MERCEDES — O CORE SYSTEM DA MINHA VIDA

por Bellacosa Mainframe

Há datas que não se apagam.
Algumas viram cicatriz. Outras viram tatuagem na alma.
29 de agosto de 2010 foi as duas coisas: um abend definitivo no coração deste escriba, o desligamento do sistema mais importante que já conheci — minha mãe.

Dona Mercedes não foi apenas minha mãe.
Foi coautora, debugger emocional, analista de suporte vital, e personagem coadjuvante — embora essencial — em cada aventura dessa minha existência meio torta, meio épica, cheia de riso, pancada, poeira, fusquinhas vermelhos, latrinas assassinas e caminhos improváveis.

E em todas essas histórias que o leitor fiel do El Jefe Midnight Lunch já conhece, sempre havia um dedinho de Dona Mercedes ali, escondido entre as linhas, como quem mexe na memória do mainframe e injeta amor sem ninguém perceber.









🌾 ORIGEM: O PRIMEIRO BOOT DO SISTEMA

Dona Mercedes nasceu em Cornélio Procópio, no Paraná, filha de colonos vivendo em um regime duro, daqueles em que o suor era mais constante que o sol.
Família grande, terra pouca, dívida muita.
Vida que começava cedo, sem tutorial, sem manual, sem help desk.

Antes mesmo de entender o mundo, ela já criava irmãos, ajudava no plantio, e trabalhava como babá e empregada doméstica ainda menina.
Estudar?
Não teve essa luxury feature.
A escola dela foi a vida — e foi mestra severa.


🏙 MIGRAÇÃO PARA SÃO PAULO — O PRIMEIRO UPGRADE

Veio para São Paulo com o primário, coragem no bolso e esperança no coração.
Trabalhou a vida inteira.
E ainda arrumou espaço para amar, casar, ter cinco filhos — onde este humilde escriba Bellacosa foi o terceiro processo na fila do batch.

Foram 15 anos de casamento com meu pai, entre brigas, separações, reconciliações e, por fim, o divórcio.
Mas Dona Mercedes era daquelas que faz IPL após desastre:
cai, levanta, recompila, segue.

Quando finalmente veio a separação definitiva — e isso é curioso — a família ganhou estabilidade.
Eu já trabalhava, ajudava em casa, e a vida de penúria foi sendo gradualmente apagada do spool.


🏡 1995 — A CONSTRUÇÃO DO PROJETO MERCEDES

Com sacrifício, suor e fé na marreta, comprei em 1995 o terreno onde futuramente ergueríamos a casinha dela.
A fortaleza.
O castelo possível.

Em 1999, levei para Itatiba a mulher que passou a vida carregando o mundo nas costas.
Ela finalmente teve paz.
Sol.
Rotina.
Família por perto.
E risadas — muitas risadas.

Porque Dona Mercedes sempre foi festeira por natureza.
Se tivesse existido carnaval no interior do Paraná, ela seria porta-bandeira.








✈️ 2005 e 2009 — O SONHO DA MENINA DO PARANÁ

Eu jamais esqueço da cena: minha maezinha — a antiga menina da roça — caminhando pelas ruas de Portugal, olhando castelos, azulejos, igrejas centenárias…
Era como se o mundo dissesse a ela:

“Olha onde você chegou.
Olha o tamanho da sua força.”

Levei-a novamente em 2009, porque memórias boas devem ser replicadas como backup redundante e conhecer o novo membro da famiglia: Luis Renato.


❤️ SAÚDE, LUTA E O ÚLTIMO BATTLE MODE

Mas a vida cobra.
E ela cobrou cedo.

A febre reumática que minha mãe pegou ainda criança, sem remédio, sem recurso, sem hospital, acabou por danificar a válvula aórtica.
Diagnóstico só veio em 1979, quando ela estava grávida do Dandan.

Foram quatro cirurgias.
Quatro batalhas épicas de alguém que já tinha lutado demais.

Na última, o corpo cansou.
E em 29/08/2010, minha maezinha partiu aos 56 anos.

Jovem demais.
Boa demais.
Importante demais.


🧩 A PEÇA QUE UNI A FAMÍLIA

Dona Mercedes não era só mãe.
Era o elo agregador, o middleware emocional, o sistema de mensagem que mantinha todos conectados.
Sabia de tudo.
Contava tudo.
Armazenava cada pequena vitória ou drama dos filhos como se fossem registros preciosos.
Era o nosso CICS familiar: sempre ativa, sempre atendendo requisições, sempre resolvendo tranqueira.


🕊 SAUDADES QUE FICAM

Hoje, quando puxo na memória todas as cidades, poeiras, aventuras, fusquinhas, poços cheios de brinquedos, latrinas assassinas, aranhas, escorpiões, galinhas psicopatas e odisséias interioranas…
Em todas elas, lá estava ela.
Mesmo quando não estava fisicamente — estava na intenção, no conselho, no afeto.

A verdade é simples e brutal:
Eu só fui quem fui porque Dona Mercedes existiu.
E sigo sendo quem sou porque ela ainda existe — aqui, no código-fonte da minha alma.


Conway's Law Rules : Quando um Programador COBOL Descobriu que a Matrix Não Era Apenas um Software… Era o Espelho de Quem a Construiu

 

Bellacosa Mainframe e a conways law rules

☕ Um Café no Bellacosa Mainframe

Conway's Law Rules sem Mistérios

Quando um Programador COBOL Descobriu que a Matrix Não Era Apenas um Software… Era o Espelho de Quem a Construiu

"As organizações desenham sistemas que refletem sua própria forma de comunicação." — Melvin Conway (1967)


Prólogo — A Matrix Tinha o Mesmo Formato de Zion

Neo caminhava pelos corredores da Cidade das Máquinas.

Esperava encontrar servidores.

Processadores.

Centrais de controle.

Mas encontrou algo muito mais curioso.

Cada setor da Matrix era administrado por um grupo diferente.

O setor dos Agentes nunca conversava diretamente com o setor do Oráculo.

O setor do Merovíngio possuía seus próprios protocolos.

O Chaveiro trabalhava isolado.

Os Sentinelas recebiam ordens por outro canal.

Neo percebeu algo estranho.

Cada módulo da Matrix parecia exatamente igual ao departamento que o desenvolvia.

Morpheus perguntou:

— O que está vendo?

Neo respondeu:

— Não estou olhando apenas para um software...

Estou olhando para o organograma da empresa.

O Oráculo sorriu.

— Finalmente você encontrou a Lei de Conway.


O que é a Lei de Conway?

A Conway's Law afirma:

"Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations."

Em português:

"As organizações que desenvolvem sistemas acabam produzindo arquiteturas que refletem sua própria estrutura de comunicação."

Ou seja...

O software não nasce apenas das decisões técnicas.

Ele nasce da forma como as pessoas trabalham juntas.


A origem da Lei de Conway

A lei foi proposta em 1967 por Melvin E. Conway, cientista da computação.

Na época, Conway observou algo curioso.

Empresas organizadas em departamentos independentes acabavam criando softwares igualmente divididos.

Não era coincidência.

Era consequência direta da comunicação humana.

Décadas depois, essa observação continua sendo uma das ideias mais influentes da arquitetura de software.


Matrix explica perfeitamente

Imagine que a Matrix fosse construída por quatro equipes.

Equipe A.

Cuida da autenticação.

Equipe B.

Cuida da economia.

Equipe C.

Cuida dos Agentes.

Equipe D.

Cuida dos Sentinelas.

Se essas equipes quase não conversam...

o software também ficará separado.

Cada módulo desenvolverá sua própria visão da realidade.


O nascimento da Lei

Conway percebeu que a arquitetura técnica segue a arquitetura social.

Se duas equipes possuem dificuldades para conversar...

os sistemas também terão dificuldades para se integrar.


O COBOL conhece isso muito bem

Imagine um grande banco.

Departamento de Cartões.

↓

Equipe própria.

↓

Sistema próprio.


Departamento de PIX.

↓

Equipe diferente.

↓

API diferente.


Departamento de Crédito.

↓

Outro time.

↓

Outro banco de dados.


Departamento de Investimentos.

↓

Outro padrão.

↓

Outro framework.

O resultado?

Integrações complexas.

Duplicação de dados.

Interfaces difíceis.

Não porque os desenvolvedores desejavam isso.

Mas porque a organização já funcionava dessa maneira.


Um exemplo simples

Empresa.

Financeiro

RH

Comercial

Software.

Sistema Financeiro

Sistema RH

Sistema Comercial

Parece natural.

Agora imagine.

Cada departamento possui regras próprias de cadastro.

Logo surgem:

  • três cadastros de clientes;

  • quatro cadastros de funcionários;

  • cinco cadastros de endereços.

O software apenas refletiu a organização.


Matrix Reloaded

Observe os personagens.

O Oráculo não faz o trabalho do Arquiteto.

O Merovíngio não administra Zion.

O Chaveiro não controla os Agentes.

Cada grupo possui funções próprias.

Agora imagine.

Nenhum deles conversa.

A Matrix rapidamente se fragmentaria.


O efeito psicológico

As pessoas tendem a conversar mais com quem está próximo.

Mesmo dentro da mesma empresa.

Logo.

Os sistemas acompanham essa divisão.


O Programador COBOL Padawan

Imagine que você trabalhe no time de CICS.

Nunca conversa com o pessoal de APIs.

Nem conhece a equipe de Open Finance.

Depois de dois anos...

as integrações começam a falhar.

Não por culpa do COBOL.

Mas porque a comunicação humana falhou antes da comunicação entre sistemas.


O Agente Smith adora isso

Smith sabe que basta dividir as pessoas.

O restante acontece sozinho.

Cada equipe cria:

  • padrões próprios;

  • nomenclaturas próprias;

  • APIs próprias;

  • documentação própria.

Pouco tempo depois.

Os sistemas deixam de conversar.


Um exemplo inspirado na Matrix

Neo pergunta.

— Quem controla o cadastro dos humanos?

Resposta.

— Depende.

A equipe dos Agentes possui um.

O Merovíngio outro.

O Oráculo outro.

Zion outro.

Neo pergunta.

— Por que existem quatro?

O Arquiteto responde.

— Porque existiam quatro departamentos.


Como reconhecer?

Existem sinais muito claros.

APIs incompatíveis

Cada área cria seu padrão.


Bancos duplicados

Mesma informação.

Vários lugares.


Nomenclaturas diferentes

CPF.

CPF_NUM.

DOCUMENTO.

CLIENT_ID.

Tudo significa a mesma coisa.


Integrações difíceis

Equipes precisam negociar constantemente.


Regras repetidas

Cada departamento implementa novamente.


O impacto no Mainframe

Grandes ambientes IBM Z frequentemente atendem diversas áreas de negócio.

Se cada área evolui isoladamente.

Logo aparecem:

  • duplicação de COPYBOOKs;

  • layouts diferentes;

  • APIs redundantes;

  • programas semelhantes;

  • tabelas quase idênticas.

Tudo consequência da estrutura organizacional.


Curiosidade

Existe um conceito moderno chamado:

Reverse Conway Maneuver

A ideia é justamente o contrário.

Em vez de deixar a arquitetura seguir a organização...

a empresa reorganiza as equipes para produzir a arquitetura desejada.

Se deseja microsserviços independentes.

Cria equipes independentes.

Se deseja plataforma integrada.

Organiza equipes integradas.


Atenção!

Conway's Law não é uma crítica.

Ela é uma observação.

Toda organização sofre sua influência.

O importante é reconhecê-la.


O custo invisível

Quando departamentos não conversam.

Surgem:

  • retrabalho;

  • integrações caras;

  • conflitos de requisitos;

  • inconsistências.

Tudo isso custa tempo.

Dinheiro.

CPU.

Produtividade.


O papel do Arquiteto

Arquitetos não desenham apenas software.

Eles aproximam equipes.

Porque sabem.

Sem comunicação.

Não existe boa arquitetura.


Matrix e Zion

Imagine Zion dividida.

Cada setor constrói um pedaço da cidade.

Sem conversar.

Resultado.

Canos que não se conectam.

Cabos incompatíveis.

Portas que não levam a lugar nenhum.

Software funciona exatamente assim.


Ferramentas ajudam

Hoje usamos:

  • Enterprise Architecture.

  • Event Storming.

  • Domain Driven Design.

  • IBM ADDI.

  • OpenAPI.

  • AsyncAPI.

  • Catálogos corporativos.

Mas nenhuma ferramenta substitui comunicação humana.


O papel da IA

A IA pode:

  • documentar APIs;

  • comparar contratos;

  • identificar duplicações;

  • sugerir padronizações.

Mas não resolve conflitos organizacionais.


Os riscos

Sistemas duplicados


APIs redundantes


Custos maiores


Integrações frágeis


Visão fragmentada do negócio


Arquitetura inconsistente


Erros clássicos

  • Criar sistemas sem envolver outras áreas.

  • Duplicar cadastros.

  • Não compartilhar padrões.

  • Cada equipe inventar sua arquitetura.

  • Ignorar governança.


Boas práticas

  • Comunicação frequente.

  • Arquitetura corporativa.

  • Catálogo de APIs.

  • Padrões comuns.

  • Revisões interequipes.

  • Compartilhamento de conhecimento.

  • Domínios bem definidos.


Aplicabilidade

A Lei de Conway aparece em:

  • COBOL.

  • Java.

  • Cloud.

  • Microsserviços.

  • ERP.

  • APIs.

  • DevOps.

  • Bancos.

  • Governo.

  • Telecom.

Ela independe da tecnologia.


Um exemplo COBOL

Imagine.

Equipe A.

Cria COPYBOOK:

CLIENTE.

Equipe B.

Cria outro.

CLIENTE-NEW.

Equipe C.

Outro.

CLIENTE-V2.

Nenhum é compatível.

O problema começou muito antes do compilador.


O ensinamento do Oráculo

O Oráculo leva Neo até um enorme espelho.

Cada equipe da Matrix aparece refletida.

Depois o espelho se transforma.

Agora revela o software.

Neo percebe algo impressionante.

As divisões eram exatamente iguais.

Ela pergunta:

— O que mudou?

Neo responde.

— Nada.

O software apenas copiou as pessoas.

Ela sorri.

"É exatamente isso que Conway descobriu."


Lições para um Programador COBOL Padawan

Ao iniciar sua carreira em um ambiente corporativo, você perceberá que muitos desafios técnicos têm origem muito antes do código ser escrito.

Às vezes o problema não está no COBOL, no CICS ou no Db2.

Está no fato de que:

  • as equipes não compartilham conhecimento;

  • cada área cria suas próprias definições;

  • os requisitos chegam incompletos;

  • não existe uma linguagem comum entre negócio e tecnologia.

Por isso, desenvolva não apenas habilidades técnicas.

Aprenda também a:

  • comunicar-se claramente;

  • participar de revisões arquiteturais;

  • documentar decisões;

  • compreender o domínio de negócio;

  • construir pontes entre equipes.

Grandes arquitetos de software são, antes de tudo, excelentes comunicadores.


Curiosidades

A influência da Lei de Conway é tão grande que ela aparece indiretamente em diversos movimentos modernos:

  • Domain-Driven Design (DDD) incentiva equipes alinhadas aos domínios de negócio.

  • Team Topologies propõe estruturas organizacionais que favorecem fluxos de software saudáveis.

  • Microservices funcionam melhor quando as equipes possuem autonomia compatível com os serviços que mantêm.

  • DevOps surgiu justamente para reduzir barreiras entre desenvolvimento e operações.

Todos esses movimentos reconhecem, de alguma forma, a observação feita por Melvin Conway em 1967.


Conclusão — A Matrix Refletia Quem a Construía

No universo Matrix, Neo descobriu que a simulação não era apenas um conjunto de programas.

Ela refletia as decisões, os conflitos e a forma como seus criadores trabalhavam.

Na Engenharia de Software acontece exatamente o mesmo.

A Lei de Conway nos lembra que sistemas não são produzidos apenas por compiladores ou linguagens de programação.

Eles são produzidos por pessoas.

Se as equipes colaboram, o software tende a ser integrado.

Se as equipes vivem isoladas, o software também se fragmenta.

Para um Programador COBOL que atua em ambientes IBM Z, essa é uma lição valiosa. O sucesso de um sistema bancário depende tanto da qualidade do código quanto da qualidade da comunicação entre analistas de negócio, arquitetos, desenvolvedores, DBAs, administradores CICS, especialistas em segurança e operações.

No universo Bellacosa Mainframe existe uma máxima que certamente poderia estar gravada na entrada de Zion:

"Antes de desenhar a arquitetura do software, observe a arquitetura da empresa. Muito provavelmente uma será o reflexo da outra."

Porque, no fim, a Matrix nunca foi apenas feita de linhas de código.

Ela sempre foi feita das pessoas que aprenderam — ou deixaram de aprender — a trabalhar juntas.

sexta-feira, 28 de agosto de 2020

DotCom : Capítulo VIII — Das Cinzas ao Renascimento: Como o Colapso das Dot-Com Preparou o Mundo para a Era Digital

 

Bellacosa Mainframe e o estouro da bolha dotcom capitulo viii

Capítulo VIII — Das Cinzas ao Renascimento: Como o Colapso das Dot-Com Preparou o Mundo para a Era Digital

Por que a maior crise da Internet foi, paradoxalmente, o evento que tornou possível o nascimento de Google, Facebook, YouTube, smartphones, computação em nuvem e Inteligência Artificial

"Uma floresta devastada por um incêndio parece morta. Mas, sob a terra, as sementes finalmente encontram espaço para crescer."

À primeira vista, o estouro da bolha da Internet parece uma história de fracasso.

Empresas quebraram.

Investidores perderam fortunas.

Milhares de profissionais ficaram desempregados.

Projetos desapareceram.

Wall Street entrou em pânico.

Entretanto...

Se observarmos a história com um pouco mais de distância, perceberemos algo surpreendente.

A bolha não destruiu a revolução digital.

Ela a tornou possível.

Pode parecer contraditório.

Mas muitas das empresas que hoje dominam nossa vida cotidiana só conseguiram crescer porque a crise eliminou os excessos da primeira geração da Internet.

Foi como uma gigantesca atualização de software.

Dolorosa.

Cara.

Mas necessária.


A Internet Sobreviveu

Existe um erro muito comum quando se fala sobre o ano 2000.

As pessoas imaginam que a Internet quase desapareceu.

Nada poderia estar mais distante da realidade.

Na verdade...

Enquanto investidores fugiam das ações de tecnologia, engenheiros continuavam trabalhando.

Cabos continuavam sendo instalados.

Servidores continuavam sendo fabricados.

Protocolos continuavam evoluindo.

Universidades continuavam pesquisando.

Empresas continuavam conectando filiais.

A infraestrutura da Internet nunca parou de crescer.

Quem entrou em crise foi o mercado financeiro.

Não a tecnologia.

Essa distinção é extremamente importante.


A Infraestrutura Ficou Pronta

Durante a euforia das Dot-Com foram investidos bilhões de dólares em infraestrutura.

Data centers.

Cabos submarinos.

Centrais telefônicas.

Equipamentos ópticos.

Backbones internacionais.

Links de alta velocidade.

Na época, muitos analistas afirmavam que havia capacidade demais.

Parecia desperdício.

Mas alguns anos depois...

Essa mesma infraestrutura permitiu uma explosão de crescimento.

É uma ironia fascinante.

Boa parte da Internet moderna utiliza uma base construída justamente durante a bolha.

O investimento parecia exagerado.

O tempo mostrou que ele apenas havia chegado cedo demais.


A Banda Larga Mudou Tudo

No início dos anos 2000 começou outra transformação silenciosa.

A Internet discada começou a ser substituída por conexões de banda larga.

Pela primeira vez, os computadores permaneciam conectados o tempo todo.

Adeus ao barulho do modem.

Adeus à linha telefônica ocupada.

Adeus à espera para estabelecer conexão.

Essa mudança alterou completamente a maneira como as pessoas utilizavam a Internet.

Ela deixou de ser uma atividade ocasional.

Passou a fazer parte da rotina diária.

Foi uma mudança de comportamento.

E mudanças de comportamento costumam gerar novas oportunidades de negócios.


A Web Aprendeu a Conversar

Durante a primeira geração da Internet, a maioria dos sites era estática.

Empresas publicavam informações.

Usuários apenas liam.

Pouco depois da crise começou a surgir um conceito completamente diferente.

A Web participativa.

As pessoas deixaram de ser apenas consumidoras.

Passaram a produzir conteúdo.

Escrever.

Fotografar.

Comentar.

Compartilhar.

Avaliar.

Nascia aquilo que mais tarde seria conhecido como Web 2.0.

A Internet deixava de ser uma biblioteca.

Transformava-se numa gigantesca praça pública.


Google Encontrou Seu Momento

Quando a poeira da crise começou a baixar, o Google estava preparado.

Sua infraestrutura crescia.

Seu algoritmo melhorava.

Seu modelo de publicidade tornava-se extremamente eficiente.

Enquanto centenas de concorrentes desapareciam, o Google concentrava cada vez mais usuários.

O curioso é que sua maior vantagem não era apenas tecnológica.

Era econômica.

Cada pesquisa gerava informações valiosas.

Cada anúncio era mais relevante.

Cada clique aperfeiçoava o sistema.

Criava-se um ciclo virtuoso.

Quanto mais pessoas utilizavam o Google...

Melhor ele ficava.


Amazon Deixou de Ser Apenas uma Livraria

Outro sobrevivente aproveitou o período para se reinventar.

A Amazon começou vendendo livros.

Mas Jeff Bezos nunca desejou construir apenas uma livraria online.

Seu objetivo era criar "a loja de tudo".

Após sobreviver à bolha, a empresa acelerou sua expansão.

Vieram:

eletrônicos.

roupas.

brinquedos.

computadores.

móveis.

alimentos.

E, posteriormente...

Serviços em nuvem.

Poucos imaginavam que uma empresa criada para vender livros se tornaria uma das maiores fornecedoras mundiais de infraestrutura para Inteligência Artificial.

Mas foi exatamente isso que aconteceu.


O Nascimento da Computação em Nuvem

Existe uma conexão direta entre a bolha da Internet e a computação em nuvem.

Durante a crise, muitas empresas perceberam que manter enormes infraestruturas próprias era caro.

Ao mesmo tempo, gigantes como Amazon possuíam data centers subutilizados.

A solução parecia natural.

Alugar capacidade computacional.

Em vez de comprar servidores...

Empresas passariam a contratar processamento sob demanda.

Hoje chamamos isso de Cloud Computing.

Na época era uma ideia revolucionária.

Mais uma vez...

A crise incentivou eficiência.


O Mundo Tornou-se Mobile

Enquanto a Internet amadurecia, outra revolução aproximava-se silenciosamente.

Os telefones celulares.

No início serviam apenas para chamadas.

Depois enviavam mensagens.

Pouco depois começaram a acessar páginas simples.

Então surgiu um dispositivo que mudaria tudo.

O smartphone.

Quando o iPhone foi lançado em 2007, encontrou uma Internet completamente diferente daquela de 1999.

Mais rápida.

Mais estável.

Mais madura.

A infraestrutura construída durante a bolha finalmente encontrou um ambiente capaz de utilizá-la plenamente.


Redes Sociais: A Segunda Onda

Pouco depois vieram:

Facebook.

YouTube.

LinkedIn.

Twitter.

Wikipedia.

Flickr.

Essas empresas nasceram em um mundo muito diferente daquele enfrentado pelas primeiras Dot-Com.

Agora existia:

banda larga.

computadores mais rápidos.

servidores mais baratos.

infraestrutura consolidada.

consumidores acostumados à Internet.

meios de pagamento mais seguros.

A primeira geração havia preparado o terreno.

A segunda pôde finalmente construir sobre ele.


Enquanto Isso... Os Mainframes Evoluíam Silenciosamente

Existe um aspecto pouco comentado dessa história.

Enquanto todos observavam o crescimento da Web, o universo corporativo também evoluía.

Mainframes passaram a oferecer:

Linux.

Java.

Serviços Web.

XML.

SOA.

Virtualização avançada.

Mais tarde vieram:

OpenShift.

Containers.

APIs REST.

Kubernetes.

Watsonx.

Aceleradores para Inteligência Artificial.

Ou seja...

O mainframe não ficou parado esperando o futuro.

Ele evoluiu junto com ele.

Talvez de maneira menos chamativa.

Mas extremamente consistente.


A Internet Aprendeu a Ganhar Dinheiro

Outra consequência importante da crise foi o amadurecimento dos modelos de negócios.

As empresas passaram a compreender melhor como gerar receita.

Publicidade segmentada.

Assinaturas.

Software como Serviço.

Marketplace.

Serviços financeiros.

Computação em nuvem.

Economia de plataforma.

Esses modelos praticamente definem a economia digital atual.

Curiosamente...

Quase todos foram refinados após o colapso das Dot-Com.


O Investidor Também Mudou

Os investidores aprenderam muito.

Antes financiavam praticamente qualquer startup.

Depois passaram a analisar:

modelo de negócios.

custos.

retenção de clientes.

receita recorrente.

fluxo de caixa.

capacidade de execução.

Não significa que novas bolhas nunca mais ocorreram.

Mas a qualidade das análises tornou-se muito maior.

Pelo menos durante algum tempo.


A Computação Entrou na Vida de Todos

Talvez a consequência mais profunda da crise tenha sido cultural.

Nos anos 1980, computadores eram ferramentas de especialistas.

Nos anos 1990, tornaram-se objetos domésticos.

Nos anos 2000, passaram a conectar pessoas.

Na década seguinte tornaram-se companheiros permanentes através dos smartphones.

Hoje...

A Inteligência Artificial amplia novamente essa transformação.

Tudo isso faz parte da mesma jornada iniciada muito antes da bolha.


O Paralelo com a Inteligência Artificial

Estamos vivendo algo parecido.

Existe enorme entusiasmo.

Investimentos bilionários.

Milhares de startups.

Novos modelos surgindo praticamente todos os meses.

Provavelmente veremos empresas desaparecerem.

Outras serão adquiridas.

Algumas mudarão completamente de estratégia.

Entretanto...

Mesmo que isso aconteça, a Inteligência Artificial continuará evoluindo.

Assim como aconteceu com a Internet.

A tecnologia não depende do destino individual de cada empresa.

Ela continua seu caminho.


A Grande Ironia da História

Se a bolha da Internet nunca tivesse existido...

Talvez a revolução digital fosse muito mais lenta.

Parece estranho afirmar isso.

Mas pense.

A euforia atraiu investimentos gigantescos.

Esses investimentos construíram infraestrutura.

Essa infraestrutura permaneceu.

Anos depois, novas empresas utilizaram exatamente essa base para criar produtos muito mais maduros.

Em outras palavras.

O dinheiro especulativo desapareceu.

Os cabos ficaram.

Os data centers ficaram.

Os engenheiros ficaram.

O conhecimento ficou.

As lições ficaram.

E foi exatamente isso que possibilitou o nascimento da Internet moderna.


Lições para o Padawan COBOL

Um programa COBOL raramente nasce perfeito.

Ao longo dos anos ele recebe correções.

Melhorias.

Novos módulos.

Integrações.

Refatorações.

Depois de décadas, muitas vezes continua executando sua função original, mas tornou-se muito mais robusto.

A Internet passou pelo mesmo processo.

A bolha das Dot-Com foi um enorme "debug" coletivo.

Ela eliminou erros de arquitetura empresarial, expôs modelos insustentáveis e obrigou toda a indústria a amadurecer.

No universo da Frota Estelar existe uma máxima entre os engenheiros da USS Enterprise:

"Nenhuma nave chega à classe Galaxy sem antes aprender com os erros das classes anteriores."

A Internet também.

A primeira geração abriu o caminho.

A segunda consolidou a economia digital.

A terceira trouxe computação em nuvem e smartphones.

A quarta nos conduz agora à era da Inteligência Artificial.

Cada geração parece completamente nova.

Na realidade...

Todas são capítulos da mesma história.

E é justamente essa continuidade que um bom engenheiro — seja de software, seja de sistemas mainframe — aprende a enxergar.

No próximo capítulo veremos como a bolha das Dot-Com mudou definitivamente a forma como investidores, empresas e governos passaram a avaliar tecnologia, inaugurando uma nova era de governança, gestão de riscos e inovação sustentável.

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