☕ 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, 14 de maio de 2024

🕵️ Ansible sob a Tutela de Beggarman — Tinker, Tailor, Soldier, Spy e o Segredo de Automatizar sem Confiar em Ninguém

 


☕ Um Café no Bellacosa Mainframe

🕵️ Ansible sob a Tutela de Beggarman — Tinker, Tailor, Soldier, Spy e o Segredo de Automatizar sem Confiar em Ninguém

“Na infraestrutura, como na espionagem, o problema raramente é executar uma ordem. O problema é saber quem deu a ordem, com que autoridade, sobre quais máquinas — e o que acontecerá se ela estiver errada.”

Existe uma tentação perigosa quando conhecemos Ansible pela primeira vez.

Ele parece simples.

Um arquivo YAML, alguns servidores, uma conexão, algumas tarefas e pronto: aquilo que antes exigia entrar máquina por máquina começa a acontecer automaticamente.

É sedutor.

É também exatamente o tipo de situação em que George Smiley provavelmente tiraria os óculos, limparia lentamente as lentes e perguntaria:

— Quem mais tem acesso a isso?

Porque automação não elimina risco.

Automação automatiza o risco também.

E é aqui que nosso café entra numa atmosfera muito diferente.

Hoje não teremos laboratórios luminosos, gurus DevOps sorridentes ou nuvens coloridas ligadas por setinhas. Vamos entrar nos corredores cinzentos de Tinker Tailor Soldier Spy, onde ninguém sabe exatamente em quem confiar, informação vale poder e um detalhe aparentemente insignificante pode denunciar toda uma operação.

Sob a tutela de Beggarman, vamos descobrir que aprender Ansible não significa simplesmente aprender YAML.

Significa aprender a controlar uma máquina capaz de executar suas ordens em dezenas, centenas ou milhares de sistemas.

E isso muda tudo.



🕵️ 1. Tinker, Tailor, Soldier, Spy

Tinker Tailor Soldier Spy nasceu como romance de espionagem de John le Carré, publicado em 1974, e acompanha George Smiley na investigação de um agente soviético infiltrado no alto escalão do serviço secreto britânico.

Posteriormente vieram adaptações, incluindo a célebre minissérie da BBC de 1979 com Alec Guinness e o filme de 2011 dirigido por Tomas Alfredson, com Gary Oldman como Smiley.

O universo criado por le Carré está muito distante do glamour de James Bond.

Não espere:

carros esportivos
martínis
gadgets explosivos
vilões em bases subterrâneas

O verdadeiro campo de batalha é composto por:

informações
credenciais
autorizações
documentos
fontes
cadeias de confiança
compartimentalização

Curiosamente, essa também é uma excelente lista de preocupações para quem administra infraestrutura.

E os codinomes usados na investigação são perfeitos para nossa missão:

Tinker
Tailor
Soldier
Poorman
Beggarman

Beggarman é a peça que nos interessa.

Porque nossa infraestrutura também precisa descobrir:

quem pode fazer o quê?



🎯 2. A primeira missão: entender o que é Ansible

Imagine uma empresa com cem servidores.

Sem automação, um administrador poderia precisar conectar-se individualmente:

server01
server02
server03
...
server100

Executar comandos.

Copiar arquivos.

Alterar configurações.

Instalar software.

Reiniciar serviços.

Agora imagine fazer tudo novamente no mês seguinte.

E novamente.

E novamente.

É assim que pequenas diferenças começam a surgir.

No servidor 17 alguém esqueceu uma configuração.

No servidor 32 existe uma versão diferente.

No 48 um parâmetro foi digitado errado.

No 73 alguém resolveu “melhorar” alguma coisa.

Temos então o inimigo silencioso:

configuration drift.

Os servidores que deveriam ser iguais lentamente deixam de ser iguais.

Ansible entra justamente nesse cenário.

Em sua forma conceitual mais simples:

                 CONTROL NODE
                       |
                    ANSIBLE
                       |
                      SSH
                       |
          +------------+------------+
          |            |            |
       SERVER A     SERVER B     SERVER C

O operador escreve o que deseja.

Ansible executa essa automação nos sistemas apropriados.

Mas Beggarman imediatamente faria uma pergunta:

Quais são os sistemas apropriados?

Excelente.

Precisamos de um inventário.



📋 3. Inventory — a lista de agentes da operação

Todo serviço de inteligência precisa saber quem está participando da operação.

Ansible também.

Podemos ter:

[webservers]
web01
web02
web03

[databases]
db01
db02

[production]
prod01
prod02

Isso é o inventory.

Ele diz ao Ansible quais hosts existem e permite organizá-los em grupos.

Pense nele como nosso dossier operacional.

Podemos separar:

DEV
TEST
UAT
PROD

Ou:

WEB
APPLICATION
DATABASE
MONITORING

E aqui aparece uma regra Bellacosa Mainframe extremamente importante:

Nunca trate produção como simplesmente “mais um servidor”.

Produção é uma fronteira administrativa.

A existência de grupos permite limitar o alcance de uma operação.

E isso nos apresenta um conceito que Beggarman conhece muito bem:

blast radius.

Se eu errar, quantas máquinas consigo destruir?

Uma?

Dez?

Mil?

Automação multiplica produtividade.

Consequentemente, também pode multiplicar um erro.


📡 4. Ad hoc — uma mensagem rápida do Circus

Ansible permite comandos rápidos.

Por exemplo:

ansible all -m ping

Isso testa a capacidade do Ansible de alcançar os hosts e executar o módulo correspondente.

Podemos consultar uptime:

ansible web -m command -a "uptime"

São os chamados ad hoc commands.

Fantásticos para:

diagnóstico
verificação
testes
operações pontuais
troubleshooting

Mas existe um problema.

Imagine um agente recebendo uma ordem verbal:

“Vá até lá e faça isso.”

Funcionou.

Três meses depois alguém pergunta:

Quem mandou?

Qual era exatamente o comando?

Por que foi executado?

Podemos repetir?

Talvez ninguém saiba.

É exatamente por isso que operações repetíveis deveriam evoluir para playbooks.


📖 5. Playbook — o plano da operação

Um playbook descreve a automação.

Exemplo:

- name: Configurar servidores web
  hosts: webservers
  become: true

  tasks:

    - name: Instalar nginx
      ansible.builtin.package:
        name: nginx
        state: present

    - name: Iniciar nginx
      ansible.builtin.service:
        name: nginx
        state: started
        enabled: true

Observe algo interessante.

Não escrevemos simplesmente:

execute apt
execute systemctl
execute outro comando

Estamos descrevendo estados:

nginx deve existir
nginx deve estar iniciado
nginx deve estar habilitado

É uma diferença aparentemente pequena.

Conceitualmente, é gigantesca.


♻️ 6. Idempotência — Beggarman executa a mesma ordem duas vezes

Chegamos talvez ao conceito mais importante desta conversa.

Imagine executar o playbook.

Primeira vez:

TASK Install nginx
changed

TASK Start nginx
changed

Execute novamente.

TASK Install nginx
ok

TASK Start nginx
ok

Por quê?

Porque o estado desejado já existe.

Esse é o coração da idempotência.

De forma simplificada:

executar novamente uma automação idempotente não deveria produzir mudanças desnecessárias quando o sistema já está no estado desejado.

Para quem vem de COBOL e batch, isso deveria imediatamente acender uma luz vermelha.

Imagine:

JOB
 |
STEP01
 |
STEP02
 |
STEP03
 |
ABEND

Agora são 03:17.

Sim, meu caro leitor.

Você encontrou o easter egg.

☎️ O telefone toca.

Alguém pergunta:

“Pode dar rerun?”

E essa pequena frase pode significar quinze minutos ou cinco horas de investigação.

STEP01 pode executar novamente?

Vai duplicar registros?

STEP02 já atualizou alguma tabela?

Há checkpoint?

Existe restart?

O processamento é recuperável?

É por isso que um mainframer consegue compreender intuitivamente por que idempotência é tão importante.

O problema não é apenas:

“funciona?”

É:

“posso executar novamente com segurança?”

Essa é uma pergunta muito mais madura.


🧱 7. Modules — nossos agentes especializados

Ansible possui módulos para operações específicas:

package
service
copy
file
template
user
uri
debug

O iniciante frequentemente tenta transformar Ansible em um executor remoto de shell.

Algo como:

shell: apt-get install nginx

Pode funcionar.

Mas um módulo apropriado normalmente expressa melhor a intenção:

ansible.builtin.package:
  name: nginx
  state: present

Observe novamente a diferença.

No primeiro:

execute este comando.

No segundo:

garanta este estado.

É a diferença entre procedimento e intenção operacional.


🧠 8. Variables — ninguém deveria esconder valores dentro da missão

Agora imagine que nosso playbook contém:

porta 8080
servidor X
diretório Y
usuário Z

Tudo escrito diretamente no código.

Funciona até precisarmos de:

DEV
TEST
UAT
PROD

Então começamos a copiar arquivos.

Nasce:

playbook-dev.yml
playbook-test.yml
playbook-uat.yml
playbook-prod.yml

Pouco depois:

playbook-prod-final.yml
playbook-prod-final2.yml
playbook-prod-final-CERTO.yml

E finalmente:

playbook-prod-final-CERTO-NAO-APAGAR.yml

😂

Beggarman desapareceria voluntariamente antes de investigar isso.

A solução são variáveis.

app_name: nginx
port: 80
environment: production

Agora lógica e dados começam a se separar.


🔎 9. Facts — interrogando o próprio servidor

Mais interessante ainda: nem toda informação precisa ser fornecida manualmente.

Ansible pode coletar facts.

Podemos descobrir características do host:

sistema operacional
hostname
endereços
interfaces
memória
arquitetura

Isso permite decisões.

Conceitualmente:

          HOST
           |
        FACTS
           |
      +----+----+
      |         |
    RedHat    Debian
      |         |
   tarefa A   tarefa B

Nossa automação deixou de ser uma sequência rígida.

Ela começou a observar o ambiente.


🔀 10. when, loop e register — finalmente aparece lógica

Agora entram condições:

when: feature_enabled == true

Repetições:

loop:
  - nginx
  - git
  - vim

E captura de resultados:

register: disk_output

Para o programador COBOL iniciante, podemos traduzir mentalmente:

when       → IF / EVALUATE
loop       → PERFORM
register   → guardar resultado para decisão posterior

Não são equivalências formais.

São pontes cognitivas.

E pontes são extremamente úteis quando estamos aprendendo algo novo.


📝 11. Templates — uma identidade, muitos disfarces

Beggarman aprovaria Jinja2.

Temos um template:

server {
    listen {{ port }};
    server_name {{ domain }};
}

