Skip to content

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

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

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

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

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

Вопросы

slo

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

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

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

sli

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

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

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

sliavailability

SLI доступности на основе запросов равен доле корректных успешных запросов среди всех корректных запросов за окно.

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

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

percentileslatencysli

Перцентили задержки показывают медленные пользовательские запросы, которые среднее значение может скрыть.

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

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

error-budgetreliabilityalerting

Оповещения по burn rate с несколькими окнами выявляют слишком быстрый расход error budget на коротком и длинном интервале.

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

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

error-budgetreliability

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

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

Зачем это спрашивают: Хороший ответ рассматривает error budget как общий инструмент принятия решений.

error-budgetreliability

Эффективная политика задаёт объективные триггеры, соразмерные действия, ответственных и условия возврата к обычной поставке.

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

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

sloe2edependencies

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

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

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

slo

Я использую скользящее окно для постоянно актуальной оценки без сброса на границе месяца.

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

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

sloavailability

При низком трафике я сочетаю длинные окна с пользовательскими синтетическими проверками, а не полагаюсь на редкие запросы.

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

Зачем это спрашивают: Вопрос выявляет понимание слабости процентов, рассчитанных по малой выборке.

observability-methods

RED описывает сервис через частоту запросов, долю ошибок и длительность запросов.

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

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

observability-methods

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

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

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

logging

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

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

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

async

Контекст трассировки передают через каждую границу, чтобы спаны одной операции имели общий идентификатор.

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

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

samplingdistributed

Я выбираю семплирование по объёму трафика, задачам анализа и стоимости, сохраняя редкие, но ценные трассы.

  • Head sampling стоит дёшево, но не знает заранее, окажется ли трасса медленной или неуспешной.
  • Tail sampling отбирает трассы по результату или задержке ценой буферизации и сложности коллекторов.
  • Наследование решения от родителя сохраняет целостность трассы между сервисами.

Зачем это спрашивают: Вопрос оценивает статистические и эксплуатационные компромиссы семплирования трассировок.

monitoring

Высокая кардинальность создаёт слишком много временных рядов, увеличивая память, хранение, стоимость запросов и записи.

  • Неограниченные идентификаторы пользователей, запросов и исходные URL нельзя использовать как метки.
  • Предпочтительны ограниченные измерения: сервис, регион, класс статуса и нормализованный маршрут.
  • Подробные идентификаторы хранят в логах или трассировках, рассчитанных на отдельные события.

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

distributionslatency

Бакеты гистограммы определяют точность и стоимость серверной агрегации задержки.

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

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

monitoring

Полезная метка метрики представляет ограниченное измерение для известной агрегации или решения.

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

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

sloalerting

Полезное SLO-оповещение сообщает о существенном риске для бюджета, указывает владельца и ведёт к решению.

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

Зачем это спрашивают: Вопрос проверяет, отделяет ли кандидат срочные сигналы надёжности от интересной телеметрии.

monitoring

