Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Site Reliability Engineering (SRE) Надежность

Обеспечение эксплуатационной надежности системы, набор инженерных практик, поддерживающих надежную и безотказную работу приложений в настоящем и будущем, с учетом требуемой масштабируемости и внезапных форс-мажоров.

Зачем

  • Цель инженера по SRE — обеспечить надёжную работу системы
  • Определяют, что такое надёжность Reliability системы, договариваются о показателях и вырабатывают стандарты действий в случае проблем
  • Показатели
    • SLI - Service Level Indicator - индикаторы уровня обслуживания - метрики
    • доступности вырабатываются вместе с продакт-оунером и закрепляются в соглашении о целевом уровне обслуживания (метрик) — Service-Level Objective (SLO) по определенным SLI
    • Service Level Agreement (SLA) - обязанности компании перед потребителями закрепляются. Это соглашение описывает работоспособность всего сервиса и штрафы за превышение времени простоя или другие нарушения
      • описывает ИТ-услугу
      • документирует целевые показатели качества услуги
      • указывает зоны ответственности сторон
      • заключается между Бизнес-владельцем и поставщиком ИТ-услуги

ИТ услуга

  • ИТ-услуга - услуга, предоставляемая поставщиком ИТ-услуг. ИТ-услуга включает в себя информационные технологии, процессы и людей. ИТ-услуга, ориентированная на Заказчика, непосредственно поддерживает бизнес-процессы одного или более Заказчиков.
  • Бизнес-владелец - это основной заказчик услуги со стороны Бизнеса, использующий ее ценность для получения конечного результата.
  • ИТ-владелец - это лицо, ответственное за управление ИТ-услугой в течение ее жизненного цикла, начиная с проектирования и заканчивая выводом из эксплуатации.
  • Пользователь - лицо, использующее ИТ-услугу для выполнения конкретной функции или получения результатов ее функционирования.
  • Операция по ИТ-услуге - любая предопределенная деятельность или транзакция

Метрики оценки качества ИТ-сервиса:

  • доступность (availability);
  • производительность (performance);
  • надежность (reliability);
  • сопровождаемость (maintainability);
  • обслуживаемость (serviceability);
  • безопасность (security).

SLI

Что мониторить:

  • Client-side monitoring (Sentry и тп): Error, Performance
  • Network monitoring: Latency, Throughput, Utilization
    • CDN
    • Load Balancer
    • Router
    • DNS
    • VPCs
  • Server-side monitoring
    • system
    • application

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

Бюджет ошибок — это допустимое количество ошибок за выбранный период. Мы считаем его, чтобы измерить надёжность приложения, так как отдельные метрики не дают полной картины.

Наш бюджет ошибок — это ситуации, когда микросервис нарушает нефункциональные требования: отдаёт ответ с одним из кодов (400, 500, 503, 504) или отвечает слишком медленно (Latency 100 мс).

Что даёт расчёт бюджета ошибок?

  • Микросервис становится предсказуемым. Например, если указать, что микросервис ответит за 300 мс в 99,9% случаев, то все прочие подключившиеся микросервисы будут ожидать ответ за это время.
  • Появляется простор для манёвров. Разработчики могут экспериментировать в рамках бюджета ошибок без риска положить сервис.

Оповещения

Технологии