Como projetar SLOs
Nesta página, fornecemos as informações necessárias para criar um objetivo de nível de serviço (SLO, na sigla em inglês).
Veja uma introdução aos SLOs em Visão geral dos objetivos de nível de serviço.
Tipo de SLI e metas de conformidade
O Cloud Service Mesh é compatível com os seguintes tipos de indicadores de nível de serviço:
- Latência: o tempo que um serviço leva para retornar uma resposta a uma solicitação, medido em milissegundos.
- Disponibilidade: a fração do tempo que um serviço responde com sucesso.
- Outro: tipo de SLO personalizável com base nas suas métricas configuráveis.
Você também define a meta de conformidade do serviço. Em geral, os SLOs não podem ser maiores que o necessário ou significativo para os usuários. Considere em que ponto os usuários podem perceber a degradação do serviço. Por exemplo, se os usuários não souberem a diferença entre uma latência de 300 ms ou 500 ms para o serviço, use o valor mais alto como limite de latência no SLO. O valor baixo mais baixo é mais caro e os usuários não perceberão a diferença.
Ao definir uma meta de conformidade, considere os requisitos de usuário final para o serviço. Por exemplo, uma ferramenta interna usada pelos funcionários para reservar viagens de férias pode ser adequada com uma meta de disponibilidade de 99% (cerca de 3 dias de inatividade por ano). Mas um serviço essencial para uma loja on-line pode precisar de 99,999% de disponibilidade (aproximadamente cinco minutos de inatividade por ano).
Períodos de conformidade
Além de definir um destino para um SLI, um SLO especifica um período em que o SLI é medido. Por exemplo, 99% de disponibilidade em um único dia é diferente de 99% durante um mês. O primeiro SLO não permitiria mais de 14 minutos de inatividade consecutivos (24 horas * 1%), enquanto o segundo SLO permite tempo de inatividade consecutivo de até aproximadamente 7 horas (30 dias * 1%).
O período de conformidade é especialmente importante quando um SLO é incluído em um contrato de nível de serviço (SLA, na sigla em inglês) com os usuários. Um SLA é um contrato com os usuários do serviço que normalmente especifica as consequências de não atender aos SLOs. Independentemente de você ter ou não um SLA com os usuários como uma decisão de produto ou negócio, para fins de monitoramento, ainda é necessário especificar um período de conformidade para os SLOs ao criá-los.
Ao configurar SLOs, você escolhe o tipo de período de conformidade:
Calendário: ao selecionar Calendário como o Tipo de período, você também especifica o Período de duração, que pode ser um dia, uma semana ou um mês. Os períodos não se sobrepõem e são definidos de acordo com as datas de início e término do calendário. A conformidade só pode ser avaliada no final do período.
Contínuo: quando você seleciona Contínuo como Tipo de período, também especifica o número de dias da Duração do período, por exemplo, 30 dias. Ao contrário dos períodos do calendário, os períodos contínuos não têm datas de início e término fixas. O Cloud Service Mesh avalia continuamente os SLOs com um período de conformidade contínuo. Os dados mais antigos do cálculo anterior saem do cálculo atual à medida que são substituídos por novos dados. Um período contínuo fornece mais medidas de conformidade porque você recebe todos os dias uma medida de conformidade referente aos últimos 30 dias, em vez de uma por mês. No entanto, os serviços podem alternar entre a conformidade e a não conformidade, já que o status do SLO muda diariamente.
Erros de orçamento
Outro conceito importante de monitoramento é o erro de orçamento. Um SLO especifica um
SLI e um valor de destino que mede o sucesso do serviço no período de
conformidade. O erro de orçamento de um SLO representa o tempo total que um
serviço pode não estar em conformidade antes de violar o SLO. Assim, um erro de
orçamento é 100% - SLO%
. Por exemplo, se você tiver um SLO de disponibilidade de 30 dias contínuos
com uma meta de conformidade de 99,99%, o erro de orçamento será 0,01% de 30 dias:
mais de quatro minutos de inatividade permitida a cada 30 dias. Um serviço que precisa atender
a um SLO de 100% não tem erro de orçamento.
Os erros de orçamento permitem monitorar quantas medições de SLI inválidas podem ocorrer durante o restante do período de conformidade antes que o serviço viole o SLO. O erro de orçamento pode ser usado para gerenciar tarefas de manutenção, como a implantação de novas versões. Quando o orçamento do erro estiver quase esgotado, não será um bom momento para tomar medidas arriscadas, como a implantação de novas atualizações. Por outro lado, se você tiver um erro de orçamento completo próximo ao final do período de conformidade, convém lançar novos recursos, porque o risco de violação do SLO é menor.
Se você estiver avaliando um SLO com um período de conformidade de calendário, o Service Mesh inicia o erro de orçamento no valor máximo e reduz o orçamento ao longo do tempo, acionando uma violação de SLO quando o erro de orçamento ficar abaixo de zero. O Cloud Service Mesh redefine a margem de erro do SLO no final do período de conformidade.
Se você estiver avaliando um SLO durante um período de conformidade contínuo, sempre estará efetivamente no final de um período de conformidade. Em vez de começar do
zero, pontos de dados antigos são descartados e novos pontos de dados são
adicionados continuamente. Se um período de baixa conformidade sair da janela de conformidade
e se o SLO estiver em conformidade, o erro de orçamento aumentará. A qualquer momento,
um error budget ≥ 0
indica uma janela SLO contínua em conformidade e uma
error budget < 0
indica uma janela contínua de SLO sem conformidade.
A seguir
Saiba mais sobre SLOs da engenharia de confiabilidade do site no Google: