| Bellacosa Mainframe e a teoria dos jogos no mainframe |
☕ Um Café no Bellacosa Mainframe
Teoria dos Jogos no Mainframe
Como um Programador COBOL Padawan Pode Aprender a Pensar Como um Estrategista
"No mainframe, quase nenhum problema é apenas técnico. Quase todos envolvem pessoas tomando decisões."
Quando um desenvolvedor COBOL imagina Matemática aplicada ao desenvolvimento, normalmente pensa em algoritmos, estruturas de dados ou otimização.
Mas existe uma disciplina que explica boa parte dos conflitos encontrados diariamente dentro de um grande ambiente IBM Z:
A Teoria dos Jogos.
Não é sobre videogames.
É sobre entender como pessoas, equipes, empresas e até sistemas inteiros tomam decisões quando seus interesses dependem das escolhas dos outros.
E surpreendentemente...
Ela explica muito do que acontece dentro de um banco.
O que é Teoria dos Jogos?
A Teoria dos Jogos é um ramo da matemática aplicada que estuda situações onde vários participantes (chamados jogadores) precisam tomar decisões.
Cada decisão altera o resultado dos demais.
Ou seja...
Meu resultado depende da sua decisão.
E o seu depende da minha.
No mundo corporativo isso acontece o tempo inteiro.
No mainframe também.
Onde nasceu?
A origem moderna começa em 1944.
Dois pesquisadores publicaram um livro que mudou completamente Economia, Estratégia Militar e Ciência da Computação.
John von Neumann
Matemático brilhante.
Pai da arquitetura dos computadores modernos.
Participou do Projeto Manhattan.
Criou a primeira formulação matemática da Teoria dos Jogos.
Oskar Morgenstern
Economista.
Percebeu que economia não podia ser explicada apenas por oferta e demanda.
Era preciso considerar comportamento estratégico.
O livro histórico
Theory of Games and Economic Behavior (1944)
Foi um divisor de águas.
Mostrou que decisões racionais podem ser modeladas matematicamente.
Até hoje é considerado um dos livros mais importantes do século XX.
Depois veio John Nash
Se você assistiu ao filme Uma Mente Brilhante, conhece sua história.
John Nash revolucionou a área criando o conceito de:
Equilíbrio de Nash
É uma situação onde ninguém ganha mudando sua estratégia sozinho.
Todos ficam "presos" em uma decisão estável.
Isso acontece diariamente em TI.
Um exemplo no banco
Imagine duas equipes.
Equipe A deseja atualizar o sistema.
Equipe B deseja estabilidade.
Se A atualiza sem avisar...
B sofre.
Se B bloqueia todas as mudanças...
A nunca entrega inovação.
Ambas precisam cooperar.
Este é um jogo estratégico.
O famoso Dilema do Prisioneiro
É provavelmente o exemplo mais conhecido.
Dois suspeitos são presos.
Cada um pode:
colaborar
trair
O resultado depende da decisão dos dois.
Curiosamente...
Quando ambos tentam maximizar seu ganho individual...
Os dois acabam pior.
Isso acontece no Mainframe?
O tempo inteiro.
Exemplos:
desenvolvimento versus operações
aplicações versus infraestrutura
segurança versus produtividade
negócio versus tecnologia
performance versus custo
estabilidade versus inovação
Cada decisão influencia outra equipe.
Um Programador COBOL joga sem perceber
Imagine:
Você recebe uma alteração urgente.
Tem duas opções.
Estratégia A
Entregar rápido.
Maior risco.
Estratégia B
Testar corretamente.
Entrega mais lenta.
Agora imagine que o gestor mede apenas velocidade.
Naturalmente todos passam a entregar rápido.
Depois aparecem:
incidentes
rollback
retrabalho
O sistema inteiro piora.
Foi um jogo mal desenhado.
Sistemas também jogam
Não apenas pessoas.
Diversos componentes competem por recursos.
Exemplos:
CPU
memória
canais
discos
locks
threads
Db2
CICS
MQ
Todos disputam recursos limitados.
Isso lembra um enorme jogo cooperativo.
WLM é Teoria dos Jogos em ação
O Workload Manager não distribui CPU aleatoriamente.
Ele resolve conflitos.
Pergunta continuamente:
Quem precisa de mais recursos?
Quem pode esperar?
Quem possui maior prioridade?
É praticamente um árbitro estratégico.
Lock no Db2
Imagine dois programas.
Programa A bloqueia uma tabela.
Programa B espera.
Agora ambos aguardam recursos diferentes.
Nasce um deadlock.
O Db2 precisa decidir.
Quem perde?
Quem continua?
Existe estratégia envolvida.
Escalonamento Batch
No JES2 e nos schedulers acontece exatamente o mesmo.
Centenas de jobs.
Recursos limitados.
Dependências.
Janela batch.
Prioridades.
Cada decisão muda o resultado das demais.
Balanceamento de carga
No Sysplex:
várias LPARs compartilham carga.
Mover uma workload melhora um sistema...
mas pode piorar outro.
É otimização estratégica.
Segurança
Até segurança pode ser analisada pela Teoria dos Jogos.
O atacante escolhe:
onde atacar
quando atacar
quanto investir
O defensor escolhe:
onde proteger
quanto monitorar
quanto gastar
É um jogo contínuo.
IA também usa Teoria dos Jogos
Modelos modernos de IA utilizam conceitos relacionados em:
aprendizado por reforço
sistemas multiagentes
negociação entre agentes
coordenação
planejamento estratégico
Cada agente toma decisões considerando os demais.
Grandes autores que vale conhecer
John von Neumann
Fundador da área.
Oskar Morgenstern
Aplicação econômica.
John Nash
Equilíbrio de Nash.
Thomas Schelling
Estratégia militar.
Conflitos.
Negociação.
Recebeu Nobel.
Robert Aumann
Jogos repetidos.
Cooperação.
Muito útil para organizações.
John Harsanyi
Jogos com informação incompleta.
Muito importante para segurança.
Lloyd Shapley
Valor de Shapley.
Como dividir benefícios em sistemas cooperativos.
Muito usado hoje em Inteligência Artificial.
Elinor Ostrom
Estudou cooperação em recursos compartilhados.
Suas ideias aparecem em computação distribuída.
Conceitos fundamentais
Todo Padawan deveria conhecer:
jogadores
estratégias
payoff
utilidade
equilíbrio de Nash
jogos cooperativos
jogos não cooperativos
jogos repetidos
jogos simultâneos
informação perfeita
informação imperfeita
dominância
estratégia mista
minimax
soma zero
soma não zero
Não precisa decorar fórmulas.
Entenda primeiro as ideias.
Como isso aparece no COBOL?
Mais do que parece.
Modelagem de regras
Quem ganha prioridade?
Quem espera?
Quem pode cancelar?
Tudo isso são decisões estratégicas.
Sistemas bancários
Fila de pagamentos.
Pix.
TED.
Cartões.
Empréstimos.
Todos possuem regras para resolver conflitos.
Controle de concorrência
Locks.
Timeout.
Retry.
Commit.
Rollback.
Tudo depende da estratégia adotada.
Escalabilidade
Quando dividir processamento?
Quando serializar?
Quando paralelizar?
Novamente...
Teoria dos Jogos.
Evolução da área
1944
Nascimento formal.
↓
1950
Equilíbrio de Nash.
↓
1970
Jogos evolucionários.
↓
1980
Aplicações em Computação.
↓
1990
Internet.
Redes.
Protocolos.
↓
2000
Segurança.
Mercados eletrônicos.
Cloud.
↓
2015+
Machine Learning.
IA.
Multiagentes.
Blockchain.
Robótica.
Como estudar?
Nível 1
Entenda lógica matemática.
Não precisa cálculo avançado.
Nível 2
Leia sobre:
Dilema do Prisioneiro
Equilíbrio de Nash
Minimax
Nível 3
Estude algoritmos.
Pesquisa Operacional.
Otimização.
Nível 4
Veja aplicações em:
IA
Redes
Segurança
Economia
Cloud
Nível 5
Passe a observar seu próprio ambiente de trabalho.
Você descobrirá jogos estratégicos em toda reunião.
Livros recomendados
Para iniciantes
The Art of Strategy — Avinash Dixit e Barry Nalebuff.
Thinking Strategically — Avinash Dixit e Barry Nalebuff.
Intermediário
Game Theory: A Very Short Introduction — Ken Binmore.
Clássicos
Theory of Games and Economic Behavior — John von Neumann e Oskar Morgenstern.
Non-Cooperative Games — John Nash.
Aplicações
The Evolution of Cooperation — Robert Axelrod.
Micromotives and Macrobehavior — Thomas Schelling.
Aplicações diretas no IBM Z
Um profissional de Mainframe pode usar Teoria dos Jogos para:
projetar regras de negócio mais robustas;
definir prioridades no IBM Workload Manager (WLM);
reduzir contenção de locks no Db2;
modelar filas no IBM MQ;
melhorar políticas de escalonamento em JES2 e schedulers;
analisar conflitos entre aplicações Batch e Online (CICS);
criar estratégias de segurança com RACF e gestão de privilégios;
otimizar uso de CPU, memória e I/O entre LPARs;
apoiar decisões de capacidade (Capacity Planning);
compreender negociações entre equipes de desenvolvimento, operações e negócio.
O resultado é menos decisões baseadas em intuição e mais decisões baseadas em incentivos, equilíbrio e cooperação.
A Trilha Bellacosa para um Padawan COBOL
Uma boa jornada de estudos pode seguir esta sequência:
Lógica e Matemática Discreta.
Probabilidade e Estatística.
Teoria dos Jogos.
Pesquisa Operacional.
Algoritmos e Estruturas de Dados.
Sistemas Distribuídos.
Concorrência e Paralelismo.
WLM, JES2 e escalonamento no z/OS.
Db2: locking, isolamento e concorrência.
Inteligência Artificial, aprendizado por reforço e sistemas multiagentes.
Cada etapa amplia sua capacidade de entender não apenas como o sistema funciona, mas por que ele toma determinadas decisões.
Conclusão
Muitos acreditam que um excelente programador conhece apenas COBOL, JCL, CICS ou Db2.
Os grandes profissionais vão além.
Eles entendem comportamento.
Entendem incentivos.
Entendem conflitos.
Entendem cooperação.
No fim das contas, um sistema corporativo não é apenas código executando em um IBM Z.
É um enorme conjunto de pessoas, aplicações, recursos e decisões estratégicas interagindo o tempo todo.
Quem aprende Teoria dos Jogos deixa de enxergar apenas programas.
Passa a enxergar sistemas.
E esse é um dos maiores saltos que um Padawan pode dar rumo ao caminho de um verdadeiro Mestre Mainframe.
"No IBM Z, vencer não significa consumir toda a CPU. Significa encontrar o equilíbrio onde aplicações, equipes e negócios prosperam juntos. Essa é a verdadeira estratégia — e talvez o maior jogo de todos."
Sem comentários:
Enviar um comentário