Lázaro V Bonifácio

Profissional de Devops/SRE/Infraestrutura Cloud Brasileiro

Lázaro V Bonifácio

Profissional de Devops/SRE/Infraestrutura Cloud Brasileiro

Chaos Engineering

Arquivo 1: Como o chaos engineering garante a resiliência dos seus serviços – Elder Moraes

Opinião introdutória

Até onde eu entendo, o chaos engineering foi criado pelo Netflix, porque a equipe de SRE não tem o que fazer, e acredita que instabilidade em produção é o caminho para revelar os problemas existentes. E para tanto, é necessário que o desenvolvimento seja baseado em algo diferente do modelo tradicional para o guiado a testes ou comportamento. Além disso, precisa existir outros tipos de testes (unitário, smoke, sec, integração, E2E, entre outros) antes de querer aplicar um chaos.

Introdução

É a disciplina de realizar experimentos em um sistema com o intuito de construir confiança com relação à sua capacidade de suportar condições adversas em produção.

Resiliência é a capacidade de um sistema de se adaptar a mudanças, falhas e anomalias. Graceful degradation.

Lei de Moore: a merda que tem que acontecer, vai acontecer.

Criar falhas de propósito para encontrar falhas e fraquezas

Comece pequeno!

Onde injetar o caos

Na aplicação, no cache, no banco de dados, na nuvem, na infra, na rede…

Fases

  1. Estágio estacionário
  2. Construir hipóteses
  3. Desenhar experimentos
  4. Resultados e aprendizado
  5. Correções

Estado estacionário

Métrica de negócio: a métrica que fala exatamente como está sendo a experiência do cliente.

Observe o comportamento da métrica do negócio durante a análise dos resultados e aprendizado.

A métrica é um medida quantitativa para avaliar, controlar e/ou selecionar.

Métrica VS Health check

O health check fala que o serviço está disponível, mas a métrica fala como ele está disponível. O health check não diz por quanto tempo a mais o serviço vai está disponível.

Hipóteses

Faça a pergunta: “E se…?”

Desenhar o experimento

Comece pequeno

O mais próximo possível da produção

Minimize o raio de ação

Tenha um meio de parar emergencialmente

Pode ser fazer algo parecido com o canary deployment: separa dois grupos da produção: um para controle e outro para o experimento. Com os loadbalancer é ainda mais fácil fazer isso.

Resultados e aprendizado

Tempo de detecção? Tempo de notificação? graceful degradation? Tempo para restabelecimento?

Correção

Melhoria contínua

Ferramentas

  • Istio
  • Chaos Toolkit
  • Chaos Monkey
  • Chaos Kong
  • Kube Monkey
Chaos Engineering

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para o topo