BT

Chaos Monkey: mais um projeto open source da Netflix

por Richard Seroter , traduzido por Thomas Sant'Anna em 21 Ago 2012 |

A Netflix abriu o código do seu"Chaos Monkey", um software que intencionalmente derruba servidores como forma de testar a tolerância a falhas de um ambiente em nuvem. O projeto open source, com nome "Simian Army", é mais uma ferramenta em uma longa série que a Netflix vem compartilhando gratuitamente com a comunidade técnica.

A empresa apresentou o Chaos Monkey em dezembro de 2010, explicando as lições aprendidas ao hospedar seu serviço de streaming de vídeo na nuvem da Amazon (AWS). Uma dessas lições diz que "falhar constantemente é a melhor maneira de evitar o fracasso", resumindo como a Netflix proativamente sabota seu ambiente para descobrir pontos de falhas.

O Chaos Monkey desativa aleatoriamente instâncias e serviços dentro de nossa arquitetura. Se não estivermos testando constantemente nossa habilidade de lidar bem com falhas, provavelmente não teremos sucesso quando precisarmos disso de verdade - no caso de uma indisponibilidade inesperada.

Em um artigo no blog da empresa, o time técnico da Netflix anunciou a abertura do código, apresentando o propósito do software e recomendações de uso. A Netflix afirma que o Chaos Monkey pode ser usado em outros ambientes de nuvem além do AWS, por empresas que querem detectar pontos de falhas em seus próprios ambientes. A empresa incluiu várias configurações para deixar tranquilas as empresas com receio de "soltar" o Chaos Monkey em seu centro de dados. Por exemplo, o software pode ser configurado para entrar em ação apenas quando as equipes de suporte estiverem de prontidão.

O serviço tem agendamento configurável, que por padrão executa em dias úteis entre as 9:00 e as 15:00 horas. Na maioria dos casos, projetamos as aplicações para continuarem operando mesmo quando uma instância fica indisponível; mas nas raras exceções em que não o fizermos, queremos ter certeza que as pessoas estão disponíveis para resolver qualquer problema. Por isso, o Chaos Monkey só opera dentro de um conjunto limitado de horas, para que engenheiros estejam alertas e aptos a agir.

O usuário também pode definir o nível de agressividade do Chaos Monkey em aplicações novas. Como padrão, a Netflix executa o Chaos Monkey em todas as suas aplicações, salvo naquelas em que o gestor explicitamente o recuse. Outras empresas podem usar uma abordagem menos agressiva, e permitir que o Chaos Monkey atue apenas contra algumas aplicações especificas, ou com baixa probabilidade de derrubar uma instância.

Nem toda aplicação consegue lidar facilmente com falhas de uma instância. Algumas vezes existe a necessidade de intervenção manual para recuperar as instâncias, talvez usando copias de segurança. Idealmente os engenheiros trabalham visando tornar o processo mais fácil, rápido e automático. Para essas aplicações, existe a opção de recusar o Chaos Monkey. Também existe um ajuste de "probabilidade", que é usado pelo Chaos Monkey para limitar a chance de se derrubar uma instância.

A disponibilização pública do Chaos Monkey vem pouco depois de outra liberação em código aberto da Netflix: o projeto Asgard. Como dito em outro artigo no blog do time da Netflix, o Asgard é uma interface para a implantação e gestão de ambientes baseados no AWS. Embora o console de gerência do AWS ofereça funcionalidades para provisionar servidores, o time da Netflix sentiu falta do conceito de "aplicação", criando o Asgard para preencher essa lacuna.

Quando há muitos objetos na nuvem em uma arquitetura orientada a serviços, como no caso da Netflix, é importante que o usuário consiga encontrar todos os objetos relevantes para uma aplicação específica. O Asgard mantém uma relação de aplicações no SimpleDB e adota um padrão de nomenclatura para associar vários recursos a uma mesma aplicação.

Além disso, o Asgard agrega grupos de autoscaling do AWS em objetos chamados "clusters" que são facilmente retornados ao seu estado anterior, em casos de falha no deploy. Aplicações, Clusters, e o suporte à automação do deployment são projetados para tornar a administração do AWS mais simples e menos suscetível a erros humanos.

Tanto o Chaos Monkey como o Asgard são parte de uma iniciativa mais ampla da Netflix, de abrir o código de software que ajude a comunidade em geral. Uma lista de todos os projetos de código aberto da Netflix pode ser vista no seu Github.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT