К основному содержимому
#SRE

Инструменты надежности Такси \ Александр Фишер, Яндекс Такси

#SRE #DistributedSystems #Reliability #Architecture #Software #Processes #Management

Интересное выступление Александра Фишера насчет процессов и инструментов по повышению надежности. Выступление короткое и состоит из шести частей 1. Такси и надежность Вводная про критичность сервисов такси, профиль нагрузки, кратко про архитектуру, используемые технологии. Дальше про метрики надежности:

  • Стандартные: SLO в девятках, MTTR (mean time to recovery)
  • Интересные: MTTRC (mean time to root cause) - насколько быстро находится корневая причина сбоя, ROCOF (rate of occurrences of failures) - частотность сбоев В общем, дальше посыл такой, что в следующих пунктах автор рассказывает про инструменты борьбы со сложностью
  1. Хаос Подход ребят в том, что они используют fault injection, где data plane этого хаоса реализован через lua скрипты для nginx, которые балансируют трафик, а также есть control plane для управления конфигурацией этих инжектированных ошибок. Этот инструмент позволяет
  • Замедлять сервис (но укладываясь в propogation deadline)
  • Моделировать метастабильное состояние сервиса, когда сервис упал под нагрузкой и встать не может, ждет он кто ему поможет:)
  • Выдача 500 ошибок с заданным процентом 3. Срезание нагрузки: деградация, retries, limits У ребята есть
  • Gracefull degradation mode, где неосновной функционал можно отключить (это добавляет 20% мощности, но в планах 50%)
  • Управление retries для решения проблемы амплификации запросов во время сбоев
  • Есть классификация сервисов по уровням, где уровень зависит от критичности сервиса для возможности выполнить основную функцию (уехать на такси) 4. Виртуальные заказы Рассказ про тестирование нагрузки на систему через моделирование нагрузки виртуальными заказами, которые позволяют проверить нагрузку не API endpoint, а холистически для всей системы. Крутой инструмент, который решает проблему проверки нелинейных зависимостей и непредсказуемого поведения реально сложной системы в зависимости от разного типа нагрузки. 5. Observability и eventboard Тут автор показывает и рассказывает про дашборды для observability + интересный eventboard про события на проде, а также кнопку "откатить все за последние n минут", что помогает уменьшить MTTR (mean time to recover) и ускорить восстановление после сбоя.
  1. Симуляция инцидентов Тут идет рассказ про координаторов сбоев + про симуляцию сбоев и тренировки по устранению сбоев, что идут каждую неделю

Ну и в конце выступления автор рассказывает про экспериментальные инструменты

  • Autorecovery - робот, что автоматически чинит инциденты (он пока в dry run работает и проходит обкатку)
  • SRE GPT - инструмент для помощи в поиске root cause

В общем, мне доклад понравился: интересный рассказ, прикольные мысли, достаточно практичные рекомендации, которые можно использовать и в своих процессах повышения надежности.

#SRE #DistributedSystems #Reliability #Architecture #Software #Processes #Management