Site Reliability Engineering (SRE) Надежность
Обеспечение эксплуатационной надежности системы, набор инженерных практик, поддерживающих надежную и безотказную работу приложений в настоящем и будущем, с учетом требуемой масштабируемости и внезапных форс-мажоров.
Зачем
- Цель инженера по SRE — обеспечить надёжную работу системы
- Определяют, что такое надёжность Reliability системы, договариваются о показателях и вырабатывают стандарты действий в случае проблем
- стабильность resilience
- доступность availability
- Показатели
- 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% случаев, то все прочие подключившиеся микросервисы будут ожидать ответ за это время.
- Появляется простор для манёвров. Разработчики могут экспериментировать в рамках бюджета ошибок без риска положить сервис.