A Engenharia do Caos

14 18No senso comum o termo “caos” lembra um “estado de desordem”. No entanto, pela reconhecida Teoria do Caos o termo é definido de forma mais precisa. Apesar de não haver uma definição matemática universalmente aceita, uma definição comumente usada, originalmente formulada por Robert L. Devaney, diz que para classificar um sistema dinâmico como caótico, ele deve ter as seguintes propriedades: 1) Deve ser sensitivo às condições iniciais; 2) Deve ser topologicamente misturado; 3) Deve ter órbitas periódicas densas.

Recentemente o editor desta newsletter tomou conhecimento da existência da Engenharia do Caos. Esta engenharia é a disciplina de fazer experimentos em um sistema distribuído de forma a construir confiança na capacidade do sistema em aguentar condições de turbulência na produção.

Tal definição foi estabelecida nos “Princípios do Caos” para representar uma prática poderosa que já está mudando como o software é projetado e engenheirado em algumas operações de grande escala no mundo. Onde outras práticas endereçam velocidade e flexibilidade, a Engenharia do Caos lida especificamente com incerteza sistêmica nestes sistemas distribuídos. Os Princípios do Caos oferecem a confiança para inovar rapidamente a escalas massivas, e dá aos consumidores as experiências de alta qualidade que eles merecem.

Se você já operou um sistema distribuído em produção, você deve saber que eventos não previsíveis podem acontecer. Sistemas distribuídos contêm tantos componentes interagindo que o número de coisas que podem dar errado é enorme. Discos rígidos podem falhar, a rede pode cair, um súbito aumento no tráfego de consumidores pode sobrecarregar um componente funcional – a lista é longa. Frequentemente, esses eventos disparam interrupções, desempenho fraco, e outros comportamentos indesejáveis.

Nós nunca estaremos aptos a prevenir todos os possíveis modos de falhas, mas nós podemos identificar muitas das fraquezas no nosso sistema antes que elas sejam disparadas por aqueles eventos. Quando nós o fazemos, nós podemos corrigi-los, prevenindo aquelas futuras que aquelas interrupções aconteçam. Nós podemos fazer o sistema mais resiliente e construir confiança nele.

A Engenharia do Caos é um método de fazer experimentos na infraestrutura que traz à luz as fraquezas sistêmicas. Este processo empírico de verificação leva à sistemas mais resilientes, e constrói confiança no comportamento operacional daqueles sistemas.

Para posicionar esta disciplina na sua recente emergência, já se tornou praxe citar a história da Engenharia do Caos na Netflix. Desde quando a empresa começou a migração do seu datacenter para a cloud em 2008, a prática de alguma forma de teste de resiliência na produção começou a se estabelecer, e isso se tornou conhecido como “Engenharia do Caos”.

A ferramenta denominada “Chaos Monkey” foi desenvolvida em 2011 pela Netflix para testar a resiliência de sua infraestrutura, e desde então ganhou notoriedade por desligar os serviços no ambiente de produção. Baseado no sucesso do Chaos Monkey, os operadores da Netflix observaram um caso extremo de falha na infraestrutura, e construíram o “Chaos Kong”, ferramenta que não apenas “matou” um servidor, mas sim uma inteira AWS Region. A ferramenta transferiu os benefícios de uma pequena escala para uma de maior. Uma ferramenta chamada Failure Injection Testing (FIT) plantou o alicerce para enfrentar o espaço entre as etapas. Os Princípios do Caos ajudaram a formalizar a disciplina, e a Chaos Automation Platform está preenchendo o potencial de rodar a experimentação do caos ao longo de toda a arquitetura de microserviços 24/7.

À medida que os operadores da Netflix desenvolveram aquelas ferramentas e experiências, eles reconheceram que a Engenharia do Caos não é somente sobre causar disrupções em um serviço. A Engenharia do Caos é sobre tocar na superfície do caos já inerente em um sistema complexo. E, finalmente, uma melhor compreensão dos efeitos sistêmicos leva a uma melhor engenharia nos sistemas distribuídos, o que melhora a resiliência.

Sem dúvida, eis aí uma nova área de engenharia que merece nossa atenção e que, se levada na devida medida, pode nos ajudar tanto na abertura de novas oportunidades para jovens profissionais desejosos de enfrentar sistemas distribuídos complexos, quanto na melhoria de nossas infraestruturas digitais!

Se sua empresa, organização e instituição deseja saber mais sobre Engenharia do Caos, fique a vontade para nos contatar!

PS: links associados à Engenharia do Caos

https://principlesofchaos.org/

https://techcrunch.com/2018/02/04/the-rise-of-chaos-engineering/

https://www.forbes.com/sites/quora/2018/01/16/what-is-chaos-engineering/#49e852bb4be6

http://www.oreilly.com/webops-perf/free/chaos-engineering.csp

 

banner

Creativante 2017 - Todos os direitos reservados