Skip to content

Вопросы на собеседовании: SRE-инженер

100 реальных вопросов с образцовыми ответами и пояснениями для уровня Junior.

Смотреть пример резюме: SRE-инженер

Тренировка флешкарточками

Интервальное повторение · Hunter Pass

Вопросы

sre-practicereliability

Site Reliability Engineering применяет методы программной инженерии для поддержания надёжности и масштабируемости сервисов.

  • SRE рассматривает операционные проблемы как инженерные задачи, которые часто можно измерить и автоматизировать.
  • Его цель состоит в том, чтобы обеспечить нужную пользователям надёжность, не останавливая полезное развитие продукта.
  • Работа SRE обычно охватывает цели уровня сервиса, наблюдаемость, автоматизацию, ресурсы и безопасную эксплуатацию.
  • Эта дисциплина формирует общую ответственность разработки и эксплуатации за надёжность.

Зачем это спрашивают: Интервьюер проверяет, понимает ли кандидат SRE как инженерный подход к надёжности, а не новое название операционной роли.

reliabilityavailability

Доступность является одной из составляющих надёжности, а надёжность охватывает все аспекты качества сервиса, которые пользователи ощущают со временем.

  • Доступность показывает, может ли сервис успешно обработать запрос, когда это требуется.
  • Надёжность также может включать задержку, корректность, долговечность данных и согласованность.
  • Сервис может быть доступным, но ненадёжным, если возвращает неверные данные или отвечает слишком медленно.

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

Автоматизация превращает повторяемую операционную работу в единообразные процессы, которые можно проверять.

  • Скрипты на Python или Bash устраняют небольшие ручные действия, которые регулярно повторяются.
  • Terraform и Ansible описывают инфраструктуру или конфигурацию как версионируемый код.
  • Автоматизированная работа лучше масштабируется, меньше зависит от исполнителя и реже приводит к случайным ошибкам.
  • Безопасной автоматизации всё равно нужны тесты, идемпотентность, контроль доступа и способ восстановления.

Зачем это спрашивают: Интервьюер проверяет, воспринимает ли кандидат автоматизацию как управляемую инженерную работу, а не простую замену всех ручных команд.

sliservice-levels

SLI представляет собой количественный показатель поведения сервиса, важного для его пользователей.

  • Распространенные SLI измеряют долю успешных запросов, задержку запросов, пропускную способность или свежесть данных.
  • Для SLI нужно точно определить событие, условие успеха, источник данных и способ агрегации.
  • Хорошие SLI описывают видимые пользователю результаты, а не только использование внутренних ресурсов.

Зачем это спрашивают: Интервьюер ожидает измеримое определение и понимание разницы между пользовательскими результатами и внутренними метриками.

sloservice-levels

SLO задаёт целевое значение или диапазон SLI в течение заданного окна измерения.

  • Например, SLO может требовать не менее 99,9% успешных запросов в скользящем 30-дневном окне.
  • Целевое значение определяет уровень надёжности, который команда намерена обеспечивать.
  • Окно задает, какие данные участвуют в оценке.
  • SLO помогают принимать решения о работе над надёжностью и допустимом риске релизов.

Зачем это спрашивают: Интервьюер проверяет, включает ли кандидат в определение и числовую цель, и временное окно.

slaservice-levels

SLA представляет собой формальное обязательство перед клиентом об уровне сервиса и последствиях его нарушения.

  • Оно может обещать минимальную доступность или время ответа за расчетный период.
  • Последствия могут включать сервисные кредиты, возврат средств или другие договорные компенсации.
  • SLA обычно устанавливают менее строгим, чем внутренний SLO, чтобы у команды оставался запас.

Зачем это спрашивают: Сильный ответ называет обязательство перед клиентом и договорные последствия, которые отличают SLA от внутренней цели.

slo

