☕ 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

terça-feira, 3 de outubro de 2023

Hermes Entra no CPD — O Dia em que o Mensageiro dos Deuses Descobriu que o YouTube Era um JES2 Planetário com CDN, Cache, Filas e Bilhões de Jobs

 

Bellacosa Mainframe espiona o Youtube

☕ Um Café no Bellacosa Mainframe

Hermes Entra no CPD — O Dia em que o Mensageiro dos Deuses Descobriu que o YouTube Era um JES2 Planetário com CDN, Cache, Filas e Bilhões de Jobs

Ou: como upload, transcoding, blob storage, filas, CDN, DNS, load balancer, sharding, replicação, microservices, recomendação por IA e observabilidade transformam um simples botão ▶ em uma das maiores máquinas distribuídas já construídas — e por que Hermes provavelmente pediria um RACF antes de entregar a mensagem


Prólogo — Hermes chegou voando, mas o pacote tinha 8 GB

Eram duas e quarenta e sete da manhã no CPD.

O ar-condicionado fazia aquele barulho que todo veterano de mainframe aprende a interpretar como:

“Estou funcionando. Não mexa em mim.”

Na mesa havia uma caneca de café, um terminal 3270, três dumps impressos que ninguém queria assumir como seus e um programador COBOL iniciante tentando entender uma pergunta aparentemente simples:

— Bellacosa, como o YouTube funciona?

Antes que alguém pudesse responder, as portas do CPD se abriram.

Entrou um sujeito usando sandálias aladas, capacete ornamentado e carregando um pacote enorme debaixo do braço.

— Hermes — apresentou-se. — Mensageiro dos deuses. Mercúrio para os romanos. Entregas terrestres, celestiais, interdimensionais e, recentemente, tráfego IP.

O operador levantou uma sobrancelha.

— Tem autorização?

Hermes apontou para as asas.

— Eu atravesso os mundos.

O operador virou-se para o terminal.

— Isso não responde à pergunta.

Bem-vindo ao mainframe.

Hermes havia trazido um vídeo.

Um arquivo em 4K.

O programador COBOL olhou para ele e imaginou que o processo fosse simples:

UPLOAD
   ↓
YOUTUBE
   ↓
PLAY

Hermes riu.

— Jovem mortal... se fosse assim, eu ainda estaria entregando mensagens em papiro.

E foi dessa maneira que começou nossa viagem.

Porque o YouTube parece simples apenas enquanto você permanece do lado de fora.

Você abre uma página.

Procura um vídeo.

Clica.

Assiste.

Mas atrás daquele pequeno triângulo ▶ existe uma cidade tecnológica gigantesca formada por armazenamento distribuído, processamento assíncrono, filas, bancos de dados, caches, servidores, índices de busca, sistemas de recomendação, telemetria e infraestrutura espalhada pelo planeta.

E o mais divertido para quem conhece mainframe?

Muitos dos problemas fundamentais parecem terrivelmente familiares.



1. Primeiro aviso de Hermes: o diagrama não é o território

Diagramas de “YouTube System Design” aparecem frequentemente na Internet.

Eles mostram caixas como:

Blob Storage
Encoder
Cache
App Server
Database
Search
Recommendation
Load Balancer

São excelentes para aprender.

Mas precisamos entender algo desde o início:

aquilo não é uma planta completa da infraestrutura real do YouTube.

É uma representação conceitual.

Seria semelhante a desenhar um ambiente bancário como:

Terminal
   ↓
CICS
   ↓
COBOL
   ↓
Db2

Está errado?

Não necessariamente.

Está completo?

Nem remotamente.

Atrás dessas quatro caixas podem existir Parallel Sysplex, RACF, MQ, VSAM, WLM, JES2, SMF, storage, redes, replicação, disaster recovery, schedulers e dezenas de outras tecnologias.

O mesmo vale para uma plataforma de vídeo planetária.

A finalidade de um bom desenho de arquitetura não é registrar cada parafuso.

É mostrar responsabilidades, fluxos e pontos críticos.

Hermes chama isso de mapa.

O mainframe chama isso de “não tente explicar tudo no mesmo slide”.


2. Existem dois mundos: o vídeo e os dados sobre o vídeo

Essa distinção é fundamental.

Imagine um vídeo chamado:

INTRODUCAO-COBOL-EPISODIO-01.mp4

O arquivo pode ter vários gigabytes.

Mas suas informações são pequenas:

VIDEO_ID
TITLE
CHANNEL
DURATION
UPLOAD_DATE
DESCRIPTION
VISIBILITY

Portanto há duas famílias de dados.

De um lado:

ARQUIVO DE VÍDEO

Do outro:

METADADOS

Você normalmente não quer tratar ambos da mesma maneira.

O vídeo bruto pertence a uma infraestrutura apropriada para objetos grandes.

Os metadados pertencem a bancos e índices estruturados.

Pense num programador COBOL armazenando um filme inteiro dentro de cada registro de uma tabela operacional.

Hermes tiraria as sandálias aladas só para bater com uma delas no sujeito.


3. O upload começa uma jornada, não termina uma

O usuário seleciona um vídeo e aperta:

Upload.

Parece que o trabalho terminou.

Para a plataforma, acabou de começar.

Imagine um arquivo de 8 GB em 4K.

O sistema pode primeiro armazenar esse arquivo original em algum tipo de object/blob storage.

Mas enviá-lo exatamente daquela maneira para cada usuário seria péssimo.

Uma televisão 4K talvez aproveite a resolução.

Um celular numa rede móvel ruim certamente não.

Por isso entram os encoders, ou, mais precisamente, processos de transcodificação.

O vídeo original pode gerar múltiplas representações:

Original
   ↓
2160p
1440p
1080p
720p
480p
360p
240p

Só que resolução é apenas uma variável.

Também temos codecs, bitrate, áudio, HDR, frames por segundo e formatos diferentes.

Ou seja:

1 vídeo enviado
      ↓
várias versões distribuíveis

Hermes gostou imediatamente.

Era como traduzir a mesma mensagem para gregos, romanos, egípcios, persas e o sujeito da contabilidade que só aceita CSV delimitado por ponto e vírgula.


4. A fila: Hermes conhece, JES2 também

Aqui começa o verdadeiro parentesco com o mundo mainframe.

Imagine que 100 mil usuários façam upload simultaneamente.

Você não quer executar imediatamente 100 mil processos pesados de encoding.

Em vez disso:

UPLOAD
   ↓
STORAGE
   ↓
QUEUE
   ↓
ENCODER WORKERS

O upload é recebido.

Um trabalho é colocado numa fila.

Workers consomem os jobs conforme existe capacidade.

Qualquer veterano de mainframe pode sentir um arrepio nostálgico.

Porque a essência lembra:

SUBMIT
  ↓
JES2
  ↓
QUEUE
  ↓
EXECUTION

Não é a mesma tecnologia.

Não é a mesma implementação.

Mas é o mesmo problema fundamental:

há mais trabalho chegando do que convém executar instantaneamente.

A fila desacopla quem produz trabalho de quem o executa.

Isso é uma ideia profundamente poderosa.


5. Por que processamento assíncrono salva arquiteturas

Imagine uma aplicação ingênua.

O usuário manda um vídeo.

A conexão HTTP fica esperando enquanto o sistema:

recebe o arquivo, valida, converte, gera thumbnails, indexa, prepara formatos e distribui tudo.

Podem passar minutos.

Ou muito mais.

Isso é péssimo.

Uma arquitetura melhor responde algo conceitualmente equivalente a:

RECEBIDO
PROCESSAMENTO EM ANDAMENTO

O trabalho prossegue em background.

Depois diferentes eventos podem ocorrer:

VIDEO_UPLOADED
VIDEO_VALIDATED
TRANSCODING_STARTED
TRANSCODING_COMPLETED
VIDEO_READY

Isso nos leva à arquitetura orientada a eventos.

Hermes aprovou.

Afinal, se existe alguém mitologicamente qualificado para trabalhar com mensagens assíncronas, é o mensageiro dos deuses.


6. Curiosidade do Olimpo: Hermes seria um message broker perfeito

Na mitologia grega, Hermes era associado a mensagens, viagens, comércio e comunicação entre mundos.

Se estivesse num diagrama de arquitetura moderno, provavelmente apareceria assim:

ZEUS
  ↓
HERMES MESSAGE BUS
  ↓
MORTAIS

Ou talvez:

EVENT: ZEUS_COMMAND
TOPIC: /olympus/thunder
CONSUMER: HERMES

E, conhecendo Zeus, provavelmente precisaríamos de:

MAX_RETRY=0

porque ninguém quer receber o mesmo raio duas vezes.


