Olá, caro Deviante. Tudo bem por aí?

Você provavelmente conhece coisas que são frágeis, como uma taça de cristal. E também já viu algumas que são resistentes, como uma barra de ferro.

Pois bem, recentemente eu me deparei com um terceiro conceito: a antifragilidade. Ele se relaciona à fragilidade e à resistência, mas com características totalmente novas.

Caso você ainda não tenha visto ninguém falar desse termo e queira um exemplo de seu uso na arquitetura dos sistemas da Netflix, eu te convido a seguir o texto abaixo.

Introdução

No ano de 2012, o matemático e analista de riscos Nassim Taleb apresentou ao mundo um livro chamado Anti-Frágil que, como o próprio título já entrega, busca elencar coisas que não são nem frágeis nem robustas, mas que tem a estranha característica de se beneficiar do caos.

transito

Imagem animada de um homem passando tranquilamente em uma faixa de pedestres, com uma série de carros trafegando ao redor sem causar nenhuma colisão.

Imagine algo que fique mais forte e utilize a incerteza e a imprevisibilidade como combustível.

Para diminuir a abstração, o livro de Taleb cita alguns exemplos:

  1. Mercado de Investimentos: investidores que conseguem lidar com a volatilidade do mercado de ações obtêm lucro, muito mais do que aqueles que estão acostumados à previsibilidade.
  2. Inovação de produtos: as guerras, epidemias e desastres naturais trouxeram oportunidades para a criação de coisas nunca antes imaginadas.
  3. Biologia: somos apresentados no livro ao conceito de hormese, pelo qual pequenas quantidades de agentes estressores podem desencadear a melhoria a longo prazo em um organismo. Vejamos o exemplo de alguns atletas de alta performance que fazem imersão de seu corpo em banheiras de gelo.

Inclusive, o nosso sistema imunológico é um bom exemplar de antifragilidade/hormese. Quando ele recebe uma pequena dose inofensiva de alguns agentes infecciosos através das vacinas, se torna resiliente para combater futuras enfermidades.

A antifragilidade na computação

Desenvolvedores de software e fábricas de brinquedos infantis estão bastante acostumados com a ideia de criar coisas que serão utilizadas de forma completamente imprevisível.

user-experience

Imagem de um homem passando por um atalho de terra em uma praça. Ele  ignora o caminho pavimentado que tornaria sua caminhada bem mais confortável, apesar de um pouco mais longa.

Na Ciência da Computação há alguns conceitos que possuem, em sua essência, a característica de enfrentar algo imprevisível, sucumbir e renascer de forma mais robusta.

Entre alguns exemplos, podemos citar os testes de mutaçãoalgoritmos genéticos ,Dropout de redes neurais e Adversarial Training. Detalhe: as duas últimas técnicas eu só conheço superficialmente.

Todos os casos acima são muito legais, contudo, o Chaos Monkey da Netflix é certamente o exemplo mais didático de antifragilidade aplicada para otimizar um sistema.

macaco-destruindo-notebook

Imagem animada de um macaco sentado em cadeira de escritório puxando um notebook e o jogando ao chão.

Uma tempestade diária

A melhor maneira de evitar falhas é falhar constantemente” — Time de Engenharia da Netflix.

Em 19 de junho de 2011, a Netflix anunciou, em seu famoso blog de tecnologia, que, após realizar a migração de todos os seus serviços para a AWS (Amazon Web Services), havia colocado em operação um software chamado Chaos Monkey, que tinha uma premissa bem inusitada: simular um macaco selvagem solto no data center da empresa, desligando tudo o que encontrasse pela frente, roendo os cabos de forma aleatória e completamente imprevisível.

A intenção da Netflix era forçar os desenvolvedores de software da empresa a implementar contingências na sua infraestrutura para que, mesmo com a presença desse macaco insano solto no data center, a experiência dos usuários da plataforma de streaming se mantivesse plena. Sem grandes interrupções.

A ideia deu tão certo que, em pouco tempo, a empresa adotou uma franquia de símios digitais (Doctor Monkey, Latency Monkey, Chaos Gorilla…) para solidificar uma filosofia de engenheiros de software que se acostumaram a lidar com o caos como uma presença constante em seu dia a dia.

Para quem quiser mais detalhes, eu recomendo bastante o episódio 9 do podcast We Are Netflix, disponível (em inglês) neste link.

Conclusão

Os livros e os insights de Nassim Taleb estão longe de ser uma unanimidade. Infelizmente, alguns foram utilizados como referência para algumas figuras  controversas aqui no Brasil e até eu, que o descobri com 10 anos de atraso, tenho algumas críticas.

Entretanto, eu considero uma sugestão de leitura importante para entender o quanto o caos e a imprevisibilidade são peças do nosso cotidiano com grande potencial de benefícios.

O que achou do conceito? Compartilhe a sua opinião nos comentários.

Um abraço e obrigado pela leitura!