Existem exemplos de implementação e resposta eficaz a um "macaco do caos"?


15

Jeff Atwood escreveu recentemente um post sobre a implementação da Netflix de um "Chaos Monkey". É um artigo de nível muito alto. Estou curioso para saber se alguém realmente implementou essa técnica para testar um sistema.

Eu acho que o que realmente estou tentando perguntar é: Quais estratégias você implementa para garantir que sua arquitetura possa sobreviver a uma parte do sistema travando?


1
E talvez, quais estratégias você usa para testar essa arquitetura?
rlb.usa

... Bem, eu acho que nós estamos esperando por alguém da equipe Netflix para vir e responder a esta lol
Earlz

Provavelmente vou dar uma recompensa por isso. Poderia ter alguns anwsers muito interessantes
Robotsushi

1
Concordou ... Mas pertence aos programadores, não SO. Votou para migrar.

Respostas:


5

Isolamento e degradação graciosa são as estratégias gerais. (Outro termo que você pode ver que é semelhante ao isolamento é dissociação , embora eu costumo ver isso em uma escala menor, como em OOD / P. O conceito é o mesmo.)

Você isola partes diferentes de um sistema umas das outras para que, se uma estiver inativa, as outras ainda possam responder às solicitações. Como o blog da Netflix disse , se a pesquisa não estivesse funcionando, o streaming ainda seria bom. Isso significa apenas que a pesquisa e a transmissão foram separadas o suficiente para que um gargalo ou incapacidade de um não afetasse o outro.

Com uma degradação graciosa, se a melhor implementação de algo não estiver disponível, você terá outra coisa a preencher. Novamente, na publicação da Netflix, eles têm um sistema para observar as coisas que você assistiu e que gostou e elaborar recomendações personalizadas de outras pessoas. coisas para assistir. Se esse sistema estiver inoperante, eles voltarão a mostrar recomendações de coisas que são populares em geral. O ponto é ter um plano B, plano C etc. para fazer ou mostrar algo quando o plano A falhar, em vez de mostrar nada ou erro.

Um exemplo comum de degradação do lado do cliente (se a implementação é comum ou não) envolve o uso de javascript em sites. Se o javascript do navegador estiver desativado ou simplesmente indisponível, as páginas do site ainda deverão funcionar com êxito sem ele. Pode não ser tão rápido ou liso, mas ainda deve funcionar, em vez de se tornar inutilizável.

Essas são idéias muito gerais, no entanto. Quase todos os projetos os implementariam de maneira diferente, dependendo dos serviços e subsistemas que eles fornecem e das dependências entre eles.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.