Conceber SLOs
Esta página fornece informações de que pode precisar antes de criar um objetivo ao nível do serviço (SLO).
Para uma introdução aos SLOs, consulte a Vista geral dos objetivos ao nível do serviço.
Tipo de SLI e objetivos de conformidade
O Cloud Service Mesh suporta os seguintes tipos de indicadores do nível de serviço:
- Latência: o tempo que um serviço demora a devolver uma resposta a um pedido, medido em milissegundos.
- Disponibilidade: a fração do tempo em que um serviço responde com êxito.
- Outro: tipo de SLO personalizável com base nas suas métricas configuráveis.
Também define o objetivo de conformidade que pretende do seu serviço. Em geral, os SLOs não devem ser superiores ao que é necessário ou significativo para os seus utilizadores. Considere em que momento os utilizadores podem reparar na degradação do serviço. Por exemplo, se os seus utilizadores não conseguirem distinguir a diferença entre uma latência de 300 ms ou 500 ms para o seu serviço, use o valor mais elevado como o limite de latência no SLO. O valor mais baixo é mais caro de alcançar e os seus utilizadores não vão notar a diferença.
Quando define um alvo de conformidade, considere os requisitos dos utilizadores finais para o seu serviço. Por exemplo, uma ferramenta interna usada pelos funcionários para reservar férias pode estar bem com um objetivo de disponibilidade de 99% (~3 dias de indisponibilidade por ano). No entanto, um serviço crítico para uma loja online pode precisar de uma disponibilidade de 99,999% (cerca de 5 minutos de inatividade por ano).
Períodos de conformidade
Além de definir um objetivo para um SLI, um SLO especifica um período durante o qual o SLI está a ser medido. Por exemplo, uma disponibilidade de 99% durante um único dia é diferente de uma disponibilidade de 99% durante um mês. O primeiro NQS não permitiria mais de 14 minutos de indisponibilidade consecutivos (24 horas * 1%), enquanto o segundo NQS permitiria uma indisponibilidade consecutiva de até ~7 horas (30 dias * 1%).
O período de conformidade é particularmente importante quando um SLO está incluído num contrato de nível de serviço (SLA) com os seus utilizadores. Um SLA é um contrato com os utilizadores do seu serviço que especifica normalmente as consequências de não cumprir os SLOs. Ter ou não um SLA com os seus utilizadores é uma decisão do produto ou da empresa, mas, para fins de monitorização, continua a ter de especificar um período de conformidade para os seus SLOs quando os cria.
Quando configura os NDSs, escolhe o tipo de período de conformidade:
Calendário: quando seleciona Calendário como o Tipo de período, também especifica o Comprimento do período, que pode ser um dia, uma semana ou um mês. Os períodos não se sobrepõem e são fixos às datas de início e de fim do calendário. A conformidade só pode ser avaliada no final do período.
Contínuo: quando seleciona Contínuo como o Tipo de período, também especifica o número de dias para a 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 fim fixas. O Cloud Service Mesh avalia continuamente os SLOs com um período de conformidade contínuo. Os dados mais antigos no cálculo anterior são excluídos do cálculo atual à medida que são substituídos por novos dados. Um período móvel oferece mais medições de conformidade porque, todos os dias, recebe uma medição de conformidade para os últimos 30 dias, em vez de uma por mês. No entanto, os serviços podem oscilar entre a conformidade e a não conformidade à medida que o estado do SLO muda diariamente.
Margens de erro
Outro conceito de monitorização importante é a margem de erro. Um SLO especifica um SLI e um valor-alvo que mede o sucesso do serviço no período de conformidade. O orçamento de erros de um SLO representa o tempo total durante o qual um serviço pode não estar em conformidade antes de violar o respetivo SLO. Assim, um orçamento de
erros é 100% - SLO%
. Por exemplo, se tiver um SLO de disponibilidade de 30 dias consecutivos com um objetivo de conformidade de 99,99%, o seu orçamento de erros é de 0,01% de 30 dias: pouco mais de 4 minutos de tempo de inatividade permitido a cada 30 dias. Um serviço necessário para cumprir um SLO de 100% não tem margem de erro.
As margens de erro permitem-lhe acompanhar quantas medições de SLI incorretas podem ocorrer durante o período de conformidade restante antes de o serviço violar o SLO. Pode usar a margem de erro para ajudar a gerir tarefas de manutenção, como a implementação de novas versões. Quando a margem de erro está quase esgotada, não é uma boa altura para tomar ações arriscadas, como implementar novas atualizações. Por outro lado, se tiver um orçamento de erros completo perto do fim de um período de conformidade, pode querer lançar novas funcionalidades, uma vez que o risco de violar o SLO é menor.
Se estiver a medir um SLO com um período de conformidade do calendário, a malha de serviços inicia a margem de erro no valor máximo e reduz a margem ao longo do tempo, acionando uma violação do SLO quando a margem de erro desce abaixo de 0. O Cloud Service Mesh repõe a margem de erro dos SLOs no final do período de conformidade.
Se estiver a medir um SLO durante um período de conformidade contínuo, está
efetivamente sempre no final de um período de conformidade. Em vez de começar do zero, os pontos de dados antigos são continuamente eliminados e os novos pontos de dados são continuamente adicionados. Se um período de conformidade fraca sair do período de conformidade e o SLO estiver em conformidade, a margem de erro aumenta. Em qualquer momento, um error budget ≥ 0
indica um período de SLO contínuo em conformidade e um error budget < 0
indica um período de SLO contínuo não em conformidade.
O que se segue?
Saiba mais sobre os SLOs a partir da engenharia de fiabilidade de sites na Google: