Sabemos que cada vez mais os softwares têm se tornado complexos e demandam mais qualidade e disponibilidade para seus usuários. Para entregar uma aplicação ou site com qualidade é necessário saber quais são os fatores que o levam a ser considerado um bom software, quais os comportamentos esperados e como eles devem ser medidos. Para isso, deve ser definido e entregue certo nível de serviço, contendo indicadores (SLIs), objetivos (SLOs) e acordos (SLAs). Esses termos direcionam as atividades executadas pelos profissionais de SRE Site reliability engineering , que trabalham para assegurar a confiabilidade (reliability) de sistemas.
No artigo de hoje vamos tratar do termo SLIs, apresentando seu conceito, seus tipos e exemplos de métricas mais utilizadas. Acompanhe!
O que são SLIs?
O Service Level Indicators (SLIs) são medidas quantitativas (métricas) criadas cuidadosamente para definir algum aspecto do nível de serviço fornecido aos usuários finais. Normalmente são documentadas em acordos de nível de serviço (SLAs), para saber se os objetivos de nível de serviço (SLOs) foram alcançados.
Como principais SLIs podemos citar latência do site, taxa de resposta, taxa de erro e taxa de transferência do sistema. É importante as empresas terem claro quais as medições fornecidas pelos seus sistemas são, de fato, importantes para o pleno funcionamento do sistema.
Ter muitos SLIs pode distrair e impedir que os engenheiros de SRE prestem atenção suficiente aos indicadores de desempenho mais críticos. Ao ter claro quais métricas devem ser revisadas, os SREs conseguem se concentrar melhor em onde estão as funções são mais importantes para o usuário.
Tipos de SLIs
Os SLIs podem ser divididos basicamente em duas categorias. São elas:
1 – Baseados em solicitações
Esse tipo de SLI serve para medir o número de solicitações válidas ou completas no serviço versus o número total de solicitações do sistema. Geralmente depende de um tempo específico e ajuda o provedor de serviços a identificar possíveis obstáculos no atendimento aos clientes.
A fórmula para o cálculo desse tipo de indicador é SLI = solicitações de sucesso / total de requisições. Por exemplo, um serviço com 5.000 solicitações boas em um total de 7.000, pode ser considerado um sistema com uma taxa de sucesso de 71%. Você pode comparar o SLI ao seu SLO, se seu objetivo era atingir 70% de todas as solicitações atendidas com sucesso, pode considerar que o objetivo foi alcançado.
2 – Baseado em janela
Os SLIs baseados em janela são a medida do limite de confiabilidade de um serviço em um período de tempo específico. Isso ajuda a sua empresa a medir o desempenho dos serviços durante um intervalo de tempo específico ou em diferentes horários do dia para comparação.
A fórmula utilizada para esse indicador é SLI = período de sucesso / total de períodos. Como exemplo, podemos citar se sua empresa mede períodos de alto tráfego durante a hora do almoço, é possível determinar quantos períodos de tempo têm solicitações bem-sucedidas em relação ao total de períodos durante o horário de pico de tráfego.
Como criar SLIs
Para a criação de bons SLIs, é preciso seguir alguns passos específicos que visam garantir que as métricas medidas são as corretas para o aprimoramento da experiência do usuário. As etapas são:
1 – Definir os SLOs
É preciso saber quais são seus SLOs (seus objetivos) para saber o que deve ser esperado com os SLIs (seus indicadores). Os SLIs dependem diretamente de SLOs bem definidos para que se possa medir o sucesso do cumprimento dos objetivos do sistema.
2 – Definir métricas para cada SLI
Ter claro quais as métricas serão utilizadas para medir cada SLI em relação aos SLOs é bem importante. Já existem vários serviços em nuvem que possibilitam a personalização de opções para SLOs específicos. Podendo, por exemplo, rastrear SLIs de disponibilidade e latência diretamente em sua interface de nuvem ou criar seus próprios.
3 – Alterar SLIs para mudanças
Os sistemas podem sofrer alterações devido a quantidade de usuário e solicitações que o software deve processar. Dependendo de o quão alta é a latência e se o serviço atende consistentemente aos SLOs predefinidos. É importante tentar sempre manter os SLIs conforme as alterações dos SLOs. Por exemplo, ao atingir o SLO de redução da latência em 15% ao longo de um mês, ao atingi-lo você pode definir um novo objetivo para reduzir ainda mais a latência e editar as métricas de SLI para rastrear esse novo objetivo.