Обеспечение надёжности сайтов

SRE

Что это такое

Обеспечение надёжности сайтов — это практика: сформулировать, насколько надёжным должен быть сервис, измерять, так ли это, и сделать это измерение арбитром в вопросе, когда выпускать функции, а когда чинить систему. Центральный инструмент — цель уровня обслуживания: ориентир вида «99,9 процента запросов успевают за 300 миллисекунд». Разница между ориентиром и идеальной надёжностью — бюджет ошибок; он тратится по мере отказов и решает, чем команда займётся дальше.

Почему это важно

Без явного ориентира на вопрос «достаточно ли это надёжно» отвечает тот, кто громче, после очередного сбоя. Одни требуют больше функций, другие — больше устойчивости, и спор решается анекдотом. Ориентир превращает это в арифметику: если сервис укладывается в бюджет — выпускайте функции; если бюджет исчерпан — сначала чините надёжность, и все уже согласились с правилом. Это ещё и предотвращает столь же дорогую ошибку — чрезмерные вложения в надёжность, которая продукту, где никто так на неё не полагается, не нужна.

Что в этом треке

  1. Цели уровня обслуживания (06-cloud-devops/23-site-reliability-engineering/01-service-level-objectives) — выбор ориентира, который измеряет то, что чувствуют пользователи.
  2. Бюджеты ошибок (06-cloud-devops/23-site-reliability-engineering/02-error-budgets) — как тратить и применять бюджет и что бывает, когда он кончается.

Предварительные требования

Что читать дальше

  • Мониторинг и наблюдаемость (Prometheus / Grafana) (06-cloud-devops/18-monitoring-observability-prometheus-grafana) — измерение, от которого зависит эта практика, поэтому читайте первым.
  • Администрирование Linux (06-cloud-devops/09-linux-administration) — операционная реальность, в рамках которой цели должны быть достижимы.
  • CI/CD (06-cloud-devops/08-ci-cd) — скорость поставки, которой призван управлять бюджет ошибок.