SLI дает измерение, SLO задает его целевое значение, а SLA превращает обещание уровня сервиса в формальное соглашение.

  • SLI определяет, что измеряется, например доля успешных запросов.
  • SLO может требовать, чтобы эта доля была не ниже 99,9% в течение 30 дней.
  • SLA может использовать связанный клиентский порог и определять компенсации при его нарушении.
  • Определения должны быть согласованы, чтобы каждая цель опиралась на одинаково понимаемое поведение сервиса.

Зачем это спрашивают: Интервьюер оценивает, может ли кандидат связать три термина и не считать их взаимозаменяемыми.

sliavailability

SLI доступности измеряет долю допустимых взаимодействий с сервисом, которые завершились успешно.

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

Зачем это спрашивают: Интервьюер ожидает точное отношение и понимание того, что время работы процесса может не отражать видимую пользователю доступность.

slilatency

SLI задержки измеряет, сколько времени занимает допустимая операция сервиса с точки зрения пользователя.

  • Его можно выразить распределением или долей запросов, уложившихся в порог.
  • Для разных операций часто нужны отдельные SLI задержки, потому что их ожидаемая длительность различается.
  • Неудачные запросы нужно классифицировать единообразно, чтобы быстрые отказы не создавали видимость хорошей задержки.
  • Сквозное измерение обычно лучше отражает пользовательский опыт, чем время одного внутреннего компонента.

Зачем это спрашивают: Сильный ответ рассматривает задержку как распределение, привязанное к пользовательским операциям, а не как одно среднее значение.

throughput

Показатель пропускной способности измеряет объем полезной работы, которую сервис обрабатывает за единицу времени.

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

Зачем это спрашивают: Интервьюер проверяет понимание пропускной способности как выполненной работы с единицами измерения и необходимым контекстом качества.

Показатель ошибок отслеживает явно неудачные операции, а показатель корректности проверяет, действительно ли результаты верны.

  • Частоту ошибок обычно рассчитывают как число неудачных допустимых запросов, деленное на число всех допустимых запросов.
  • Ответы HTTP 5xx и неудачные задания служат примерами явных ошибок.
  • Ответ с HTTP 200 все равно может быть некорректным, если данные отсутствуют, устарели или неверны.
  • Поэтому для проверки корректности нужны правила предметной области, например ожидаемые поля, значения или инварианты.

Зачем это спрашивают: Интервьюер проверяет, понимает ли кандидат, что успешный HTTP-статус не гарантирует правильный результат для пользователя.

percentileslatency

Задержка p99 обозначает значение, за которое укладывается 99% измеренных запросов.

  • Если p99 равен 800 мс, то 99% запросов заняли не более 800 мс, а 1% занял больше.
  • Процентили показывают медленный хвост распределения, который может быть скрыт средним значением.
  • P50 представляет типичный запрос, а p95 и p99 описывают все более медленные части трафика.

Зачем это спрашивают: Интервьюер проверяет правильное толкование процентилей и понимание того, почему средние значения скрывают плохую хвостовую задержку.

slo

Окно измерения задает период событий, по которым определяется выполнение SLO.

  • Скользящее окно всегда оценивает последний период, например последние 30 дней.
  • Календарное окно сбрасывается на фиксированных границах, например в первый день каждого месяца.
  • Короткие окна быстро реагируют, но могут резко меняться при малом числе событий.
  • Длинные окна сглаживают краткие изменения, но медленнее показывают устойчивое ухудшение.

Зачем это спрашивают: Сильный ответ объясняет, что окно меняет и смысл результата SLO, и его чувствительность.

sli

Ориентированный на пользователя SLI измеряет, могут ли пользователи выполнить значимое действие в сервисе с приемлемым качеством.

  • По возможности его измеряют рядом с точкой взаимодействия с пользователем, например на входе API или в клиенте.
  • Он охватывает всю операцию, а не один сервер, контейнер или зависимость.
  • Загрузка CPU может объяснить поведение, но напрямую не показывает, добились ли пользователи успеха.

Зачем это спрашивают: Интервьюер оценивает, выбирает ли кандидат показатели по результатам пользователей, а не по удобным инфраструктурным метрикам.