Para DEV:

port = 8080
domain = dev.example

Para PROD:

port = 443
domain = production.example

Um modelo.

Múltiplas configurações.

Isso elimina dezenas de arquivos quase iguais e reduz divergências acidentais.

É uma ideia antiga e poderosa:

separe aquilo que permanece daquilo que varia.


🔔 12. Handlers — não reinicie o serviço sem motivo

Esta é uma das minhas partes favoritas.

Imagine que alteramos uma configuração do nginx.

Então notificamos:

notify: Restart nginx

O handler executará a ação apropriada quando necessário.

Mentalmente:

CONFIGURAÇÃO
      |
    mudou?
    /    \
  NÃO    SIM
   |      |
  fim   HANDLER
          |
       restart

Isso parece trivial até lembrarmos que estamos falando de produção.

Reiniciar serviços indiscriminadamente é criar indisponibilidade porque sim.

Um bom operador pergunta:

mudou alguma coisa?

Depois:

reload resolve?

Somente depois:

preciso realmente de restart?

Automação madura tenta produzir a menor perturbação necessária.

George Smiley chamaria isso de discrição.

Nós chamamos de engenharia.


🔐 13. become — quem autorizou este agente?

Chegamos à parte que deveria fazer todo mainframer prestar atenção.

become: true

Permite executar tarefas utilizando escalada de privilégio conforme o mecanismo configurado.

Mas o verdadeiro assunto não é a keyword.

É:

autoridade.

Quem executa?

Como autentica?

Qual identidade utiliza?

Que privilégios possui?

Durante quanto tempo?

Sobre quais sistemas?

Para executar quais tarefas?

Quem audita?

De repente, alguém que trabalha com RACF começa a sorrir.

Porque o mundo distribuído descobriu uma velha verdade:

identidade sem controle de autorização é uma bomba esperando um operador distraído.

O princípio correto é least privilege.

Não dê root porque é conveniente.

Dê apenas a autoridade necessária.


🗝️ 14. Ansible Vault — há informações que nem Tinker deve conhecer

Passwords.

API keys.

Tokens.

Credenciais.

Certificados e material sensível.

Nunca deveriam ser alegremente colocados num playbook:

password: supersecret123

e depois:

git push

Parabéns.

Você acabou de publicar a chave da sala secreta.

Ansible Vault permite proteger conteúdo sensível criptografando dados que precisam permanecer armazenados.

Mas existe uma sutileza fundamental:

criptografado em repouso não significa protegido durante toda a execução.

Em algum momento o segredo precisa ser utilizado.

Portanto, gestão de segredos envolve muito mais:

armazenamento
acesso
rotação
auditoria
exposição em logs
CI/CD
permissões
revogação

Em ambientes maiores entram secret managers dedicados.

Porque a pergunta nunca deveria ser apenas:

“Está criptografado?”

Deveria ser:

“Quem consegue descriptografar?”

Beggarman certamente faria essa pergunta.


📦 15. Roles — compartimentalização

E chegamos à página que fecha magistralmente o conjunto.

Um playbook cresce.

E cresce.

E cresce.

Até virar aquele velho programa COBOL de 18 mil linhas que ninguém quer alterar porque:

“Tem uma coisa lá no parágrafo 7420 que ninguém sabe para que serve, mas quando tiraram em 2007 fechou a folha errada.”

😎

Ansible possui Roles.

Podemos organizar:

webserver/
├── tasks/
├── handlers/
├── templates/
├── files/
├── defaults/
├── vars/
└── meta/

Então:

                 PLAYBOOK
                    |
       +------------+------------+
       |            |            |
      WEB          DB         MONITORING
       |            |            |
      ROLE         ROLE          ROLE

Isso cria:

modularidade
reutilização
padronização
manutenção
testabilidade
colaboração

E aqui Beggarman finalmente fecha o dossier.

Porque serviços de inteligência conhecem muito bem outro princípio:

compartimentalização.

Cada componente deve possuir responsabilidade claramente definida.


🏛️ 16. O mainframe estava esperando por esta conversa

Agora retire as marcas comerciais.

Esqueça por alguns segundos Linux, nginx, YAML e cloud.

Observe apenas:

automação
procedimentos
parâmetros
condições
reutilização
segurança
autoridade
restart
controle
auditoria
recuperação
padronização

Meu amigo...

isso soa familiar.

Muito familiar.

O mainframe vive há décadas cercado por conceitos semelhantes:

JCL
PROC
symbolic parameters
RACF
scheduler
REXX
CLIST
SMP/E
libraries
change management
restart/recovery

Não significa que Ansible seja “JCL moderno”.

Essa comparação seria tecnicamente pobre.

Mas ambos pertencem a uma longa tradição da computação corporativa:

transformar operações complexas em procedimentos controlados, reproduzíveis e auditáveis.


🧬 17. O mapa mental do programador COBOL

Para quem está chegando agora, eu usaria esta ponte:

MainframeAnsibleIdeia
JOBPlaybookoperação coordenada
PROCRolereutilização
STEPTaskunidade de trabalho
PARM / symbolicVariableparametrização
condiçãowhendecisão
repetiçãoloopprocessamento repetitivo
RCregistered resultresultado utilizado posteriormente
RACFidentidade / becomeautoridade
bibliotecarepositoryconteúdo controlado
restart/recoveryidempotência + tratamentoexecução segura

Mais uma vez:

mapa mental, não equivalência técnica.

Mas funciona maravilhosamente para quebrar a barreira inicial.


🚨 18. O que as páginas não mostram

Agora Beggarman coloca outra pasta sobre a mesa.

Está escrito:

PRODUCTION.

É aí que a brincadeira muda.

Porque não basta saber:

inventory
playbook
task
module
role
vault

Precisamos começar a perguntar:

Quem aprovou?

Quem executou?

Qual versão?

Quais hosts?

Quantos simultaneamente?

Existe dry run?

Existe backup?

Existe rollback?

Como monitoramos?

Como interrompemos?

O que acontece se 37 funcionarem e o 38 falhar?

Podemos continuar?

Podemos rerodar?

Qual é o blast radius?

Essas são perguntas que transformam um estudante de Ansible em alguém capaz de pensar em produção.


💥 19. A verdadeira missão: failure engineering

Imagine:

100 servidores

001 OK
002 OK
003 OK
...
037 OK

038 FAILED

Silêncio.

Agora temos:

039
040
041
...
100

O que fazemos?

Continuamos?

Paramos?

Rollback?

Investigamos?

E o servidor 38?

A operação nele falhou antes ou depois da alteração crítica?

Existe estado intermediário?

Esta é uma verdade importante:

automação não elimina incidentes; muda a velocidade e a escala com que eles podem acontecer.

Um humano talvez configure dez máquinas incorretamente durante uma manhã.

Uma automação pode configurar mil incorretamente antes do café esfriar.

Portanto:

velocidade sem controle não é maturidade.

É apenas velocidade.


🕵️ 20. A lição de Beggarman

No final de Tinker Tailor Soldier Spy, aquilo que importa não é uma perseguição cinematográfica.

É confiança.

Quem possui informação?

Quem controla acesso?

Quem conhece a operação?

Quem pode alterar alguma coisa?

Quem deixou rastros?

Quem está dizendo a verdade?

Curiosamente, são excelentes perguntas para DevSecOps.

Nossa infraestrutura possui seus próprios agentes:

usuários
service accounts
pipelines
APIs
tokens
SSH keys
playbooks
roles
secret managers
automation controllers

Cada um possui determinada capacidade.

Portanto, segurança de automação começa por uma pergunta profundamente simples:

Em quem estamos confiando?

E continua:

Quanto estamos confiando?

Essa segunda pergunta é ainda melhor.


☕ Epílogo — O espião que entrou no datacenter

Imagine Beggarman caminhando lentamente pelo corredor do datacenter.

Luzes piscando.

Ventiladores.

Milhares de processos trabalhando.

Ele observa um Automation Controller capaz de modificar centenas de servidores.

Pergunta:

— Quem pode executar isto?

O engenheiro responde:

— A equipe de infraestrutura.

Beggarman olha novamente.

— Toda a equipe?

Silêncio.

— Bem... sim.

Ele continua:

— E quem pode alterar os playbooks?

— Os desenvolvedores.

— Todos?

Outro silêncio.

— Onde estão as credenciais?

— No pipeline.

— Quem pode alterar o pipeline?

Agora ninguém mais toca no café.

E é justamente aí que percebemos a grande lição desta história.

Ansible não é simplesmente uma ferramenta para executar comandos mais rapidamente.

É uma plataforma capaz de transformar intenção humana em alteração de infraestrutura em escala.

Isso merece disciplina.

Inventories definem onde.

Playbooks definem o quê.

Variables definem com quais valores.

Conditions definem quando.

Modules definem como.

Handlers controlam as consequências das mudanças.

Roles organizam responsabilidades.

Vault ajuda a proteger segredos.

become participa da definição de autoridade.

Idempotência ajuda a garantir que repetir uma ordem não transforme uma operação rotineira numa investigação às 03:17 da manhã.

E Git, revisão, CI/CD, observabilidade, segregação de funções e auditoria ajudam a responder à pergunta que inevitavelmente aparecerá quando alguma coisa der errado:

“Quem mudou o quê, onde, quando, por quê — e podemos colocar tudo de volta?”

Essa pergunta não nasceu com DevOps.

Não nasceu com cloud.

Muito menos com YAML.

Mainframes já conviviam com versões dela quando muitos dos atuais engenheiros ainda nem haviam nascido.

Talvez seja essa a maior ironia de nossa missão.

Depois de décadas distribuindo processamento, criando milhares de servidores, microsserviços, containers, clouds e APIs, a indústria começou novamente a procurar desesperadamente por:

controle, padronização, segurança, repetibilidade e previsibilidade.

Em algum lugar, dentro de uma sala refrigerada, um velho mainframe continua processando tranquilamente seus JOBs.

Beggarman fecha a pasta.

Olha para nós.

E talvez diga apenas:

“Automatize tudo o que puder. Mas nunca automatize aquilo que você ainda não entende.”

Um Café no Bellacosa Mainframe

Porque em produção, como no Circus, confiança nunca deveria ser implícita.

segunda-feira, 13 de maio de 2024

🏜️ System Design e a Joia do Nilo — Arquitetura sob a tutela de Jack Colton

 

Bellacosa Mainframe apresenta o System Design

☕ Um Café no Bellacosa Mainframe

🏜️ System Design e a Joia do Nilo — Arquitetura sob a tutela de Jack Colton

Ou: quando você descobre que escalar um sistema é muito parecido com atravessar o deserto — o mapa ajuda, o veículo ajuda, mas aquilo que realmente decide se você chega vivo é saber improvisar quando o plano inevitavelmente dá errado.