7. CDN: a tecnologia que impede o sucesso de matar você

Agora imagine que o vídeo fique viral.

Dez milhões de pessoas querem assistir.

Sem distribuição adequada:

10.000.000 usuários
          ↓
       ORIGIN

Parabéns.

Seu conteúdo viral acaba de executar um ataque DDoS contra você mesmo.

Uma das soluções fundamentais é a CDN, Content Delivery Network.

A ideia é distribuir ou armazenar conteúdo mais perto dos usuários.

Simplificando:

               ORIGIN
                 |
       +---------+---------+
       |         |         |
     Região A  Região B  Região C
       |         |         |
     caches    caches    caches

Assim, um usuário brasileiro não precisa necessariamente buscar cada segmento do vídeo a milhares de quilômetros de distância.

A física continua sendo uma dependência que nenhuma atualização de software corrigiu.

Velocidade da luz tem SLA extremamente rígido.


8. Cache: o funcionário que diz “já tenho isso aqui”

Cache é um dos conceitos mais importantes de system design.

Imagine o primeiro pedido por determinado conteúdo:

CACHE
  ↓
MISS
  ↓
ORIGIN
  ↓
RESPOSTA
  ↓
CACHE

Depois outro usuário pede a mesma coisa:

CACHE
  ↓
HIT
  ↓
RESPOSTA

Muito mais barato.

Muito mais rápido.

Menos carga no sistema original.

Essa lógica vale para páginas, metadados, consultas e partes de vídeo.

No universo mainframe, a ideia de evitar I/O caro mantendo conteúdo frequentemente utilizado próximo da execução certamente não causará choque filosófico.

É apenas mais uma versão da velha máxima:

não vá buscar longe aquilo que você já tem perto.


9. Vídeo não precisa viajar inteiro

Outro detalhe fascinante.

Quando você começa a assistir a um filme de duas horas, normalmente não precisa baixar as duas horas antes de começar.

O conteúdo pode ser dividido em segmentos:

VIDEO
 |
 +-- SEGMENT 001
 +-- SEGMENT 002
 +-- SEGMENT 003
 +-- SEGMENT 004

O player vai solicitando pedaços.

Isso é fundamental para streaming adaptativo.

Sua rede está ótima?

O sistema pode entregar segmentos de maior qualidade.

Sua conexão piorou?

Pode reduzir qualidade.

Exemplo:

1080p
1080p
720p
480p
720p
1080p

Você provavelmente já viu isso acontecendo.

O vídeo fica ligeiramente borrado por alguns segundos e depois melhora.

Isso não é necessariamente defeito.

É a plataforma negociando com a realidade.


10. Adaptive Bitrate: melhor assistir em 720p do que contemplar uma bolinha girando em 4K

Um algoritmo de streaming pode considerar coisas como largura de banda disponível, tamanho do buffer e capacidade do dispositivo.

O objetivo conceitual é:

máxima qualidade possível
          +
mínimas interrupções

Porque existe uma regra prática importantíssima:

usuário tolera queda de resolução melhor do que vídeo congelando a cada oito segundos.

Hermes lembrou que mensageiros antigos também faziam isso.

Quando a estrada estava boa, ele voava.

Quando tinha tempestade, descia.

Adaptive transport, versão mitológica.


11. DNS: antes de entregar a mensagem, descubra onde fica a casa

Quando digitamos um endereço, o computador precisa descobrir para onde enviar a conexão.

DNS ajuda a transformar um nome em informação de localização de rede.

Simplificando:

youtube.com
     ↓
DNS
     ↓
destino apropriado

Em sistemas globais, a história pode ficar bem mais sofisticada, envolvendo infraestrutura distribuída e decisões geográficas.

Mas conceitualmente DNS é o início da viagem.

Hermes é mensageiro.

DNS é o mapa.

Sem mapa, até deus se perde.


12. Load Balancer: o WLM da porta de entrada

Depois temos balanceamento.

Imagine milhares de servidores capazes de atender requisições.

O usuário não sabe qual deles deveria atender.

Nem deveria saber.

Entra o load balancer.

             REQUEST
                ↓
          LOAD BALANCER
          /      |      \
       SERVER1 SERVER2 SERVER3

Ele distribui demanda.

Se um servidor está indisponível, idealmente deixa de enviar tráfego para ele.

Aqui um veterano z/OS imediatamente reconhece a filosofia de workload management.

Novamente: não são tecnologias idênticas.

Mas o problema é conhecido.

Temos trabalho.

Temos recursos.

Precisamos casar ambos de maneira eficiente.

WLM olha do fundo da sala e murmura:

— Bonito esse “cloud native”.


13. Stateless: não se apaixone pelo servidor 42

Imagine que toda a sessão de um usuário exista apenas na memória de um único servidor.

USER
 ↓
SERVER 42

Servidor 42 morre.

Adeus sessão.

Sistemas distribuídos tentam, sempre que adequado, evitar dependência excessiva de estado local.

Assim:

Request A → Server 12
Request B → Server 94
Request C → Server 33

podem funcionar.

Isso facilita escalar horizontalmente e lidar com falhas.

É uma diferença importante entre:

“este servidor é especial”

e

“qualquer servidor saudável desse grupo pode executar o trabalho”.


14. Vertical versus horizontal: mainframe encontra hyperscale

Aqui entra uma discussão deliciosa.

Escalabilidade vertical significa colocar mais capacidade numa máquina:

16 CPUs
 ↓
32 CPUs
 ↓
64 CPUs

Escalabilidade horizontal significa aumentar o número de máquinas:

10 servidores
 ↓
100
 ↓
1000

O IBM Z tornou-se historicamente extraordinário em consolidação e escala vertical.

Ambientes hyperscale exploraram de maneira brilhante a distribuição horizontal.

Isso gerou quase duas escolas filosóficas.

Uma diz:

“Construa uma máquina absurda.”

Outra diz:

“Construa um exército de máquinas.”

Na prática, arquiteturas sérias combinam estratégias.

Hermes, naturalmente, sugeriu asas em todos os servidores.

Não foi aprovado pelo capacity planning.


15. Agora chegamos ao verdadeiro monstro: dados dos usuários

Imagine registrar:

histórico, likes, dislikes, inscrições, playlists, comentários, sessões, progresso de reprodução e preferências.

Isso gera quantidades extraordinárias de dados.

Uma tabela conceitual poderia ter:

USER_ID
VIDEO_ID
TIMESTAMP
WATCH_DURATION
POSITION
DEVICE

Agora multiplique isso por milhões ou bilhões de usuários.

Uma única instância de banco eventualmente se torna insuficiente ou inadequada.

Entra o sharding.


16. Sharding: cortando o dragão em pedaços administráveis

Sharding significa particionar dados entre bancos ou grupos de servidores.

Exemplo simplificado:

Usuários A–F → SHARD 1
Usuários G–M → SHARD 2
Usuários N–S → SHARD 3
Usuários T–Z → SHARD 4

Ou usando hash:

SHARD = HASH(USER_ID) MOD N

Então:

USER 100 → SHARD 4
USER 101 → SHARD 9

Isso permite distribuir carga e armazenamento.

Só que cada solução cria novos problemas.

Agora precisamos pensar em:

hot shards, rebalanceamento, consultas entre shards, transações distribuídas, routing e recuperação.

Uma das grandes verdades de arquitetura é esta:

você raramente elimina complexidade; normalmente muda onde ela mora.


17. Vitess: quando alguém precisou ensinar MySQL a conversar com gigantes

Um detalhe especialmente interessante no desenho é a presença de Vitess.

O projeto Vitess nasceu justamente no contexto do YouTube para ajudar a escalar MySQL.

A aplicação poderia pensar aproximadamente:

Quero USER_ID = 123

Enquanto uma camada intermediária ajuda a localizar onde aquele dado realmente está.

Conceitualmente:

APPLICATION
    ↓
VITESS
    ↓
SHARD CORRETO
    ↓
MYSQL

Essa é uma curiosidade histórica excelente.

Quando uma empresa chega a uma escala absurda, começa a criar ferramentas para resolver problemas que poucas outras empresas possuíam naquele momento.

Depois essas ferramentas acabam servindo ao resto da indústria.


18. Replication não é sharding

É comum iniciantes confundirem.

Sharding responde:

como divido meus dados?

Replication responde:

quantas cópias tenho e como sobrevivo à falha?

Podemos ter:

PRIMARY
   |
   +---- REPLICA A
   |
   +---- REPLICA B

Se uma máquina desaparece, existem cópias.

Isso ajuda disponibilidade, recuperação e distribuição de leitura.

Mas abre outra caixa mitológica:

