Um objetivo de nível de serviço (SLO) é uma meta de desempenho acordada para um determinado serviço durante um período. Os SLOs definem o status esperado dos serviços e ajudam os stakeholders a gerenciar a integridade de serviços específicos, além de otimizar as decisões que equilibram inovação e confiabilidade.1
Os SLOs são medidos com indicadores de nível de serviço (SLIs), métricas quantitativas de algum aspecto do serviço. Os SLOs fazem parte de um acordo mais amplo entre provedores de serviços e clientes—contratos de nível de serviço (SLAs). Esses contratos descrevem o nível de serviço que um cliente pode esperar dos provedores e definem penalidades quando as metas não são atingidas.
Para garantir que os níveis de serviço estejam alinhados aos requisitos de negócios e às expectativas do cliente, as equipes de engenharia de confiabilidade local (SRE), DevOps, TI e outras equipes relevantes devem compreender as jornadas críticas do usuário para cada aplicação. Essas jornadas consistem nas interações que permitem que os usuários finais alcancem os resultados desejados.
A adesão interna é crucial para SLOs bem-sucedidos (e, portanto, SLAs), e vários stakeholders devem participar da determinação dos SLOs, incluindo gerentes de produtos, equipes de DevOps e de gerenciamento de problemas e engenheiros de infraestrutura. Os clientes externos são incorporados à discussão por meio de grupos focais, estudos, reclamações de clientes e redes sociais.
A lógica principal dos SLOs é que a confiabilidade do serviço leva à satisfação do usuário, o que traz maiores oportunidades de negócios. Estabelecer metas mensuráveis de confiabilidade ajuda as organizações a equilibrar uma experiência de usuário agradável e eficiente com um custo razoável: sem estourar o orçamento de TI com níveis de serviço além do que é necessário ou esperado.
Os SLOs são necessários porque definem as metas de qualidade de serviço (QoS) e confiabilidade em termos concretos, mensuráveis e objetivos. Eles não se destinam a definir o melhor nível de desempenho, mas sim uma variedade dos melhores padrões de desempenho possíveis e menos aceitáveis.1
O objetivo dos SLOs está bem resumido em 97 Things Every Cloud Engineer Should Know, da O`Reilly Media: “Como oferecer à gerência uma maneira fácil de entender instantaneamente as vantagens e desvantagens entre confiabilidade, velocidade de inovação e custo? Os SLOs são a resposta. Os SLOs criam diretrizes claras de confiabilidade que equilibram as escolhas entre os custos da nuvem, a velocidade da mudança e os riscos externos”.
Os SLOs são um dos vários termos inter-relacionados envolvidos no acompanhamento e avaliação do desempenho do serviço:
Um SLI é uma medida quantitativa de algum aspecto de um serviço. Os SLIs fornecem os números reais (os indicadores de desempenho do sistema), como taxas de erro, taxas de transferência de lote ou latência das solicitações. Normalmente, as medições são agregadas e apresentadas como uma taxa, média ou percentil.
SLOs são os valores-alvo dessas medições (como garantir que o tempo de resposta fique abaixo de 200 milissegundos, por exemplo) que devem ser atendidos para cumprir os acordos de nível de serviço (SLAs). Esses valores costumam ser expressos como uma porcentagem ao longo de um período.
Os SLAs são os contratos entre fornecedores e clientes, compostos por SLOs individuais, que garantem um determinado nível para atividades, funções ou processos de serviço. Eles também definem as sanções caso o contrato não seja cumprido.
Um orçamento de erros é um aspecto dos SLOs que define a quantidade aceitável de falhas que podem ocorrer e o limite para rescisão do contrato. Um orçamento de erros permite a incorporação do downtime planejado ou não planejado do serviço que é inevitável na prática. A inclusão do downtime permite que as equipes de desenvolvimento tomem decisões fundamentadas sobre novos desenvolvimentos, operações, atualizações ou correções de softwares instalados.
A confiabilidade e a responsividade costumam ser medidas em “noves até 100%”: 90%, 99%, 99,9% e assim por diante. Por exemplo, um objetivo para a disponibilidade de CPU poderia ser expresso assim:
Nível de confiabilidade | Período de não confiabilidade permitido | ||
|
|
| |
Por ano | Por trimestre | Por 30 dias | |
90% | 36,5 dias | 9 dias | 3 dias |
95% | 18,25 dias | 4,5 dias | 1,5 dia |
99% | 3,65 dias | 21,6 horas | 7,2 horas |
99,5% | 1,83 dia | 10,8 horas | 3,6 horas |
99,9% | 8,76 horas | 2,16 horas | 43,2 minutos |
99,95% | 4,38 horas | 1,08 horas | 21,6 minutos |
99,99% | 52,6 minutos | 12,96 minutos | 4,32 minutos |
99,999% | 5,26 minutos | 1,30 minutos | 26,9 segundos |
|
|
| |
Cada casa decimal mais próxima de 100 geralmente envolve maior custo e complexidade para ser alcançada. Os clientes (internos e externos) podem exigir um certo nível de capacidade de resposta, após o qual não conseguem mais detectar nenhuma diferença. A definição de SLOs é uma mistura entre ciência e arte, buscando um equilíbrio entre perfeição estatística e metas realistas e econômicas.
A equipe de desenvolvimento pode querer fornecer novas funcionalidades, enquanto a equipe de operações busca oferecer estabilidade e qualidade, introduzindo mudanças de forma controlada. Como a empresa fornece produtos ou serviços a clientes internos e externos, é importante medir qualquer nível de serviço de acordo com o ponto de vista desses clientes.
Os SLOs ajudam a unir organizações em torno da confiabilidade. Por fim, os stakeholders devem concordar com um SLO mensurável para o cliente que seja um equilíbrio eficaz entre velocidade e qualidade do serviço.
Em um nível básico, os objetivos de nível de serviço são importantes porque garantem a confiabilidade do serviço e o cumprimento dos contratos de nível de serviço. Se você estiver cumprindo os SLAs, seus clientes ficarão satisfeitos, o que, por sua vez, é bom para os negócios.
Os SLOs não são só valiosos para os clientes externos, mas também oferecem insights valiosos para os clientes internos. Os SLOs ajudam várias equipes a avaliar o desempenho de serviços e aplicações e determinar possíveis maneiras de melhorar. Entre outros benefícios, os SLOs ajudam as organizações a:
Os problemas de confiabilidade podem custar caro à sua empresa. Quando os SLOs são configurados corretamente, você pode ver e descobrir lacunas na observabilidade. A configuração de SLO pode ser o único lugar onde você pode centralizar os insights de várias ferramentas de monitoramento usadas em sua organização. Uma melhor observabilidade ajuda você a fornecer produtos melhores, reduzir a perda de clientes e operar com mais eficiência.
SLOs e SLIs fornecem insights sobre o desempenho de serviços e aplicações, além de fornecem às equipes uma medida precisa do downtime e outros possíveis problemas.
Essas informações são úteis para as equipes de DevOps, TI e outras que buscam encontrar um equilíbrio entre inovação e confiabilidade à medida que atualizam os produtos existentes e lançam novas funcionalidades.
Um SLO bem pensado que mede a integridade dos seus microsserviços, conforme a experiência do seus clientes, fornece insights inestimáveis sobre o desempenho dos produtos e a experiência do usuário.
Tanto o estabelecimento quanto o monitoramento de SLOs ajudam a unir equipes de toda a organização em torno da compreensão de um serviço e das expectativas associadas. SLOs cuidadosamente analisados ajudam a promover uma cultura de comunicação, em que todos os stakeholders avaliam o que suas unidades esperam de um serviço e entendem seu papel em garantir que os SLAs sejam cumpridos.
Além disso, a criação de relatórios e automações com SLOs ajuda cada membro da sua equipe a responder perguntas sobre incidentes com mais rapidez. Os SLOs são importantes para suas equipes de DevOps, infraestrutura e SRE, mas também ajuda a transformar quase todos os aspectos da sua empresa. Os dados coletados por meio da observabilidade podem ser convertidos em informações acessíveis, contextualizadas e praticáveis. Esses insights trazem a visibilidade de que suas equipes precisam para tomar decisões oportunas e econômicas.
Com metas claramente articuladas, as organizações podem recorrer à automação para monitorar e medir SLIs. Essa abordagem ajuda no cumprimento das metas, com o objetivo de ir além do monitoramento para automatizar totalmente os processos de ponta a ponta.
Um sistema de monitoramento automatizado ajuda a detectar possíveis problemas à medida que eles se desenvolvem, antes que o desempenho do serviço não alcance as metas estabelecidas nos SLOs ou viole os SLAs. Após a definição dos processos que atendem aos SLOs, a automação pode ser implementada para garantir um desempenho consistente, por exemplo, ao usar uma plataforma que automatiza a alocação de recursos com base na demanda de cargas de trabalho.
Os SLOs fornecem às equipes de DevOps a previsão para identificar possíveis problemas antes que eles ocorram. Essa previsão evita downtimes inaceitáveis ou outros eventos que possam prejudicar o usuário final ou custar caro à empresa.
Os SLAs geralmente usam porcentagens mensais de downtime ou disponibilidade para calcular o faturamento. A duração do downtime corresponde ao período em que um sistema não consegue executar sua função principal. As falhas de comunicação, por exemplo, podem causar downtime da rede. O padrão de disponibilidade no setor permanece alto, assim como o custo do downtime, que está sempre aumentando. Além do impacto financeiro, a violação de SLOs também pode levar à insatisfação dos clientes.
Muitas organizações funcionam com base em um processo reativo de gerenciamento de incidentes. Entretanto, quando você espera até que um incidente ocorra, leva mais tempo para atenuar e resolver os problemas no seu sistema, aumentando o tempo médio até o reparo (MTTR)1. SLOs bem estabelecidos melhoram a observabilidade e permitem que as organizações sejam mais proativas em relação ao gerenciamento de incidentes.
Alertas irrelevantes fazem mais do que aumentar os custos operacionais: eles também levam a altas taxas de esgotamento, pois os engenheiros perdem tempo e perdem produtividade respondendo a alertas inexistentes. Um dos maiores desafios em relação a isso é simplesmente encontrar o equilíbrio certo entre muitos e poucos alertas.
Um alerta relevante notifica um engenheiro quando a degradação provavelmente fará com que uma meta de confiabilidade seja perdida - um alerta baseado em sintomas. Tomemos como exemplo uma situação em que a latência de um serviço na última hora pode fazer com que o SLO de latência fique fora de conformidade durante toda a semana. Nesse caso, trata-se de um problema real.
Se você perguntar às pessoas da área comercial qual deve ser a meta de tempo de atividade do sistema, muitas delas dirão que gostariam de alcançar 100%. Essa prática é uma meta ambiciosa, mas também de alto preço e pode consumir a maior parte do seu orçamento de TI antes de qualquer outra coisa. Os SLOs não são projetados para se vangloriar, mas sim para encontrar e atender às expectativas dos clientes, para que você possa mantê-los satisfeitos e fiéis à sua empresa. A confiabilidade é um meio, não um fim.
O fato de uma métrica de desempenho ser mensurável não implica que seja importante para a satisfação do cliente ou para seus resultados financeiros. Priorize. Concentre-se nas métricas que mais indicam uma boa experiência do cliente.
Em Fundamentos do gerenciamento de nível de serviço , Rick Sturm e Wayne Morris apresentam esta lista de verificação para definir SLOs realistas: Os
SLOs devem ser:
· Realizáveis
· Repetíveis
· Mensuráveis
· Compreensíveis
· Significativos
· Controláveis
· Economicamente acessíveis
· Mutualmente aceitáveis
A lista começa com "atingível". Uma meta muito alta aumenta os custos e pode resultar em uma disponibilidade maior do que a necessária para os clientes. Veja algumas melhores práticas importantes que ajudam você a alcançar seus objetivos de SLO:
Defina SLOs que atendam ao SLA ou ao objetivo de negócios. Ter 20 SLOs é realmente 4 vezes melhor do que ter 5 SLOs? Ou isso simplesmente criaria mais trabalho para sua equipe de TI e confundiria o cliente, sem nenhum benefício significativo? Não sinta que precisa avaliar tudo o que pode ser medido.
Defina metas realistas de SLO em vez de prometer demais e depois não cumprir as promessas, o que pode custar multas e talvez até fazer a empresa perder um cliente. Ser realista com os stakeholders internos e também com os clientes permite que todos tomem decisões fundamentadas. Metas de SLO irrealisticamente altas custam mais no final.
Ao concordar com expectativas realistas desde o início, você evita confusões e conflitos futuros entre as equipes internas e com o cliente.
As planilhas manuais de coleta de métricas podem retardar a remediação e talvez não permitam a análise da causa raiz. Colete SLIs relevantes para avaliar SLOs automaticamente e crie alertas automáticos antes que um SLO seja violado. Inclua o contexto de que sua equipe precisa e as dependências para lidar com uma questão antes que ela se torne um problema significativo.