Translate

segunda-feira, 16 de março de 2020

Teoria dos Jogos no Mainframe : Como um Programador COBOL Padawan Pode Aprender a Pensar Como um Estrategista

 

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:

  1. Lógica e Matemática Discreta.

  2. Probabilidade e Estatística.

  3. Teoria dos Jogos.

  4. Pesquisa Operacional.

  5. Algoritmos e Estruturas de Dados.

  6. Sistemas Distribuídos.

  7. Concorrência e Paralelismo.

  8. WLM, JES2 e escalonamento no z/OS.

  9. Db2: locking, isolamento e concorrência.

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

 

Teoria dos Jogos no Mainframe: O Guia para Programadores COBOL

Sem comentários:

Enviar um comentário