Синтетический мониторинг обеспечивает контролируемые проверки, а мониторинг реальных пользователей измеряет фактический опыт.

  • Синтетические пробы покрывают критические пути при низком трафике и последовательно сравнивают локации.
  • Реальные данные учитывают разнообразие устройств, браузеров, сетей и поведения, недоступное скриптам.
  • Совместное применение сравнивает стабильную базовую линию с настоящим пользовательским опытом.

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

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

  • 21

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

    capacitycapacity-planning
  • 22

    Как выбрать запас ёмкости для сервиса?

    capacitycapacity-planning
  • 23

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

    capacitycapacity-planning
  • 24

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

  • 25

    Что делает нагрузочный тест полезным для планирования ёмкости?

    capacityload-testingcapacity-planning
  • 26

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

    scalingautoscaling
  • 27

    Почему автомасштабированию нужны разные режимы увеличения и уменьшения ёмкости?

    scalingautoscaling
  • 28

    Когда вертикальное масштабирование предпочтительнее горизонтального?

    scaling
  • 29

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

    reliabilityalgorithms
  • 30

    Чем должны отличаться проверки readiness и liveness?

    health-checks
  • 31

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

    latencycapacity-planningcapacity
  • 32

    Как circuit breaker ограничивает каскадный отказ?

    resilience
  • 33

    Какие операции безопасно повторять?

    resilience
  • 34

    Почему повторы используют экспоненциальную задержку с джиттером?

    resilience
  • 35

    Что такое бюджет повторов и зачем он нужен?

    resilience
  • 36

    Как проектировать тайм-ауты и дедлайны по цепочке вызовов?

    designresilienceestimation
  • 37

    Как проектировать плавную деградацию?

    designresilience
  • 38

    Как паттерн bulkhead повышает устойчивость?

    resilience
  • 39

    Чем сброс нагрузки отличается от rate limiting?

    resiliencerate-limitingload-management
  • 40

    Как обратное давление защищает распределённый конвейер?

    distributedresiliencebackpressure
  • 41

    Как выглядит хорошая гипотеза для chaos engineering?

    resiliencechaos-engineeringhypothesis-testing
  • 42

    Как ограничить радиус поражения в chaos-эксперименте?

    resiliencechaos-engineeringexperiments
  • 43

    Какие измерения необходимы во время chaos-эксперимента?

    experimentschaos-engineering
  • 44

    Как спроектировать политику canary-релизов?

    designdeployment-strategies
  • 45

    Какие компромиссы надёжности есть у blue-green развёртывания?

    deployment-strategiesreliabilitydeployment
  • 46

    Что делает развёртывание безопасно обратимым?

    decision-makingdeployment
  • 47

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

    reliabilitydistributed-systems
  • 48

    Как CAP должна направлять проектирование при разделении сети?

    partitioningdesign
  • 49

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

    replicationreliability
  • 50

    Почему для продвижения консенсусу требуется большинство?

    consensusdistributed-systems
  • 51

    Зависимый сервис падает, а повторные запросы распространяют сбой по всей платформе. Что вы будете делать?

  • 52

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

    latency
  • 53

    Во время пикового трафика сервис постоянно использует 100% CPU. Как вы отреагируете?

  • 54

    Потребление памяти растёт, пока Kubernetes не завершает pod по OOM. Как вы проведёте такой инцидент?

    incidentsincident-managementmemory
  • 55

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

    on-calldatabase
  • 56

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

    databasepooling
  • 57

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

    trackingmemorydata-structures
  • 58

    Linux-сервис периодически падает с ошибкой too many open files. Как вы устраните проблему?

  • 59

    Сразу после релиза Kubernetes deployment переходит в CrashLoopBackOff. Что вы будете делать?

    kubernetesdeployment
  • 60

    Из-за давления по памяти Kubernetes вытесняет pod с одного узла. Как вы отреагируете?

    memorykubernetes
  • 61

    Несколько сервисов падают из-за тайм-аутов внутренних DNS-запросов. Как вы исследуете проблему?

    dns
  • 62

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

  • 63

    Очередь фоновых задач быстро растёт, хотя входящий трафик остаётся стабильным. Как вы поступите?

    jobssoft-skillsdata-structures
  • 64

    Для критичного пайплайна растёт Kafka consumer lag. Что вы проверите и измените?

    kafkaci-cd
  • 65

    Истёк TTL популярного ключа кеша, и база данных внезапно оказалась перегружена. Как восстановиться и не допустить повторения?

    databasecaching
  • 66

    Замедление зависимости вызывает шторм повторных запросов. Как вы настроите клиентов?

    resiliencedependencies
  • 67

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

  • 68

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

    availability
  • 69

    Срок действия production TLS-сертификата истечёт через два часа. Что вы будете делать?

    tls
  • 70

    Только один клиент вызывает всплески задержки у всех остальных. Как вы решите эту проблему noisy neighbor?

    latency
  • 71

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

    on-callalerting
  • 72

    Пользователи заметили влияющий на них инцидент раньше мониторинга. Как вы закроете пробел?

    incidentsincident-managementmonitoring
  • 73

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

    databasealerting
  • 74

    Как настроить алерт для сервиса, который может расходовать error budget быстро или медленно?

    configalertingreliability
  • 75

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

  • 76

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

  • 77

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

    incidentsincident-managementrunbooks
  • 78

    Вы обнаружили, что ресурсы production Kubernetes отличаются от GitOps-репозитория. Что вы будете делать?

    kubernetesgitops
  • 79

    У canary-релиза немного больше ошибок, чем у стабильной версии. Как решить, продолжать ли раскатку?

    deployment-strategies
  • 80

    Как во время инцидента из-за деплоя выбрать между откатом и исправлением поверх текущего релиза?

    incidentsincident-managementdeployment
  • 81

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

    databasemigrationsdeployment
  • 82

    Новая фича перегрузила одну из зависимостей. Как использовать feature flags во время инцидента?

    incidentsincident-managementfeature-flags
  • 83

    Как вы оцените необходимую мощность перед сезонным пиком трафика?

    estimationcapacitycapacity-planning
  • 84

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

    learningscalingautoscaling
  • 85

    Kubernetes Horizontal Pod Autoscaler слишком поздно реагирует на короткие всплески трафика. Как его улучшить?

    scalingkubernetesreact
  • 86

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

    resilienceload-management
  • 87

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

    scalingcapacitydatabase
  • 88

    Сервис рекомендаций недоступен, но основной продукт может работать. Как спроектировать режим деградации?

    design
  • 89

    Как провести blameless postmortem после серьёзного сбоя?

    incidentspostmortems
  • 90

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

    incidentspostmortemstracking
  • 91

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

    incidentson-callincident-management
  • 92

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

    incidentson-callincident-management
  • 93

    Во время инцидента два dashboard по-разному показывают состояние сервиса. Что вы будете делать?

    conflictincidentsincident-management
  • 94

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

    communicationincidentsincident-management
  • 95

    Один класс инцидентов повторился трижды, несмотря на прошлые исправления. Как вы измените подход?

    incidentsincident-management
  • 96

    Сервис израсходовал месячный error budget в середине периода. Что вы порекомендуете?

    error-budgetreliability
  • 97

    Как безопасно провести chaos-эксперимент на критичном production-сервисе?

    experimentschaos-engineering
  • 98

    Ошибочные записи приложения повредили production-данные. Как вы подойдёте к восстановлению?

  • 99

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

    databasereplicationfailover
  • 100

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

    on-call