Se existe um personagem capaz de ensinar System Design sem abrir um livro de arquitetura, Jack Colton é um candidato maravilhoso.

Em A Joia do Nilo, continuação de Tudo por uma Esmeralda, Jack continua sendo aquele sujeito que parece viver segundo uma arquitetura extremamente simples:

IF problema = TRUE
   IMPROVISE
   CORRA
   SOBREVIVA
   CONTINUE
END-IF

Não existe Kubernetes no deserto.

Não existe autoscaling automático para camelos.

Não existe botão de rollback quando você tomou a estrada errada.

E definitivamente não existe ServiceNow para abrir um chamado:

INC0000317 — Usuário perseguido no deserto. Severidade 1.

😂

Mas existe algo muito importante:

trade-off.

E System Design é essencialmente a arte de administrar trade-offs.




🏜️ 1. Jack Colton olha para requisitos, não para propaganda

Imagine alguém dizendo:

“Jack, encontrei o veículo mais rápido do mundo!”

Ele provavelmente perguntaria:

“Ótimo. Ele anda no deserto?”

Essa é exatamente a pergunta que falta em muitos projetos.

O mercado apresenta uma tecnologia fantástica:

Kafka!

Kubernetes!

Redis!

MongoDB!

Serverless!

Microservices!

AI Agents!

E alguém imediatamente conclui:

PRECISAMOS DISSO!

Jack Colton provavelmente colocaria os óculos escuros e perguntaria:

“Para quê?”

Essa pequena pergunta poderia economizar milhões em projetos de TI.

Tecnologia não é requisito.

Antes de escolher a solução precisamos conhecer o problema.



🗺️ 2. Antes de atravessar o deserto, descubra onde você está

System Design começa pelos requisitos.

Imagine:

USUÁRIOS ATUAIS        100
USUÁRIOS FUTUROS     10.000
PICO                  50 TPS
LATÊNCIA DESEJADA    < 500 ms
DISPONIBILIDADE       99,9%
DADOS                 500 GB
CRESCIMENTO           20% / ano

Isso começa a dizer alguma coisa.

Agora compare com:

USUÁRIOS          50 milhões
PICO              500.000 TPS
DISPONIBILIDADE   99,999%
DADOS             Petabytes
OPERAÇÃO          Global

São desertos completamente diferentes.

Projetar ambos da mesma maneira seria como escolher o mesmo veículo para atravessar Manhattan e o Saara.



🚙 3. Load Balancer — Jack não colocaria todo mundo no mesmo jipe

Imagine 10.000 requisições chegando simultaneamente.

Temos:

             USERS
               |
               v
        +--------------+
        | LOAD BALANCER|
        +--------------+
          /     |     \
         v      v      v
       APP1   APP2   APP3

O Load Balancer distribui o tráfego.

Parece perfeito.

Mas Jack perguntaria:

“E se o Load Balancer quebrar?”

Excelente.

Criamos três servidores extremamente resistentes...

e colocamos todos atrás de um único componente.

Temos agora um:

Single Point of Failure.

É como possuir dez veículos de fuga e guardar todas as chaves no bolso do mesmo sujeito.


🐪 4. Autoscaling — mais camelos não resolvem falta de água

Essa talvez seja uma das melhores analogias para arquitetura moderna.

Seu servidor chegou a 90% de CPU?

Adicionamos instâncias.

         TRAFFIC
            |
            v
      LOAD BALANCER
       / / / | \ \ \
      v v v  v  v v v
     APP APP APP APP APP
              |
              v
           DATABASE

Excelente!

Só existe um pequeno detalhe.

Todas estão acessando o mesmo banco.

Resultado:

DATABASE
CPU 100%
CONNECTIONS 100%
I/O 100%

STATUS:

       🔥

Escalamos o frontend.

E transformamos o banco em gargalo.

Jack Colton provavelmente resumiria:

Mais camelos não criam mais água.


🧊 5. Cache — a cantina que Jack encontrou ontem

Você atravessa uma cidade e encontra água.

Jack marca no mapa:

Água aqui.

No dia seguinte ele passa novamente.

Excelente.

Não precisamos procurar outra vez.

Isso é praticamente cache.

REQUEST
   |
   v
 CACHE ---- HIT ----> RESPONSE
   |
  MISS
   |
   v
DATABASE

O problema aparece quando alguém fecha a cantina.

O mapa continua dizendo:

Água aqui.

Mas a informação ficou velha.

Temos um stale cache.

Por isso uma das frases mais famosas da computação continua sendo verdadeira:

Existem problemas particularmente difíceis relacionados à invalidação de cache.

Porque cache não significa apenas armazenar informação.

Significa decidir:

quando confiar nela.


🏘️ 6. CDN — coloque suprimentos próximos de quem precisa

Imagine que toda vez que Jack quisesse água no Egito alguém precisasse buscá-la no Brasil.

Funcionaria?

Tecnicamente, sim.

Seria eficiente?

Nem um pouco.

CDNs aproximam determinados conteúdos dos usuários.

Em vez de:

São Paulo
    |
    |
    |
    |
    +-----------------------> Tokyo

podemos distribuir conteúdo por pontos geograficamente próximos.

Resultado:

menos latência, menos tráfego na origem e melhor experiência.

Mas novamente existe trade-off.

Quanto mais cópias distribuímos, mais precisamos pensar em:

sincronização, atualização e invalidação.


📦 7. Queue — Jack não precisa carregar tudo agora

Chegam 100.000 pedidos simultaneamente.

Sem fila:

100.000 REQUESTS
        |
        v
     SERVER
        |
       💥

Com fila:

REQUESTS
   |
   v
+---------+
|  QUEUE  |
+---------+
   |
   v
CONSUMERS

A fila funciona como amortecedor.

Ela absorve bursts.

O produtor pode continuar produzindo enquanto consumidores processam dentro de sua capacidade.

Maravilhoso.

Até aparecer:

QUEUE DEPTH

10
100
1.000
10.000
100.000
1.000.000

Jack olha para aquilo e pergunta:

“Nós estamos processando ou apenas acumulando o problema?”

Bingo.

Isso é backpressure.


🧨 8. Retry — às vezes insistir piora tudo

Imagine Jack tentando abrir uma porta.

Não abriu.

Ele tenta novamente.

Depois novamente.

Depois 500 pessoas começam a chutar a porta simultaneamente.

A porta não fica mais disponível.

Ela provavelmente deixa de existir. 😂

Em sistemas distribuídos acontece algo semelhante.

REQUEST
   |
 TIMEOUT
   |
 RETRY
   |
 TIMEOUT
   |
 RETRY
   |
 RETRY
 RETRY
 RETRY

Temos uma retry storm.

Por isso entram estratégias como:

timeout
exponential backoff
jitter
circuit breaker
retry limits

Resiliência não significa:

tente infinitamente.

Significa:

saiba quando parar.


💾 9. Replication — nunca viaje com a única cópia do mapa

Aqui Jack seria excelente DBA.

Temos:

PRIMARY
   |
   +------ REPLICA 1
   |
   +------ REPLICA 2

Se o primary desaparecer, ainda temos alternativas.

Mas replicação cria uma pergunta interessantíssima:

Quando uma informação muda no primary, quando as réplicas passam a conhecer essa mudança?

Imediatamente?

Depois de alguns milissegundos?

Segundos?

Minutos?

Daí entramos no maravilhoso pântano da:

consistência.

E descobrimos que ter várias cópias é fácil; garantir o comportamento esperado entre elas é a aventura.


🧩 10. Sharding — dividir o mapa

Imagine uma tabela gigantesca.

CUSTOMERS

1
2
3
...
900.000.000

Podemos dividir:

SHARD A
customers 1-300M

SHARD B
customers 300M-600M

SHARD C
customers 600M-900M

Agora distribuímos armazenamento e processamento.

Fantástico.

Até alguém perguntar:

“Quero uma consulta envolvendo clientes dos três shards.”

😐

Jack lentamente guarda o mapa.

Porque novamente:

ganhamos escala e compramos complexidade.


🦖 11. Agora entra o velho dinossauro IBM Z

Aqui a aventura muda completamente.

Enquanto muita arquitetura moderna nasceu tentando descobrir como coordenar milhares de máquinas menores, o mainframe evoluiu durante décadas com uma obsessão diferente:

executar workloads críticos com altíssima disponibilidade, isolamento, gerenciamento e previsibilidade.

Não significa que IBM Z elimina System Design.

Muito pelo contrário.

Temos:

                INTERNET
                    |
                    v
             API MANAGEMENT
                    |
                    v
             z/OS Connect
                    |
          +---------+---------+
          |                   |
          v                   v
        CICS                  MQ
          |                   |
          v                   v
         Db2                CICS
                              |
                              v
                             Db2

Agora aparecem exatamente as perguntas do barco da imagem.

Quanto tráfego?

Qual latência?

Qual TPS?

Qual prioridade?

Qual transação pode esperar?

Qual não pode?

O que ocorre se Db2 estiver degradado?

O que acontece se MQ começar a acumular mensagens?

Qual é nosso recovery?

Como detectaremos o problema?


🎩 12. WLM — o guia da expedição

Aqui encontramos uma das coisas que considero fascinantes no z/OS.

Workload Manager.

Imagine três workloads:

PAGAMENTO PIX
RELATÓRIO GERENCIAL
BATCH ESTATÍSTICO

Todos querem recursos.

Mas eles não possuem a mesma importância.

Se estamos no meio de uma tempestade, Jack Colton não perguntaria:

“Quem pediu água primeiro?”

Ele perguntaria:

“Quem precisa dela para continuarmos vivos?”

Essa é uma excelente forma didática de introduzir WLM.

Service classes, goals e importância ajudam o sistema a administrar recursos considerando objetivos do negócio.


🔭 13. Observability — Jack precisa saber onde estão os inimigos

Temos uma aplicação lenta.

A pior resposta possível:

“Parece ser o mainframe.”

😂

Então vamos investigar.

CLIENT
  |
  | 20 ms
  v
API
  |
  | 40 ms
  v
GATEWAY
  |
  | 30 ms
  v
CICS
  |
  | 2100 ms
  v
DB2

Agora temos evidência.

Observabilidade transforma:

“acho que...”

em:

“está acontecendo aqui.”

Logs dizem o que aconteceu.

Metrics mostram como o sistema está se comportando.

Traces ajudam a mostrar por onde a transação passou.

Alertas dizem:

Jack, temos problema.


🚨 14. Failover — sempre tenha uma rota de fuga

Jack Colton jamais entraria numa fortaleza sem olhar por onde poderia sair.