consistência.


19. Eventual consistency: nem todo dado precisa estar perfeito no mesmo microssegundo

Imagine um vídeo com:

999 LIKES

Você clica Like.

Um servidor passa a mostrar:

1000

Outro ainda mostra:

999

por alguns instantes.

Pode ser aceitável.

Agora pense em:

SALDO BANCÁRIO

A conversa muda.

Esse é um ensinamento importantíssimo para programadores vindos de ambientes altamente transacionais:

consistência é requisito, não dogma.

Alguns dados exigem precisão imediata e rigorosa.

Outros toleram propagação.

É o contexto de negócio que decide.


20. Microservices: a cidade deixa de ter um único prédio

No desenho aparecem serviços independentes:

Upload Service
Search Service
Comments Service

A ideia é decompor funcionalidades.

Search pode precisar de muito mais capacidade que Comments.

Upload talvez tenha características completamente diferentes de Recommendation.

Então cada serviço pode crescer de maneira própria.

Mas aqui aparece um aviso de Hermes:

microservices não removem complexidade.

Eles transformam:

complexidade dentro do programa

em:

complexidade entre programas

Agora temos rede.

E rede traz:

timeouts, retries, latência, descoberta de serviços, compatibilidade de versões, tracing e falhas parciais.

O monólito explodiu.

Os pedaços agora discutem entre si pela Ethernet.


21. Search: nunca execute LIKE '%COBOL%' em bilhões de vídeos e espere um milagre

Imagine procurar:

curso cobol mainframe

Uma implementação ingênua faria algo semelhante a:

SELECT *
FROM VIDEOS
WHERE DESCRIPTION LIKE '%curso cobol mainframe%';

Contra uma base gigantesca?

Hermes mandaria a consulta diretamente para Hades.

Sistemas de busca utilizam índices especializados.

Uma simplificação:

COBOL → vídeos 1, 10, 93, 456
MAINFRAME → vídeos 1, 93, 800
CURSO → vídeos 1, 7, 93

Os candidatos comuns podem ser encontrados rapidamente.

Depois entra ranking.

Porque encontrar conteúdo não basta.

Precisamos decidir qual resultado vem primeiro.


22. Recommendation Engine: o Oráculo de Delfos com GPUs

Agora entramos numa das partes mais fascinantes.

Você abre a homepage.

Existe um universo gigantesco de vídeos.

O sistema precisa escolher algumas dezenas.

Seria absurdo executar o modelo mais pesado possível sobre cada vídeo existente.

Então podemos imaginar várias etapas.

Primeiro:

BILHÕES DE VÍDEOS
       ↓
CANDIDATE GENERATION
       ↓
MILHARES
       ↓
RANKING
       ↓
CENTENAS
       ↓
RE-RANKING / POLICIES
       ↓
FEED

Esse padrão aparece em grandes sistemas de recomendação.

Primeiro reduzimos o universo.

Depois gastamos processamento mais caro nos melhores candidatos.

É semelhante a procurar uma agulha no palheiro usando primeiro uma peneira industrial e só depois uma pinça.


23. O algoritmo não vê apenas Likes

Outro erro comum é imaginar:

mais likes = mais recomendação

Na prática, sistemas de recomendação podem analisar muitos sinais.

Você clicou.

Mas assistiu?

Assistiu por dois segundos?

Chegou ao fim?

Pulou?

Voltou?

Inscreveu-se?

Procurou outro conteúdo parecido?

Um clique isolado não significa satisfação.

Exemplo clássico:

"DESCOBERTA IMPOSSÍVEL EM MARTE!!!"

Você clica.

Três segundos depois percebe que é clickbait.

Tecnicamente houve clique.

Comportamentalmente houve rejeição.

Por isso métricas como watch time e retenção são valiosas.


24. Adaptive Algorithm: o sistema observa você observando o sistema

Existe um loop fascinante:

Recommendation
      ↓
Usuário vê
      ↓
Clique / Skip / Watch
      ↓
Eventos
      ↓
Analytics
      ↓
Features / Models
      ↓
Nova Recommendation

É um sistema que muda de comportamento com base nas respostas do usuário.

Mas aqui precisamos ser tecnicamente cuidadosos.

“Aprender em tempo real” não significa necessariamente:

um modelo gigantesco sendo retreinado a cada clique.

Podemos ter sinais atualizados imediatamente enquanto treinamentos pesados acontecem em outras cadências.

Por exemplo:

Clique agora
   ↓
perfil/features atualizados

Modelo pesado
   ↓
treinamento periódico

São coisas diferentes.


25. Observabilidade: coloque Poirot junto com Hermes

No desenho original, observabilidade aparece quase como mais uma caixinha.

Na prática ela deve atravessar toda a arquitetura.

Precisamos observar:

DNS
Load Balancer
Apps
Queues
Encoders
Caches
Databases
Search
Recommendation
CDN

O trio clássico é:

metrics, logs e traces.

Metrics dizem:

algo está estranho.

Logs ajudam a descobrir:

o que aconteceu?

Tracing pergunta:

por onde essa requisição passou?

Exemplo:

Gateway    10 ms
Auth       20 ms
App        50 ms
Search     70 ms
Database 4200 ms

Encontramos o cadáver.

Db2 demorou 4,2 segundos.

Poirot começa a sorrir.


26. Média engana; percentis contam a história

Suponha:

latência média = 200 ms

Excelente?

Talvez.

E se:

p50 = 100 ms
p95 = 600 ms
p99 = 9 segundos

Um por cento dos usuários pode estar tendo uma experiência terrível.

Em sistemas com bilhões de requisições, 1% não é uma exceção pequena.

É uma multidão.

Por isso percentis, principalmente p95 e p99, são essenciais.


27. Fault tolerance: servidor quebrar não é evento raro

Em ambientes pequenos, alguém pergunta:

“E se o servidor cair?”

Em hyperscale, a frase correta é:

“Quando alguns servidores caírem hoje, o que acontecerá?”

Discos morrem.

Switches falham.

Máquinas reiniciam.

Links ficam lentos.

Deploys quebram serviços.

Datacenters podem enfrentar incidentes.

A arquitetura precisa assumir falha.

Entram mecanismos como health checks, replicas, retries, timeouts, failover e circuit breakers.


28. Graceful degradation: YouTube sem comentários ainda é YouTube

Imagine que Comments Service pare.

Arquitetura frágil:

COMMENTS DOWN
     ↓
SITE DOWN

Arquitetura resiliente:

VIDEO OK
SEARCH OK
STREAMING OK
COMMENTS TEMPORARILY UNAVAILABLE

O usuário continua assistindo.

Isso é graceful degradation.

Outra hipótese:

Recommendation Engine está indisponível.

Em vez de morrer, a homepage poderia usar alternativas mais simples:

Popular
Subscriptions
Trending
Recent

Essa filosofia é maravilhosa:

falhar parcialmente é melhor do que morrer completamente.


29. Backpressure: JES2 sabe que fila infinita não é estratégia

Suponha que os encoders consigam processar:

8 milhões de uploads/hora

Mas chegam:

10 milhões/hora

Fila cresce:

+2 milhões/hora

Depois de dez horas:

20 milhões pendentes

Isso é perigoso.

Sistemas precisam aplicar backpressure.

Podem aumentar capacidade, reduzir admissões, priorizar trabalhos ou aplicar quotas.

O princípio é antigo:

não aceite trabalho ilimitadamente se não consegue executá-lo.

JES2, sentado no canto do bar, levanta a caneca.


30. Hotspots: o problema não é apenas quanto tráfego existe, mas onde ele aparece

Talvez existam bilhões de vídeos.

Mas a demanda não será uniforme.

Um vídeo recebe:

3 views/dia

Outro:

10 milhões em uma hora

A média não ajuda muito.

Notícias, eventos esportivos, lançamentos musicais e memes criam hotspots.

Por isso caches e CDNs precisam responder rapidamente a mudanças bruscas de popularidade.

É como Black Friday.

Ninguém dimensiona varejo apenas olhando a terça-feira de fevereiro.


31. Retry storm: quando tentar ajudar piora tudo

Imagine um banco lento.

App Server espera.

Timeout.

Cliente tenta novamente.

Outro timeout.

Outro retry.

Agora o banco, que já estava sofrendo, recebe ainda mais carga.

Temos:

Sistema lento
   ↓
Retries
   ↓
Mais carga
   ↓
Sistema ainda mais lento
   ↓
Mais retries

Um círculo infernal digno de Hades.

Por isso retries precisam de limites, exponential backoff e jitter.

Nem toda falha deve ser respondida imediatamente com:

“Tenta outra vez!”


32. Idempotência: Hermes odeia entregar a mesma mensagem duas vezes

Considere:

POST /like

O servidor recebe, grava o Like e a conexão cai antes da resposta chegar.

O cliente pensa:

será que funcionou?

E envia de novo.

Sem cuidados, temos duplicidade.

Idempotência significa projetar determinadas operações para que repeti-las não cause efeitos duplicados indesejáveis.

Algo como:

REQUEST_ID = ABC123

Se já foi processado:

não processe novamente

Esse conceito é fundamental em mensagens, pagamentos, uploads e integração.

Qualquer programador que já recebeu arquivo duplicado de batch sabe exatamente por quê.


33. “Exactly once”: cuidado com deuses prometendo milagres

Em sistemas distribuídos existem expressões como:

at-most-once
at-least-once
exactly-once

“Exactly once” parece maravilhoso.

Mas exige grande cuidado para definir exatamente onde a garantia existe.

Muitas vezes é mais seguro assumir que mensagens podem chegar novamente e tornar o consumidor idempotente.

Ou seja:

evento repetido?
 ↓
detecte
 ↓
ignore

Isso evita transformar retry legítimo em duplicidade de negócio.


34. Segurança: Hermes não entra no CPD só porque tem asas

O desenho original quase não mostra segurança.

Eu colocaria uma enorme camada sobre tudo.

Uma plataforma desse tamanho precisa pensar em autenticação, autorização, fraude, abuso, bots, scraping, spam, DDoS, roubo de contas e proteção de APIs.

A questão não é apenas:

consigo executar esta requisição?

Mas:

este usuário está autorizado a executá-la?

Programador COBOL olha para RACF.

RACF olha para Hermes.

Hermes entrega a credencial.

RACF responde:

ICH408I

Hermes protesta:

— EU SOU UM DEUS!

RACF:

— Isso não consta no perfil.

Esse talvez seja o easter egg mais realista de todo o artigo.


35. Como assistir a um vídeo vira uma pequena Odisseia

Agora podemos seguir o caminho completo.

O usuário pressiona ▶.

DNS ajuda a encontrar infraestrutura apropriada.

A requisição atravessa mecanismos de edge e balanceamento.

Serviços recuperam metadados e verificam contexto.

O player obtém informações sobre as representações disponíveis.

Segmentos começam a ser entregues por infraestrutura distribuída.

O player mede as condições.

A qualidade muda conforme necessário.

Eventos de reprodução são registrados.

O progresso é salvo.

Sistemas de recomendação observam o comportamento.

Enquanto isso, o próximo vídeo talvez já esteja sendo selecionado.

Ou seja:

PLAY
 ↓
rede
 ↓
metadados
 ↓
segurança
 ↓
streaming
 ↓
CDN
 ↓
telemetria
 ↓
analytics
 ↓
recommendation

Você vê apenas:

▶

Esse é o grande truque da engenharia.

Esconder uma quantidade absurda de complexidade atrás de uma interface simples.


36. O que um programador COBOL deveria aprender com tudo isso?

Não tente memorizar “a arquitetura do YouTube”.

Aprenda a reconhecer problemas.

Se existe pico de tráfego, pense em balanceamento e escalabilidade.

Se existe conteúdo repetidamente acessado, pense em cache.

Se trabalho pesado não precisa ser imediato, pense em processamento assíncrono.

Se uma máquina é insuficiente para todos os dados, pense em particionamento.

Se falha é inevitável, pense em replicação.

Se serviços dependem uns dos outros, pense em timeouts e circuit breakers.

Se ninguém sabe onde a lentidão nasceu, pense em observabilidade.

Se um sistema está aceitando mais trabalho do que consegue processar, pense em backpressure.

Se uma função secundária morreu, pense em graceful degradation.

Perceba o padrão.

Não estamos estudando produtos.

Estamos estudando classes de problemas arquitetônicos.


37. Passo a passo para estudar System Design sem enlouquecer

Aqui está minha única receita prática.

Comece construindo mentalmente um pequeno serviço de vídeo com upload, armazenamento e playback. Depois acrescente metadata. Em seguida coloque uma fila entre upload e transcoding. Adicione múltiplas resoluções. Acrescente cache e CDN. Depois pense em usuários e histórico. Quando os dados crescerem, introduza replicação e sharding. Só então adicione search e índices. Depois recomendação. Finalmente provoque falhas deliberadamente: derrube o banco, atrase a fila, mate o encoder, sobrecarregue o cache e pergunte o que acontece.

Essa sequência ensina mais do que decorar cinquenta diagramas prontos.

System Design começa a ficar interessante quando você pergunta:

“O que quebra se multiplicarmos isso por mil?”

Depois:

“E por mais mil?”

Depois:

“E se uma região inteira ficar indisponível?”

Nesse momento você começou a pensar como arquiteto.


38. A grande ironia: o hyperscale reencontrou problemas que o CPD conhecia

Quando tecnologias modernas falam em:

queues
scheduling
workload
authorization
replication
monitoring
transactions
batch processing
caching

um veterano de mainframe reconhece muitos problemas.

O mainframe não resolveu tudo da mesma maneira.

Nem poderia.

Mas há parentesco conceitual.

No z/OS temos nomes como:

JES2
WLM
RACF
CICS
Db2
MQ
SMF
RMF
Sysplex

No universo distribuído aparecem:

message brokers
orchestrators
IAM
microservices
distributed databases
telemetry
clusters
autoscaling

É perigoso criar equivalências diretas.

Mas é extremamente educativo enxergar a genealogia dos problemas.

Tecnologia muda.

Problemas humanos e computacionais têm mania de reaparecer usando camiseta nova.


39. Easter egg: Hermes provavelmente inventaria Kafka

Hermes era mensageiro.

Levava informações entre entidades.

Tinha múltiplos destinos.

Operava entre diferentes domínios.

Precisava ser rápido.

Transportava eventos importantes.

Portanto não é difícil imaginar uma reunião no Olimpo:

— Precisamos de um barramento distribuído de eventos.

Hermes:

— Já faço isso há 3 mil anos.

Zeus:

— Precisamos de partitions.

Hermes:

— Tenho rotas.

Atena:

— Precisamos de consumers independentes.

Hermes:

— Tenho templos.

Hades:

— Precisamos de dead-letter queue.

Hermes:

— Você praticamente administra uma.

Silêncio constrangedor.


40. O verdadeiro segredo do YouTube

Não existe uma única tecnologia mágica.

Existe uma composição cuidadosa de milhares de decisões.

Storage resolve um tipo de problema.

Cache resolve outro.

CDN resolve outro.

Queue resolve outro.

Database resolve outro.

Replication resolve outro.

Sharding resolve outro.

Search index resolve outro.

Machine Learning resolve outro.

Observability resolve outro.

Security tenta impedir que algum mortal curioso destrua tudo.

O desafio monumental está em fazer essas partes coexistirem.

Porque cada uma pode falhar.

Cada uma tem limites.

Cada uma possui custo.

Cada uma introduz novos modos de falha.


Epílogo — Hermes finalmente apertou PLAY

Depois de horas de explicação, o programador COBOL olhou novamente para o ícone do YouTube.

▶

Antes, ele via um botão.

Agora via:

DNS, edge, load balancing, storage, encoding, filas, shards, replicas, caches, CDN, APIs, serviços, índices, algoritmos, telemetria, segurança e milhões de decisões acontecendo em camadas.

Hermes terminou o café.

— Então — perguntou o programador — qual é a principal lição?

O mensageiro guardou as sandálias aladas.

— Nunca confunda simplicidade da interface com simplicidade da arquitetura.

No terminal 3270, alguém submeteu um JOB.

SUBMIT

A resposta apareceu.

O programador ficou alguns segundos olhando.

Depois sorriu.

Porque subitamente JES2 parecia um pouco menos antigo.

E o YouTube parecia um pouco menos alienígena.

Ambos, cada um em seu universo, estavam respondendo à mesma pergunta eterna da computação:

Como recebemos uma quantidade absurda de trabalho, organizamos, priorizamos, processamos, armazenamos, protegemos, monitoramos e entregamos resultados sem deixar o usuário perceber o caos existente nos bastidores?

Hermes levantou voo.

Na saída do CPD, porém, tentou abrir uma porta restrita.

O console respondeu:

ICH408I USER(HERMES) GROUP(OLYMPUS)
NAME(MESSENGER OF GODS)

ACCESS INTENT(READ)
ACCESS ALLOWED(NONE)

Do fundo da sala veio a voz do operador:

— Falei que precisava de autorização.

Hermes suspirou.

Zeus podia controlar os raios.

Poseidon podia controlar os mares.

