- A "nuvem" fornece redundância e tolerância a falhas
- Necessidade de um sistema onde o link mais fraco pode falhar e outras partes do sistema continuam funcionando
- No Netflix, as seguintes técnicas são utilizadas:
- Graceful degration
- Datacenter/availability-zone
- [Regionally-redundant deployments] (http://techblog.netflix.com/2013/12/active-active-for-multi-regional.html)
- Testar esse sistema é muito importante para garantir interoperabilidade
- Metáfora do pneu furado
- Existe um step? Está cheio?
- As ferramentas para trocar o pneu estão disponíveis?
- Existe alguém que saiba trocar o pneu?
- Furar pneu todo domingo pela tarde e trocar pneu
-
Chaos Monkey - ferramenta que desabilita instâncias de produção para garantir que infraestrutura siga funcionando sem impacto para os usuários. Máquinas são escolhidas e monitoradas de perto por especialistas. Execução acontece em um dia normal da semana. Mais informações em:
-
Latency Monkey - Simular degração de um serviço. Latência alta em um determinado serviço. Como essa verificação acontece? Qual é o threshold?
-
[Conformity Monkey] (https://github.com/Netflix/SimianArmy/wiki/Conformity-Home) - Examina instâncias que não aderem as melhores práticas e desabilita essas instâncias. Que instâncias são essas? Recursos das máquinas? Performance das aplicações? Quais são essas melhores práticas? Mais informações em:
-
Doctor Monkey - Identifica instâncias que não são saúdaveis. Exemplo CPU load alto. Recursos escassos. Remove essas instâncias da infra, responsáveis devem corrigir problemas.
-
Janitor Monkey - Remove "clutter" e "waste" nos ambientes. O que é considerado "clutter" e "waste" em um ambiente de nuvem? Mais informações em:
-
Security Monkey - Encontra brechas e problemas de segurança no ambiente. AWS Security Groups estão bem configurados e certificados (SSL e DRM) estão validos e não expirando.
-
10-18 Monkey - Detecta problemas de internacionalização/localização. Executa instâncias em múltiplas regiões, utilizando diferentes línguas e conjuntos de caracteres. Como isso acontece exatamente? Dependência forte com aplicação das instâncias?
-
Chaos Gorilla - Simula a indisponibilidade uma "availability zone" da Amazon. Serviços devem continuar funcionando, utilizando outras "availability zones" sem impacto para o usuário ou intervenção manual.
- Post Original - http://techblog.netflix.com/2011/07/netflix-simian-army.html
- Código no Github - https://github.com/Netflix/SimianArmy
- Chaos Kong - http://techblog.netflix.com/2015/09/chaos-engineering-upgraded.html
- Principles of Chaos - http://www.principlesofchaos.org/
- Origem dos Monkeys - http://www.folklore.org/StoryView.py?project=Macintosh&story=Monkey_Lives.txt
- Artigo acadêmico dos criadores da ferramenta - http://queue.acm.org/detail.cfm?id=2371297