Вопросы на собеседовании: SRE-инженер
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Junior.
Смотреть пример резюме: SRE-инженер →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
Site Reliability Engineering применяет методы программной инженерии для поддержания надёжности и масштабируемости сервисов.
- SRE рассматривает операционные проблемы как инженерные задачи, которые часто можно измерить и автоматизировать.
- Его цель состоит в том, чтобы обеспечить нужную пользователям надёжность, не останавливая полезное развитие продукта.
- Работа SRE обычно охватывает цели уровня сервиса, наблюдаемость, автоматизацию, ресурсы и безопасную эксплуатацию.
- Эта дисциплина формирует общую ответственность разработки и эксплуатации за надёжность.
Зачем это спрашивают: Интервьюер проверяет, понимает ли кандидат SRE как инженерный подход к надёжности, а не новое название операционной роли.
Доступность является одной из составляющих надёжности, а надёжность охватывает все аспекты качества сервиса, которые пользователи ощущают со временем.
- Доступность показывает, может ли сервис успешно обработать запрос, когда это требуется.
- Надёжность также может включать задержку, корректность, долговечность данных и согласованность.
- Сервис может быть доступным, но ненадёжным, если возвращает неверные данные или отвечает слишком медленно.
Зачем это спрашивают: Сильный ответ отличает более широкий пользовательский опыт надёжности от более узкого показателя доступности.
Автоматизация превращает повторяемую операционную работу в единообразные процессы, которые можно проверять.
- Скрипты на Python или Bash устраняют небольшие ручные действия, которые регулярно повторяются.
- Terraform и Ansible описывают инфраструктуру или конфигурацию как версионируемый код.
- Автоматизированная работа лучше масштабируется, меньше зависит от исполнителя и реже приводит к случайным ошибкам.
- Безопасной автоматизации всё равно нужны тесты, идемпотентность, контроль доступа и способ восстановления.
Зачем это спрашивают: Интервьюер проверяет, воспринимает ли кандидат автоматизацию как управляемую инженерную работу, а не простую замену всех ручных команд.
SLI представляет собой количественный показатель поведения сервиса, важного для его пользователей.
- Распространенные SLI измеряют долю успешных запросов, задержку запросов, пропускную способность или свежесть данных.
- Для SLI нужно точно определить событие, условие успеха, источник данных и способ агрегации.
- Хорошие SLI описывают видимые пользователю результаты, а не только использование внутренних ресурсов.
Зачем это спрашивают: Интервьюер ожидает измеримое определение и понимание разницы между пользовательскими результатами и внутренними метриками.
SLO задаёт целевое значение или диапазон SLI в течение заданного окна измерения.
- Например, SLO может требовать не менее 99,9% успешных запросов в скользящем 30-дневном окне.
- Целевое значение определяет уровень надёжности, который команда намерена обеспечивать.
- Окно задает, какие данные участвуют в оценке.
- SLO помогают принимать решения о работе над надёжностью и допустимом риске релизов.
Зачем это спрашивают: Интервьюер проверяет, включает ли кандидат в определение и числовую цель, и временное окно.
SLA представляет собой формальное обязательство перед клиентом об уровне сервиса и последствиях его нарушения.
- Оно может обещать минимальную доступность или время ответа за расчетный период.
- Последствия могут включать сервисные кредиты, возврат средств или другие договорные компенсации.
- SLA обычно устанавливают менее строгим, чем внутренний SLO, чтобы у команды оставался запас.
Зачем это спрашивают: Сильный ответ называет обязательство перед клиентом и договорные последствия, которые отличают SLA от внутренней цели.
SLI дает измерение, SLO задает его целевое значение, а SLA превращает обещание уровня сервиса в формальное соглашение.
- SLI определяет, что измеряется, например доля успешных запросов.
- SLO может требовать, чтобы эта доля была не ниже 99,9% в течение 30 дней.
- SLA может использовать связанный клиентский порог и определять компенсации при его нарушении.
- Определения должны быть согласованы, чтобы каждая цель опиралась на одинаково понимаемое поведение сервиса.
Зачем это спрашивают: Интервьюер оценивает, может ли кандидат связать три термина и не считать их взаимозаменяемыми.
SLI доступности измеряет долю допустимых взаимодействий с сервисом, которые завершились успешно.
- Вариант по запросам рассчитывается как число успешных допустимых запросов, деленное на число всех допустимых запросов.
- Вариант по времени измеряет долю времени, в течение которого сервис пригоден для использования.
- Критерий успеха должен отражать всю пользовательскую операцию, а не только работу процесса.
Зачем это спрашивают: Интервьюер ожидает точное отношение и понимание того, что время работы процесса может не отражать видимую пользователю доступность.
SLI задержки измеряет, сколько времени занимает допустимая операция сервиса с точки зрения пользователя.
- Его можно выразить распределением или долей запросов, уложившихся в порог.
- Для разных операций часто нужны отдельные SLI задержки, потому что их ожидаемая длительность различается.
- Неудачные запросы нужно классифицировать единообразно, чтобы быстрые отказы не создавали видимость хорошей задержки.
- Сквозное измерение обычно лучше отражает пользовательский опыт, чем время одного внутреннего компонента.
Зачем это спрашивают: Сильный ответ рассматривает задержку как распределение, привязанное к пользовательским операциям, а не как одно среднее значение.
Показатель пропускной способности измеряет объем полезной работы, которую сервис обрабатывает за единицу времени.
- Примеры включают запросы в секунду, сообщения в минуту или байты в секунду.
- Пропускная способность дает контекст нагрузки для показателей задержки и ошибок.
- Большее значение не всегда лучше, если растет число ошибок или очереди задач.
Зачем это спрашивают: Интервьюер проверяет понимание пропускной способности как выполненной работы с единицами измерения и необходимым контекстом качества.
Показатель ошибок отслеживает явно неудачные операции, а показатель корректности проверяет, действительно ли результаты верны.
- Частоту ошибок обычно рассчитывают как число неудачных допустимых запросов, деленное на число всех допустимых запросов.
- Ответы HTTP 5xx и неудачные задания служат примерами явных ошибок.
- Ответ с HTTP 200 все равно может быть некорректным, если данные отсутствуют, устарели или неверны.
- Поэтому для проверки корректности нужны правила предметной области, например ожидаемые поля, значения или инварианты.
Зачем это спрашивают: Интервьюер проверяет, понимает ли кандидат, что успешный HTTP-статус не гарантирует правильный результат для пользователя.
Задержка p99 обозначает значение, за которое укладывается 99% измеренных запросов.
- Если p99 равен 800 мс, то 99% запросов заняли не более 800 мс, а 1% занял больше.
- Процентили показывают медленный хвост распределения, который может быть скрыт средним значением.
- P50 представляет типичный запрос, а p95 и p99 описывают все более медленные части трафика.
Зачем это спрашивают: Интервьюер проверяет правильное толкование процентилей и понимание того, почему средние значения скрывают плохую хвостовую задержку.
Окно измерения задает период событий, по которым определяется выполнение SLO.
- Скользящее окно всегда оценивает последний период, например последние 30 дней.
- Календарное окно сбрасывается на фиксированных границах, например в первый день каждого месяца.
- Короткие окна быстро реагируют, но могут резко меняться при малом числе событий.
- Длинные окна сглаживают краткие изменения, но медленнее показывают устойчивое ухудшение.
Зачем это спрашивают: Сильный ответ объясняет, что окно меняет и смысл результата SLO, и его чувствительность.
Ориентированный на пользователя SLI измеряет, могут ли пользователи выполнить значимое действие в сервисе с приемлемым качеством.
- По возможности его измеряют рядом с точкой взаимодействия с пользователем, например на входе API или в клиенте.
- Он охватывает всю операцию, а не один сервер, контейнер или зависимость.
- Загрузка CPU может объяснить поведение, но напрямую не показывает, добились ли пользователи успеха.
Зачем это спрашивают: Интервьюер оценивает, выбирает ли кандидат показатели по результатам пользователей, а не по удобным инфраструктурным метрикам.
Бюджет ошибок показывает объём ненадёжности, который допускает SLO в течение окна измерения.
- Он равен разнице между идеальной надёжностью и целевым значением SLO.
- SLO 99,9% допускает 0,1% неуспешных событий.
- Оставшийся бюджет показывает, какой риск для надёжности еще приемлем.
- Команды используют его, чтобы балансировать изменения продукта и работу по защите надёжности.
Зачем это спрашивают: Интервьюер проверяет понимание бюджета ошибок как допустимой ненадёжности и инструмента принятия решений.
Для расчёта бюджета допустимую долю ненадёжности умножают на число событий или длительность временного окна.
- Для 1 000 000 допустимых запросов и SLO 99,9% бюджет равен 0,1%, или 1 000 неуспешных запросов.
- Для 30-дневного SLO 99,9% по времени допустимая недоступность составляет около 43,2 минуты.
- Расчет должен использовать те же правила допустимости и успеха, что и базовый SLI.
Зачем это спрашивают: Сильный ответ правильно выполняет оба расчета и сохраняет соответствие бюджета определению SLI.
Скорость расходования показывает, насколько быстро сервис тратит бюджет ошибок относительно допустимого темпа.
- Скорость 1 израсходует весь бюджет ровно за полное окно SLO.
- Скорость 2 расходует бюджет вдвое быстрее, чем допускает SLO.
- Скорость расходования связывает текущий уровень ошибок с остатком бюджета и оставшимся временем.
- Несколько окон наблюдения позволяют отличать краткие всплески от устойчивого расходования бюджета.
Зачем это спрашивают: Интервьюер ожидает корректное определение относительной скорости, а не еще одно название частоты ошибок.
Цель надёжности 100% обычно непрактична и может стоить больше, чем приносит пользователям дополнительной пользы.
- Сети, оборудование, зависимости и программы могут отказывать, поэтому устранить все сбои нереалистично.
- Приближение к 100% требует все более дорогих мер и может сильно замедлить развитие продукта.
- Пользователи могут не заметить надёжность выше определенного уровня, поскольку их устройства и сети тоже дают сбои.
- Подходящий SLO задает минимальный уровень надёжности, который все еще отвечает потребностям пользователей и бизнеса.
Зачем это спрашивают: Интервьюер проверяет понимание надёжности как экономического и продуктового компромисса, а не абсолютного максимума.
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