Guia de contratação do Chaos Monkey

Garanta a resiliência do sistema! Navegue pelo mundo das contratações com nosso Guia de contratação do Chaos Monkey, encontrando especialistas para testar, desafiar e fortalecer seus sistemas de TI.

Desenvolvedores do Chaos Monkey

Na maioria das indústrias, o caos é algo negativo. No mundo da engenharia do caos, porém, a noção de caos é uma ferramenta útil, prática e esclarecedora. A engenharia do caos ajuda os desenvolvedores a projetar sistemas de computador que sejam mais resilientes e tenham menos pontos fracos do que os testes e a engenharia tradicionais. Chaos Monkey é a ferramenta mais comumente usada para criar esse “caos”.

Netflix equipe de engenharia desenvolveu a Chaos Monkey depois de migrar seus sistemas para a nuvem em 2010. Esse novo ambiente baseado em nuvem significava que os hosts poderiam ser encerrados e substituídos a qualquer momento aleatório, o que levou à necessidade de se preparar para tais restrições. A equipe de engenharia então criou a ideia de testar através da reinicialização aleatória de seus próprios hosts. Isso permitiu que a Netflix encontrasse possíveis pontos fracos e, ao mesmo tempo, validasse se sua própria automação de correção funcionava corretamente.

Guia de contratação do Macaco do Caos 7

Guia de contratação

A Netflix projetou o Chaos Monkey como sua própria versão de engenharia do caos para testar a estabilidade do sistema, impondo falhas em uma execução pseudo-aleatória de serviços e instâncias dentro de sua arquitetura de nuvem. Através deste caos criado intencionalmente e do poder da engenharia do caos, os desenvolvedores e engenheiros têm a capacidade de ver como os sistemas respondem quando componentes críticos da sua infra-estrutura são derrubados.

Em sua essência, a engenharia do caos e o próprio Chaos Monkey dizem aos desenvolvedores quão bem um sistema muda seus recursos quando enfrenta uma interrupção. Isso é especialmente útil em instâncias de computação em nuvem em servidores Amazon Web Services. O Chaos Monkey encerra aleatoriamente as instâncias dentro de uma máquina virtual e os contêineres executados dentro de um ambiente de produção para expor falhas com mais frequência e ajudar a construir serviços resilientes.

Um cronograma configurável permite que falhas simuladas ocorram em horários especificados para que os desenvolvedores tenham a capacidade de monitorá-las de perto. Isso ajuda a preparar-se para erros graves e inesperados, em vez de simplesmente esperar por uma catástrofe e reagir após o fato. Normalmente, a engenharia do caos geralmente segue 4 etapas de teste:

  1. Engenheiros e desenvolvedores definem o “estado estacionário” como uma saída mensurável de um sistema para definir como linha de base para o comportamento normal.
  2. As equipes então levantam a hipótese de como esse estado estacionário continuará e reagirá tanto no grupo de controle quanto no experimental durante a simulação de falha.
  3. Os engenheiros introduzem variáveis ​​para refletir problemas e eventos do mundo real que poderiam causar falhas catastróficas, como travamentos, mau funcionamento do disco rígido, conexões de rede cortadas e assim por diante.
  4. Depois de testemunhar as reações do sistema, a equipe tenta refutar a hipótese procurando diferenças entre os grupos de controle e experimental.

Geralmente, quanto mais difícil for interromper o estado estacionário do sistema, mais confiança as empresas e as equipes de desenvolvimento terão no sistema em termos de tempo de atividade e experiência do usuário. O campo da engenharia do caos, e especificamente do Chaos Monkey, ainda é relativamente novo, mas esses tipos de testadores de sistemas e software são procurados por empresas maiores que precisam saber se seus sistemas estão totalmente operacionais, independentemente da situação ou de fatores externos associados à computação em nuvem. .

Questões de entrevista

Como um engenheiro constrói uma hipótese para testar com o Chaos Monkey em torno do comportamento em estado estacionário?

