O Que É um SLO (Service Level Objective)?
Um service level objective (SLO) é uma meta interna de confiabilidade -- por exemplo, "99,9% das requisições têm sucesso ao longo de 30 dias corridos" -- com a qual uma equipe se compromete e contra a qual mede.
Um SLO transforma uma meta vaga como "o serviço deve ser confiável" em um alvo preciso e mensurável. É o número pelo qual as equipes se guiam: quando a confiabilidade cai abaixo do SLO, elas priorizam estabilidade; quando está saudável, podem gastar sua margem entregando funcionalidades.
A anatomia de um SLO
Um SLO combina um service level indicator (a coisa que você mede), um valor-alvo e uma janela de tempo. Por exemplo: "99,95% das requisições de API retornam com sucesso, medido ao longo de 28 dias corridos." Cada peça importa -- o mesmo indicador com uma janela mais longa ou uma meta mais alta é um objetivo diferente, frequentemente muito mais difícil.
SLO versus SLA versus SLI
Um SLI é a medição, um SLO é a meta interna para essa medição, e um SLA é um contrato externo com consequências (frequentemente financeiras) se você não o cumprir. SLOs costumam ser mais rigorosos que SLAs, deixando folga para que você corrija problemas antes que eles violem um compromisso com o cliente.
Por que não 100%?
Confiabilidade perfeita é impossivelmente cara e normalmente desnecessária. Usuários raramente notam a diferença entre 99,99% e 100%, e perseguir a última fração de por cento custa um esforço enorme. Um bom SLO é definido apenas alto o suficiente para manter os usuários satisfeitos e não mais que isso, o que preserva espaço para inovar.
Escolhendo uma meta realista
Um SLO útil reflete o que os usuários realmente precisam e o que o sistema pode entregar de forma sustentável. As equipes frequentemente começam medindo o desempenho atual e então definem o SLO ligeiramente mais apertado para impulsionar melhoria sem ser inatingível. Um SLO que é sempre cumprido não te diz nada; um que é sempre descumprido corrói a confiança.
SLOs como ferramentas de decisão
O verdadeiro poder de um SLO é que ele orienta o comportamento. Ele alimenta o error budget que governa o ritmo de releases, foca o alerting em problemas visíveis para o usuário, e dá às equipes uma base compartilhada e objetiva para priorizar o trabalho de confiabilidade em relação a novas funcionalidades.
Principais conclusões
- Um SLO é uma meta interna para uma medição de confiabilidade ao longo de uma janela de tempo.
- Ele fica entre o SLI bruto e o SLA que vincula externamente.
- Bons SLOs miram em "confiável o suficiente", não em 100%, para preservar a velocidade.