Hades podia controlar o mundo dos mortos.

Mas no CPD...

quem mandava era o RACF. ☕🪽💻

segunda-feira, 2 de outubro de 2023

10 ANIMES PARA QUEM SOBREVIVEU AO ABEND SOBRENATURAL DE ANOTHER

 

Bellacosa Mainframe e a lista dos anime com ligação ao sobrenatural

☕💣👁️ OPERADOR, O JOB DO DESTINO CONTINUA EXECUTANDO!

10 ANIMES PARA QUEM SOBREVIVEU AO ABEND SOBRENATURAL DE ANOTHER

Existem animes de terror.

Existem animes de mistério.

Existem animes que tentam assustar utilizando monstros, fantasmas ou demônios.

E existe Another.

Uma obra que conseguiu algo raro: transformar uma simples sala de aula em um ambiente onde cada passo parece um comando DELETE aguardando confirmação.

O verdadeiro horror de Another não está apenas nas mortes brutais ou nos eventos sobrenaturais. O que torna a experiência inesquecível é a sensação constante de que existe um erro oculto dentro do sistema. Algo está corrompido. Algo não deveria estar ali. E, mesmo assim, ninguém consegue identificar exatamente onde começou a falha.

É justamente por isso que encontrar animes semelhantes não significa procurar apenas histórias de terror. Significa procurar obras que compartilham o mesmo DNA narrativo: mistérios que se escondem atrás de rotinas aparentemente normais, personagens presos em ciclos de sofrimento, eventos sobrenaturais que funcionam como processos automáticos fora do controle humano e uma atmosfera de paranoia crescente.

Os animes desta lista foram escolhidos porque conseguem reproduzir aquela mesma sensação que o operador sente ao descobrir um registro fantasma em produção. Cada um apresenta uma anomalia diferente. Alguns utilizam maldições. Outros exploram linhas temporais quebradas, aldeias isoladas, cidades amaldiçoadas ou forças invisíveis manipulando o destino.

Todos possuem algo em comum:

Uma pergunta que ninguém consegue responder imediatamente.

Uma verdade escondida.

Uma investigação perigosa.

E um preço alto para quem tenta descobrir o que realmente está acontecendo.

Nesta seleção estão obras que marcaram gerações de fãs do horror psicológico, suspense sobrenatural e mistérios complexos. Algumas são famosas mundialmente. Outras permanecem como joias obscuras conhecidas apenas pelos operadores mais experientes do universo otaku.

Prepare os logs.

Revise os dumps.

Ative o monitoramento.

Porque os próximos dez sistemas apresentam falhas muito mais perigosas que a Classe 3-3 de Yomiyama.


1. Higurashi no Naku Koro ni

☕💣 A Vila Onde o Destino Reinicia o Job Todos os Dias

Título Original: Higurashi no Naku Koro ni
Lançamento: 2006

Sinopse

Keiichi Maebara muda-se para uma pequena vila chamada Hinamizawa e rapidamente faz amigos.

Tudo parece perfeito.

Até que assassinatos e desaparecimentos começam a ocorrer.

Personagens

  • Keiichi Maebara

  • Rena Ryugu

  • Mion Sonozaki

  • Shion Sonozaki

  • Rika Furude

Por que assistir?

É provavelmente o anime mais próximo de Another em atmosfera, paranoia e mistério.


2. Shiki

☕💣 O Vampiro é Apenas o Sintoma

Título Original: Shiki

Lançamento: 2010

Sinopse

Uma pequena vila japonesa começa a sofrer mortes misteriosas após a chegada de uma família estranha.

Personagens

  • Toshio Ozaki

  • Natsuno Yuuki

  • Sunako Kirishiki

  • Seishin Muroi

Diferencial

Transforma uma história de vampiros em uma reflexão brutal sobre humanidade.


3. Summertime Rendering

☕💣 O Sistema Reinicia Após Cada Falha Fatal

Título Original: Summer Time Rendering

Lançamento: 2022

Sinopse

Shinpei retorna à sua ilha natal para um funeral e descobre que uma conspiração sobrenatural ameaça toda a população.

Personagens

  • Shinpei Ajiro

  • Ushio Kofune

  • Mio Kofune

  • Hizuru Minakata

Diferencial

Mistura Another, Steins;Gate e horror cósmico.


4. Corpse Party

☕💣 O Dataset do Inferno Foi Restaurado

Título Original: Corpse Party: Tortured Souls

Lançamento: 2013

Sinopse

Um ritual escolar leva um grupo de estudantes para uma dimensão amaldiçoada.

Personagens

  • Satoshi Mochida

  • Naomi Nakashima

  • Ayumi Shinozaki

  • Yoshiki Kishinuma

Diferencial

Extremamente sombrio e perturbador.


5. Ghost Hunt

☕💣 A Equipe de Suporte Paranormal Entrou em Produção

Título Original: Ghost Hunt

Lançamento: 2006

Sinopse

Uma equipe especializada investiga fenômenos sobrenaturais em diversos locais assombrados.

Personagens

  • Mai Taniyama

  • Kazuya Shibuya

  • Houshou Takigawa

  • Ayako Matsuzaki

Diferencial

Mistério e investigação acima do terror explícito.


6. Tasogare Otome x Amnesia

☕💣 O Registro Excluído Continua Acessando o Sistema

Título Original: Tasogare Otome x Amnesia

Lançamento: 2012

Sinopse

Um estudante descobre o fantasma de uma garota que morreu décadas antes em sua escola.

Personagens

  • Teiichi Niiya

  • Yuuko Kanoe

  • Kirie Kanoe

  • Momoe Okonogi

Diferencial

Mistura romance, drama e horror sobrenatural.


7. Erased

☕💣 O Operador Voltou ao Backup do Passado

Título Original: Boku dake ga Inai Machi

Lançamento: 2016

Sinopse

Um homem retorna ao passado para impedir uma série de assassinatos.

Personagens

  • Satoru Fujinuma

  • Kayo Hinazuki

  • Sachiko Fujinuma

Diferencial

Suspense psicológico extremamente bem construído.


8. Dark Gathering

☕💣 O Catálogo de Fantasmas Está Corrompido

Título Original: Dark Gathering

Lançamento: 2023

Sinopse

Uma garota com poderes espirituais caça entidades sobrenaturais extremamente perigosas.

Personagens

  • Yayoi Houzuki

  • Keitaro Gentoga

  • Eiko Houzuki

Diferencial

Combina horror moderno com lendas japonesas.


9. Shinsekai Yori

☕💣 O Sistema Operacional da Humanidade Está Comprometido

Título Original: Shinsekai Yori

Lançamento: 2012

Sinopse

Mil anos no futuro, jovens descobrem os segredos obscuros da sociedade em que vivem.

Personagens

  • Saki Watanabe

  • Satoru Asahina

  • Maria Akizuki

  • Shun Aonuma

Diferencial

Um dos maiores mistérios da história dos animes.


10. Boogiepop wa Warawanai

☕💣 Existe um Processo Invisível Executando em Background

Título Original: Boogiepop wa Warawanai

Lançamento: 2019

Sinopse

Eventos sobrenaturais começam a afetar estudantes de uma escola aparentemente comum.

Personagens

  • Boogiepop

  • Touka Miyashita

  • Nagi Kirima

  • Suema Kazuko

Diferencial

Narrativa fragmentada e extremamente inteligente.


Veredito Final do Operador

Se Another fosse o sistema principal, estes dez animes seriam os subsistemas conectados à mesma rede sobrenatural.

Compatibilidade com fãs de Another

🥇 Higurashi no Naku Koro ni
🥈 Shiki
🥉 Summertime Rendering
🏅 Corpse Party
🏅 Ghost Hunt
🏅 Tasogare Otome x Amnesia
🏅 Erased
🏅 Dark Gathering
🏅 Shinsekai Yori
🏅 Boogiepop wa Warawanai

Todos compartilham aquilo que tornou Another inesquecível:

Uma verdade escondida. Um erro impossível de ignorar. E a certeza de que, quando o operador finalmente descobrir a causa do problema, talvez já seja tarde demais para salvar o sistema. ☕💣👁️📼


domingo, 1 de outubro de 2023

JCL: Gerenciamento de Datasets de Saída no Mainframe

 

Bellacosa Mainframe JCL e seus datasets

JCL: Gerenciamento de Datasets de Saída no Mainframe

Se você já passou algum tempo no mainframe, sabe que o JCL (Job Control Language) é a espinha dorsal da execução de programas e da manipulação de dados. Uma das tarefas mais comuns é criar e controlar datasets de saída. Mas, se você não prestar atenção aos detalhes de DISP, UNIT, VOL e PATHOPTS, seu job pode falhar ou produzir resultados inesperados. Vamos destrinchar o assunto, passo a passo, no estilo Bellacosa Mainframe.