Arquitetura deveria possuir a mesma paranoia saudável.

Perguntamos:

E SE A API CAIR?

E SE O BANCO CAIR?

E SE UMA REGIÃO CAIR?

E SE A REDE CAIR?

E SE MQ PARAR?

E SE O STORAGE FALHAR?

E SE O OPERADOR ERRAR?

E essa última merece destaque.

Porque componentes falham.

Software possui bugs.

Discos quebram.

Redes desaparecem.

Mas seres humanos também cometem erros.

Por isso arquitetura resiliente não considera somente machine failure.

Considera também human failure.


👨‍💻 15. People + Process + Technology

E chegamos à pequena placa escondida no navio da imagem.

PEOPLE
PROCESS
TECHNOLOGY

Essa talvez seja mais importante do que todas as outras.

Você pode ter:

Kafka
Redis
Kubernetes
OpenShift
MQ
CICS
Db2
WLM
Sysplex
Observability
AI

Mas às 03:17 surge um alerta.

Ninguém sabe quem é responsável.

O runbook está desatualizado.

O telefone do especialista mudou.

A senha emergencial expirou.

A documentação aponta para um servidor aposentado em 2019.

Então temos uma infraestrutura extremamente sofisticada administrada por:

¯\_(ツ)_/¯

🏜️ 16. A maior lição de Jack Colton

Jack não sobrevivia porque possuía sempre o melhor equipamento.

Ele sobrevivia porque conseguia adaptar-se ao ambiente.

Essa é uma belíssima definição de arquitetura resiliente.

Não precisamos construir um sistema incapaz de falhar.

Provavelmente nem conseguiríamos.

Precisamos construir sistemas capazes de:

detectar, absorver, degradar controladamente, recuperar e aprender.

Isso muda completamente a mentalidade.


🥚 Easter egg — A verdadeira Joia do Nilo

Durante todo o artigo estivemos procurando a joia.

Talvez ela estivesse diante de nós desde o início.

Não era:

CACHE

Nem:

QUEUE

Nem:

SHARDING

Nem mesmo:

MAINFRAME

A verdadeira joia era:

TRADE-OFF

Porque cada decisão arquitetural é uma troca.

Performance    ↔ Cost
Consistency    ↔ Availability
Simplicity     ↔ Flexibility
Latency        ↔ Durability
Scale          ↔ Complexity
Automation     ↔ Control

E existe uma última lição que Jack Colton provavelmente escreveria na porta do CPD:

Nunca escolha uma tecnologia apenas porque ela atravessou o deserto de outra pessoa. Descubra primeiro qual é o seu deserto.

☕🏜️💻

No Bellacosa Mainframe, System Design não é desenhar uma arquitetura que pareça bonita quando o mar está calmo.

É olhar para as pedras, tubarões, tempestades, gargalos, hot partitions, latência, falhas em cascata e aquele programa COBOL de 1997 que ninguém quer tocar...

colocar os óculos escuros...

e perguntar:

“Certo. Se tudo isso der errado às 03:17, como continuamos navegando?”

Aí, meu caro aventureiro, começa o verdadeiro System Design.

domingo, 12 de maio de 2024

Major Tom Entra no CPD — Ground Control Descobre que a Inteligência Artificial Não Quer Apenas Responder: Agora Ela Quer Executar o JOB

 
Bellacosa Mainframe e o major Tom explora a IA

Um Café no Bellacosa Mainframe

Major Tom Entra no CPD — Ground Control Descobre que a Inteligência Artificial Não Quer Apenas Responder: Agora Ela Quer Executar o JOB

Ou: como Machine Learning, Deep Learning, Transformers, LLMs, RAG, Function Calling, Memory, AI Agents, Multi-Agent Systems, Observability, Governance, RACF e um programador COBOL iniciante partiram para o espaço — e descobriram que autonomia sem controle é apenas um ABEND viajando em alta velocidade



Prólogo — Ground Control to Major Tom

03:17 da manhã.

Naturalmente.

Há certos acontecimentos que parecem contratualmente obrigados a ocorrer às 03:17.

Incidentes de produção.

Falhas de batch.

Telefonemas do suporte.

SQLCODE -911.

S0C7.

E, aparentemente, revoluções tecnológicas.

Naquela madrugada, o jovem programador COBOL estava sozinho diante do terminal quando uma mensagem apareceu:

GROUND CONTROL TO MAJOR TOM

AI AGENT READY.

GOAL:
ANALYZE PRODUCTION FAILURE

PERMISSION TO PROCEED?

Ele ficou olhando.

Não era exatamente o que esperava encontrar depois de executar seu primeiro programa COBOL.

O velho programador surgiu carregando café.

— Algum problema?

— Instalaram Inteligência Artificial no ambiente.

O velho tomou um gole.

— E?

— Ela quer investigar o incidente.

— Deixe investigar.

— E também quer executar comandos.

O café parou a meio caminho da boca.

— Ah.

Silêncio.

— Então agora temos um problema.



1. Antes de Major Tom existir, alguém precisou inventar o foguete

Quando falamos atualmente em Inteligência Artificial, é muito fácil começar pelos Large Language Models.

Chatbots.

IA generativa.

Agentes.

Mas isso seria como explicar uma missão espacial começando pelo astronauta e ignorando foguetes, motores, sistemas de navegação, telemetria e décadas de engenharia anteriores.

A história começa muito antes.

Artificial Intelligence é o grande guarda-chuva.

Dentro dele encontramos Machine Learning.

Simplificando bastante, Machine Learning permite que computadores construam modelos a partir de dados em vez de depender exclusivamente de regras programadas manualmente.

Imagine que precisamos identificar determinadas transações suspeitas.

Na programação tradicional poderíamos escrever:

IF TRANSACTION-AMOUNT > 10000
   AND COUNTRY-CODE = 'XX'
   AND CUSTOMER-RISK = 'H'
      MOVE 'REVIEW' TO TRANSACTION-STATUS
END-IF.

As regras foram explicitamente definidas por alguém.

Machine Learning muda a abordagem.

Fornecemos exemplos históricos e tentamos construir um modelo capaz de aprender relações estatísticas entre características dos dados e resultados.

É outra maneira de resolver problemas.

E aqui aparecem três famílias clássicas:

Supervised Learning, quando existem exemplos rotulados.

Unsupervised Learning, quando procuramos estruturas e padrões sem possuir previamente as respostas.

Reinforcement Learning, quando um agente aprende através de recompensas associadas às ações tomadas.

Major Tom ainda nem saiu da plataforma.

Mas os motores começaram a funcionar.



2. Deep Learning — ignition sequence start

Machine Learning cresceu.

Os dados cresceram.

O poder computacional cresceu.

As redes neurais cresceram.

Chegamos ao Deep Learning.

Em vez de modelos relativamente pequenos, passamos a utilizar redes neurais compostas por múltiplas camadas capazes de aprender representações extremamente complexas.

Durante essa história surgiram ou ganharam enorme importância arquiteturas como:

CNN
RNN
LSTM
Deep Neural Networks
Transformers

CNNs tiveram enorme impacto em visão computacional.

RNNs foram utilizadas para informações sequenciais.

LSTMs ajudaram a lidar melhor com dependências mais longas em sequências.

Então chegaram os Transformers.

E a contagem regressiva mudou.

10...
9...
8...
7...
ATTENTION...
6...
5...
TRANSFORMER...
4...
3...
LARGE LANGUAGE MODEL...
2...
1...

LIFTOFF.



3. Attention — Houston, conseguimos olhar para partes diferentes da mensagem

Uma das ideias fundamentais por trás dos Transformers é o mecanismo de attention.

Imagine a frase:

O programa COBOL tentou atualizar o registro, mas ele estava bloqueado.

O que significa "ele"?

Um sistema precisa compreender relações existentes entre diferentes elementos da sequência.

Attention permite que diferentes partes da entrada contribuam de maneira distinta para a representação construída pelo modelo.

Isso ajudou enormemente no processamento de linguagem.

E os Transformers possibilitaram treinamento em escala extraordinária.

Daí surgiram os modelos que hoje conhecemos como Large Language Models — LLMs.

Mas aqui encontramos nosso primeiro alerta de Ground Control:

LLM não significa Inteligência Artificial inteira.

Uma representação simplificada seria:

ARTIFICIAL INTELLIGENCE
        │
        ▼
MACHINE LEARNING
        │
        ▼
DEEP LEARNING
        │
        ▼
TRANSFORMERS
        │
        ▼
LARGE LANGUAGE MODELS

Existem inúmeras técnicas e sistemas de IA fora dessa sequência.

ChatGPT não é sinônimo de Inteligência Artificial.

LLM também não.


4. Major Tom aprende a falar

Então aconteceu algo extraordinário.

Os modelos começaram a gerar resultados extremamente convincentes.

Texto.

Código.

Imagens.

Áudio.

Vídeo.

Nascia a explosão da Generative AI.

Para quem passou décadas programando computadores deterministicamente, a mudança parece quase ficção científica.

Você escreve:

Explique este SQLCODE para um programador COBOL iniciante.

E recebe uma explicação.

Pede:

Crie um exemplo COBOL.

E recebe código.

Pede:

Explique o dump.

E o modelo tenta interpretá-lo.

Fantástico.

Mas observe cuidadosamente.

O modelo ainda está essencialmente fazendo:

INPUT
  ↓
MODEL
  ↓
OUTPUT

Major Tom consegue conversar com Ground Control.

Ainda não significa que ele consiga pilotar toda a nave.


5. O primeiro problema: Major Tom não conhece nosso CPD

Pergunte a um LLM:

O que significa SQLCODE -911?

Ele provavelmente poderá explicar.

Pergunte:

Qual foi o último incidente relacionado ao programa XPTO01 da minha empresa?

Temos outro problema.

O modelo não necessariamente conhece:

runbooks internos
tickets
logs
documentação
fontes COBOL
procedures
copybooks
catálogo
inventário
arquitetura
normas internas
incidentes anteriores

Precisamos fornecer conhecimento externo.

Entra em cena:

RAG — Retrieval-Augmented Generation

A arquitetura básica pode ser imaginada assim:

                PERGUNTA
                   │
                   ▼
              RETRIEVAL
                   │
        ┌──────────┼──────────┐
        ▼          ▼          ▼
      Docs       Wiki       Runbook
        │          │          │
        └──────────┼──────────┘
                   ▼
               CONTEXTO
                   │
                   ▼
                  LLM
                   │
                   ▼
                RESPOSTA

Agora podemos fornecer ao modelo informações específicas de determinado domínio.

No CPD Bellacosa:

Pergunta
   ↓
Retriever
   ↓
