DEV Community

Cover image for Por que os times precisam de SLOs, SLIs e Error Budget?
Rafael Conceição
Rafael Conceição

Posted on

Por que os times precisam de SLOs, SLIs e Error Budget?

Os SLOs (Objetivos de Nível de Serviço) são um instrumento para auxiliar na definição de quais tarefas de engenharia devem ser priorizadas. Ao avaliar o impacto previsto em nosso orçamento de erros (Error Budget), podemos identificar qual projeto trará mais benefícios para os nossos usuários.

O que um SLO deve ser e o que ele deve abranger.

Um SLO estabelece um nível de confiabilidade alvo para os usuários do serviço. Acima deste limite, quase todos os usuários devem estar contentes com o seu serviço. No final do dia, a satisfação do usuário é o que importa (leia o texto: Confiabilidade: um dos recursos mais importantes de um sistema)

100% de confiabilidade é o alvo errado

Alguns motivos para essa afirmação:

  • Mesmo que um sistema tenha 100% de disponibilidade, o cliente não experimenta os 100%. A jornada do cliente geralmente é longa e complexa, e qualquer um dos componentes ao longo do caminho pode falhar. À medida que você passa de 99% para 99,9% para 99,99% de confiabilidade, cada nove extra tem um custo maior, mas a utilidade para seus clientes se aproxima constantemente de zero.

  • Se você conseguir criar uma experiência 100% confiável para seus clientes e quiser manter esse nível de confiabilidade, nunca poderá atualizar ou melhorar seu serviço. A principal fonte de interrupções são mudanças.

  • Um SLO de 100% significa que você só tem tempo para ser reativo.

Uma vez que você tenha uma meta de SLO abaixo de 100%, ela precisa ser de propriedade de alguém na organização que esteja capacitado para fazer compensações entre velocidade e confiabilidade.

Por mais que o time SRE possa ser o guardião do SLO, o time do produto e de negócios devem estar envolvidos em todo o ciclo, sedo co-responsáveis nas definições e ações.

O que medir: usando SLIs e Error Budget

SLI é um indicador do nível de serviço que você está fornecendo.

Recomendamos tratar o SLI como a razão de dois números: o número de eventos bons dividido pelo número total de eventos. Por exemplo:

Número de solicitações HTTP bem-sucedidas / total de solicitações HTTP
(taxa de sucesso)

O SLO é uma porcentagem alvo e o orçamento de erro é 100% menos o SLO. Por exemplo:

Se você tiver um SLO de taxa de sucesso de 99,9%, um serviço que
recebe 3 milhões de solicitações em um período de quatro semanas tem
um orçamento de erros de 3.000 (0,1%) erros nesse período. Se uma
única interrupção for responsável por 1.500 erros, esse erro custará
50% do orçamento.

Sua primeira tentativa de SLI e SLO não precisa ser perfeita; O objetivo mais importante é colocar algo em prática e medir, e configurar um ciclo de feedback para que você possa aprimorar a estratégia.

Começando a definir SLIs

  • Escolha um aplicativo para o qual você deseja definir SLOs.

  • Decida claramente quem são os “usuários” nessa situação.

  • Considere as maneiras comuns como seus usuários interagem com seu sistema - tarefas comuns e atividades críticas.

  • Desenhe um diagrama de arquitetura de alto nível do seu sistema; Mostre os principais componentes, o fluxo de solicitação, o fluxo de dados e as dependências críticas.

Escolha um aspecto do seu sistema que seja relevante, mas fácil de medir - você sempre pode iterar e refinar mais tarde.

Estratégia baseada no Error Budget

Para implementar uma estratégia baseada em orçamento de erros, é necessário alcançar um estado onde:

  • Os SLOs foram aprovados por todas as partes interessadas como adequados para o produto.

  • Os encarregados de assegurar o SLO concordaram que é viável atingir este SLO em condições normais.

  • A organização se comprometeu a utilizar o orçamento de falhas para tomada de decisões e priorização.

  • Um processo para aprimorar o SLO deve ser definido.

Caso contrário, a conformidade com o SLO será apenas mais um indicador de desempenho em vez de uma ferramenta de tomada de decisão.

Error Budget é um assunto que merece um texto dedicado sobre o assunto ;)

Aprimorando o SLO

Durante o processo de revisão de um SLO algumas perguntas podem ser feitas que irão nos ajudar a saber ser estamos no caminho correto ou não:

  • Consideramos o SLO determinado como sendo adequado e possível cumprir em circunstâncias normais?

  • O SLO tem ajudado a determinar qual trabalho de engenharia priorizar e qual projeto é mais benéfico para nossos usuários?

Ao refinar o SLO pense em como responder sim para essas perguntas.

Concluindo

A implementação de SLOs, SLIs e Error Budget é uma estratégia essencial para equilibrar a confiabilidade do serviço e a velocidade de desenvolvimento. Ao estabelecer metas de confiabilidade realistas e mensuráveis, as equipes podem priorizar efetivamente o trabalho de engenharia e melhorar a satisfação do usuário.

A chave para o sucesso é a colaboração entre todas as partes interessadas e a adoção de um ciclo de feedback contínuo.

Conheça os meus outros posts sobre SRE

Top comments (0)