1️⃣ Nomeando e Criando Datasets

Datasets Permanentes

Para criar datasets permanentes em DASD (disco) ou fitas, usamos o parâmetro DSN para indicar o nome:

  • Qualificado: PROD.DAILY.RLSREP → inclui HLQ (High-Level Qualifier).

  • Não qualificado: MYDATA → nome simples de 1 a 8 caracteres.

  • Geração (GDS): PROD.DAILY.RLSREP(+1) → cria uma nova geração sem sobrescrever a anterior.

Datasets Temporários

  • Começam com &&, ex.: &&TEMP1

  • São criados automaticamente pelo sistema se nenhum DSN for informado.

  • Podem ser passados para outros steps usando DISP=(NEW,PASS).


2️⃣ Disposição do Dataset (DISP)

O parâmetro DISP controla o status e destino do dataset, e é crucial para evitar sobrescrita indesejada.

Tipo de datasetExemplo DISPSignificado
Novo datasetDISP=(NEW,CATLG,DELETE)Cria o dataset; mantém se sucesso; deleta se falha
Dataset existenteDISP=(OLD,KEEP,KEEP)Abre exclusivo; mantém independentemente do resultado
Acrescentando dadosDISP=(MOD,KEEP,KEEP)Acrescenta no final do dataset existente
IgnoradoDISP=DUMMY ou DSN=NULLFILEPara steps que não precisam de saída real

⚠️ Atenção: +0 não cria dataset novo; +1 sim. E nunca confunda OLD com MOD — o primeiro sobrescreve, o segundo acrescenta.


3️⃣ Definindo o Local de Armazenamento (UNIT e VOL)

UNIT

Define o tipo de dispositivo ou grupo:

  • SYSDA → disco genérico

  • 3390 → dispositivo específico

  • TAPE ou CART → fitas

Se você não especificar, o sistema pode usar defaults definidos pelo administrador.

VOL

Define o volume específico:

  • VOL=SER=T44489 → fita específica

  • Permite referback em steps subsequentes

  • Se o volume não estiver disponível, o operador recebe uma mensagem solicitando ação

Exemplo de dataset em fita específica:

//OUTDD DD DSN=OUT.OFFSITE.DATA, DISP=(NEW,CATLG,DELETE), UNIT=CART, VOL=SER=T44489

4️⃣ Parâmetros de z/OS UNIX Files

Para arquivos UNIX no z/OS, usamos:

ParâmetroFunção
PATHCaminho completo do arquivo
PATHOPTSTipo de acesso (read/write, exclusivo, criar)
PATHMODEPermissões (leitura, escrita, execução para user/group/other)
PATHDISPAção após execução (KEEP, DELETE)

Exemplo:

//DD1 DD PATH='/u/ibmuser/stktake', PATHOPTS=(OWRONLY,OEXCL,OCREAT), PATHMODE=(SIRWXU,SIRGRP), PATHDISP=(KEEP,DELETE)

5️⃣ Erros Comuns e Como Evitar

ErroCausaSolução
IEF210I – Incorrect UNITUNIT inválido (DISK em vez de SYSDA)Usar unidade válida: SYSDA
IEF253I – Duplicate Name on VolumeTentativa de criar dataset que já existe no volumeUse outro nome ou +1 para nova geração
VOL não disponívelVolume específico não presenteOperador recebe mensagem; deve escolher ação
DISP incompletoEsquecer subparâmetrosSempre usar os 3 subparâmetros: (NEW,CATLG,DELETE)

6️⃣ Exemplo de Criação de Dataset

Dataset em disco genérico 3390

//TESTDD DD DSN=MY.TEST.DATA, DISP=(NEW,CATLG,DELETE), UNIT=3390, SPACE=(TRK,(10,5),RLSE)

Dataset em fita específica para envio offsite

//OUTDD DD DSN=OUT.OFFSITE.DATA, DISP=(NEW,CATLG,DELETE), UNIT=CART, VOL=SER=T44489

Resumo Final

  • DSN → nome do dataset

  • DISP → controla status e destino (NEW, OLD, MOD, KEEP, DELETE)

  • UNIT → define dispositivo ou grupo

  • VOL → fita ou volume específico

  • SPACE/DCB → quantidade de espaço e atributos de formato

  • z/OS UNIX → use PATH, PATHOPTS, PATHMODE, PATHDISP

Seguindo essas práticas, você garante que seus jobs criem datasets corretamente, evitem sobrescrita acidental, respeitem volumes específicos e funcionem tanto em discos quanto fitas.


💡 Dica Bellacosa:
Sempre revise DISP, UNIT e VOL antes de submeter o job. Uma simples confusão entre OLD, MOD e NEW ou entre SYSDA e 3390 pode gerar horas de troubleshooting.

sábado, 30 de setembro de 2023

🔥 JCL no z/OS 3.1 — o clássico definitivo no mainframe pós-híbrido

 

Bellacosa Mainframe apresenta JCL V3.1 Job Control Language

🔥 JCL no z/OS 3.1 — o clássico definitivo no mainframe pós-híbrido

 


📅 Datas importantes

  • Release (GA): setembro de 2023

  • Final de suporte IBM (EoS): 30 de setembro de 2028

O z/OS 3.1 inaugura a era sem versão “R”.
Não é V2Rx. É z/OS 3.x.
E o JCL? Continua lá, firme, como sempre.


🧬 Contexto histórico

O z/OS 3.1 nasce num momento simbólico:

  • Mainframe totalmente integrado ao mundo digital

  • Cloud híbrida consolidada

  • APIs e eventos como padrão

  • Observabilidade, automação, segurança contínua

  • Batch tratado como serviço corporativo crítico

E no centro disso tudo…

👉 o JCL segue intocado, provando que boa arquitetura não precisa ser reescrita.

Bellacosa resumiria assim:

“Mudou o número da versão.
O JCL nem piscou.”


JCL V3.1 Job Control Language

✨ O que há de novo no JCL no z/OS 3.1

Aqui está a verdade nua e crua:

❌ Não existe “novo JCL”
✅ Existe um JCL mais estratégico do que nunca

🆕 1. JCL como API operacional invisível

No z/OS 3.1:

  • Jobs são acionados por:

    • APIs REST

    • eventos

    • pipelines CI/CD

    • schedulers corporativos

  • O JCL vira o contrato final entre:

    • mundo distribuído

    • core transacional

👉 O job é o endpoint que não falha.


🆕 2. JES2 no nível máximo de maturidade

  • Escala absurda de jobs simultâneos

  • Spool altamente estável

  • Restart e recovery previsíveis

  • Integração total com automação e observabilidade

O operador deixou de “apagar incêndio”.
Agora ele governa processos.


🆕 3. DFSMS totalmente orientado a políticas

  • Storage praticamente autônomo

  • Menos parâmetros manuais no JCL

  • Datasets gigantes tratados naturalmente

  • Menos erro humano, mais inteligência sistêmica

O JCL fica mais limpo porque o sistema ficou mais esperto.


🔧 Melhorias percebidas no dia a dia

✔ Batch tratado como serviço 24x7
✔ Menos JCL “cheio de gambiarra”
✔ Menos tuning artesanal
✔ Mais padronização
✔ JCL versionado, auditado e governado

Nada mudou na sintaxe.
Tudo mudou na importância estratégica.


🥚 Easter Eggs (para mainframer raiz)

  • 🥚 JCL escrito nos anos 70 ainda roda no z/OS 3.1

  • 🥚 IEFBR14 segue vivo (e seguirá)

  • 🥚 Comentários em JCL mais antigos que o termo “cloud” 😅

  • 🥚 O erro campeão continua sendo:

    • RC ignorado

    • DISP mal planejado

    • dataset em uso em produção

👉 Mudam as gerações. O erro humano permanece.


💡 Dicas Bellacosa para JCL no z/OS 3.1

🔹 Trate JCL como ativo estratégico
🔹 Pense no job como serviço corporativo
🔹 Versione JCL como código
🔹 Use padrões claros de nomenclatura
🔹 Documente o porquê, não só o como

🔹 Sempre:

  • IF / THEN / ELSE

  • RC explícito

  • SYSOUT claro

  • comentários pensando em 10+ anos

️

Esse JCL vai sobreviver a você.
Escreva com respeito.


📈 Evolução do JCL até o z/OS 3.1

EraPapel do JCL
OS/360Controle batch
MVSAutomação
OS/390Base corporativa
z/OS V1.xOrquestração total
z/OS V2.xMundo híbrido
z/OS 3.1Fundação do core digital

