COMO FUNCIONAM OS 5 PRINCÍPIOS DA ENGENHARIA DE CAOS

COMO FUNCIONAM OS 5 PRINCÍPIOS DA ENGENHARIA DE CAOS

11 de agosto de 2021 Blog Posts 0
school faceless student tired

Sharing is caring ... Help us!

A Engenharia do Caos é a disciplina de fazer experimentos em um sistema a fim de construir confiança na capacidade do sistema de resistir a condições turbulentas na produção.

Os avanços nos sistemas de software distribuídos em grande escala estão mudando o jogo da engenharia de software. Por isso, como um setor, somos rápidos em adotar práticas que aumentam a flexibilidade de desenvolvimento e a velocidade de implantação. O que nos leva a uma questão urgente que segue na esteira desses benefícios: quanta confiança podemos ter nos sistemas complexos que colocamos em produção?

Mesmo quando todos os serviços individuais em um sistema distribuído estão funcionando corretamente, as interações entre esses serviços podem causar resultados imprevisíveis. Resultados imprevisíveis, compostos por eventos raros, mas perturbadores, do mundo real que afetam os ambientes de produção, tornam esses sistemas distribuídos inerentemente caóticos.

Precisamos identificar os pontos fracos antes que eles se manifestem em comportamentos aberrantes em todo o sistema. Fraquezas sistêmicas podem assumir a forma de: configurações de fallback inadequadas quando um serviço não está disponível; tente novamente tempestades de tempos limite ajustados incorretamente; interrupções quando uma dependência downstream recebe muito tráfego; falhas em cascata quando um único ponto de falha falha; etc.

Devemos abordar as fraquezas mais significativas de forma proativa, antes que afetem nossos clientes na produção. Precisamos de uma maneira de gerenciar o caos inerente a esses sistemas, tirar proveito do aumento da flexibilidade e da velocidade e ter confiança em nossas implantações de produção, apesar da complexidade que representam.

Uma abordagem empírica baseada em sistemas aborda o caos em sistemas distribuídos em escala e cria confiança na capacidade desses sistemas de resistir a condições realistas. Contudo só iremos aprender sobre o comportamento de um sistema distribuído observando-o durante um experimento controlado. Chamamos isso de Engenharia do Caos .

CAOS NA PRÁTICA

Para abordar especificamente a incerteza de sistemas distribuídos em escala, a Engenharia do Caos pode ser considerada como a facilitação de experimentos para descobrir fraquezas sistêmicas. Então agora entendemos que esses experimentos seguem quatro etapas:

  1. Comece definindo ‘estado estacionário’ como alguma saída mensurável de um sistema que indica o comportamento normal.
  2. Hipotetize que este estado estacionário continuará no grupo de controle e no grupo experimental.
  3. Apresente variáveis ​​que reflitam eventos do mundo real, como servidores que travam, discos rígidos que funcionam mal, conexões de rede que são interrompidas, etc.
  4. Tente refutar a hipótese procurando uma diferença no estado estacionário entre o grupo de controle e o grupo experimental.

Quanto mais difícil for interromper o estado estacionário, mais confiança teremos no comportamento do sistema. Se uma fraqueza for descoberta, agora temos uma meta de melhoria antes que esse comportamento se manifeste no sistema como um todo.

PRINCÍPIOS AVANÇADOS

Os princípios a seguir descrevem uma aplicação ideal da Engenharia do Caos, aplicada aos processos de experimentação descritos acima. Por isso que o grau em que esses princípios são perseguidos está fortemente correlacionado à confiança que podemos ter em um sistema distribuído em escala.

Construir uma hipótese em torno do comportamento de estado estacionário

Concentre-se na saída mensurável de um sistema, ao invés dos atributos internos do sistema. As medições dessa produção durante um curto período de tempo constituem um proxy para o estado estacionário do sistema. E então o rendimento geral do sistema, as taxas de erro, os percentis de latência, etc. podem ser métricas de interesse que representam o comportamento em estado estacionário. Ao focar nos padrões de comportamento sistêmico durante os experimentos, o Chaos verifica se o sistema funciona, em vez de tentar validar como ele funciona.

Variar eventos do mundo real

Variáveis ​​de caos refletem eventos do mundo real. Priorize eventos por impacto potencial ou frequência estimada. Então, considere os eventos que correspondem a falhas de hardware como servidores morrendo, falhas de software como respostas malformadas e eventos de não falha como um pico no tráfego ou um evento de escalonamento. Qualquer evento capaz de interromper o estado estacionário é uma variável potencial em um experimento do Caos.

Executar experimentos em produção

Os sistemas se comportam de maneira diferente dependendo do ambiente e dos padrões de tráfego. Como o comportamento de utilização pode mudar a qualquer momento, a amostragem do tráfego real é a única maneira de capturar o caminho da solicitação de forma confiável. Então, para garantir a autenticidade da forma como o sistema é exercido e a relevância para o sistema implantado atualmente, Chaos prefere experimentar diretamente no tráfego de produção.

Automatizar experimentos para execução contínua

Executar experimentos manualmente exige muito trabalho e, em última análise, é insustentável. Automatize experimentos e execute-os continuamente. Por isso, a engenharia do caos incorpora automação no sistema para conduzir a orquestração e a análise.

Minimize o raio de explosão

A experimentação na produção tem o potencial de causar sofrimento desnecessário ao cliente. Embora deva haver uma tolerância para algum impacto negativo de curto prazo, é responsabilidade e obrigação do Engenheiro do Caos garantir que as consequências dos experimentos sejam minimizadas e contidas.

A Engenharia do Caos é uma prática poderosa que já está mudando a forma como o software é projetado e desenvolvido em algumas das operações de maior escala do mundo. Contudo, onde outras práticas tratam de velocidade e flexibilidade, Chaos aborda especificamente a incerteza sistêmica nesses sistemas distribuídos. Os Princípios do Caos fornecem confiança para inovar rapidamente em grande escala e oferecer aos clientes as experiências de alta qualidade que eles merecem.

Caso queira entender melhor como podemos desenvolver de forma mais segura os software e face a engenharia do caos, acesse o curso sobre Desenvolvimento Seguro de Software na Udemy com preço promocional.

 

Escreva aqui o que você está pensando sobre isso

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.