Seção 5: Site Reliability Engineering¶
Site Reliability Engineering (SRE) é uma disciplina que aplica princípios de engenharia de software à infraestrutura e operações. Criada no Google em 2003 por Ben Treynor Sloss, a SRE define metas de confiabilidade quantificáveis e usa software para alcançá-las. Em 2024-2025, a SRE evolui para incorporar IA na predição e prevenção de falhas.
Objetivos de Aprendizagem¶
Ao final desta seção, você será capaz de:
- Definir SLIs, SLOs e SLAs apropriados para diferentes serviços
- Calcular e gerenciar error budgets
- Identificar e eliminar toil (trabalho operacional manual)
- Projetar sistemas de monitoramento proativo
- Aplicar IA na análise de confiabilidade
Conceitos Fundamentais¶
Os Três Pilares da Confiabilidade¶
1. Service Level Indicators (SLIs)
Métricas quantitativas que medem comportamento do serviço:
SLI = (Eventos Bons / Eventos Totais) × 100
Exemplos:
- Availability: (requisições bem-sucedidas / requisições totais)
- Latency: percentil 99 de tempo de resposta
- Error Rate: percentual de requisições com erro 5xx
- Throughput: requisições por segundo
2. Service Level Objectives (SLOs)
Metas de confiabilidade acordadas:
SLO = Target SLI + Janela de Tempo
Exemplo:
"99.9% de disponibilidade em uma janela de 30 dias"
Isso permite:
- 43.8 minutos de downtime por mês
- 8.76 horas por ano
3. Service Level Agreements (SLAs)
Compromissos contratuais com consequências financeiras:
Error Budget¶
O error budget é a diferença entre 100% e o SLO. Representa o quanto você pode "falhar" sem violar o objetivo.
Error Budget = 100% - SLO
Para SLO de 99.9%:
- Error Budget = 0.1%
- Em 1 milhão de requisições: 1.000 podem falhar
Princípio fundamental: O error budget é um orçamento a ser gasto, não poupado. Ele incentiva:
- Inovação controlada (novos features podem usar parte do budget)
- Trade-offs explícitos entre velocidade e confiabilidade
- Decisões baseadas em dados
Eliminação de Toil¶
Toil é trabalho manual repetitivo que não agrega valor diferenciado:
| Característica | Exemplo de Toil | Solução |
|---|---|---|
| Repetitivo | Escalar VMs manualmente | Autoscaling |
| Automatizável | Rotacionar credenciais | Vault automation |
| Sem valor duradouro | Responder alertas falsos | Correlação inteligente |
| Cresce linearmente | Onboarding de serviços | Templates e self-service |
Meta SRE: Cada engenheiro deve gastar no máximo 50% do tempo em operações (toil + on-call), e pelo menos 50% em projetos de engenharia (automação, melhorias).
Na Era dos LLMs¶
SRE com IA Generativa¶
A pesquisa da Rootly (2025) indica que a IA está transformando SRE de reativa para proativa:
Transformações Fundamentais:
| Aspecto | Antes (2023) | Agora (2025) |
|---|---|---|
| Abordagem | Reativa (firefighting) | Proativa (prevenção) |
| Tomada de decisão | Baseada em regras | Baseada em ML/IA |
| Escalação | Manual para humanos | Automatizada com aprovação |
| Documentação | Runbooks estáticos | Assistência conversacional |
Ferramentas de SRE com IA (2025)¶
1. PagerDuty with AI
- Correlação inteligente de alertas
- Supressão de ruído em 60-80%
- Roteamento automático baseado em contexto
2. Datadog Watchdog
- Detecção automática de anomalias
- RCA assistida por IA
- Integração com traces e logs
3. New Relic AI
- Análise de causa raiz automatizada
- Correlação entre serviços
- Recomendações de remediação
4. Dynatrace Davis
- IA determinística (não apenas ML probabilístico)
- Causalidade exata de problemas
- Predição de falhas antes do impacto
5. Rootly AI
- Automação de gestão de incidentes
- Geração automática de post-mortems
- Runbooks dinâmicos baseados em contexto
Predição de Falhas com LLMs¶
Pesquisas da Microsoft Research (2024) demonstraram que LLMs para RCA alcançam 76,6% de acurácia em incidentes reais:
Arquitetura de RCA com LLMs:
Incidente → Coleta de Dados (logs, métricas, traces)
→ Enriquecimento de Contexto (topologia, histórico)
→ Análise por LLM (pattern matching, causalidade)
→ Identificação da Causa Raiz
→ Recomendações de Resolução
Limitações atuais:
- Contexto limitado (janela de atenção do LLM)
- Dependência de qualidade dos dados de telemetria
- Custo computacional elevado para análise em tempo real
- Erros conceituais sutis que requerem validação humana
Práticas e Ferramentas¶
Framework SRE de Implementação¶
Semana 1-2: Fundação
- Identificar serviços críticos
- Definir SLIs iniciais
- Estabelecer baseline de confiabilidade
Semana 3-4: SLOs
- Negociar SLOs com stakeholders
- Calcular error budgets
- Criar dashboards de SLOs
Semana 5-8: Automação
- Mapear e priorizar toil
- Implementar automações de maior impacto
- Documentar runbooks
Semana 9-12: IA e Proatividade
- Implementar detecção de anomalias
- Configurar RCA automatizado
- Estabelecer feedback loops
Calculando SLIs Apropriados¶
Para serviço web:
# Exemplo de cálculo de SLI de disponibilidade
def calcular_sli_disponibilidade(requisicoes_bem_sucedidas, total_requisicoes):
"""
SLI de disponibilidade = requisições HTTP 2xx/3xx / total de requisições
"""
return (requisicoes_bem_sucedidas / total_requisicoes) * 100
# Dados de exemplo
requisicoes_2xx = 998500
requisicoes_5xx = 1500
total = 1000000
sli = calcular_sli_disponibilidade(requisicoes_2xx, total)
print(f"SLI de Disponibilidade: {sli:.3f}%") # 99.850%
Para serviço de fila:
def calcular_sli_latencia_fila(mensagens_no_prazo, total_mensagens):
"""
SLI de latência = mensagens processadas dentro do SLA / total
"""
return (mensagens_no_prazo / total_mensagens) * 100
# Se SLO é processar em 5 minutos
mensagens_no_prazo = 99500
total_mensagens = 100000
sli = calcular_sli_latencia_fila(mensagens_no_prazo, total_mensagens)
print(f"SLI de Latência: {sli:.2f}%") # 99.50%
Gerenciando Error Budgets¶
Política de Error Budget:
Se error budget > 50% restante:
→ Inovação liberada, deploys agressivos permitidos
Se error budget entre 25-50%:
→ Deploys com cautela, aumentar testes
Se error budget < 25%:
→ Congelar features, focar em estabilidade
→ Requerer aprovação extra para deploys
Se error budget esgotado:
→ Moratória de features até próxima janela
→ Todo esforço em melhorias de confiabilidade
Trade-offs e Considerações¶
SLOs Realistas vs. Aspiracionais¶
| Tipo | Quando Usar | Risco |
|---|---|---|
| Realista (atingível) | Serviços maduros, SLA contratual | Pode ser muito conservador |
| Aspiracional (desafiador) | Serviços novos, melhoria contínua | Time pode desistir se muito difícil |
| Conservador | Serviços críticos (pagamentos, saúde) | Custo operacional alto |
| Aggressive | Serviços não-críticos, experimentais | Risco de burnout do time |
SRE vs. DevOps¶
Embora relacionados, há diferenças importantes:
| Aspecto | DevOps | SRE |
|---|---|---|
| Foco | Fluxo de entrega | Confiabilidade em produção |
| Origem | Movimento cultural | Prática do Google |
| Métricas | DORA (velocity) | SLIs/SLOs (reliability) |
| Time | Multifuncional | Especializado em confiabilidade |
| Cultura | Colaboração | Engenharia de sistemas |
Integração ideal: DevOps define o pipeline; SRE define as guardrails de confiabilidade dentro desse pipeline.
Estudos de Caso¶
Caso 1: Definição de SLOs em Fintech¶
Contexto: Plataforma de pagamentos processando 10M transações/dia
Desafio: SLOs muito agressivos (99.999%) estavam:
- Impedindo deploys de melhorias de UX
- Causando burnout da equipe
- Custando 3x mais em infraestrutura
Solução:
- Reduziu SLO para 99.95% (4.32 minutos/mês de downtime)
- Separou SLOs por tier de serviço:
- Critical (pagamentos): 99.99%
- Standard (relatórios): 99.9%
- Internal (admin): 99%
Resultados:
- 40% mais deploys de features
- Custo de infraestrutura reduzido em 25%
- Equipe mais engajada
- Nenhum impacto negativo nos negócios
Caso 2: Automação de Toil em E-commerce¶
Contexto: Operação manual de black friday - 20 engenheiros trabalhando 48h seguidas
Toil identificado:
- Escalação manual de instâncias
- Verificação de health checks
- Roteamento de tráfego manual
- Comunicação de status para stakeholders
Solução com IA:
- Autoscaling preditivo baseado em histórico
- Health checks automatizados com self-healing
- Roteamento automático com circuit breakers
- Dashboard de status público + notificações automáticas
Resultados:
- Black friday seguinte: 2 engenheiros de plantão
- Zero downtime não planejado
- Economia de 1600h de trabalho manual
Exercícios¶
Exercício 1: Definição de SLIs¶
Para um serviço de API REST de e-commerce, defina:
- Quatro SLIs relevantes
- Como calcular cada um
- Quais dados são necessários
- Quais ferramentas coletariam esses dados
Exercício 2: Cálculo de Error Budget¶
Dado:
- SLO de 99.9% de disponibilidade
- Janela de 30 dias
- Incidentes no mês:
- Dia 5: 15 minutos de downtime
- Dia 12: 8 minutos de degradação parcial
- Dia 23: 20 minutos de downtime
Questões:
- Quanto error budget foi consumido?
- Quanto resta para o mês?
- Que decisões você tomaria com esse budget?
Exercício 3: Análise de Toil¶
Liste 5 atividades de toil em sua organização atual. Para cada uma:
- Estime horas/semana gastas
- Avalie automatizabilidade (1-5)
- Priorize por impacto vs. esforço
- Proponha solução (com ou sem IA)
Resumo¶
SRE é engenharia aplicada à confiabilidade. SLIs medem, SLOs definem metas, error budgets permitem trade-offs informados, e eliminação de toil libera capacidade para inovação. A IA amplifica SRE permitindo predição e automação inteligente, mas fundamentos sólidos de métricas e processos são pré-requisitos.
Referências¶
- Beyer, B., et al. (2016). Site Reliability Engineering. O'Reilly Media.
- Murphy, N., et al. (2017). The Site Reliability Workbook. O'Reilly Media.
- Microsoft Research (2024). Exploring LLM-Based Agents for Root Cause Analysis.
- Rootly (2025). DevOps Reliability Trends 2025: AI Drives SRE Adoption.
- Incident.io (2025). 5 AI-powered SRE tools transforming DevOps.