👉 No z/OS 3.1, o JCL deixa de ser “legacy” oficialmente.
Ele vira infraestrutura histórica viva.


📜 Exemplo de JCL “cara de z/OS 3.1”

//BELL31 JOB (ACCT),'JCL z/OS 3.1', // CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //* //* JOB EXPOTO COMO SERVIÇO CORPORATIVO //* DISPARADO POR API, EVENTO OU SCHEDULER //* //STEP01 EXEC PGM=COREBATCH //STEPLIB DD DSN=BELLACOSA.LOADLIB,DISP=SHR //SYSOUT DD SYSOUT=* //* //IF (STEP01.RC = 0) THEN //STEP02 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE BELLACOSA.WORK.DATA SET MAXCC = 0 /* //ENDIF

💬 Comentário Bellacosa:

“Esse job pode ser chamado por um operador,
por um pipeline ou por uma API.
Ele não precisa saber. Ele só precisa entregar.”


🧠 Comentário final

O JCL no z/OS 3.1 é a prova definitiva de uma verdade que só mainframer entende:

🔥 Confiabilidade não se reescreve.
Ela se herda.

Enquanto o mundo corre atrás da próxima abstração,
o JCL continua garantindo que:

  • o banco feche

  • o governo processe

  • a indústria funcione

JCL não é passado.
JCL é a espinha dorsal silenciosa do presente e do futuro.

sexta-feira, 29 de setembro de 2023

☕💣🧟 O IPL DO APOCALIPSE — QUANDO OS ZUMBIS INVADIRAM O DATACENTER DOS ANIMES E NUNCA MAIS DERAM LOGOFF

 

Bellacosa Mainframe apresente animes de apocalipse zombie

☕💣🧟 O IPL DO APOCALIPSE — QUANDO OS ZUMBIS INVADIRAM O DATACENTER DOS ANIMES E NUNCA MAIS DERAM LOGOFF

Existe uma pergunta curiosa que pouca gente faz:

Qual foi o primeiro anime de zumbis da história?

Hoje, quando pensamos em mortos-vivos nos animes, lembramos imediatamente de Highschool of the Dead, Zom 100, Shiki ou Kabaneri. Mas a verdade é que o gênero já caminhava pelos corredores escuros da animação japonesa muito antes dos surtos modernos.

Pegue seu café, ajuste o console e venha comigo fazer um IPL no sistema dos mortos-vivos dos animes.


🧟 O PRIMEIRO JOB ZUMBI DA HISTÓRIA DOS ANIMES

Tecnicamente, o primeiro anime totalmente centrado em mortos-vivos costuma ser associado a produções OVA obscuras dos anos 1980.

Mas quando falamos de uma obra que realmente explora o conceito de reanimação de cadáveres em larga escala, um dos melhores exemplos históricos é:

🧟 The Empire of Corpses (Shisha no Teikoku)

Ano: 2015

A história imagina um mundo alternativo onde a humanidade descobriu como reanimar cadáveres para trabalhar.

Sim.

Exatamente como muitos gestores sonham fazer durante períodos de corte de orçamento.

Os mortos realizam trabalhos braçais, operam equipamentos e sustentam parte da economia global.

É praticamente um ambiente corporativo onde o RH resolveu substituir pessoas por processos batch ambulantes.


☕ O QUE É UM ZUMBI PARA UM ANALISTA DE PRODUÇÃO?

No cinema, um zumbi é um morto que voltou.

No mainframe, um zumbi é algo ainda mais assustador:

  • JOB que terminou mas continua consumindo recurso

  • Tarefa órfã

  • Processo sem dono

  • Dataset abandonado

  • Aplicação sem documentação

  • Sistema legado que ninguém sabe quem criou

Todo datacenter possui seus mortos-vivos.

Alguns atendem pelo nome de:

  • COBOL de 1978

  • CLIST misterioso

  • PROC compartilhada

  • Batch crítico sem fonte

São entidades que continuam funcionando décadas após a morte de seus criadores.


🏆 TOP 10 ANIMES DE ZUMBIS E MORTOS-VIVOS

1️⃣ Highschool of the Dead (2010)

O clássico moderno.

Um vírus transforma a população em mortos-vivos enquanto estudantes tentam sobreviver.

Personagem principal

  • Takashi Komuro

Temporadas

  • 1

Episódios

  • 12 + OVA

Classificação

  • +17

Easter Egg

Kohta Hirano é homenagem ao criador de Hellsing.

Visão Bellacosa Mainframe

Imagine um IPL onde metade dos usuários vira tarefa não autorizada.

É exatamente isso.


2️⃣ Zom 100: Bucket List of the Dead (2023)

O funcionário descobre que o apocalipse é melhor que seu emprego.

Personagem principal

  • Akira Tendo

Temporadas

  • 1

Episódios

  • 12

Classificação

  • +16

Easter Egg

Diversas referências aos filmes de George Romero.

Visão Mainframe

Quando o sistema cai e você percebe que finalmente pode descansar.


3️⃣ School-Live! (2015)

Garotas sobrevivem isoladas dentro da escola durante um apocalipse.

Personagem principal

  • Yuki Takeya

Temporadas

  • 1

Episódios

  • 12

Classificação

  • +14

Easter Egg

O primeiro episódio esconde a situação real do espectador.

Visão Mainframe

Usuário trabalhando normalmente sem saber que produção caiu há horas.


4️⃣ Kabaneri of the Iron Fortress (2016)

Mistura zumbis, vapor e tecnologia industrial.

Personagem principal

  • Ikoma

Temporadas

  • 1

Episódios

  • 12

Classificação

  • +16

Easter Egg

Produção do mesmo estúdio das primeiras temporadas de Attack on Titan.

Visão Mainframe

Um RACF tentando bloquear usuários infectados.


5️⃣ Sankarea (2012)

Romance entre um garoto obcecado por zumbis e uma garota morta-viva.

Personagem principal

  • Chihiro Furuya

Temporadas

  • 1

Episódios

  • 12

Classificação

  • +16

Visão Mainframe

O primeiro caso documentado de amor entre um programador e um sistema legado.


6️⃣ Is This a Zombie? (2011)

Comédia sobrenatural completamente caótica.

Personagem principal

  • Ayumu Aikawa

Temporadas

  • 2

Episódios

  • 22

Classificação

  • +16

Visão Mainframe

O equivalente a colocar CICS, DB2, IMS e Java na mesma PROC e esperar estabilidade.


7️⃣ Zombie Land Saga (2018)

Idols ressuscitadas para salvar uma província japonesa.

Personagem principal

  • Sakura Minamoto

Temporadas

  • 2

Episódios

  • 24

Classificação

  • +12

Visão Mainframe

Projeto cancelado voltando para produção porque alguém encontrou orçamento.


8️⃣ Gungrave (2003)

Máfia, vingança e reanimação biotecnológica.

Personagem principal

  • Brandon Heat

Temporadas

  • 1

Episódios

  • 26

Classificação

  • +16

Visão Mainframe

Programa removido que retorna após um restore não autorizado.


9️⃣ Hellsing Ultimate (2006)

Vampiros, monstros e exércitos de mortos-vivos.

Personagem principal

  • Alucard

Episódios

  • 10 OVA

Classificação

  • +18

Easter Egg

Alucard = Dracula ao contrário.

Visão Mainframe

Quando o operador percebe que o problema não era o JOB.

Era algo muito pior.


🔟 Shiki (2010)

Uma das obras mais perturbadoras do gênero.

Personagem principal

  • Toshio Ozaki

Temporadas

  • 1

Episódios

  • 22 + especiais

Classificação

  • +17

Easter Egg

Inspirado parcialmente em Salem's Lot de Stephen King.

Visão Mainframe

Um incidente que começa pequeno e termina derrubando toda a infraestrutura.


☕💣 CONCLUSÃO

Os zumbis sempre foram uma metáfora poderosa.

No cinema, representam pandemias.

Na literatura, representam decadência social.

Nos animes, representam medo, isolamento, sobrevivência e até crítica corporativa.

Mas para quem trabalha com tecnologia, eles lembram outra coisa:

Aqueles sistemas antigos que ninguém entende.

Aquelas aplicações sem documentação.

Aquele programa COBOL criado em 1982 por alguém que já se aposentou há décadas.

Eles continuam lá.

Executando.

Consumindo CPU.

Processando milhões.

Ignorando a passagem do tempo.

Porque no fim das contas...

o verdadeiro apocalipse zumbi não acontece nas ruas.

Ele acontece quando você descobre que o sistema mais crítico da empresa é mantido por um JOB que ninguém sabe como nasceu, mas que continua vivo desde o último IPL. ☕🧟💣🖥️