error-budgetreliability

Бюджет ошибок показывает объём ненадёжности, который допускает SLO в течение окна измерения.

  • Он равен разнице между идеальной надёжностью и целевым значением SLO.
  • SLO 99,9% допускает 0,1% неуспешных событий.
  • Оставшийся бюджет показывает, какой риск для надёжности еще приемлем.
  • Команды используют его, чтобы балансировать изменения продукта и работу по защите надёжности.

Зачем это спрашивают: Интервьюер проверяет понимание бюджета ошибок как допустимой ненадёжности и инструмента принятия решений.

reliabilitysloerror-budget

Для расчёта бюджета допустимую долю ненадёжности умножают на число событий или длительность временного окна.

  • Для 1 000 000 допустимых запросов и SLO 99,9% бюджет равен 0,1%, или 1 000 неуспешных запросов.
  • Для 30-дневного SLO 99,9% по времени допустимая недоступность составляет около 43,2 минуты.
  • Расчет должен использовать те же правила допустимости и успеха, что и базовый SLI.

Зачем это спрашивают: Сильный ответ правильно выполняет оба расчета и сохраняет соответствие бюджета определению SLI.

error-budgetreliability

Скорость расходования показывает, насколько быстро сервис тратит бюджет ошибок относительно допустимого темпа.

  • Скорость 1 израсходует весь бюджет ровно за полное окно SLO.
  • Скорость 2 расходует бюджет вдвое быстрее, чем допускает SLO.
  • Скорость расходования связывает текущий уровень ошибок с остатком бюджета и оставшимся временем.
  • Несколько окон наблюдения позволяют отличать краткие всплески от устойчивого расходования бюджета.

Зачем это спрашивают: Интервьюер ожидает корректное определение относительной скорости, а не еще одно название частоты ошибок.

reliability

Цель надёжности 100% обычно непрактична и может стоить больше, чем приносит пользователям дополнительной пользы.

  • Сети, оборудование, зависимости и программы могут отказывать, поэтому устранить все сбои нереалистично.
  • Приближение к 100% требует все более дорогих мер и может сильно замедлить развитие продукта.
  • Пользователи могут не заметить надёжность выше определенного уровня, поскольку их устройства и сети тоже дают сбои.
  • Подходящий SLO задает минимальный уровень надёжности, который все еще отвечает потребностям пользователей и бизнеса.

Зачем это спрашивают: Интервьюер проверяет понимание надёжности как экономического и продуктового компромисса, а не абсолютного максимума.

reliability-metrics

MTTR описывает среднее время восстановления после сбоя, а MTBF описывает среднее время работы между сбоями.

  • MTTR нужно определять единообразно, потому что последняя R в разных организациях может означать repair, recovery или restore.
  • Меньший MTTR означает, что сервис в среднем восстанавливается быстрее.
  • Больший MTBF означает, что сбои в среднем происходят реже.
  • Для ремонтируемой системы доступность примерно равна MTBF, деленному на сумму MTBF и MTTR.

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

RTO ограничивает допустимое время восстановления, а RPO ограничивает допустимую потерю данных, выраженную во времени.

  • RTO отвечает на вопрос, как долго сервис может оставаться недоступным после серьезного нарушения.
  • RPO отвечает на вопрос, насколько восстановленные данные могут отставать от момента нарушения.
  • RTO в один час требует восстановить сервис в течение часа.
  • RPO в пять минут допускает потерю не более примерно пяти минут последних данных.

Зачем это спрашивают: Интервьюер проверяет, не путает ли кандидат длительность восстановления с объемом допустимой потери данных.