Documentação z/OS
   ↓
Runbook
   ↓
Histórico do incidente
   ↓
LLM
   ↓
Resposta contextualizada

O velho programador resumiria:

— Então deram documentação para o estagiário.

Exatamente.

Só que o estagiário lê absurdamente rápido.


6. Function Calling — Major Tom encontra os botões

Aqui acontece uma transformação muito maior.

Até agora nossa IA poderia dizer:

Consulte o status do JOB no SDSF.

Mas imagine que disponibilizamos uma ferramenta:

get_job_status(jobname)

O modelo pode reconhecer que precisa consultar determinada informação e solicitar a execução dessa função.

Agora temos:

USER
 ↓
LLM
 ↓
TOOL CALL
 ↓
SYSTEM/API
 ↓
RESULT
 ↓
LLM
 ↓
USER

Essa mudança é fundamental.

Antes:

"Faça isso."

Agora:

a arquitetura pode fazer isso.

Poderíamos conectar ferramentas a:

APIs
databases
search engines
ticket systems
monitoring
email
calendars
enterprise applications

E, no universo mainframe:

AI
 ↓
API
 ↓
z/OS Connect
 ↓
CICS
 ↓
COBOL
 ↓
DB2

Major Tom encontrou o painel de controle.

Ground Control começa a ficar nervoso.


7. Tool orchestration — agora temos vários botões

Um único recurso é simples.

Mas imagine dezenas.

search_runbook()
get_job_status()
read_joblog()
query_incident()
search_source()
query_db2()
create_ticket()
notify_team()

O sistema precisa decidir:

qual ferramenta utilizar?

quando utilizar?

com quais parâmetros?

o que fazer com o resultado?

Chegamos à Tool Orchestration.

Um objetivo complexo pode gerar algo semelhante a:

OBJETIVO:
Descubra por que PAYROLL falhou.

        ↓

1. Consultar execução
        ↓
2. Recuperar JOBLOG
        ↓
3. Identificar ABEND
        ↓
4. Pesquisar runbook
        ↓
5. Consultar histórico
        ↓
6. Localizar programa
        ↓
7. Formular diagnóstico
        ↓
8. Recomendar ação

Agora já não estamos falando simplesmente de geração de texto.

Estamos construindo um workflow inteligente.


8. Planning — Major Tom recebe uma missão

Um agente não deveria receber apenas prompts.

Ele pode receber goals.

Por exemplo:

GOAL:
Diagnosticar falha do processamento PAYROLL.

O sistema precisa decompor isso.

É o chamado Goal Decomposition.

GOAL
 │
 ├── descobrir JOB
 ├── descobrir execução
 ├── encontrar erro
 ├── identificar componente
 ├── procurar evidências
 ├── correlacionar informações
 └── produzir conclusão

Observe como estamos nos afastando daquele chatbot inicial.

Começamos com:

Pergunta → Resposta

Agora temos:

Goal
 ↓
Planning
 ↓
Task decomposition
 ↓
Tool selection
 ↓
Execution
 ↓
Observation
 ↓
Evaluation
 ↓
Replanning

Aqui nasce a ideia moderna de AI Agent.


9. AI Agent — Major Tom deixa de ser passageiro

Podemos imaginar um agente através deste loop:

       ┌───────────────────┐
       │                   │
       ▼                   │
    OBSERVE                 │
       │                   │
       ▼                   │
     REASON                 │
       │                   │
       ▼                   │
      PLAN                  │
       │                   │
       ▼                   │
      ACT                   │
       │                   │
       ▼                   │
    EVALUATE ───────────────┘

Isso é dramaticamente diferente de um chatbot.

O chatbot espera você perguntar novamente.

O agente pode possuir uma tarefa cuja conclusão exige múltiplas etapas.

Imagine:

USER:
Investigue o incidente INC001234.

O agente poderia executar:

Consultar ticket
      ↓
Encontrar JOB
      ↓
Consultar execução
      ↓
Ler mensagens
      ↓
Encontrar SQLCODE
      ↓
Consultar documentação
      ↓
Pesquisar incidente semelhante
      ↓
Construir diagnóstico

E então responder.

A palavra fundamental aqui é:

autonomia.

Mas justamente aí encontramos o problema mais interessante da nossa viagem.


10. Memory — Major Tom precisa lembrar do que aconteceu

Imagine um agente que executa dez etapas mas esquece as nove anteriores.

Não ajuda muito.

Sistemas agênticos precisam administrar estado e memória.

Podemos separar conceitualmente:

SHORT-TERM MEMORY

Contexto necessário para a atividade corrente.

E:

LONG-TERM MEMORY

Informações persistidas e recuperáveis posteriormente.

Além disso temos:

State
History
Context
Previous actions
Tool results
Decisions

O programador COBOL imediatamente reconhece a importância disso.

Porque estado é uma das ideias mais antigas da computação.

Um programa batch pode ser relativamente simples:

INPUT → PROCESS → OUTPUT

Mas aplicações corporativas precisam frequentemente manter:

customer state
transaction state
checkpoint
session
history
audit
recovery information

A IA está descobrindo algo que o mainframe conhece muito bem:

memória transforma uma execução isolada em processo.


11. Self-reflection e Error Recovery — Major Tom cometeu um erro

Agora nosso agente executou uma ferramenta.

Resultado:

RC=12

O que fazer?

Um sistema rudimentar simplesmente falharia.

Um agente mais sofisticado pode avaliar:

Minha ação funcionou?

Não.

Por quê?

Parâmetro incorreto.

Posso corrigir?

Sim.

Então:

ACTION
   ↓
ERROR
   ↓
EVALUATION
   ↓
REPLAN
   ↓
NEW ACTION

Temos feedback loops, self-reflection e mecanismos de error recovery.

Aqui a metáfora espacial fica perfeita.

Uma nave não pode depender de:

IF TRAJECTORY-WRONG
    DISPLAY 'SORRY'
    STOP RUN
END-IF.

😂

Ela precisa corrigir trajetória.


12. Multi-Agent Systems — Ground Control agora virou uma equipe

Por que ter apenas um agente?

Podemos criar especialistas.

                 ORCHESTRATOR
                      │
       ┌──────────────┼──────────────┐
       │              │              │
       ▼              ▼              ▼
 COBOL AGENT      DB2 AGENT      RACF AGENT
       │              │              │
       └──────────────┼──────────────┘
                      ▼
                REVIEW AGENT
                      │
                      ▼
                    HUMAN

O COBOL Agent examina fonte.

O Db2 Agent examina SQL.

O RACF Agent verifica autorização.

Outro agente consulta documentação.

Outro correlaciona observabilidade.

Finalmente um agente coordenador consolida tudo.

Parece revolucionário.

O velho programador olha para o desenho.

— Isso é uma equipe.

Sim.

— Com especialistas.

Sim.

— Com um coordenador distribuindo tarefas.

Sim.

— Reuniões também?

Esperamos que não.


13. Agent Coordination — nasceu o gerente digital

Multi-Agent Systems introduzem novos problemas.

Quem decide qual agente trabalha?

Como eles comunicam resultados?

Quem possui autoridade?

Como evitar trabalho duplicado?

Como resolver conclusões contraditórias?

Precisamos de:

Agent Coordination
Communication
Task Scheduling
Resource Allocation
Delegation
Handoff Protocols

E aparece uma ironia deliciosa.

Quanto mais sofisticada fica a IA, mais ela começa a parecer uma organização humana.

Existe especialista.

Supervisor.

Delegação.

Memória.

Orçamento.

Governança.

Auditoria.

E provavelmente algum agente dizendo:

This task is outside my scope.

Major Tom oficialmente entrou no mundo corporativo.


14. Cost & Resource Management — alguém precisa pagar o combustível

Existe outra coisa que diagramas futuristas às vezes escondem:

computação custa dinheiro.

Uma arquitetura agêntica pode envolver:

100 chamadas de modelo
+
20 buscas
+
10 APIs
+
embeddings
+
vector database
+
storage
+
observability
+
network
+
compute

Multiplique por milhares de usuários.

A pergunta deixa de ser apenas:

Funciona?

Passa a ser:

Quanto custa cada tarefa concluída?

Isso aproxima Agentic AI de disciplinas tradicionais de infraestrutura:

capacity planning
performance
resource management
workload management
cost optimization

Alguém do z/OS ouviu Workload Management?

Pois é.

O futuro chegou carregando conceitos antigos debaixo do braço.


15. Ground Control encontra RACF

Agora chegamos ao ponto crítico.

Imagine que nosso agente possa executar:

query_customer()
update_customer()
cancel_payment()
restart_job()
create_user()
change_limit()

Precisamos perguntar imediatamente:

quem é esse agente?

Depois:

o que ele pode acessar?

Depois:

quem autorizou?

Depois:

qual ação exige aprovação humana?

Isso nos leva a:

IDENTITY
   ↓
AUTHENTICATION
   ↓
AUTHORIZATION
   ↓
LEAST PRIVILEGE
   ↓
AUDITING

Se você trabalha com RACF, isso deveria provocar um sorriso.

Porque sistemas autônomos tornam conceitos tradicionais de segurança ainda mais importantes.

Nunca:

PERMIT * ACCESS(ALTER)

para Major Tom.

Jamais.


16. Human-in-the-Loop — Ground Control ainda existe

Autonomia não significa necessariamente ausência humana.

Podemos classificar ações por risco.

                 AGENT
                   │
          ┌────────┴────────┐
          │                 │
       LOW RISK          HIGH RISK
          │                 │
          ▼                 ▼
       EXECUTE         REQUEST APPROVAL
                            │
                            ▼
                          HUMAN

Por exemplo:

baixo risco:

consultar documentação.

médio risco:

abrir ticket.

alto risco:

alterar dados financeiros.

risco crítico:

mudar segurança ou executar determinada ação produtiva.

Quanto maior o impacto potencial, mais importante se torna a supervisão.

Ground Control não desapareceu.

Ele mudou de função.


17. Observability — Houston, onde está Major Tom?

Existe uma pergunta terrível em qualquer sistema autônomo:

O que ele fez?

Imagine receber:

TASK COMPLETED.

Ótimo.

Como?

Precisamos conseguir reconstruir:

Goal
 ↓
Plan
 ↓
Agent
 ↓
Tool call
 ↓
Input
 ↓
Result
 ↓
Decision
 ↓
Next action
 ↓
Final result

Isso é Observability & Tracing.

E aqui nosso programador mainframe reconhece imediatamente a filosofia.

No z/OS vivemos cercados de:

SMF
RMF
SYSLOG
JOBLOG
CICS traces
Db2 traces
RACF auditing

Por quê?

Porque produção exige evidência.