quinta-feira, 28 de setembro de 2023

☕🔥 ISEKAI ALÉM DO HYPE — SOBREVIVÊNCIA, MMO, TRAUMA E EVOLUÇÃO DIGITAL

 

Bellacosa Mainframe e animes isekai além do obvio

☕🔥 ISEKAI ALÉM DO HYPE — SOBREVIVÊNCIA, MMO, TRAUMA E EVOLUÇÃO DIGITAL

UMA ANÁLISE NO ESTILO BELLACOSA MAINFRAME

A imagem reúne animes que representam a “segunda geração” do isekai moderno.

Aqui não temos apenas:

  • protagonista overpower,

  • harém,

  • fantasia genérica.

Essas obras exploram:

  • psicologia social,

  • MMORPGs como ecossistemas vivos,

  • solidão digital,

  • identidade virtual,

  • trauma,

  • amadurecimento,

  • e sobrevivência em mundos persistentes.

É quase como observar usuários presos dentro de um “sistema operacional distribuído” onde:

  • guildas viram corporações,

  • economia virtual vira sociedade,

  • e personagens precisam reaprender a existir.


01 — GRIMGAR OF FANTASY AND ASH

Título original

灰と幻想のグリムガル
(Hai to Gensou no Grimgar)

Studio

  • A-1 Pictures

Autor

  • Ao Jyumonji

Lançamento

  • Novel: 2013

  • Anime: 2016

Gênero

  • Isekai

  • Drama

  • Fantasia

  • Sobrevivência

Classificação

  • +16


O ISEKAI MAIS REALISTA JÁ FEITO


Sinopse

Jovens acordam em um mundo desconhecido sem memórias e precisam sobreviver como aventureiros de baixo nível.


O diferencial

Diferente de outros isekais:

  • ninguém é forte,

  • ninguém é especial,

  • ninguém domina magia absurda.

Matar um goblin é traumático.


Temática

  • medo,

  • sobrevivência,

  • pobreza,

  • luto,

  • insegurança.


Personagens

Haruhiro

Um líder inseguro tentando manter o grupo unido.

Manato

A “estabilidade emocional” do grupo.


O que torna especial?

O anime parece:

  • melancólico,

  • silencioso,

  • humano.

A trilha sonora e aquarelas criam sensação quase contemplativa.


02 — LOG HORIZON

Título original

ログ・ホライズン

Studio

  • Satelight

  • Studio Deen

Autor

  • Mamare Touno

Lançamento

  • Novel: 2010

  • Anime: 2013

Gênero

  • Isekai

  • MMORPG

  • Estratégia

  • Política

Classificação

  • +14


O “MAINFRAME CORPORATIVO” DOS ISEKAIS


Sinopse

Milhares de jogadores ficam presos dentro do MMORPG Elder Tale.


O diferencial

Enquanto SAO focava ação:
Log Horizon focou:

  • economia,

  • política,

  • administração,

  • diplomacia,

  • engenharia social.


Personagem central

Shiroe

Talvez o estrategista mais “mainframe” dos animes.

Ele vence usando:

  • lógica,

  • arquitetura social,

  • análise de sistemas.


Temática

  • Organização social

  • Economia virtual

  • Sociedade digital

  • Governança


O que torna único?

É praticamente:

“ITIL + COBOL + MMORPG.”

Tudo depende de processos, organização e gestão.


03 — ARIFURETA

Título original

ありふれた職業で世界最強

Studio

  • White Fox

  • Asread

Autor

  • Ryo Shirakome

Lançamento

  • Novel: 2013

  • Anime: 2019

Gênero

  • Isekai

  • Dark Fantasy

  • Ação

Classificação

  • +16


Sinopse

Hajime é traído e abandonado em um abismo mortal, precisando sobreviver sozinho.


O COLAPSO PSICOLÓGICO DO HERÓI


Temática

  • traição,

  • sobrevivência extrema,

  • perda da inocência,

  • transformação emocional.


O diferencial

Hajime literalmente:

  • abandona humanidade emocional,

  • vira pragmático,

  • quase monstruoso.


04 — CAUTIOUS HERO

Título original

慎重勇者

Studio

  • White Fox

Autor

  • Light Tuchihi

Lançamento

  • 2019

Gênero

  • Comédia

  • Isekai

  • Paródia

Classificação

  • +14


O ISEKAI DA PARANOIA OPERACIONAL


Sinopse

Um herói absurdamente poderoso é invocado… mas exageradamente paranoico.


O diferencial

O anime brinca com:

  • preparação extrema,

  • obsessão por segurança,

  • redundância operacional.


No estilo Bellacosa Mainframe:

Esse protagonista parece operador de produção mainframe:

  • verifica tudo 20 vezes,

  • prepara contingência,

  • nunca confia no ambiente.


05 — SHANGRI-LA FRONTIER

Título original

シャングリラ・フロンティア

Studio

  • C2C

Autor

  • Katarina

Lançamento

  • Mangá: 2020

  • Anime: 2023

Gênero

  • VRMMO

  • Ação

  • Aventura

Classificação

  • +14


O MELHOR ANIME SOBRE GAME DESIGN MODERNO


Sinopse

Rakuro adora jogar “jogos ruins”, mas entra no lendário Shangri-La Frontier.


O diferencial

O anime entende MUITO de:

  • cultura gamer,

  • exploits,

  • meta gameplay,

  • speedrun,

  • mecânicas de MMO.


Temática

  • Imersão digital

  • Competitividade

  • Cultura gamer


06 — THE FARAWAY PALADIN

Título original

最果てのパラディン

Studio

  • Children’s Playground Entertainment

  • OLM

Autor

  • Kanata Yanagino

Lançamento

  • 2021

Gênero

  • Fantasia

  • Isekai

  • Drama

Classificação

  • +14


O ISEKAI MAIS “TOLKIEN” DA LISTA


Sinopse

Um garoto criado por mortos-vivos aprende valores, espiritualidade e heroísmo.


Temática

  • fé,

  • propósito,

  • maturidade,

  • ética,

  • espiritualidade.


O diferencial

É muito mais filosófico e emocional do que focado em fanservice.


07 — INFINITE DENDROGRAM

Título original

インフィニット・デンドログラム

Studio

  • NAZ

Autor

  • Sakon Kaidou

Lançamento

  • Anime: 2020

Gênero

  • VRMMO

  • Sci-Fi

  • Fantasia

Classificação

  • +14


O diferencial

O mundo virtual possui NPCs extremamente humanos.

Isso levanta perguntas sobre:

  • consciência artificial,

  • IA,

  • vida digital.


08 — RECOVERY OF AN MMO JUNKIE

Título original

ネト充のススメ

Studio

  • Signal.MD

Autor

  • Rin Kokuyou

Lançamento

  • 2017

Gênero

  • Romance

  • Slice of Life

  • MMO

Classificação

  • +12


O ANIME MAIS HUMANO DA LISTA


Sinopse

Uma mulher abandona a vida corporativa e encontra conforto em MMORPGs.


Temática

  • burnout,

  • isolamento social,

  • ansiedade,

  • amizade online.


O diferencial

Mostra MMORPG como:

  • refúgio emocional,

  • espaço de reconstrução psicológica.


09 — ACCEL WORLD

Título original

アクセル・ワールド

Studio

  • Sunrise

Autor

  • Reki Kawahara

Lançamento

  • 2012

Gênero

  • Cyberpunk

  • VR

  • Sci-Fi

Classificação

  • +14


O “PROTO-SWORD ART ONLINE” FILOSÓFICO


Sinopse

Haruyuki entra em um sistema de aceleração neural capaz de expandir percepção temporal.


Temática

  • bullying,

  • autoestima,

  • identidade digital,

  • transcendência tecnológica.


O diferencial

Mistura:

  • cyberpunk,

  • psicologia,

  • realidade aumentada,

  • evolução humana.


☕🔥 CONCLUSÃO — O QUE ESSES ISEKAIS REPRESENTAM?

Esses animes mostram uma evolução do gênero.

O isekai deixou de ser apenas:
“personagem overpower em mundo fantasy”.

Agora virou ferramenta para discutir:

  • identidade digital,

  • sociabilidade online,

  • escapismo,

  • trauma emocional,

  • dependência tecnológica,

  • construção de comunidades virtuais.

No fundo, todos fazem a mesma pergunta:

“Se você pudesse reiniciar sua vida em outro sistema… quem realmente se tornaria?”

E talvez seja exatamente por isso que o gênero explodiu na era digital.

Porque milhões de pessoas já vivem parcialmente dentro desses mundos.

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