5 min leitura • Guide 821 of 877
Service Level Objectives (SLOs)
Confiabilidade é uma feature. GitScrum ajuda times a rastrear SLOs junto com trabalho de features, garantindo que investimentos em confiabilidade sejam visíveis e priorizados.
Fundamentos de SLO
SLI, SLO, SLA
TERMINOLOGIA DE SERVICE LEVEL:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SLI (Service Level Indicator): │
│ ────────────────────────────── │
│ A métrica sendo medida │
│ │
│ Exemplos: │
│ • Latência de request (p95) │
│ • Disponibilidade (requests bem-sucedidos / total) │
│ • Taxa de erro │
│ • Throughput │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ SLO (Service Level Objective): │
│ ────────────────────────────── │
│ O valor alvo para o SLI │
│ │
│ Exemplos: │
│ • Latência p95 < 200ms │
│ • Disponibilidade >= 99.9% │
│ • Taxa de erro < 0.1% │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ SLA (Service Level Agreement): │
│ ────────────────────────────── │
│ Contrato com consequências │
│ │
│ Exemplos: │
│ • "99.9% uptime ou cliente recebe crédito" │
│ • Compromisso legal │
│ • Geralmente mais flexível que SLO interno │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ RELACIONAMENTO: │
│ │
│ SLI ──────→ SLO ──────→ SLA │
│ (medida) (meta) (contrato) │
│ │
│ Exemplo: │
│ "Latência de request" → "p95 < 200ms" → "99% < 500ms" │
│ │
│ SLO é mais estrito que SLA (buffer interno) │
│ │
└─────────────────────────────────────────────────────────────┘
Definindo SLOs
Escolhendo Métricas
ESCOLHENDO SLIs:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SLIs CENTRADOS NO USUÁRIO: │
│ ────────────────────────── │
│ Escolha métricas que refletem experiência do usuário │
│ │
│ DISPONIBILIDADE: │
│ "Usuários podem usar o serviço?" │
│ SLI: Requests bem-sucedidos / Total de requests │
│ SLO: 99.9% (43.8 minutos downtime/mês permitidos) │
│ │
│ LATÊNCIA: │
│ "Quão rápido responde?" │
│ SLI: Percentis de duração de request │
│ SLO: p50 < 100ms, p95 < 200ms, p99 < 500ms │
│ │
│ CORREÇÃO: │
│ "Retorna a resposta certa?" │
│ SLI: Respostas corretas / Total de respostas │
│ SLO: 99.99% correto │
│ │
│ FRESHNESS: │
│ "Quão recentes são os dados?" │
│ SLI: Idade dos dados │
│ SLO: Dados atualizados em 60 segundos │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ SLOs COMUNS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ SERVIÇO SLI SLO ││
│ │ ──────── ─── ─── ││
│ │ API Disponibilidade 99.9% ││
│ │ API Latência (p95) < 200ms ││
│ │ Website Page load (p95) < 3s ││
│ │ Database Query time (p95) < 50ms ││
│ │ Checkout Taxa de sucesso 99.5% ││
│ │ Search Latência (p95) < 500ms ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ NÃO MIRE EM 100%: │
│ ───────────────── │
│ 100% disponibilidade = Sem deploys, sem mudanças │
│ Deixe espaço para error budget │
└─────────────────────────────────────────────────────────────┘
Error Budget
Conceito e Uso
ERROR BUDGET:
┌─────────────────────────────────────────────────────────────┐
│ │
│ O QUE É: │
│ Error budget = 100% - SLO │
│ │
│ Se SLO = 99.9%, Error Budget = 0.1% │
│ Em 30 dias = 43.2 minutos de downtime permitidos │
│ │
│ USO DO ERROR BUDGET: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Error Budget (43.2 min/mês) ││
│ │ ┌──────────────────────────────────────────────────┐ ││
│ │ │ Deploys │ Experimentos │ Incidentes │ Restante │ ││
│ │ │ 15min │ 10min │ 8min │ 10min │ ││
│ │ └──────────────────────────────────────────────────┘ ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ QUANDO BUDGET ACABA: │
│ ├── Congela deploys não-críticos │
│ ├── Foca em trabalho de confiabilidade │
│ ├── Investiga causa raiz │
│ └── Recupera budget antes de novas features │
│ │
└─────────────────────────────────────────────────────────────┘
Melhores Práticas
Para SLOs
- Centrado no usuário — Métricas que importam
- Não 100% — Deixe error budget
- Menos é mais — 3-5 SLOs por serviço
- Revise — Ajuste baseado em realidade
- Ação — SLO guia decisões
Anti-Padrões
ERROS DE SLO:
✗ Mirar em 100%
✗ Muitos SLOs
✗ SLOs que não refletem usuário
✗ Não usar error budget
✗ Não agir quando SLO violado
✗ SLO = SLA (sem buffer)
✗ Não revisar periodicamente
✗ Métricas técnicas vs. usuário