SRE

SLO: guia de implementação por vertical de serviço

|

Times que tentam implementar SLOs pela primeira vez quase sempre cometem o mesmo erro: definem o objetivo antes de entender o serviço. O resultado são SLOs de 99,99% que consomem o error budget em horas, ou SLOs de 90% que nunca disparam nenhum alerta porque o serviço já opera melhor que isso naturalmente.

Um SLO (Service Level Objective) é um objetivo de confiabilidade expresso como threshold de um SLI ao longo de uma janela de tempo. Definido corretamente, ele se torna a âncora das decisões operacionais do time: quando o error budget está cheio, o time pode acelerar. Quando está consumido, a confiabilidade vira prioridade. Como parte de uma estratégia de observabilidade, o SLO conecta dados de telemetria com decisões de negócio.

Neste guia, você encontra o processo de implementação de SLOs por vertical de serviço — com thresholds de referência, janelas de tempo recomendadas e os erros mais comuns a evitar em cada contexto.

 

Como definir o SLO certo: o processo antes dos números

O ponto de partida não é escolher um número — é responder a três perguntas. Qual é o comportamento mínimo aceitável para o usuário? Qual é o comportamento que o serviço entrega historicamente? Qual é o custo de ultrapassar esse limite?

A resposta à primeira pergunta vem de dados de suporte e de negócio. A resposta à segunda vem do histórico de métricas dos últimos 30 a 90 dias. A terceira é uma decisão de produto e engenharia.

A prática recomendada pelo SRE do Google é: defina o SLO ligeiramente abaixo do desempenho histórico real para ter margem operacional. Um serviço que historicamente atinge 99,8% de disponibilidade deve ter um SLO de 99,5% — não de 99,99%, que seria inatingível sem investimento significativo.

 

SLOs para APIs e serviços web transacionais

 

Disponibilidade

A janela de tempo padrão para APIs é 30 dias com cálculo rolling (não calendário). O threshold típico varia por criticidade do serviço: APIs de missão crítica (pagamento, autenticação): 99,9%. APIs de funcionalidades secundárias (relatórios, notificações): 99,5%. APIs internas de suporte: 99,0%.

O cálculo do error budget correspondente: 99,9% em 30 dias = 43,2 minutos de downtime aceitável. 99,5% = 3,6 horas. 99,0% = 7,3 horas.

 

Latência

O SLO de latência deve definir tanto o percentil quanto o threshold: “95% das requisições devem responder em menos de 300ms“. Evitar médias — elas mascaram degradação de P99.

Referências por tipo: APIs síncronas de dados críticos: P95 < 300ms. APIs de consulta com joins complexos: P95 < 1s. APIs de geração de relatórios: P95 < 5s (com feedback assíncrono ao usuário).

 

SLOs para plataformas de e-commerce

Em e-commerce, o SLO deve ser orientado ao funil de conversão, não apenas à disponibilidade técnica. Os endpoints mais críticos — busca de produtos, adição ao carrinho e checkout — devem ter SLOs mais restritivos que o restante da aplicação.

Estrutura recomendada: SLO de disponibilidade do checkout: 99,95% em 30 dias. SLO de latência do checkout: P95 < 500ms. SLO de disponibilidade de busca: 99,9%. SLO de latência de busca: P95 < 800ms.

A separação por endpoint crítico versus não-crítico permite alocar o error budget de forma assimétrica: degradações em páginas de FAQ consomem menos budget do que degradações no fluxo de pagamento.

 

SLOs para sistemas de dados e pipelines

Pipelines de dados têm perfil diferente: a latência de uma requisição individual não é a métrica relevante. Os SLOs mais importantes são de frescor e completude.

SLO de frescor: "95% dos jobs de ETL devem completar em até 30 minutos do horário agendado." SLO de completude: "99% dos registros esperados devem estar presentes na tabela de destino após a execução."

A janela de tempo para pipelines geralmente é medida por ciclo de execução, não em dias corridos. Um pipeline que executa a cada hora tem seu SLO calculado por ciclo: quantos ciclos dos últimos 720 (30 dias) completaram dentro do threshold.

 

SLOs para infraestrutura e redes

Em infraestrutura, os SLOs mais relevantes são de disponibilidade de componentes críticos (load balancers, DNS, gateways) e de latência de rede.

Para monitoramento de redes, o SLO de disponibilidade de uplink é tipicamente 99,9%, com alertas para latência acima de thresholds definidos por tipo de tráfego. A referência técnica do NIST para métricas de disponibilidade de infraestrutura está em nist.gov.

 

Janelas de tempo: rolling vs. calendário

A escolha da janela de tempo afeta diretamente o comportamento operacional do SLO. Janelas de calendário (mês corrido) criam um efeito de "reinicialização" no primeiro dia do mês — o time pode ser mais agressivo no início do período. Janelas rolling (últimos 30 dias) mantêm pressão constante e são a recomendação padrão do SRE.

Para serviços com sazonalidade marcada (picos de Black Friday, por exemplo), janelas multi-período ajudam a contextualizar o desempenho: SLO padrão para dias normais e SLO de contingência para janelas de pico declaradas.

 
Observabilidade

 

Conclusão

Implementar SLOs por vertical de serviço é o que transforma metas genéricas de disponibilidade em instrumentos operacionais precisos. A distinção entre o SLO de checkout e o SLO de relatórios, entre o SLO de API síncrona e o SLO de pipeline assíncrono, é o que permite alocar error budget de forma estratégica.

O próximo passo após definir os SLOs é instrumentar os SLIs correspondentes com dados reais de produção e conectar os alertas ao fluxo de resolução de incidentes. Para implementar SLOs calibrados para o seu ambiente com suporte técnico especializado, fale com nossos especialistas.

 

Perguntas Frequentes

O que é um SLO (Service Level Objective)?
Um SLO é um objetivo de confiabilidade: o valor que um SLI deve atingir ao longo de uma janela de tempo definida. Por exemplo, "99,9% das requisições devem responder com sucesso em 30 dias rolling". O SLO define o limite entre comportamento aceitável e degradação que exige ação. Ele é a base para calcular o error budget e guiar as decisões do time de SRE.
Qual a diferença entre SLO e SLA?
O SLO é um objetivo interno de engenharia — o nível de serviço que o time se compromete a manter para operar com qualidade. O SLA (Service Level Agreement) é um contrato externo com penalidades financeiras em caso de violação. O SLO deve ser sempre mais restritivo que o SLA: se o SLA garante 99,5% de disponibilidade, o SLO interno deve ser 99,9% para criar margem de segurança.
Como escolher o threshold correto para um SLO?
O ponto de partida é o histórico real de desempenho do serviço nos últimos 30 a 90 dias. Defina o SLO ligeiramente abaixo do desempenho histórico para criar margem operacional. Um serviço que historicamente atinge 99,8% de disponibilidade deve ter um SLO de 99,5% — não de 99,99%, que seria inatingível. SLOs muito fáceis não geram valor. SLOs impossíveis consomem o error budget continuamente sem resultado.
Janela rolling ou janela de calendário para SLOs?
A recomendação padrão do SRE é usar janelas rolling (últimos 30 dias) em vez de janelas de calendário (mês corrido). Janelas rolling mantêm pressão constante sobre a confiabilidade do serviço — não há reinicialização do budget no primeiro dia do mês. Janelas de calendário criam incentivos perversos: o time pode ser mais agressivo no início do período quando o budget está cheio.

Trabalho há mais de 15 anos no mercado B2B de tecnologia e hoje atuo como Gerente de Marketing da OpServices e Líder em Projetos de Governança para Inteligência Artificial.

Deixe um comentário

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