18. O SMF da Inteligência Artificial

Imagine um registro conceitual:

AGENT-ID       MAJOR-TOM
USER-ID        BELLACOSA
GOAL           ANALYZE-PAYROLL
START          03:17:02
TOOL           GET-JOB-STATUS
RESOURCE       PAYROLL
RESULT         FAILED
NEXT-ACTION    READ-JOBLOG
RISK-LEVEL     LOW

Depois:

TOOL           RESTART-JOB
RISK-LEVEL     HIGH
ACTION         BLOCKED
REASON         HUMAN-APPROVAL-REQUIRED

Isso é governança transformada em operação.

Não queremos apenas saber o que o agente respondeu.

Queremos saber como chegou lá e o que fez durante o caminho.


19. Governance — alguém finalmente leu o manual da nave

A camada mais importante da revolução talvez não seja o modelo.

É a governança.

Precisamos estabelecer:

Policies
Guardrails
Permissions
Risk constraints
Retention policies
Memory governance
Auditing
Observability
Human oversight
Failure recovery

Porque um modelo capaz de produzir texto incorreto pode causar inconveniência.

Um agente capaz de executar uma ação incorreta pode causar incidente.

Essa diferença é monumental.

HALLUCINATION

em chatbot:

resposta errada.

Em agente:

HALLUCINATION
        +
TOOL ACCESS
        +
PRIVILEGE
        =
PRODUCTION INCIDENT

Ground Control compreendeu finalmente por que segurança não pode ser adicionada depois.


20. Full Automation — cuidado com essa expressão

Existe uma tentação de imaginar:

AI
 ↓
FULL AUTONOMY
 ↓
HUMANS GO HOME

A realidade empresarial provavelmente será muito mais interessante.

Teremos diferentes graus de autonomia.

LEVEL 0
AI recomenda

LEVEL 1
AI prepara

LEVEL 2
AI executa ações simples

LEVEL 3
AI executa workflows sob políticas

LEVEL 4
AI opera com supervisão

LEVEL 5
Autonomia extensa dentro de limites

E esses limites importam.

Um agente pode possuir autonomia total para:

pesquisar documentação

mas nenhuma autonomia para:

DELETE FROM CUSTOMER

Autonomia deve ser contextual.


21. O erro de imaginar que IA substituirá todo o sistema

Agora chegamos a uma questão especialmente interessante para quem trabalha com COBOL.

É comum ouvir:

"IA vai substituir COBOL."

Isso mistura camadas diferentes.

Imagine uma arquitetura:

                   USER
                     │
                     ▼
                  AI AGENT
                     │
              ORCHESTRATION
                     │
             TOOL / API LAYER
                     │
               z/OS CONNECT
                     │
                     ▼
                    CICS
                     │
                     ▼
                   COBOL
                     │
                     ▼
                    DB2

O agente pode entender intenção.

Planejar.

Selecionar ferramentas.

Interpretar respostas.

Mas quando chega a hora de executar:

DEBIT ACCOUNT
CREDIT ACCOUNT
UPDATE BALANCE
COMMIT TRANSACTION

um sistema determinístico, transacional e auditável continua extremamente valioso.

A IA pode não destruir o mainframe.

Pode tornar-se mais uma interface para ele.


22. O programador COBOL do futuro

Isso também muda o que um programador deveria estudar.

COBOL continua importante.

Mas observe o novo entorno:

COBOL
CICS
DB2
JCL
RACF
       +
REST APIs
JSON
z/OS Connect
MQ
Python
       +
LLMs
RAG
Agents
Tool Calling
Observability
Governance

Não significa dominar tudo imediatamente.

Significa compreender como as peças se conectam.

O profissional valioso não será necessariamente aquele que decorou mais sintaxe.

Será aquele que consegue olhar para:

USER → AI → API → CICS → COBOL → DB2

e compreender a transação inteira.


23. Curiosidade — o futuro está cheio de coisas antigas

Existe algo quase poético nisso tudo.

Quando examinamos Agentic AI encontramos:

memory
state
scheduling
resource allocation
security
logging
auditing
recovery
workload management
transaction processing

Um veterano de mainframe poderia dizer:

— Nós já tínhamos isso.

E estaria parcialmente certo.

A novidade não está necessariamente em cada componente isolado.

Está na maneira como modelos capazes de interpretar linguagem, raciocinar probabilisticamente e selecionar ações estão sendo integrados a esses mecanismos tradicionais.

É a combinação que muda o jogo.


24. Passo a passo — como estudar essa revolução sem se perder

Para o programador COBOL iniciante, eu seguiria esta sequência:

1. AI
      ↓
2. MACHINE LEARNING
      ↓
3. DEEP LEARNING
      ↓
4. NEURAL NETWORKS
      ↓
5. ATTENTION
      ↓
6. TRANSFORMERS
      ↓
7. LLM
      ↓
8. GENERATIVE AI
      ↓
9. EMBEDDINGS
      ↓
10. RAG
      ↓
11. FUNCTION CALLING
      ↓
12. AI AGENTS
      ↓
13. MEMORY
      ↓
14. PLANNING
      ↓
15. MULTI-AGENT SYSTEMS
      ↓
16. OBSERVABILITY
      ↓
17. SECURITY
      ↓
18. GOVERNANCE

Não comece tentando construir uma frota espacial.

Primeiro aprenda como o foguete funciona.


25. Ground Control to Major Tom — a conclusão

Nosso jovem programador voltou ao terminal.

A mensagem ainda estava lá:

AI AGENT READY.

GOAL:
ANALYZE PRODUCTION FAILURE

PERMISSION TO PROCEED?

O velho programador aproximou-se.

— O que você vai fazer?

— Dar acesso somente aos logs.

— Ótimo.

— Read-only.

— Melhor.

— Registrar todas as chamadas.

— Excelente.

— Não permitir alterações em produção.

O velho tomou café.

— Agora você está começando a entender Inteligência Artificial.

O jovem estranhou.

— Mas isso parece segurança de mainframe.

— Exatamente.

Ele pressionou Enter.

AGENT-ID: MAJOR-TOM
ACCESS: READ
TRACE: ENABLED
HUMAN-OVERSIGHT: REQUIRED

Major Tom partiu.

Consultou logs.

Encontrou o JOB.

Leu mensagens.

Localizou um programa COBOL.

Descobriu uma atualização Db2.

Encontrou um lock.

Correlacionou o horário com outro processamento.

E finalmente respondeu:

ROOT CAUSE IDENTIFIED.

SQLCODE -911

TRANSACTION ROLLED BACK DUE TO
DEADLOCK OR TIMEOUT.

O jovem arregalou os olhos.

— Ele encontrou!

— Excelente.

Então surgiu outra mensagem:

RECOMMENDED ACTION:

RESTART PAYROLL JOB?

[Y/N]

O jovem colocou o dedo sobre o teclado.

O velho programador segurou sua mão.

— Major Tom pode pilotar.

— Então por que não deixamos?

O velho apontou para o terminal.

— Porque Ground Control ainda somos nós.


🥚 Easter egg — Space Oddity no CPD

Às 03:42 o incidente estava resolvido.

O agente havia analisado milhares de linhas de logs, consultado documentação, correlacionado eventos e encontrado a provável causa.

O JOB foi reiniciado manualmente.

Minutos depois:

JOB PAYROLL
ENDED

MAXCC=0000

O jovem comemorou.

O velho programador terminou o café.

Major Tom enviou sua última mensagem:

GROUND CONTROL,

I'M STEPPING THROUGH THE DOOR...

SYSTEM STATUS: NORMAL
CPU: NORMAL
DB2: NORMAL
CICS: NORMAL

AND THE MAINFRAME LOOKS
VERY DIFFERENT TODAY.

Silêncio no CPD.

Então outra mensagem apareceu:

MEMORY UPDATED.
LESSON LEARNED.

O velho programador congelou.

— O que foi?

— Ele guardou o que aprendeu.

O velho puxou outra cadeira.

Abriu o RACF.

— Então faça mais café.

— Por quê?

Ele olhou para Major Tom piscando tranquilamente no terminal.

— Porque agora a história ficou interessante.

☕🚀

Ground Control to Major Tom.

A revolução da Inteligência Artificial não aconteceu quando a máquina aprendeu a conversar conosco.

A verdadeira mudança começou quando demos à máquina memória para lembrar, ferramentas para agir, planejamento para decidir o próximo passo e autonomia para continuar trabalhando depois da primeira resposta.

E justamente nesse momento descobrimos que o futuro da IA depende de algumas das ideias mais antigas da computação empresarial:

identidade, autorização, estado, persistência, auditoria, observabilidade, recuperação, controle de recursos e supervisão humana.

Talvez Major Tom esteja realmente viajando para um território novo.

Mas Ground Control continua funcionando sobre princípios que qualquer velho operador de CPD reconheceria imediatamente.

E em algum lugar, entre um Transformer com bilhões de parâmetros e um programa COBOL compilado décadas atrás, duas eras da computação acabam de estabelecer comunicação.

GROUND CONTROL TO MAJOR TOM

CONNECTION ESTABLISHED.

CICS REGION: ACTIVE
DB2 SUBSYSTEM: ACTIVE
RACF: ACTIVE
AI AGENT: ACTIVE

READY FOR NEXT MISSION.

Não desligue o terminal. 🚀☕

sábado, 11 de maio de 2024

Los 3 Amigos — Quando Três Cartunistas Entraram num Saloon e Saíram Quatro

 

Bellacosa Mainframe apresenta Los 3 amigos

☕ Um Café no Bellacosa Mainframe

Los 3 Amigos — Quando Três Cartunistas Entraram num Saloon e Saíram Quatro

Ou: Angeli teve uma ideia, Laerte trouxe o cérebro, Glauco apareceu com a dinamite, Adão entrou sem ninguém atualizar o nome da equipe — e o México nunca mais se recuperou

Pegue o café.

Hoje não adianta trazer espresso gourmet servido numa xícara minimalista de porcelana japonesa.

Precisamos de café de firma.

Aquele café preto que ficou quarenta minutos na garrafa térmica, adquiriu personalidade própria e provavelmente já pode pedir CPF.

Porque vamos voltar para uma época maravilhosa dos quadrinhos brasileiros na qual ninguém tinha social media manager, ninguém falava em personal branding, ninguém perguntava se determinada piada estava alinhada à estratégia omnichannel da organização.

O sujeito simplesmente tinha uma ideia.

Desenhava.

Entregava.

E esperava alguém reclamar.

Nosso destino é o Viejo México.

Mais precisamente algum lugar miserável entre Marisales, Gran El Piso e o Deserto de Plegas Ardientes.

Ali vivem três mexicanos.