Concentrar-se na saída mensurável do sistema para fins de teste, em vez de nos atributos internos. As taxas de erro gerais do sistema, os percentis de latência, a taxa de transferência e assim por diante podem ser possíveis métricas de interesse na determinação do comportamento do estado estacionário.

Medir a produção durante um período de tempo relativamente curto também constitui um indicador do estado estacionário do sistema. Ao trabalhar desta forma, o “caos” verificará se o sistema funciona através do foco em padrões comportamentais sistêmicos durante os experimentos, em vez de validar como ele funciona.

É aconselhável executar experimentos manual ou automaticamente no Chaos Monkey e na engenharia do caos?

Embora a execução manual de experimentos ajude os desenvolvedores a criar e testemunhar as reações do sistema, ela exige muito trabalho e, em última análise, não é escalonável ou sustentável para uma equipe. Uma prática melhor na engenharia do caos é automatizar experimentos e executá-los continuamente. A engenharia do caos normalmente incorpora automação ao sistema para conduzir tanto a criação de experimentos quanto a análise de resultados.

Quais são alguns dos contras de usar o Chaos Monkey?

Chaos Monkey é incrivelmente benéfico, mas apresenta algumas desvantagens. Requer o uso do MySQL 5.X e não oferece suporte a implantações gerenciadas em nada além do Spinnaker. Ele oferece apenas um escopo limitado de testes, pois injeta um tipo de falha por vez para produzir uma falha aleatória de instância como falhas de “cauda longa” experimentadas durante o ciclo de vida do software ou programa.

Chaos Monkey também não possui uma interface de usuário real e requer execução por meio de linha de comando, scripts e arquivos de configuração. Indiscutivelmente, a sua maior desvantagem é o facto de não oferecer capacidades de recuperação. A engenharia do caos incentiva a realização dos menores experimentos possíveis no início para conter as repercussões e para que as equipes de engenharia trabalhem a partir daí para evitar a falha total do sistema.

Descrição do trabalho

Estamos procurando um engenheiro experiente responsável pela engenharia do caos através do uso do Chaos Monkey. Esta posição inclui o projeto e a execução de testes de caos e carga para testar sistemas, software e aplicativos de alto desempenho.

O candidato certo utilizará seu conhecimento de estruturas de aplicativos e tecnologias de conteinerização para projetar, gerenciar e manter os programas desenvolvidos para enfatizar e determinar a sustentabilidade e a confiabilidade de sistemas críticos. Você deve ser um indivíduo altamente motivado, pronto para realizar testes rápidos e, ao mesmo tempo, trabalhar de maneira ágil para fornecer soluções confiáveis ​​que atendam às necessidades de negócios.

Responsabilidades do trabalho

  • Manter e melhorar o caos em toda a empresa e os testes de confiabilidade das plataformas tecnológicas
  • Execute testes de caminho crítico em grande escala em todas as plataformas
  • Crie planos e modelos de desempenho para aplicativos e sistemas de infraestrutura altamente escaláveis, de baixa latência e altamente disponíveis
  • Contribuir ativamente para exercícios de planejamento de capacidade e preparação para recuperação de desastres
  • Monitore o desempenho dos aplicativos, otimize gargalos de desempenho e gerencie o uso para criar modelos de capacidade
  • Faça parceria com equipes de desenvolvimento para identificar e criar planos alternativos para cenários críticos

Qualificações de trabalho

  • Bacharelado em Ciência da Computação
  • Mais de 5 anos de experiência em engenharia de software, MySQL, Golang e linguagens de programação relevantes
  • Mais de 4 anos de experiência profissional relevante em engenharia do caos
  • Conhecimento profundo das melhores práticas do Chaos Monkey em vários domínios, incluindo aplicativos, redes, bancos de dados
  • Experiência em estratégias de monitoramento, incluindo usuários reais, sintéticos, conexões de rede e assim por diante

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.