Cloud Computing

7 nov, 2016

Chaos Monkey da Netflix é atualizado – veja o que muda

Publicidade

Neste artigo, trazemos a vocês uma nova atualização open source da Netflix, o Chaos Monkey 2.0, que está no GitHub. Neste texto, vamos demonstrar como a Netflix trata sua arquitetura de microsserviços.

Como o tráfego da Netflix tem crescido exponencialmente, há alguns anos, eles tomaram uma decisão de melhorar a resiliência da sua arquitetura de microsserviços. Atualmente, devido à escalabilidade da sua aplicação, os servidores em sua plataforma de nuvem acabam falhando ou desaparecendo de repente. Caso essa falha não seja tratada com redundância e automação adequadas, os desaparecimentos desses servidores podem causar muitos problemas.

A Netflix trabalha com uma cultura de liberdade e responsabilidade que não possui um mecanismo que force os engenheiros a arquitetar seu código de uma maneira específica. Para contornar essa situação, eles descobriram que poderiam construir um forte alinhamento em torno da resiliência, trazendo esse problema do desaparecimento dos servidores à tona. Assim, eles criaram o Chaos Monkey. O Chaos Monkey, como o próprio nome diz, tem o intuito de gerar caos de maneira aleatória. Ele escolhe aleatoriamente servidores em seu ambiente de produção e os desativa durante o horário comercial. Algumas pessoas achavam que isso era uma loucura, mas, para a empresa, eles não poderiam mais depender do comportamento aleatório da ocorrência. Sabendo que isso iria acontecer frequentemente, foi criado então um forte alinhamento entre os engenheiros a fim de construir a redundância e a automação para que o serviço sobrevivesse a esse tipo de incidente, sem qualquer impacto para os milhões de membros da Netflix em todo o mundo.

Para a Netflix, o Chaos Monkey é uma ferramenta altamente eficaz para melhorar a qualidade dos seus serviços. Agora, o Chaos Monkey evoluiu. Eles reescreveram o serviço para melhorar a capacidade de manutenção e adicionaram alguns novos recursos. A evolução do Chaos Monkey faz parte do compromisso da empresa de manter o software de código aberto, atualizado com o ambiente atual e com as necessidades da Netflix.

Integração com Spinnaker

O Chaos Monkey 2.0 está totalmente integrado com Spinnaker, a plataforma de entrega contínua da Netflix.

Os proprietários dos serviços definem suas configurações do Chaos Monkey por meio dos aplicativos Spinnaker. O Chaos Monkey obtém informações sobre como os serviços são implantados no Spinnaker e encerra instâncias através do Spinnaker.

Assim como o Spinnaker, o Chaos Monkey trabalha com múltiplos backends de nuvem. No ambiente Netflix, o Chaos Monkey encerra instâncias de máquinas virtuais em execução em containers AWS e Docker rodando em Titus, o container de nuvem deles.

A integração com Spinnaker também deu a oportunidade de melhorar a UX. Foram entrevistados os clientes internos e, assim, eles criaram um método mais intuitivo para planejar os encerramentos. Os proprietários dos serviços podem agora expressar um planejamento em termos de tempo médio entre os encerramentos, em vez de criar uma probabilidade dentro de um período de tempo arbitrário. Também foi adicionado agrupamento por aplicativo, pilha ou cluster, para que os aplicativos que tenham arquiteturas de redundância diferentes possam programar o Chaos Monkey apropriado para sua configuração. O Chaos Monkey agora também oferece suporte especificando exceções para que os usuários possam optar por clusters específicos. Alguns engenheiros da Netflix usam esse recurso para excluir clusters pequenos que são usados para testes.

spinnakerchaosui

Monitorando encerramentos

O Chaos Monkey agora pode ser configurado para especificar trackers. Esses serviços externos receberão uma notificação quando o Chaos Monkey encerrar uma instância. Internamente, esse recurso é utilizado para reportar métricas no Atlas, a plataforma de telemetria da Netflix, e no Chronos, o sistema de rastreamento de eventos deles. O gráfico abaixo, tirado da Atlas UI, mostra o número de terminais do Chaos Monkey para um segmento do serviço. Podemos ver o caos em ação. O próprio Chaos Monkey é encerrado periodicamente.

atlaschaos

Apenas encerramentos

O Netflix só usa o Chaos Monkey para encerrar instâncias. Versões anteriores do Chaos Monkey permitiram o serviço ssh em uma caixa e melhoraram outras ações como queimar CPU, usar iscos offline etc. Se você usar uma das versões anteriores do Chaos Monkey nos dias de hoje para executar um teste que envolva qualquer coisa diferente de tornar uma instância off, é melhor você não atualizar, uma vez que você perderia essa funcionalidade.

Finalmente

A Netflix também usa essa oportunidade para introduzir muitos recursos pequenos, como a exclusão automática para canários, terminações em várias contas e a desativação automática durante uma interrupção. Encontre o código na conta Netflix no GitHub e abrace o caos!

***

Fonte: http://techblog.netflix.com/2016/10/netflix-chaos-monkey-upgraded.html