Quer dizer...

Quatro.

Mas o nome continua sendo:

Los 3 Amigos

Não tente corrigir.

É como descobrir que aquele sistema chamado NOVO_FATURAMENTO está rodando em produção desde 1987.

Você simplesmente aceita.



🌵 1. Antes de tudo: quem diabos eram Los 3 Amigos?

A resposta curta:

Angeli, Laerte e Glauco.

A resposta tecnicamente correta:

Angel Villa, Laertón e Glauquito.

A resposta posteriormente correta:

Angel Villa, Laertón, Glauquito e Adón.

Sim.

Los 3 Amigos eram quatro.

A literatura francesa já havia preparado o terreno, porque Os Três Mosqueteiros também acabaram funcionando como quatro com a chegada de D'Artagnan.

Os brasileiros apenas perceberam que atualizar documentação depois de colocar um componente novo em produção dá trabalho.

Segundo a própria história registrada pela Folha de S.Paulo, Laerte e Angeli já se conheciam desde 1972, quando colaboravam com a revista Balão. Glauco entrou nessa confraria alguns anos depois, após encontrá-los num Salão de Humor de Piracicaba.

Portanto, antes de Los 3 Amigos existir como quadrinho, os três amigos já existiam.

E isso é importante.

Porque a série não nasceu simplesmente de três profissionais contratados para desenvolver personagens.

Nasceu de amizade.

De convivência.

De cartunistas conhecendo as manias uns dos outros.

E principalmente daquela capacidade perigosíssima que amigos possuem de transformar os defeitos do companheiro em patrimônio cultural.



🎬 2. O bug começou com John Landis

Em 1986 estreou a comédia cinematográfica ¡Three Amigos!, dirigida por John Landis e estrelada por Steve Martin, Chevy Chase e Martin Short.

Angeli viu aquilo.

E algum neurônio que deveria estar supervisionado pelo departamento jurídico decidiu trabalhar sozinho.

A ideia inicial teria sido relativamente inocente:

fazer uma capa comemorativa da Chiclete com Banana, mostrando Angeli, Laerte e Glauco vestidos como mexicanos.

Pronto.

Acabava ali.

Era uma capa.

Só que existe um princípio fundamental da engenharia de software:

Nunca coloque em produção uma piada que possa adquirir vida própria.

A brincadeira funcionou.


Os personagens começaram a ganhar histórias.

E nasceram:

Angel Villa, alter ego de Angeli.

Laertón, versão mexicana de Laerte.

Glauquito, manifestação radioativa de Glauco.

A série apareceu na Chiclete com Banana no fim dos anos 1980; fontes registram sua estreia na revista em 1987, enquanto a própria Folha situava a criação em 1986.

Não é uma contradição particularmente dramática.

É arqueologia de quadrinhos brasileiros.

Datas naquela época às vezes funcionavam como documentação de programa COBOL:

alguém sabe que existe.

Só precisamos encontrar onde guardaram.


🍌 3. Chiclete com Banana: o datacenter onde nasceu a confusão

Para entender Los 3 Amigos é preciso entender a Chiclete com Banana.

A revista surgiu em meados dos anos 1980 dentro da extraordinária experiência editorial da Circo Editorial, comandada por Toninho Mendes.

E aquilo não era simplesmente uma revista em quadrinhos.

Era praticamente um vazamento radioativo da cultura urbana brasileira.

Angeli estava ali.

Laerte estava ali.

Glauco estava ali.

Luiz Gê estava por perto.

Fernando Gonsales fazia parte daquele universo.

E uma geração inteira percebeu que quadrinho brasileiro não precisava obrigatoriamente significar aventura infantil, super-herói importado ou personagem bonitinho vendendo lancheira.

Podia falar de:

sexo,

drogas,

política,

neurose,

cidade,

fracasso,

contracultura,

solidão,

hipocrisia,

ressaca,

e daquele cidadão que acordou domingo às duas da tarde sem saber exatamente onde deixou a dignidade na noite anterior.

A Circo tornou-se um dos grandes polos do humor gráfico brasileiro pós-Pasquim. Toninho Mendes posteriormente descreveu aquele período como um momento em que os autores tinham muita coisa para criticar, observar e — usando uma palavra bastante adequada ao espírito da casa — sacanear.

Los 3 Amigos são filhos legítimos desse ambiente.

Ou ilegítimos.

Provavelmente ilegítimos.

Combina mais.



🕶️ 4. Angeli — o sysadmin da decadência urbana

Arnaldo Angeli Filho nasceu em São Paulo em 1956.

Publicou seu primeiro desenho ainda adolescente e acabaria se tornando durante décadas um dos grandes nomes do cartum brasileiro e da própria Folha de S.Paulo.

Mas apresentar Angeli apenas como cartunista é quase injusto.

Angeli era um catalogador de tipos humanos.

Ele olhava para São Paulo e encontrava personagens no meio da fumaça.

Rê Bordosa.

Bob Cuspe.

Wood & Stock.

Os Skrotinhos.

Bibelô.

Walter Ego.

Cada personagem parecia resultado de uma query executada diretamente no banco de dados das neuroses paulistanas.

Rê Bordosa era a ressaca de uma geração.

Bob Cuspe era o punk transformado em cusparada gráfica.

Wood & Stock eram dois sobreviventes da contracultura descobrindo que Woodstock acabou, os cabelos embranqueceram e alguém precisa verificar o colesterol.

Angeli possuía uma característica essencial para Los 3 Amigos:

autoironia.

Porque Angel Villa não é exatamente uma homenagem majestosa ao próprio criador.

É Angeli permitindo que Angeli seja ridicularizado por Angeli.

Esse detalhe une boa parte do trabalho dos três autores. Uma análise da Folha sobre aquela geração observou justamente essa tendência: em vez de apenas rir dos outros, Angeli, Glauco e Laerte frequentemente faziam de si mesmos o alvo.

Isso muda tudo.

O cartunista não fica acima da piada.

Ele entra nela.

Fecha a porta.

E alguém joga a chave fora.



🧠 5. Laerte — a pessoa que colocou um compilador Lisp dentro do saloon

Se Angeli observava a decadência urbana, Laerte parecia perguntar:

— Tudo bem, mas e se o universo inteiro estiver errado?

Laerte Coutinho nasceu em São Paulo em 1951 e se tornou uma das figuras fundamentais dos quadrinhos brasileiros.

Piratas do Tietê.

Overman.

Gato e Gata.

Suriá.

Fagundes.

E dezenas de experimentações gráficas e narrativas.

O humor de Laerte frequentemente possui uma característica maravilhosa:

você ri.

Depois pensa.

Depois percebe que talvez não tenha entendido.

Depois entende.

E então fica preocupado.

É quase uma exceção NullPointerException filosófica.

Laerte consegue pegar uma situação banal, deslocar uma pequena variável e criar um universo completamente absurdo que, cinco segundos depois, parece assustadoramente lógico.

Nos Los 3 Amigos, Laertón carregava inevitavelmente essa assinatura.

Mas existe outra característica interessante.

Os três tinham estilos muito diferentes.

E mesmo assim desenhavam juntos.

A própria Folha observou que a amizade pessoal entre Laerte, Glauco e Angeli não apagava as diferenças enormes de estilo entre eles.

Isso deveria resultar num desastre.

E resultava.

Só que num desastre maravilhoso.



💣 6. Glauco — DELETE FROM realidade WHERE bom_senso = 1

Então chegamos a Glauco Villas Boas.

Criador do Geraldão.

E aqui qualquer tentativa de explicar delicadamente o humor de Glauco provavelmente termina em fracasso.

Geraldão era grosso.

Exagerado.

Grotesco.

Impulsivo.

Sexual.

Absurdo.

Era como se alguém tivesse removido todas as verificações de consistência antes de executar o programa.

Glauco tinha uma capacidade extraordinária de produzir movimento com poucos traços.

O desenho parecia estar sempre prestes a escapar do quadrinho.

Geraldão não entrava numa situação.

Ele colidia com ela.

Essa energia passou naturalmente para Glauquito.

Se Angel Villa carregava a acidez de Angeli e Laertón podia introduzir o absurdo conceitual de Laerte, Glauquito parecia perfeitamente capaz de entrar numa igreja carregando dinamite apenas porque confundiu a porta.

E provavelmente sairia culpando os outros.

Glauco morreria tragicamente em março de 2010, assassinado junto com seu filho Raoni, encerrando brutalmente a trajetória de um dos cartunistas mais singulares do Brasil.

Mas Geraldão, Glauquito e aquela linha aparentemente simples continuam imediatamente reconhecíveis.

Há artistas cujo desenho você identifica pela assinatura.

Glauco você reconhece antes de procurar a assinatura.



🐎 7. Como três pessoas desenham a mesma história sem chamar o Scrum Master?

Agora vem uma das partes mais deliciosas.

Como Los 3 Amigos era produzido?

Toninho Mendes descreveu o processo.

Os três se reuniam durante algumas horas, rabiscavam, discutiam e desenvolviam a história juntos.

Depois começava uma espécie de Git gráfico décadas antes de Git existir.

Em certas histórias, Glauco desenhava seus personagens e passava o trabalho para Angeli.

Angeli acrescentava sua parte.

Laerte podia finalizar.

Em outros casos, especialmente quando o cenário exigia mais trabalho, a ordem podia mudar.

Pense nisso.

Hoje teríamos:

los-amigos-final.ai

los-amigos-final-v2.ai

los-amigos-final-agora-vai.ai

los-amigos-final-aprovado-laerte.ai

los-amigos-final-aprovado-laerte-angeli.ai

los-amigos-FINAL-MESMO.ai

Na época?

Papel.

Caneta.

Mesa.

Café.

Provavelmente alguma substância que o compliance moderno preferiria não catalogar.

E confiança.

Um autor literalmente desenhava sobre o trabalho do outro.

Era integração contínua.

Continuous Illustration.



🌮 8. Viejo México: uma infraestrutura completamente fora de suporte

Los 3 Amigos não viviam exatamente no México.

Viviam no Viejo México.

Isso é diferente.

O Viejo México era uma espécie de western spaghetti que caiu do caminhão, passou três dias no deserto, perdeu documentos e resolveu abrir um bar.

Havia lugares como Marisales.

Gran El Piso.

Deserto de Plegas Ardientes.

Sombreros.

Tequila.

Bandidos.

Confusiones.

E os Miguelitos, pequenas criaturas infernais cuja principal função narrativa parecia ser demonstrar que crianças também podem funcionar como ataque distribuído de negação de serviço.

DDoS de sombrero.

O cenário mexicano permitia aos autores fazer algo muito inteligente.

Criavam distância.