Закрытые вопросы

  • 21

    Чем RTO и RPO отличаются от обычных SLO?

    slodisaster-recovery
  • 22

    Что такое сохранность данных и чем она отличается от доступности?

    availabilitydurability
  • 23

    Как зависимости сервиса влияют на общую надёжность?

    reliabilitydependencies
  • 24

    Что такое graceful degradation?

    resilience
  • 25

    Каковы основные принципы проектирования надёжных сервисов?

    design
  • 26

    Чем мониторинг отличается от наблюдаемости?

    observabilitymonitoring
  • 27

    Какую роль метрики, логи и трейсы играют в наблюдаемости?

    observabilitymonitoring
  • 28

    Что такое метод RED?

    observability-methods
  • 29

    Что такое метод USE?

    observability-methods
  • 30

    Что входит в четыре золотых сигнала мониторинга?

    golden-signalsmonitoring
  • 31

    Какие четыре типа метрик поддерживает Prometheus?

    monitoring
  • 32

    Что такое кардинальность меток в системе метрик?

    system-designmonitoring
  • 33

    Чем отличаются мониторинг белого и чёрного ящика?

    monitoring
  • 34

    Каким должен быть алерт, чтобы он требовал конкретной реакции?

    alerting
  • 35

    Для чего нужен операционный dashboard?

    dashboards
  • 36

    Чем отличаются liveness- и readiness-пробы в Kubernetes?

    kuberneteshealth-checks
  • 37

    Что такое инцидент в SRE?

    incidentsincident-management
  • 38

    Что означает серьёзность инцидента?

    incidentsincident-managementseverity-priority
  • 39

    Каковы основные роли в команде реагирования на инцидент?

    incidentsincident-management
  • 40

    Что такое on-call ротация?

    on-call
  • 41

    Что такое эскалация при реагировании на инцидент?

    incidentsincident-managementescalation
  • 42

    Что должен содержать runbook?

    runbooks
  • 43

    Для чего нужен постмортем без поиска виноватых?

    incidentspostmortems
  • 44

    Что такое toil в SRE?

    toilreliability
  • 45

    Что такое балансировка нагрузки и зачем она нужна?

    load-balancing
  • 46

    Что такое единая точка отказа?

    resilience
  • 47

    Чем избыточность отличается от отказоустойчивости?

    resilience
  • 48

    Чем горизонтальное масштабирование отличается от вертикального?

    scaling
  • 49

    Что такое планирование мощностей?

    capacitycapacity-planning
  • 50

    Что означает запас ресурсов при capacity planning?

    capacitycapacity-planning
  • 51

    Вам пришёл пейдж о недоступности продакшен-сервиса. Что вы сделаете в первую очередь?

  • 52

    Алерт показывает, что задержка API выросла вдвое. Как вы будете расследовать проблему?

    latencyapialerting
  • 53

    Доля ответов HTTP 5xx внезапно выросла. Как вы отреагируете?

    http
  • 54

    Пользовательский эндпоинт возвращает ошибки соединения, хотя процесс сервиса запущен. Что вы проверите?

    endpointsconcurrency
  • 55

    Балансировщик считает все инстансы нездоровыми. Как вы будете расследовать проблему?

    load-balancing
  • 56

    Ранбук предлагает выполнить команду, которая больше не работает. Что вы сделаете?

    runbooks
  • 57

    Когда junior SRE должен эскалировать инцидент?

    incidentsincident-managementescalation
  • 58

    Один алерт повторно пейджит дежурного по одной и той же нерешённой проблеме. Что вы сделаете?

    on-callalerting
  • 59

    Сработал предупреждающий алерт, но дашборды не показывают влияния на пользователей. Как вы поступите?

    alertingdashboards
  • 60

    За одну минуту сработало много алертов от разных сервисов. Как вы проведёте триаж?

    alerting
  • 61

    Ошибки начались сразу после деплоя. Как вы решите, нужен ли откат?

    deploymentrollback
  • 62

    Пользователи жалуются на медленную работу, но основной дашборд сервиса выглядит нормально. Что вы сделаете?

    dashboards
  • 63

    Как вы используете логи для расследования одного неудачного запроса?

  • 64

    Какие сигналы вы проверите первыми, если веб-сервис работает плохо?

  • 65

    CPU одного инстанса сервиса долго держится на 100%. Как вы отреагируете?

  • 66

    Потребление памяти растёт, пока сервис не перезапустится. Как вы будете расследовать это?

    memory
  • 67

    На продакшен-хосте почти закончилось место на диске. Что вы сделаете?

  • 68

    Мониторинг сообщает, что один хост недоступен. Как вы проведёте триаж?

    monitoring
  • 69

    Сервис работает по IP-адресу, но не по имени хоста. Как вы будете расследовать проблему?

  • 70

    Клиенты начали получать ошибки TLS-сертификата. Что вы проверите?

    tls
  • 71

    Приложение не может получить соединение с базой данных. Как вы отреагируете?

    database
  • 72

    Задержка базы данных растёт во время пикового трафика. Как вы будете расследовать это?

    databaselatency
  • 73

    Кеш стал недоступен, и задержка приложения выросла. Что вы сделаете?

    cachinglatency
  • 74

    В очереди сообщений растёт отставание. Как вы отреагируете?

    backlogqueuesreact
  • 75

    Ваш сервис получает таймауты при вызове зависимости. Как вы отреагируете?

    dependencies
  • 76

    Pod Kubernetes находится в состоянии CrashLoopBackOff. Как вы будете расследовать проблему?

    kubernetes
  • 77

    Недавно созданный pod Kubernetes остаётся в состоянии Pending. Что вы проверите?

    kubernetes
  • 78

    Pod запущен, но так и не становится готовым. Как вы будете искать проблему?

  • 79

    Узел Kubernetes сообщает о нехватке памяти или места на диске. Что вы сделаете?

    memorykubernetes
  • 80

    Трафик внезапно вырос втрое, и задержка начала расти. Как вы отреагируете?

    latency
  • 81

    Нагрузка высокая, но автоскейлер не добавляет инстансы. Что вы проверите?

    scalingautoscaling
  • 82

    Один инстанс перегружен, а остальные почти простаивают. Как вы будете расследовать проблему?

  • 83

    Один клиент создаёт достаточно запросов, чтобы ухудшить работу сервиса. Что вы сделаете?

  • 84

    Ёмкость исчерпана, и не все запросы могут завершиться успешно. Как вы примените сброс нагрузки?

    capacityresilienceload-management
  • 85

    Какую информацию вы включите в передачу on-call смены?

    on-call
  • 86

    Вас вызвали по пейджу, но у вас нет доступа к нужному дашборду или системе. Что вы сделаете?

    incident-managementsystem-designdashboards
  • 87

    Ранбук содержит команду, которая может удалить данные. Как выполнить её безопасно?

    runbooks
  • 88

    Как вы будете общаться во время активного инцидента?

    communicationincidentsincident-management
  • 89

    Зачем и как сохранять факты во время инцидента?

    incidentsincident-management
  • 90

    Как после временного исправления проверить, что сервис восстановился?

  • 91

    Сразу после перезапуска сервис выглядит здоровым. За чем вы будете следить дальше?

    monitoring
  • 92

    Как вы поможете составить таймлайн инцидента для постмортема?

    incidentsincident-managementpostmortems
  • 93

    Как вы поучаствуете в безобвинительном постмортеме, если допустили ошибку во время инцидента?

    ownershipincidentsincident-management
  • 94

    Каким должен быть полезный пункт действий после постмортема?

    incidentspostmortemstracking
  • 95

    Один и тот же инцидент произошёл уже трижды. Что вы сделаете помимо очередного восстановления?

    incidentsincident-management
  • 96

    Вас пригласили на game day с симуляцией отказа зависимости. Как вы подготовитесь?

    dependencies
  • 97

    Алерт постоянно оказывается ложноположительным. Как вы его улучшите?

    alerting
  • 98

    Во время инцидента предлагают непроверенное изменение конфигурации. Как вы отреагируете?

    incidentsincident-managementconfig
  • 99

    Как вы поможете определить серьёзность нового инцидента?

    incidentsincident-managementseverity-priority
  • 100

    Вас вызвали по пейджу для сервиса, с которым вы никогда не работали. Как вы поступите?

    incident-management