SLI, SLO & Error Budget
Como Google SRE mede confiabilidade β e por que media nunca e a metrica
A premissa do SRE: "100% nao e o target". Sistemas perfeitamente confiaveis sao caros e impedem ship de features. O error budget torna explicito quanto de "imperfeicao" voce pode gastar, e quando esgota, todo o time para de fazer features e foca em reliability ate recuperar.
Tres conceitos confundidos toda hora
| O que e | Para quem | Exemplo | |
|---|---|---|---|
| SLI Service Level Indicator | A medicao real de algo que importa para o usuario | Internamente; metric concreta no dashboard | "% de requests com latencia < 500ms na ultima hora" |
| SLO Service Level Objective | O target interno para o SLI ao longo de uma janela | Time de produto + engenharia; aspiracional mas realista | "99.9% dos requests < 500ms ao longo de 30 dias" |
| SLA Service Level Agreement | Contrato com cliente β com consequencia financeira se violado | Externamente; sempre mais frouxo que SLO interno | "99.5% uptime ou desconto de X%" |
Por que SLA < SLO sempre: voce quer ter um buffer entre seu target interno e o que prometeu ao cliente. Se SLO = SLA, qualquer pequena degradacao vira incidente contratual. Pratica comum: SLO 99.9% / SLA 99.5%.
O que faz uma boa SLI
- Espelha experiencia do usuario: latencia percebida, taxa de sucesso, freshness de dados
- E mensuravel agora: sem ferramenta nova, sem instrumentacao que ainda nao existe
- E acionavel: quando piora, voce sabe o que olhar
- Tem janela de medicao definida: "% de requests OK nos ultimos 30 dias rolling" e diferente de "% de requests OK hoje"
SLI tipicos por shape de servico
| Tipo | SLI tipicas |
|---|---|
| API request/response | Availability (% nao-5xx), Latency (% requests < X ms) |
| Storage / DB | Read latency (p95), Write durability, Read freshness |
| Streaming / pipeline | End-to-end freshness, Throughput, Loss rate |
| Batch job | Completion rate, Time-to-completion |
Diferenca entre SLO e SLA em uma frase?
SLO e o target interno que o time persegue (ex: 99.9% das requests em < 500ms); SLA e o contrato externo com cliente que tem consequencia financeira se violado (sempre mais frouxo que SLO, por margem de seguranca). SLI e a metrica real que voce mede para validar SLO/SLA.