Não estavam falando diretamente de São Paulo.

Mas estavam.

Não estavam falando diretamente do Brasil.

Mas estavam.

Não estavam falando diretamente das próprias vidas.

Mas obviamente estavam.

O Viejo México era uma sandbox.

Podia receber violência cartunesca, política, sexo, drogas, machismo, fracasso, amizade e completa ausência de dignidade.

Tudo entrava.

Nada precisava sair funcionando.



🤠 9. Então chegou Adão e ninguém atualizou o README

Em 1994 acontece uma maravilha administrativa.

Chega Adão Iturrusgarai.

Cartunista gaúcho, criador de personagens como Aline, Adão já orbitava aquele universo e acabou incorporado oficialmente à turma.

Nasceu:

Adón.

Agora eram quatro.

Nome da série?

Los 3 Amigos.

Perfeito.

Não mexe.

Está funcionando.

Adão era o D'Artagnan da equipe.

Uma reportagem de 1998 chegou a brincar exatamente com a comparação aos quatro mosqueteiros e descreveu o grupo como quatro autores compondo coletivamente algo próximo de um “cartunista perfeito”.

A entrada de Adão também mostra algo importante:

Los 3 Amigos nunca foram apenas uma propriedade intelectual rigidamente planejada.

Era uma turma.

Uma mesa de bar transformada em método editorial.

Adão chegou.

Sentou.

Pegou a caneta.

Pronto.

Deploy concluído.



📰 10. Do underground para a Folha

A coisa cresceu.

Los 3 Amigos deixaram o território relativamente underground da Chiclete com Banana e chegaram ao Folhateen, suplemento da Folha de S.Paulo.

A estreia no suplemento ocorreu em dezembro de 1991.

Isso criou uma situação curiosíssima.

Um quadrinho nascido dentro daquele caldo adulto, anárquico e contracultural estava agora dentro de um suplemento juvenil de um dos maiores jornais brasileiros.

É aproximadamente como contratar Bob Cuspe para apresentar treinamento de integração do RH.

Vai funcionar?

Provavelmente.

Vai seguir o PowerPoint?

Deus nos livre.

Angeli posteriormente comentou que o espaço natural de Los 3 Amigos eram histórias maiores, verdadeiras sagas, e não necessariamente o formato comprimido do jornal.

Mesmo assim, foi justamente ali que muita gente conheceu aqueles mexicanos completamente desqualificados.


📚 11. Os álbuns: quando o incidente vira documentação oficial

A bagunça também virou livro.

Entre as publicações associadas ao trio aparecem volumes como:

Los 3 Amigos 1

Los 3 Amigos 2

e posteriormente Seis Mãos Bobas.

Também circulou o maravilhoso título:

Más Sexo, Más Drogas y Más Guacamoles.

Porque aparentemente alguém concluiu que sexo e drogas não eram suficientes.

Faltava guacamole.

E eu respeito profundamente essa decisão editorial.


🧨 12. O politicamente incorreto antes do departamento jurídico descobrir o e-mail

É impossível falar de Los 3 Amigos sem mencionar uma coisa.

Muito daquele material dificilmente seria publicado hoje da mesma maneira.

Havia sexo.

Drogas.

Estereótipos.

Violência.

Palavrões.

Machismo satirizado através do próprio machismo.

Piadas deliberadamente ofensivas.

Grotesco.

Personagens moralmente indefensáveis.

Só que analisar aquilo apenas aplicando os critérios culturais de 2026 produz uma leitura incompleta.

Los 3 Amigos pertencem ao ambiente da contracultura brasileira dos anos 1980 e 1990.

Era humor interessado justamente em atravessar fronteiras.

O próprio Toninho Mendes, olhando retrospectivamente para aquele período, comentou que republicar determinadas revistas hoje provavelmente provocaria uma reação muito diferente.

Não significa que toda piada envelheceu bem.

Algumas envelheceram.

Outras envelheceram como vinho.

Outras como leite esquecido atrás da geladeira desde o Plano Collor.

Mas isso também transforma essas revistas em documentos culturais.

Elas registram o que podia ser dito, como era dito e do que uma geração ria.

Isso é história.


🧠 13. A verdadeira genialidade: eles próprios eram a piada

Aqui está, para mim, uma das chaves de Los 3 Amigos.

Angel Villa era Angeli.

Laertón era Laerte.

Glauquito era Glauco.

Adón era Adão.

Portanto, quando aqueles quatro sujeitos apareciam como covardes, bêbados, incompetentes, tarados, confusos ou simplesmente idiotas...

os autores estavam destruindo suas próprias personas.

Isso é poderoso.

Porque impede que o cartunista ocupe permanentemente o confortável cargo de:

“Eu sou inteligente e vou mostrar como vocês são burros.”

Não.

Aqui o autor também é burro.

Talvez seja o mais burro da história.

A crítica social continua existindo.

A política continua aparecendo.

A sociedade continua sendo satirizada.

Mas o autor não recebe imunidade diplomática.

Ele está dentro do saloon.

E também pode levar uma garrafada.


🪦 14. Em 2001, JOB LOS3AMIGOS ENDED - RC=0000

Depois de anos de histórias, a série terminou sua passagem regular pelo Folhateen em fevereiro de 2001.

Laerte explicou na época que aquele ciclo havia sido cumprido e que o encerramento não significava necessariamente o fim das colaborações entre os autores, mas a aposentadoria daquela série específica.

Isso é importante.

Não houve necessidade de inventar:

Los 3 Amigos — Next Generation.

Nem:

Los 3 Amigos Multiverse of Madness.

Nem reboot cinematográfico em oito episódios explicando a infância traumática de Glauquito.

Terminou.

Um conceito revolucionário atualmente.


🎞️ 15. Mas o cadáver ainda mexeu

Em 2009, Los 3 Amigos chegaram à animação num curta dirigido por Daniel Messias.

No ano seguinte, a adaptação recebeu o Troféu HQ Mix de melhor adaptação para outro veículo.

O que demonstra uma característica curiosa das boas criações.

Você pode desligar o sistema.

Mas alguém sempre encontra um batch esquecido rodando.


🇧🇷 16. Por que Los 3 Amigos importam?

Porque eles representam uma coisa que praticamente desapareceu das bancas brasileiras:

o ecossistema de revistas autorais de humor.

Durante os anos 1980 e 1990, revistas como Chiclete com Banana, Circo, Geraldão, Piratas do Tietê e Níquel Náusea criaram um ambiente onde cartunistas podiam desenvolver personagens próprios e dialogar diretamente com uma cultura urbana brasileira.

A banca de jornal funcionava como algoritmo.

Você chegava.

Olhava as capas.

Uma delas dizia alguma barbaridade.

Você comprava.

Pronto.

Recomendação analógica concluída com sucesso.

Não havia feed infinito.

Havia 36 páginas.

E depois você emprestava para alguém.

Talvez esse seja um dos motivos pelos quais aquela geração deixou memória tão forte.

Os leitores não apenas consumiam aquelas revistas.

Carregavam aquelas revistas.

Emprestavam.

Colecionavam.

Escondiam dos pais.

Levavam para escola.

Deixavam no banheiro.

Recortavam.

Perdiam.

Encontravam quinze anos depois dentro de uma caixa.

Isso cria uma relação física com cultura que nenhum scroll consegue reproduzir perfeitamente.


🏜️ 17. O Viejo México era o Brasil usando bigode falso

E talvez essa seja a melhor piada de todas.

Los 3 Amigos fingiam estar no México.

Mas aquele México nunca existiu.

Era cenário.

Era paródia de western.

Era Sergio Leone contaminado pela Vila Madalena.

Atrás do sombrero havia São Paulo.

Atrás da tequila havia Brasil.

Atrás dos bandidos havia política.

Atrás dos fracassados havia uma geração inteira tentando entender o que fazer depois da ditadura, da contracultura, da abertura política, da inflação e das transformações sociais dos anos 1980 e 1990.

Tudo embrulhado numa piada idiota.

E essa é uma das coisas maravilhosas dos quadrinhos.

Você pode escrever um tratado de 600 páginas sobre alienação urbana.

Ou desenhar Glauquito levando uma garrafada.

Dependendo do cartunista...

a garrafada explica melhor.


🥃 18. Easter egg: o verdadeiro Los 3 Amigos era a mesa

Talvez este seja o detalhe que mais gosto nessa história.

Los 3 Amigos não nasceram primeiro como personagens.

Nasceram como amigos.

Angeli e Laerte já conviviam desde o começo dos anos 1970.

Glauco entrou naquela órbita.

Vieram trabalhos coletivos.

Revistas.

Folha.

Chiclete.

Circo.

Depois Adão.

E o processo de criação preservava exatamente isso.

Eles sentavam juntos.

Conversavam.

Rabiscavam.

Um desenhava sobre o desenho do outro.

Hoje chamaríamos isso de:

collaborative creative workflow.

Naquela época provavelmente chamavam:

— Glauco, passa essa porra pra cá.

E funcionava.

Talvez melhor.


☕ Epílogo — Quatro mexicanos entram num bar

Imagine a cena.

Fim de tarde no Viejo México.

O sol está descendo.

Uma tumbleweed atravessa a rua.

As portas do saloon abrem.

Entra Angel Villa.

Atrás dele vem Laertón.

Depois Glauquito.

O barman olha.

— Los Tres Amigos!

Então entra Adón.

O barman conta novamente.

Um.

Dois.

Três.

Quatro.

Olha para a placa.

LOS 3 AMIGOS

Olha para Adón.

Olha novamente para a placa.

Pensa em chamar alguém para trocar.

Calcula o orçamento.

Lembra que seria necessário alterar também os cartazes, capas, arquivos, contratos, documentação, identidade visual e provavelmente aquele programa COBOL que ninguém sabe por que participa do processo.

Desiste.

Serve quatro tequilas.

E talvez essa seja a homenagem perfeita para Angeli, Laerte, Glauco e Adão Iturrusgarai.

Quatro autores completamente diferentes.

Quatro maneiras de desenhar.

Quatro maneiras de pensar humor.

Quatro egos que tiveram a rara capacidade de permitir que os outros desenhassem literalmente sobre seu trabalho.

E uma série chamada Los 3 Amigos.

Porque algumas inconsistências não são bugs.

São patrimônio histórico.

E em algum lugar perdido do Viejo México, entre Marisales e o Deserto de Plegas Ardientes, provavelmente existe um velho mainframe executando um programa escrito em 1987.

No console aparece:

LOS3AMIGOS ACTIVE

MEMBERS = 4

O operador olha.

Pensa durante alguns segundos.

Toma um gole de café.

E decide corretamente:

Não mexe nessa porra. Está funcionando.

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