Вопросы на собеседовании: SRE-инженер
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Middle.
Смотреть пример резюме: SRE-инженер →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
SLI измеряет поведение сервиса, SLO задаёт внутреннюю цель, а SLA фиксирует внешнее обязательство.
- Для SLI нужны точное определение события, источник данных и окно измерения.
- SLO устанавливает допустимый результат, например 99,9% успешных запросов за 28 дней.
- SLA обычно содержит более мягкую цель и описывает последствия нарушения обязательства.
Зачем это спрашивают: Вопрос проверяет, различает ли кандидат измерение, инженерную цель и договорное обязательство.
Я выбираю SLI, который показывает, выполнил ли пользователь ценное действие успешно и достаточно быстро.
- Границы задаются от точки входа пользователя до наблюдаемого результата, а не вокруг одного компонента.
- В знаменатель входят корректные попытки, а в числитель успешные результаты.
- Задержку измеряют на внешней границе, чтобы учесть видимые расходы сети и зависимостей.
Зачем это спрашивают: Сильный ответ связывает измерение надёжности с ценностью для пользователя, а не с удобными инфраструктурными метриками.
SLI доступности на основе запросов равен доле корректных успешных запросов среди всех корректных запросов за окно.
- Нужно задать успешные коды и прикладные результаты, а не считать хорошим любой ответ без 5xx.
- Некорректные или неподдерживаемые запросы исключаются только тогда, когда это допускает контракт сервиса.
- Измерять следует там, где виден итоговый результат, поскольку серверные метрики могут пропустить сбои прокси и маршрутизации.
Зачем это спрашивают: Интервьюер оценивает, умеет ли кандидат превратить доступность в проверяемое отношение событий.
Перцентили задержки показывают медленные пользовательские запросы, которые среднее значение может скрыть.
- Среднее может оставаться стабильным, хотя небольшая, но важная доля запросов становится очень медленной.
- Цель задаёт и порог, и охваченную долю, например 99% запросов быстрее 400 миллисекунд.
- Перцентили нельзя складывать, поэтому сквозную задержку измеряют напрямую или собирают из гистограмм.
Зачем это спрашивают: Вопрос проверяет понимание распределений задержки и ограничений сводных статистик.
Оповещения по burn rate с несколькими окнами выявляют слишком быстрый расход error budget на коротком и длинном интервале.
- Скорость расходования, равная единице, тратит бюджет ровно в темпе, допустимом окном SLO.
- Короткое окно замечает резкий расход, а длинное подтверждающее окно отсекает краткий шум.
- Пороги выводятся из SLO и времени до исчерпания, а не из произвольного процента ошибок.
Зачем это спрашивают: Вопрос оценивает, умеет ли кандидат связать математику оповещений с политикой SLO.
Error budget задаёт общий количественный предел для выбора между скоростью поставки и надёжностью.
- Оставшийся бюджет позволяет безопасно вносить изменения, пока сервис выполняет цель.
- Быстрый расход показывает, что работа над надёжностью должна стать важнее рискованных изменений.
- Бюджет направляет решения, но не разрешает намеренно допускать сбои.
Зачем это спрашивают: Хороший ответ рассматривает error budget как общий инструмент принятия решений.
Эффективная политика задаёт объективные триггеры, соразмерные действия, ответственных и условия возврата к обычной поставке.
- Триггеры опираются на согласованные скорости расходования или доли бюджета, а не на субъективную оценку здоровья.
- Действия варьируются от проверки рискованных изменений до паузы отдельных релизов с разрешением улучшений надёжности.
- Ответственность охватывает расчёт, одобрение исключений и проверку критериев восстановления.
Зачем это спрашивают: Вопрос проверяет, умеет ли кандидат применять error budget без негибкой полной заморозки релизов.
Сквозной SLO учитывает надёжность зависимостей, но его нельзя безопасно получить копированием целей поставщиков.
- Критические последовательные зависимости перемножают доступность, поэтому несколько сильных целей могут дать слабый сценарий.
- Резервирование, кеширование и запасные пути меняют вклад каждой зависимости.
- Пользовательский результат измеряют напрямую, а цели зависимостей используют для распределения риска.
Зачем это спрашивают: Интервьюер ожидает рассуждение о составной надёжности, а не об изолированных процентах.
Я использую скользящее окно для постоянно актуальной оценки без сброса на границе месяца.
- Оно подходит для расчёта скорости расходования и не позволяет плохому периоду исчезнуть в первый день месяца.
- Календарные окна удобнее для договоров и фиксированных бизнес-обзоров.
- Выбранное окно должно отражать обычные колебания трафика и оставаться полезным для решений.
Зачем это спрашивают: Вопрос оценивает понимание того, как окно измерения меняет стимулы и трактовку результата.
При низком трафике я сочетаю длинные окна с пользовательскими синтетическими проверками, а не полагаюсь на редкие запросы.
- Один неуспешный запрос может определить короткое окно, поэтому неопределённость нужно показывать.
- Синтетические пробы с заданной частотой проверяют критические пути, когда реальных событий мало.
- Цели и пороги должны учитывать размер выборки, а не копировать высоконагруженный API.
Зачем это спрашивают: Вопрос выявляет понимание слабости процентов, рассчитанных по малой выборке.
RED описывает сервис через частоту запросов, долю ошибок и длительность запросов.
- Частота даёт контекст нагрузки для изменений ошибок или задержки.
- Ошибки должны отражать неуспешные результаты для пользователя, а не только падения процесса.
- Длительность хранят как распределение, чтобы видеть хвостовую задержку.
Зачем это спрашивают: Интервьюер проверяет, используется ли RED как целостное представление сервиса, а не аббревиатура для дашборда.
USE рассматривает каждый ресурс через утилизацию, насыщение и ошибки, дополняя ориентированный на запросы RED.
- Утилизация показывает занятую долю ёмкости, например процессорного времени или памяти.
- Насыщение отражает очередь, когда спрос превышает доступную в данный момент ёмкость.
- Ошибки охватывают сбои ресурса, например ошибки диска или потери пакетов.
Зачем это спрашивают: Сильный ответ отделяет давление на ресурсы от видимого пользователю поведения сервиса.
Структурированному логированию нужны стабильная схема, ограниченные поля и контроль данных, чтобы события оставались доступными для поиска без неконтролируемых затрат и рисков.
- Следует использовать единые имена и типы для сервиса, версии, окружения, серьёзности, идентификатора запроса и идентификатора трассировки во всех источниках.
- Детали с высокой кардинальностью лучше хранить в логах, а не в метках метрик, но размер записи и глубина вложенных объектов должны быть ограничены.
- Секреты и персональные данные нужно удалять до загрузки, а сроки хранения и права доступа задавать по чувствительности данных.
- Изменения схемы следует версионировать и отслеживать ошибки разбора, потерянные события, объём загрузки и скорость запросов.
Зачем это спрашивают: Вопрос проверяет, рассматривает ли кандидат логи как управляемые данные с требованиями к схеме, стоимости, приватности и эксплуатации.
Контекст трассировки передают через каждую границу, чтобы спаны одной операции имели общий идентификатор.
- HTTP- и RPC-клиенты добавляют стандартные заголовки, а получатели извлекают их до создания дочерних спанов.
- Производители сообщений кладут контекст в метаданные, а потребители создают связанные спаны.
- Для долгой фоновой работы связь спанов может быть точнее прямого отношения родитель-потомок.
Зачем это спрашивают: Интервьюер оценивает практическое понимание причинной телеметрии на границах распределённой системы.
Я выбираю семплирование по объёму трафика, задачам анализа и стоимости, сохраняя редкие, но ценные трассы.
- Head sampling стоит дёшево, но не знает заранее, окажется ли трасса медленной или неуспешной.
- Tail sampling отбирает трассы по результату или задержке ценой буферизации и сложности коллекторов.
- Наследование решения от родителя сохраняет целостность трассы между сервисами.
Зачем это спрашивают: Вопрос оценивает статистические и эксплуатационные компромиссы семплирования трассировок.
Высокая кардинальность создаёт слишком много временных рядов, увеличивая память, хранение, стоимость запросов и записи.
- Неограниченные идентификаторы пользователей, запросов и исходные URL нельзя использовать как метки.
- Предпочтительны ограниченные измерения: сервис, регион, класс статуса и нормализованный маршрут.
- Подробные идентификаторы хранят в логах или трассировках, рассчитанных на отдельные события.
Зачем это спрашивают: Вопрос проверяет понимание скрытой стоимости модели данных за безобидными на вид метками.
Бакеты гистограммы определяют точность и стоимость серверной агрегации задержки.
- Границы размещают около значимых целей и известных диапазонов, а не берут произвольные значения.
- Широкие бакеты скрывают изменения у порога SLO, а лишние бакеты умножают временные ряды.
- Для корректной агрегации экземплярам нужны совместимые границы.
Зачем это спрашивают: Сильный ответ связывает устройство бакетов с точностью квантилей и стоимостью телеметрии.
Полезная метка метрики представляет ограниченное измерение для известной агрегации или решения.
- Набор значений должен быть достаточно предсказуемым для оценки числа временных рядов.
- Смысл метки должен оставаться стабильным между версиями и сервисами.
- Измерения для редкого анализа лучше хранить в логах или трассировках.
Зачем это спрашивают: Интервьюер проверяет баланс между гибкостью анализа и устойчивостью платформы.
Полезное SLO-оповещение сообщает о существенном риске для бюджета, указывает владельца и ведёт к решению.
- Оно отражает влияние на пользователя или близкую угрозу цели, а не простой порог ресурса.
- Серьёзность определяется ожидаемым исчерпанием бюджета, а не высотой всплеска.
- Сигналы низкой срочности оставляют на дашбордах или в отчётах, не отвлекая людей.
Зачем это спрашивают: Вопрос проверяет, отделяет ли кандидат срочные сигналы надёжности от интересной телеметрии.
Синтетический мониторинг обеспечивает контролируемые проверки, а мониторинг реальных пользователей измеряет фактический опыт.
- Синтетические пробы покрывают критические пути при низком трафике и последовательно сравнивают локации.
- Реальные данные учитывают разнообразие устройств, браузеров, сетей и поведения, недоступное скриптам.
- Совместное применение сравнивает стабильную базовую линию с настоящим пользовательским опытом.
Зачем это спрашивают: Интервьюер оценивает понимание слепых зон каждого метода внешней наблюдаемости.
Закрытые вопросы
- 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