Linux Labs

Практики SRE: SLO, инциденты, отказоустойчивость / Ступень 2 из 8

SLO и бюджет ошибок

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 6 · на машине · 8 мин

SLO и бюджет ошибок

Цель команды — это SLO, а запас между целью и «без единой ошибки» — бюджет ошибок.

Доступность из урока о доле хороших запросов — SLI, показатель. SLO (Service Level Objective, цель уровня обслуживания) говорит, каким он должен быть: SLI, цель и окно вместе. «Доступность не меньше 99,5 % за 30 дней» — SLO магазина. Окно скользящее — всегда последние 30 дней от текущего момента, поэтому вчерашний сбой останется в счёте ещё 29 дней. Договор с клиентом, где за нарушение цели платят, называют SLA; его цель обычно мягче внутреннего SLO, чтобы команда заметила проблему раньше клиента.

Раз цель 99,5 %, до 0,5 % ответов могут быть плохими — и SLO всё равно выполнен. Эти 0,5 % и есть бюджет ошибок:

text
бюджет  = (1 − 0,995) × все запросы окна
остаток = бюджет − плохие ответы окна

Например, при 400 000 запросах за 30 дней бюджет — 2000 плохих ответов. Если их уже было 1400, в остатке 600. Пока остаток больше нуля, SLO выполняется, и бюджет можно тратить на риск: выкладывать новые версии, менять конфигурацию. Кончился — по договорённости команды выкладки замораживают и занимаются надёжностью.

Журналы за 30 дней лежат несколькими файлами, как их обычно раскладывает logrotate: сегодняшний access.log, вчерашний access.log.1 и сжатые старые. zcat -f печатает подряд и сжатые, и обычные файлы, поэтому один конвейер считает по всем сразу.

Упражнение · сделать

Посчитай остаток бюджета

Посчитай, сколько ответов 5xx магазину ещё можно себе позволить по SLO 99,5 % за 30 дней, и запиши одно число в ~/slo/left.txt.

Войти и начать Машина доступна после входа

Цели · 0 из 1

  • Записать в ~/slo/left.txt остаток бюджета ошибок ещё не выполнена

Цели шага

0 из 1
  • Записать в ~/slo/left.txt остаток бюджета ошибок — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 1
  • Записать в ~/slo/left.txt остаток бюджета ошибок — ещё не выполнена
Загрузка…