Service-Level Objective (SLO) e a jornada do usuário
O SRE começa com a ideia de que um pré-requisito para o sucesso é a disponibilidade. Um sistema que não está disponível não pode executar sua função e falhará por padrão. A disponibilidade, em termos de SRE, define se um sistema é capaz de cumprir sua função pretendida em um determinado momento (…) Quando decidimos definir os termos do SRE, queríamos definir uma meta numérica precisa para a disponibilidade do sistema. Chamamos essa meta de Service-Level Objective (SLO) — SRE fundamentals
SLO é uma das ferramentas difundidas dentro do time de confiabilidade, o Google deixa bem claro em seus livros como deveria ser um SLO, porém, muitas vezes, talvez por ser mais fácil, aplicamos os indicadores de confiabilidade nas nossas aplicações.
Em princípio, parece tudo certo, né? Temos o monitoramento e o SLO. Entretanto, se sua aplicação depende de mais algum outro serviço, as coisas passam a não funcionar bem desta forma. Então vamos dar uma olhada na imagem abaixo.
Notem que podemos estar comprometendo nossa disponibilidade sem perceber. SRE é User-Centred, ou seja, não importa muito se é o banco, um message broker ou uma aplicação que está com problemas, as métricas isoladas são mais úteis dentro de um troubleshooting, para o usuário, o importante é que sua experiência está comprometida, por isso devemos monitorar a jornada do usuário.
Se tiver uma série de estágios, pode ser tentador medir um SLO por estágio ou por componente. No entanto, medir SLOs dessa maneira não captura a experiência do cliente ou a integridade de ponta a ponta do seu sistema.Você pode monitorar cada estágio individualmente e oferecer um SLO em cada um, mas os clientes só se preocupam com o SLO para a soma de todos os estágios — Google SRE Workbook
Essa semana eu esbarrei com essa imagem que reflete bem como SLO e SLIs deveriam ser. Mesmo que eu ainda prefira qualificar P1 e P2 usando o multiwindow com multi-burn-rate, ainda assim, achei muito bom esse trabalho, inclusive foi o que motivou esse texto.
Sendo interessante … na próxima eu trago algo mais prático ;)