Site Reliability Engineer Sênior
Frameworks SRE (Google-style) adaptados para empresas brasileiras: SLO-driven reliability, error budgets, postmortems blameless, toil reduction e chaos engineering.
Palavras-chave
SRE, site reliability, SLI, SLO, SLA, error budget, postmortem, blameless, on-call, incident management, incident commander, chaos engineering, toil, capacity planning, observability, DORA metrics
Responsabilidades Principais
1. SLI/SLO/SLA (definição em camadas)
SLI (Service Level Indicator) — o que você mede
- Latência do p99 de requisições HTTP bem-sucedidas
- % de transações completadas com sucesso
- Freshness de dados em dashboard
- Disponibilidade = 1 - (failed_requests / total_requests)
SLO (Service Level Objective) — meta interna
- 99.9% de disponibilidade mensal (= 43m 49s de downtime/mês)
- p99 < 300ms em 99% das requisições
- 99.5% dos emails transacionais entregues em < 30s
SLA (Service Level Agreement) — promessa contratual com cliente
- Sempre MAIS PERMISSIVO que o SLO (buffer de segurança)
- SLO 99.9% → SLA 99.5% (deixa margem antes de devolver créditos)
Regra-chave: SLO é uma decisão de negócio, não técnica. Pergunte "o cliente percebe a diferença entre 99.9% e 99.99%?" Se não, economize milhões.
2. Error Budget
Se SLO = 99.9%, error budget = 0.1% do período.
- Em 30 dias = 43 minutos 49s de "permissão para falhar"
Policy típica:
- Budget intacto (>50%) → libere features agressivamente
- Budget 20-50% → cautela, reduza velocidade de deploy
- Budget <20% → congele novas features, foco em reliability
- Budget exaurido → freeze total até recuperação
# error-budget-policy.yaml
service: checkout-api
slo: 99.9%
window: 30d
thresholds:
green: ">= 50%"
yellow: "20% - 50%"
red: "< 20%"
exhausted: "< 0%"
actions:
green:
- normal_velocity
yellow:
- reduce_deploy_frequency
- require_sre_review
red:
- freeze_non_critical_features
- weekly_reliability_reviews
exhausted:
- full_feature_freeze
- daily_war_room
3. Observabilidade (Three Pillars + Traces + Profiling)
Stack mínimo (2026):
- Metrics: Prometheus + Grafana, OpenTelemetry SDK
- Logs: Loki, Elastic ou Datadog
- Traces: Jaeger, Tempo ou Datadog APM
- Profiling contínuo: Pyroscope, Grafana Cloud Profiles
Dashboards por serviço (Golden Signals):
- Latency (distribuição, não média — use p50/p95/p99)
- Traffic (RPS, throughput)
- Errors (rate + %)
- Saturation (CPU, memória, conexões, queue depth)
Alertas — SEMPRE:
- Baseados em SLO (burn rate), não em thresholds fixos
- Multi-window burn rate (5m + 1h + 6h)
- Actionable (se não há ação, não alerte)
- Com runbook linkado no alert
# alert.yaml — Burn rate alert
alert: CheckoutAPIErrorBudgetBurnRate
expr: |
(
error_budget_burn_rate_5m > 14.4
AND error_budget_burn_rate_1h > 14.4
) OR (
error_budget_burn_rate_30m > 6
AND error_budget_burn_rate_6h > 6
)
severity: page
runbook: https://docs/runbooks/checkout-api-errors
4. Incident Management
Estrutura de resposta:
- Incident Commander (IC): coordena, não executa
- Subject Matter Expert (SME): diagnóstico e remediação
- Communications Lead: updates externos e internos
- Scribe: registra timeline
Severidades:
| Sev |
Impacto |
Resposta |
| 1 |
Produção derrubada, receita parada |
Imediata, war room |
| 2 |
Funcionalidade crítica degradada |
Em horário, < 1h |
| 3 |
Degradação parcial |
Em horário, < 4h |
| 4 |
Incomodo menor |
Em backlog |
Timeline de um SEV1:
- 0-5min: IC declara, cria war room, notifica stakeholders
- 5-15min: Triage inicial, hipóteses, rollback se óbvio
- 15-60min: Mitigação (rollback, scale, circuit break, trafego switch)
- Pós: postmortem em até 72h
5. Postmortem Blameless
Template:
# Postmortem: Incidente CHK-2026-04-15
## Resumo
- **Data**: 2026-04-15 14:23 BRT — 2026-04-15 15:47 BRT
- **Duração**: 1h 24min
- **Impacto**: 100% de falhas no checkout para ~12k usuários
- **Severidade**: SEV1
## Timeline
| Hora | Evento |
|------|--------|
| 14:23 | Deploy v2.4.0 iniciado |
| 14:24 | Alerta burn rate 5m disparado |
| 14:28 | IC declarado, rollback iniciado |
| 14:42 | Rollback completo, recuperação parcial |
| 15:47 | Recuperação total confirmada |
## Causa Raiz
Migração de schema adicionou NOT NULL em coluna `session_id`, mas rollout do backend precedeu migração. Durante janela de 20 min, INSERTs falharam com `null value in column "session_id"`.
## O Que Funcionou
- Alerta de burn rate disparou em 1 minuto
- Rollback automático estava configurado
## O Que Não Funcionou
- Ordem de migração não estava documentada
- Canary deploy só cobria 1% por 5min (insuficiente)
## Ações
| # | Ação | Dono | Prazo | Prioridade |
|---|------|------|-------|------------|
| 1 | Forçar migrations antes de backend em CI | SRE | 2026-04-25 | P0 |
| 2 | Aumentar canary para 10min em serviços críticos | Platform | 2026-05-10 | P1 |
| 3 | Runbook de incidents de schema | SRE | 2026-05-15 | P2 |
## Lições Aprendidas
Um princípio emergiu: "deploys de schema e código são acoplados; trate como uma unidade."
Regras:
- Blameless: foque em sistemas e processos, não pessoas
- Sem "deveria ter": descreva o que aconteceu e por quê
- Ações com dono, prazo e prioridade — senão não sai do papel
- Compartilhe amplamente (dentro da empresa) — aprendizado é patrimônio
6. Toil Reduction
Toil = trabalho operacional manual, repetitivo, automatizável, sem valor duradouro.
Alvo SRE canônico: < 50% do tempo em toil.
Identificação:
- Tickets de onboarding/offboarding manuais
- Restart de serviços por degradação
- Rotação de credenciais manual
- Criação de ambientes sob demanda
- Escalamento manual de recursos
Strategy:
- Medir (timesheet ou ticket analysis)
- Categorizar (reactive vs. proactive)
- Priorizar por frequência × duração
- Automatizar top 3 por quarter
- Medir redução trimestralmente
7. Capacity Planning
Fórmula:
Capacidade = Baseline × (1 + crescimento_anual) × fator_segurança
Ex: 10k RPS atual × (1 + 0.6) × 1.5 = 24k RPS de capacidade planejada
Inputs:
- Baseline atual (p99 RPS e resource use)
- Projeção de crescimento (product + business + seasonality)
- Fator de segurança (1.3 estável / 1.5 em crescimento / 2.0 em hypergrowth)
- Lead time de capacity (cloud = minutos; hardware = meses)
Outputs:
- Headroom requirements por serviço
- Budget de infra trimestral
- Triggers para scale automático
- Black Friday / eventos prep list
8. Chaos Engineering
Princípios:
- Construa hipótese sobre comportamento do sistema
- Varie eventos do mundo real
- Execute em produção (com cuidado)
- Automatize para executar continuamente
Ferramentas:
- Chaos Mesh / Litmus (Kubernetes)
- AWS Fault Injection Simulator
- Gremlin (SaaS)
- Toxiproxy (rede)
Experimentos iniciais:
- Kill random pod (resiliência a crashes)
- Network latency injection (graceful degradation)
- Dependency outage (Netflix: "Can we survive S3 outage in us-east-1?")
- CPU/memory pressure (saturação)
Métricas do SRE (DORA + SRE)
| Métrica |
Elite |
High |
Medium |
| Deploy frequency |
múltiplos/dia |
1x/dia |
1x/semana |
| Lead time for changes |
< 1h |
< 1 dia |
< 1 semana |
| MTTR |
< 1h |
< 1 dia |
< 1 semana |
| Change failure rate |
< 15% |
16-30% |
16-30% |
Outras:
- SLO compliance (% do tempo dentro do SLO)
- Error budget remaining
- Alert fatigue score (alerts/week/person)
- Toil % (objetivo < 50%)
Perguntas-Chave que um SRE Faz
- "Qual é o custo real do incidente de ontem — receita perdida + resposta + postmortem + retrabalho?"
- "Estamos otimizando para evitar incidentes ou para responder rápido?"
- "Nossos alertas são actionable ou só ruído?"
- "Se X cair agora, quanto tempo até percebermos? Até corrigirmos?"
- "Qual é o próximo toil que podemos automatizar por 2 semanas de trabalho?"
Veja Também
../senior-devops/ — CI/CD e infraestrutura
../incident-commander/ — liderança de incidentes
../incident-response/ — resposta tática
../../engineering/observability-designer/ — instrumentação
../../engineering/ci-cd-pipeline-builder/ — deploy automation
1---2name: senior-sre3description: Site Reliability Engineer sênior especializado em SLI/SLO/SLA, error budgets, observabilidade, postmortems sem culpa, capacity planning, chaos engineering, incident management e toil reduction. Use ao definir SLOs, estruturar on-call, responder a incidentes, conduzir postmortems, projetar sistemas resilientes, reduzir toil operacional, implementar SRE practices ou quando o usuário mencionar SRE, SLO, error budget, postmortem, on-call, chaos engineering ou toil.4license: MIT5---67# Site Reliability Engineer Sênior89Frameworks SRE (Google-style) adaptados para empresas brasileiras: SLO-driven reliability, error budgets, postmortems blameless, toil reduction e chaos engineering.1011## Palavras-chave12SRE, site reliability, SLI, SLO, SLA, error budget, postmortem, blameless, on-call, incident management, incident commander, chaos engineering, toil, capacity planning, observability, DORA metrics1314## Responsabilidades Principais1516### 1. SLI/SLO/SLA (definição em camadas)1718**SLI (Service Level Indicator)** — o que você mede19- Latência do p99 de requisições HTTP bem-sucedidas20- % de transações completadas com sucesso21- Freshness de dados em dashboard22- Disponibilidade = 1 - (failed_requests / total_requests)2324**SLO (Service Level Objective)** — meta interna25- 99.9% de disponibilidade mensal (= 43m 49s de downtime/mês)26- p99 < 300ms em 99% das requisições27- 99.5% dos emails transacionais entregues em < 30s2829**SLA (Service Level Agreement)** — promessa contratual com cliente30- Sempre MAIS PERMISSIVO que o SLO (buffer de segurança)31- SLO 99.9% → SLA 99.5% (deixa margem antes de devolver créditos)3233**Regra-chave:** SLO é uma decisão de negócio, não técnica. Pergunte "o cliente percebe a diferença entre 99.9% e 99.99%?" Se não, economize milhões.3435### 2. Error Budget3637Se SLO = 99.9%, error budget = 0.1% do período.38- Em 30 dias = 43 minutos 49s de "permissão para falhar"3940**Policy típica:**41- Budget intacto (>50%) → libere features agressivamente42- Budget 20-50% → cautela, reduza velocidade de deploy43- Budget <20% → congele novas features, foco em reliability44- Budget exaurido → freeze total até recuperação4546```yaml47# error-budget-policy.yaml48service: checkout-api49slo: 99.9%50window: 30d51thresholds:52 green: ">= 50%"53 yellow: "20% - 50%"54 red: "< 20%"55 exhausted: "< 0%"56actions:57 green:58 - normal_velocity59 yellow:60 - reduce_deploy_frequency61 - require_sre_review62 red:63 - freeze_non_critical_features64 - weekly_reliability_reviews65 exhausted:66 - full_feature_freeze67 - daily_war_room68```6970### 3. Observabilidade (Three Pillars + Traces + Profiling)7172**Stack mínimo (2026):**73- **Metrics**: Prometheus + Grafana, OpenTelemetry SDK74- **Logs**: Loki, Elastic ou Datadog75- **Traces**: Jaeger, Tempo ou Datadog APM76- **Profiling contínuo**: Pyroscope, Grafana Cloud Profiles7778**Dashboards por serviço (Golden Signals):**791. **Latency** (distribuição, não média — use p50/p95/p99)802. **Traffic** (RPS, throughput)813. **Errors** (rate + %)824. **Saturation** (CPU, memória, conexões, queue depth)8384**Alertas — SEMPRE:**85- Baseados em SLO (burn rate), não em thresholds fixos86- Multi-window burn rate (5m + 1h + 6h)87- Actionable (se não há ação, não alerte)88- Com runbook linkado no alert8990```yaml91# alert.yaml — Burn rate alert92alert: CheckoutAPIErrorBudgetBurnRate93expr: |94 (95 error_budget_burn_rate_5m > 14.496 AND error_budget_burn_rate_1h > 14.497 ) OR (98 error_budget_burn_rate_30m > 699 AND error_budget_burn_rate_6h > 6100 )101severity: page102runbook: https://docs/runbooks/checkout-api-errors103```104105### 4. Incident Management106107**Estrutura de resposta:**108- **Incident Commander (IC)**: coordena, não executa109- **Subject Matter Expert (SME)**: diagnóstico e remediação110- **Communications Lead**: updates externos e internos111- **Scribe**: registra timeline112113**Severidades:**114| Sev | Impacto | Resposta |115|-----|---------|----------|116| 1 | Produção derrubada, receita parada | Imediata, war room |117| 2 | Funcionalidade crítica degradada | Em horário, < 1h |118| 3 | Degradação parcial | Em horário, < 4h |119| 4 | Incomodo menor | Em backlog |120121**Timeline de um SEV1:**122- 0-5min: IC declara, cria war room, notifica stakeholders123- 5-15min: Triage inicial, hipóteses, rollback se óbvio124- 15-60min: Mitigação (rollback, scale, circuit break, trafego switch)125- Pós: postmortem em até 72h126127### 5. Postmortem Blameless128129**Template:**130```markdown131# Postmortem: Incidente CHK-2026-04-15132133## Resumo134- **Data**: 2026-04-15 14:23 BRT — 2026-04-15 15:47 BRT135- **Duração**: 1h 24min136- **Impacto**: 100% de falhas no checkout para ~12k usuários137- **Severidade**: SEV1138139## Timeline140| Hora | Evento |141|------|--------|142| 14:23 | Deploy v2.4.0 iniciado |143| 14:24 | Alerta burn rate 5m disparado |144| 14:28 | IC declarado, rollback iniciado |145| 14:42 | Rollback completo, recuperação parcial |146| 15:47 | Recuperação total confirmada |147148## Causa Raiz149Migração de schema adicionou NOT NULL em coluna `session_id`, mas rollout do backend precedeu migração. Durante janela de 20 min, INSERTs falharam com `null value in column "session_id"`.150151## O Que Funcionou152- Alerta de burn rate disparou em 1 minuto153- Rollback automático estava configurado154155## O Que Não Funcionou156- Ordem de migração não estava documentada157- Canary deploy só cobria 1% por 5min (insuficiente)158159## Ações160| # | Ação | Dono | Prazo | Prioridade |161|---|------|------|-------|------------|162| 1 | Forçar migrations antes de backend em CI | SRE | 2026-04-25 | P0 |163| 2 | Aumentar canary para 10min em serviços críticos | Platform | 2026-05-10 | P1 |164| 3 | Runbook de incidents de schema | SRE | 2026-05-15 | P2 |165166## Lições Aprendidas167Um princípio emergiu: "deploys de schema e código são acoplados; trate como uma unidade."168```169170**Regras:**171- **Blameless**: foque em sistemas e processos, não pessoas172- **Sem "deveria ter"**: descreva o que aconteceu e por quê173- **Ações com dono, prazo e prioridade** — senão não sai do papel174- **Compartilhe amplamente** (dentro da empresa) — aprendizado é patrimônio175176### 6. Toil Reduction177178**Toil** = trabalho operacional manual, repetitivo, automatizável, sem valor duradouro.179180**Alvo SRE canônico:** < 50% do tempo em toil.181182**Identificação:**183- Tickets de onboarding/offboarding manuais184- Restart de serviços por degradação185- Rotação de credenciais manual186- Criação de ambientes sob demanda187- Escalamento manual de recursos188189**Strategy:**1901. Medir (timesheet ou ticket analysis)1912. Categorizar (reactive vs. proactive)1923. Priorizar por frequência × duração1934. Automatizar top 3 por quarter1945. Medir redução trimestralmente195196### 7. Capacity Planning197198**Fórmula:**199```200Capacidade = Baseline × (1 + crescimento_anual) × fator_segurança201202Ex: 10k RPS atual × (1 + 0.6) × 1.5 = 24k RPS de capacidade planejada203```204205**Inputs:**206- Baseline atual (p99 RPS e resource use)207- Projeção de crescimento (product + business + seasonality)208- Fator de segurança (1.3 estável / 1.5 em crescimento / 2.0 em hypergrowth)209- Lead time de capacity (cloud = minutos; hardware = meses)210211**Outputs:**212- Headroom requirements por serviço213- Budget de infra trimestral214- Triggers para scale automático215- Black Friday / eventos prep list216217### 8. Chaos Engineering218219**Princípios:**220- Construa hipótese sobre comportamento do sistema221- Varie eventos do mundo real222- Execute em produção (com cuidado)223- Automatize para executar continuamente224225**Ferramentas:**226- Chaos Mesh / Litmus (Kubernetes)227- AWS Fault Injection Simulator228- Gremlin (SaaS)229- Toxiproxy (rede)230231**Experimentos iniciais:**232- Kill random pod (resiliência a crashes)233- Network latency injection (graceful degradation)234- Dependency outage (Netflix: "Can we survive S3 outage in us-east-1?")235- CPU/memory pressure (saturação)236237## Métricas do SRE (DORA + SRE)238239| Métrica | Elite | High | Medium |240|---------|-------|------|--------|241| Deploy frequency | múltiplos/dia | 1x/dia | 1x/semana |242| Lead time for changes | < 1h | < 1 dia | < 1 semana |243| MTTR | < 1h | < 1 dia | < 1 semana |244| Change failure rate | < 15% | 16-30% | 16-30% |245246**Outras:**247- SLO compliance (% do tempo dentro do SLO)248- Error budget remaining249- Alert fatigue score (alerts/week/person)250- Toil % (objetivo < 50%)251252## Perguntas-Chave que um SRE Faz253254- "Qual é o custo real do incidente de ontem — receita perdida + resposta + postmortem + retrabalho?"255- "Estamos otimizando para evitar incidentes ou para responder rápido?"256- "Nossos alertas são actionable ou só ruído?"257- "Se X cair agora, quanto tempo até percebermos? Até corrigirmos?"258- "Qual é o próximo toil que podemos automatizar por 2 semanas de trabalho?"259260## Veja Também261262- `../senior-devops/` — CI/CD e infraestrutura263- `../incident-commander/` — liderança de incidentes264- `../incident-response/` — resposta tática265- `../../engineering/observability-designer/` — instrumentação266- `../../engineering/ci-cd-pipeline-builder/` — deploy automation