Вопросы на собеседовании: DevOps-инженер
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Middle.
Смотреть пример резюме: DevOps-инженер →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
CI-пайплайн должен сначала давать самую быструю и дешёвую обратную связь, а затем постепенно повышать стоимость и риск проверок.
- Сначала запускаются линтеры и статические проверки, затем юнит-тесты, сборка контейнера и интеграционные тесты собранного образа.
- Сканирование безопасности выполняется после дешёвых проверок, а публикация и деплой начинаются только после прохождения всех проверок качества.
- Такой порядок не заставляет ждать десятиминутную сборку ради ошибки форматирования и не тратит ресурсы на уже сломанные коммиты.
- В pull request пайплайн останавливается до публикации, а после слияния в main публикует артефакт и запускает деплой.
Зачем это спрашивают: Принцип падай быстро и дёшево, сформулированный как правило, а не фиксированный рецепт, показывает, что кандидат проектирует пайплайны, а не копирует шаблоны.
Сборки в CI медленные, потому что у чистых раннеров нет постоянного кеша слоёв, доступного на машине разработчика.
- BuildKit нужно дать постоянный источник через реестровый кеш cache-from и cache-to либо подключить кеш-хранилище CI-платформы.
- Для каталогов пакетных менеджеров, например pip или npm, используются кеш-маунты BuildKit, чтобы загрузки переживали сборки, но не попадали в слои образа.
- Манифесты зависимостей копируются и устанавливаются до исходного кода, поэтому дорогие слои сохраняются при изменении только файлов приложения.
- Попадания в кеш нужно проверять в логах CI, поскольку удалённый кеш не спасёт Dockerfile, ранние слои которого меняются в каждом коммите.
Зачем это спрашивают: Знание, что чистые раннеры теряют кеш слоёв, и называние реестрового кеша с кеш-монтированиями как лекарств показывают реальный опыт оптимизации CI-сборок.
Доступ CI к облаку должен строиться на короткоживущих идентификаторах с узкими правами, а не на сохранённых ключах доступа.
- При OIDC-федерации CI-провайдер выдаёт токен на каждую задачу, облако проверяет его, а задача принимает только необходимую ей роль.
- Статического облачного секрета в этом случае нет, поэтому он не утечёт через логи или форки и не потребует ручной ротации.
- Долгоживущие ключи часто не ротируются и со временем получают лишние права, повышая вероятность и последствия компрометации.
- Если OIDC недоступен, нужны короткоживущие токены из менеджера секретов, маскированные переменные, минимальные права и плановая ротация.
Зачем это спрашивают: Называние OIDC-федерации заменой статических ключей с причинами их гниения и есть маркер актуальной практики, который слушают интервьюеры.
Принцип «собрать один раз, развернуть много раз» означает продвижение одного протестированного и неизменяемого артефакта через все окружения.
- Один контейнерный образ собирается и тестируется, после чего тот же digest проходит через dev, staging и production.
- Конфигурация конкретного окружения передаётся во время запуска, а не запекается в отдельные образы.
- Пересборка для каждого окружения может изменить зависимости, входные данные или базовый образ, поэтому в production попадёт бинарник, не проверенный на staging.
- Неизменяемые теги привязываются к коммиту, а mutable-тег latest не используется для продвижения, что сохраняет происхождение и надёжный откат.
Зачем это спрашивают: Аргумент протестированное равно отгруженному и рантайм-конфигурация как его предусловие образуют ядро дисциплины промоушена, которое здесь прощупывается.
Повторяющиеся пайплайны GitHub Actions нужно заменить версионируемыми общими workflow и тонкими вызовами из сервисных репозиториев.
- В центральном репозитории размещаются workflow_call с типизированными входами и секретами, а каждый сервис передаёт только свои параметры.
- Для небольших общих последовательностей, например настройки облачных доступов или сборки образа, используются composite actions.
- Общие workflow подключаются по релизным тегам, а не по main, чтобы несовместимые изменения внедрялись управляемо и не затрагивали все репозитории сразу.
- Для сервисов с обоснованными исключениями нужен документированный путь отклонения без возврата всей организации к копированию workflow.
Зачем это спрашивают: Переиспользуемые workflow с версионированными ссылками плюс забота об осознанном раскате показывают платформенное сопровождение пайплайнов вместо терпимой дупликации.
Оптимизация пайплайна начинается с измеренных узких мест, а не с предположений.
- Тайминги стадий и шагов за несколько сотен запусков покажут время на установку зависимостей, сборку образов и последовательные тесты.
- Сначала кешируются зависимости и слои сборки, затем независимые задачи запускаются параллельно, а тесты разбиваются на шарды.
- Медленные полные end-to-end тесты можно вынести из критического пути pull request в запуск после слияния или по ночам, если это позволяет их профиль риска.
- Бюджет длительности и уведомления о регрессиях закрепляют ответственность за скорость и не дают пайплайну снова растянуться до сорока минут.
Зачем это спрашивают: Измерь, потом оптимизируй с поддерживаемым бюджетом длительности отделяет системных инженеров от людей, однажды добавивших строчку кеша.
Trunk-based разработка требует от CI/CD быстрой и надёжной проверки небольших изменений, которые часто сливаются в main.
- Пайплайн должен достаточно быстро и стабильно проверять каждое слияние, а незавершённая функциональность скрывается фичефлагами, а не ветками.
- Долгоживущие ветки откладывают интеграцию, накапливают конфликты и превращают staging в очередь крупных, частично проверенных слияний.
- Trunk-based разработка вместе с фичефлагами поддерживает непрерывный деплой, поскольку проблемы интеграции выявляются раньше, а размер изменений уменьшается.
- Ветвление в стиле GitFlow ведёт к релизным поездам и крупным пакетам; это может подходить регулируемому графику релизов, но снижает частоту деплоя.
Зачем это спрашивают: Связка стратегии веток с таймингом интеграционного риска и использованием флагов показывает понимание CD как системы, а не настройки инструмента.
Ручное одобрение уместно только там, где человек добавляет оценку, которую не могут дать автоматические проверки.
- Оно нужно для высокорисковых изменений production, необратимых операций вроде миграций данных или требований комплаенса о втором проверяющем.
- Одобрение настраивается через защищённые окружения с явно заданной группой согласующих и контекстом для осмысленного решения.
- Обязательный клик для каждого обычного деплоя добавляет задержку, приучает одобрять не глядя и объединяет изменения в более рискованные релизы.
- Обычные релизы должны проходить автоматические тесты и проверку метрик канареечного деплоя, а человек подключается только там, где действительно проведёт проверку.
Зачем это спрашивают: Различение ворот суждения от штампов и следствие батчевого риска от лишних одобрений и есть маркер деплойной зрелости.
Надёжный откат повторно разворачивает предыдущий заведомо рабочий артефакт без новой сборки.
- В реестре хранятся неизменяемые версионированные образы, а инструмент деплоя умеет выбрать любую сохранённую версию проверенной командой.
- Процедуру отката нужно регулярно отрабатывать, поскольку непроверенный runbook с большой вероятностью подведёт во время инцидента.
- Один git revert заставляет ждать сборку и тесты, пока production не работает, и бесполезен, если сломан сам пайплайн.
- Обратно совместимые изменения схемы и миграции expand-contract нужны, чтобы данные новой версии не мешали вернуть старый артефакт.
Зачем это спрашивают: Откат на уровне артефакта с оговоркой о совместимости схемы показывает, что кандидат думал дальше счастливого пути кнопки отменить.
Пайплайн монорепозитория должен собирать и разворачивать только затронутые сервисы, сохраняя полную сборку как страховку.
- Фильтры путей запускают workflow сервиса при изменениях в его каталоге и в используемых им общих путях.
- Зависимости от общих библиотек моделируются через Nx, Bazel, Turborepo или поддерживаемый скрипт, который вычисляет затронутые сервисы по diff.
- Полная сборка запускается по ночам, поскольку логика путей и графа зависимостей может пропустить связь или содержать ошибку.
- Каждый сервис разворачивается независимо, чтобы изменение одной команды не выпустило незавершённую работу другой.
Зачем это спрашивают: Работа с графом зависимостей общих библиотек, а не только фильтры путей, плюс страховка полной сборкой отличают настоящий монорепный опыт.
Self-hosted раннеры оправданы требованиями к сети, оборудованию, кешу или стоимости больших объёмов, которые hosted-раннеры закрывают плохо.
- Они подходят для доступа к приватной сети, GPU или большого объёма памяти, постоянного кеша и нагрузок, где поминутная оплата hosted-раннеров невыгодна.
- Команда при этом отвечает за обновления, ёмкость, масштабирование, мониторинг и регулярную замену парка раннеров.
- Раннеры должны быть эфемерными или часто пересоздаваться, чтобы одна сборка не оставляла состояние следующей.
- Код pull request из форка считается удалённым выполнением кода: его сеть и доступы изолируются, по умолчанию используются hosted-раннеры, а self-hosted запускаются только при необходимости в защищённой среде.
Зачем это спрашивают: Называние риска форковый PR равен RCE и настаивание на эфемерных раннерах показывают security-осознанное инфраструктурное мышление, а не только математику стоимости.
GitOps делает Git источником желаемого состояния кластера, а контроллер внутри кластера постоянно приводит фактическое состояние к нему.
- Манифесты или Helm values хранятся в Git, а деплой становится слитым pull request с новым тегом образа, который забирает Argo CD или Flux.
- CI больше не нужны доступы к кластеру, поскольку изменение получает и применяет контроллер внутри самого кластера.
- Реконсиляция обнаруживает ручной дрейф и может сообщить о нём или отменить его, поэтому желаемое состояние поддерживается постоянно.
- Откат выполняется через git revert в репозитории состояния, а история Git показывает, кто и что изменил.
Зачем это спрашивают: Пункт креды остаются в кластере и реконсиляция дрейфа дают два содержательных преимущества GitOps, показывающих понимание глубже баззворда.
Сборочный пайплайн должен обеспечивать прослеживаемость каждого входа и не допускать непроверенные артефакты до деплоя.
- Сторонние CI actions фиксируются по SHA коммита, базовые образы по digest, а зависимости через lock-файлы вместо изменяемых ссылок.
- Во время сборки создаётся SBOM, а зависимости и образы сканируются на известные уязвимости с блокировкой критических находок по политике.
- Собранные образы подписываются, чтобы среда деплоя могла проверить, что артефакт действительно выпущен CI.
- Секреты нельзя передавать через аргументы сборки или слои, поскольку их можно извлечь из истории образа.
Зачем это спрашивают: Пиннинг по SHA и digest плюс подписи и SBOM показывают знакомство с актуальной моделью угроз цепочки поставок, а не галочное сканирование.
Миграции базы при непрерывном деплое должны оставаться совместимыми со старыми и новыми экземплярами приложения во время раскатки.
- Миграции выполняются отдельной init-задачей или стадией пайплайна до деплоя кода приложения.
- Применяется expand-contract: добавить nullable-колонку, развернуть запись в оба формата, заполнить данные, переключить чтение и удалить старую колонку в более позднем релизе.
- Каждое промежуточное состояние схемы должно работать, пока старые и новые экземпляры используют его одновременно.
- Миграцию и код, который сразу от неё зависит, нельзя выпускать одним деплоем, чтобы сохранить безопасную раскатку и откат.
Зачем это спрашивают: Ограничение старое и новое работают вместе, ведущее к expand-contract, и разделение деплоев миграций и кода и есть искомая операционная дисциплина.
Один артефакт может работать во всех окружениях, только если меняющаяся конфигурация остаётся вне образа.
- Переменные окружения, подключённые конфигурационные файлы или значения конфигурационного сервиса передаются при деплое по принципам twelve-factor.
- Общая база дополняется небольшими Kustomize overlays или Helm values, чтобы различия окружений были видны на ревью.
- Секреты передаются отдельно через менеджер секретов или sealed secrets и никогда не хранятся в репозитории открытым текстом.
- Обязательная конфигурация проверяется при запуске, чтобы отсутствующее или неверное значение остановило деплой, а не случайный запрос в production.
Зачем это спрашивают: Структура база плюс оверлеи с валидацией на старте показывает конфигурацию как спроектированную поверхность, а не довесок из env-переменных.
При миграции с Jenkins на GitHub Actions сохраняются концепции доставки, но модель выполнения нужно спроектировать заново, а не переводить задачи строка в строку.
- Стадии Jenkins становятся jobs, shared libraries заменяются reusable workflows или composite actions, агенты становятся раннерами, а доступы переходят в секреты окружения или предпочтительно OIDC.
- Stateful-сервер Jenkins с многолетней конфигурацией плагинов заменяется декларативным YAML в репозиториях и эфемерными раннерами.
- Уникальные ручные настройки задач и лишние плагины нужно удалить, а не воспроизводить накопленное поведение на новой платформе.
- До переноса составляется список задач с постоянным workspace, плагинов без аналога в Actions и незадокументированного поведения на сервере Jenkins.
Зачем это спрашивают: Подача миграции как шанса сбросить стейтфул снежинки с конкретным знанием ловушек показывает настоящий миграционный опыт вместо туризма по инструментам.
Инфраструктурный код до production должен пройти последовательные статические проверки, анализ плана, интеграционные тесты и staging.
- Сначала запускаются terraform fmt и validate, tflint и policy-as-code правила, запрещающие риски вроде публичных S3-бакетов или ingress 0.0.0.0/0.
- В каждом pull request выполняется terraform plan, а его diff проверяется как основной артефакт с оценкой масштаба изменений, а не только стиля HCL.
- Модули с нетривиальной логикой создаются во временном sandbox-аккаунте, их поведение проверяется, после чего ресурсы удаляются.
- Последним защитным слоем то же изменение применяется к staging-инфраструктуре и только затем продвигается в production.
Зачем это спрашивают: Отношение к диффу плана как к артефакту ревью и ворота policy-as-code показывают инженерную дисциплину инфраструктуры за пределами валидации синтаксиса.
Уведомления CI становятся полезными, когда каждое падение получает его владелец вместе с контекстом для немедленной диагностики.
- Падения pull request отправляются напрямую автору, а сбои main-ветки конкретного сервиса поступают в канал отвечающей за него команды.
- Уведомления не рассылаются людям, которые не могут на них повлиять, иначе общий канал быстро превращается в красную стену, отключённую всеми.
- Каждое сообщение содержит упавшую стадию, полезный фрагмент ошибки, ссылку на логи и отличие от последнего успешного запуска.
- Падения продуктовых тестов, нестабильность инфраструктуры и сбои окружений учитываются отдельно, чтобы обычный шум не приучал команду игнорировать красный статус.
Зачем это спрашивают: Маршрутизация по владению и разделение классов падений адресуют сам механизм усталости от алертов вместо добавления ещё одного дашборда.
Multi-stage Dockerfile отделяет сборку от выполнения, поэтому в production попадают только необходимые во время работы файлы.
- Первая стадия использует полный образ с инструментами, устанавливает зависимости и компилирует бинарник или собирает приложение.
- Финальная стадия начинается с минимальной базы distroless, Alpine или slim и копирует только готовый артефакт и runtime-зависимости.
- Компиляторы, заголовочные файлы, пакетные менеджеры и исходный код не попадают в production, что уменьшает образ и поверхность атаки.
- Стабильная установка зависимостей остаётся в ранних кешируемых слоях, а небольшая финальная стадия быстро пересобирается и доставляется.
Зачем это спрашивают: Связывание multi-stage и с сокращением поверхности атаки, и со структурой кеша, а не только мегабайтами, показывает полное понимание паттерна.
Образ размером 1,8 ГБ нужно уменьшать, начиная с крупнейших структурных источников, а затем защитить результат от регрессии.
- Сначала проверяется базовый образ: замена полной ОС или крупного языкового образа на slim либо distroless обычно даёт максимальную экономию при малых усилиях.
- Через docker history или dive находятся инструменты сборки, кеши apt и pip, целиком скопированные исходники и пропуски в .dockerignore, например .git или node_modules.
- Multi-stage сборка исключает инструменты компиляции, а кеши пакетов удаляются в той же инструкции RUN, где создаются.
- После оптимизации в CI добавляется лимит размера образа, чтобы незаметное раздувание не вернулось.
Зачем это спрашивают: Анализ слоёв в духе dive и финальные ворота размера в CI показывают системную оптимизацию, а не разовую диету.
Закрытые вопросы
- 21
Почему порядок инструкций Dockerfile важен для скорости сборки и в чём каноническая ошибка порядка?
dockerownership - 22
ENTRYPOINT против CMD: как они взаимодействуют и как их грамотно использовать вместе?
- 23
Какой контейнерный хардненинг вы применяете по умолчанию и что ломается при первом включении?
containers - 24
Контейнер игнорирует SIGTERM и убивается по истечении grace-периода на каждом деплое. Что происходит и как чинить?
containersdeployment - 25
В docker compose сервис A не может достучаться до сервиса B, хотя оба работают. Каков ваш диагностический путь?
docker - 26
Вольюмы против bind-маунтов в Docker: когда что использовать и какую потерю данных они предотвращают или вызывают?
ownershipdocker - 27
Почему деплой по тегу latest опасен и какую схему тегирования вы используете вместо него?
deployment - 28
Как выглядит гигиена реестра для команды, пушащей десятки образов в день?
registries - 29
Контейнер периодически выходит с кодом 137. Что это значит и как вы расследуете?
containers - 30
Как вы настраиваете docker compose для локальной разработки, чтобы локаль совпадала с продом достаточно, чтобы это имело смысл?
docker - 31
Почему контейнерам нужны явные лимиты памяти и CPU даже вне Kubernetes и что реально делает каждый лимит?
kubernetescontainersmemory - 32
Что healthcheck-и Docker меняют в поведении и что делает команду проверки хорошей?
docker - 33
Под завис в Pending. Проведите меня через вашу диагностику.
problem-solving - 34
Deployment, StatefulSet, DaemonSet: какие гарантии даёт каждый и что идёт не так при неверном выборе?
deployment - 35
Как Kubernetes Service реально маршрутизирует трафик к подам и для чего типы ClusterIP, NodePort и LoadBalancer?
kubernetes - 36
Что Ingress добавляет поверх Service-ов и каковы отношения между ресурсом Ingress и контроллером?
kubernetes - 37
ConfigMaps и Secrets: как вы их инжектите и какое поведение обновления удивляет людей?
configkubernetessecrets - 38
Пробы liveness, readiness и startup: чем управляет каждая и как плохая liveness-проба валит сервис?
health-checks - 39
Объясните requests против limits для CPU и памяти в Kubernetes и практические последствия их плохой настройки.
memorykubernetes - 40
Как работает Horizontal Pod Autoscaler и какие предпосылки и подводные камни с ним идут?
scaling - 41
Чем управляют maxSurge и maxUnavailable в роллинг-обновлении и почему технически успешный роллаут всё равно может ронять трафик?
- 42
Под в CrashLoopBackOff. Какие самые частые причины вы проверяете и в каком порядке?
- 43
Как вы применяете минимальные привилегии в Kubernetes RBAC для людей и для нагрузок?
rbacleast-privilegekubernetes - 44
Какую изоляцию неймспейсы реально дают в Kubernetes, а какую нет?
kubernetes - 45
Когда вы тянетесь к Helm, а когда к Kustomize, и какая Helm-дисциплина держит чарты сопровождаемыми?
helmkubernetes - 46
Как работает service discovery внутри Kubernetes-кластера и какие DNS-проблемы вы отлаживали?
dnskubernetes - 47
Узлу нужно обслуживание. Как вы безопасно выводите его из работы и что мешает выселению подов?
- 48
Как PersistentVolume, PersistentVolumeClaim и StorageClass складываются вместе и почему стейтфул-сторадж остаётся сложной частью Kubernetes?
kubernetes - 49
Service существует, поды в Running, но трафик получает connection refused. Опишите ваш сетевой триаж в Kubernetes.
kubernetes - 50
Что должно быть настроено, чтобы деплой в Kubernetes был по-настоящему zero-downtime, из конца в конец?
kubernetesdeploymentconfig - 51
Что такое Terraform state и почему командам нужен remote state с локами с первого дня?
terraformlocking - 52
Опишите здравый командный процесс для изменений Terraform от PR до применённой инфраструктуры.
terraform - 53
Когда вы пишете Terraform-модуль, а когда оставляете ресурсы инлайн, и что делает модуль хорошим?
terraform - 54
Как вы обнаруживаете и разруливаете дрейф инфраструктуры, когда люди правят вещи в облачной консоли?
iac - 55
Вам достаётся облачная инфраструктура, собранная руками. Как завести её под Terraform, ничего не сломав?
ownershipterraform - 56
Terraform state содержит секреты, и пароль вашей базы только что там оказался. Каков ваш подход к секретам в IaC?
terraformiacsecrets - 57
Terraform и Ansible оба претендуют на автоматизацию инфраструктуры. Как вы делите работу между ними и что значит идемпотентность в практике Ansible?
terraformansibleidempotency - 58
Воркспейсы Terraform против отдельных каталогов на окружение: что выбираете и почему?
terraform - 59
Как вы защищаете критические ресурсы вроде продовой базы от случайного уничтожения Terraform-ом?
databaseterraform - 60
Команда спорит про Pulumi против Terraform для новой инфраструктуры. Каковы настоящие трейдоффы?
terraformiac - 61
Спроектируйте базовую раскладку VPC для веб-приложения с базой данных. Что куда и почему?
designnetworkingdatabase - 62
Security-группы против сетевых ACL в AWS: чем различаются и как вы используете их на практике?
networking - 63
Какие IAM-практики вы энфорсите и почему инстанс-роли лучше ключей доступа на серверах?
- 64
RDS Multi-AZ против read-реплик: какую проблему решает каждое и что люди про них путают?
replication - 65
Как вы защищаете S3-бакет с пользовательскими загрузками и как клиенты безопасно получают файлы?
aws - 66
ALB против NLB: как выбираете и какие тонкости health-чеков важны?
health-checks - 67
Ваша платформа автоскейлится на двух слоях: узлы кластера и поды приложений. Как они взаимодействуют и что идёт не так?
scaling - 68
Месячный облачный счёт удвоился, и никто не знает почему. Как вы операционно находите потери?
- 69
Когда серверлес-функция подходит лучше контейнерного сервиса и какие операционные сюрпризы несёт Lambda?
containerslambda - 70
Какую роль играет DNS TTL при миграции или фейловере и как вы вокруг него планируете?
migrationsdns - 71
Как вы управляете TLS-сертификатами так, чтобы истечение никогда не становилось инцидентом?
incidentstls - 72
Падает зона доступности. Что ломается в типичной однорегиональной схеме и чего требует AZ-устойчивость?
incidentsavailability - 73
Вам достаётся пустая Grafana для сервиса. Какие дашборды вы строите первыми и вокруг каких сигналов?
monitoring - 74
Как Prometheus собирает метрики и когда применимы счётчики, гейджи и гистограммы?
monitoringdistributions - 75
Почему к счётчику Prometheus нужно применять rate() до усреднения или суммирования по инстансам и что rate() реально вычисляет?
monitoring - 76
Алерты по симптомам против алертов по причинам: что должно будить человека и как вы боретесь с усталостью от алертов?
alerting - 77
Спроектируйте логовый пайплайн для дюжины сервисов: что происходит между строкой лога и искомым событием?
loggingci-cddesign - 78
Какую проблему решает распределённый трейсинг, недоступную логам и метрикам, и чего реально требует его внедрение?
decision-makingdistributedmonitoring - 79
P99 латентности удвоился со вчера, а доля ошибок ровная. Как вы локализуете проблему инструментами наблюдаемости?
latencyobservability - 80
Сервис должен держать доступность 99.9 процента. Проведите меня через выбор SLI и практическое использование бюджета ошибок.
reliability - 81
Метрики, логи и трейсы стоят денег и внимания. Как вы решаете, какой сигнал отвечает на какой вопрос?
monitoring - 82
Помимо метрик приложений, какой инфраструктурный мониторинг вас спасал и какие тихие отказы он ловит?
monitoring - 83
Что должно быть в ранбуке для дежурного инженера и что делает большинство ранбуков бесполезными в 3 часа ночи?
on-callrunbooks - 84
Как вы структурируете передачу дежурства, чтобы следующий инженер не был застигнут врасплох?
on-call - 85
Объясните blue-green деплой: механика, что он покупает и где болит.
deployment-strategiesdeployment - 86
Как работает канареечный деплой на метриках и что делает канареечный анализ достойным доверия?
deploymentmonitoringdeployment-strategies - 87
Когда стратегия recreate действительно правильный выбор, несмотря на гарантированный простой?
deployment - 88
Как фичефлаги меняют картину деплоя и какой операционный долг они создают?
deploymentfeature-flags - 89
Проведите меня через первые пятнадцать минут после алерта прод лежит.
alerting - 90
Что делает постмортем по-настоящему безобвинительным и реально полезным, помимо существования документа?
incidents - 91
Как вы классифицируете severity инцидентов и что классификация реально меняет?
classificationincidentsseverity-priority - 92
Прод ломается сразу после вашего деплоя. Откат кажется очевидным, но когда откат неверный ход и как решить быстро?
deploymentrollback - 93
Что превращает быстрый bash-скрипт в безопасный для продакшна? Назовите конкретные практики.
bash - 94
Одно и то же значение конфигурации должно существовать в Terraform, манифестах Kubernetes и env-файлах приложения. Как не дать им разъехаться?
kubernetesterraformconfig - 95
Как вы определяете, какую ручную работу автоматизировать первой, и когда автоматизация неверный ответ?
- 96
Разработчик говорит, что сбои деплоя ваша проблема, потому что вы владеете пайплайном. Сбои идут от сломанных тестов в его коде. Как вы это разруливаете?
deploymentci-cdsoft-skills - 97
Продуктовое давление требует релиза в пятницу вечером перед праздничными выходными. Изменение нетривиальное. Что вы делаете?
- 98
Вас будят в 3 часа ночи четвёртую ночь подряд одним и тем же алертом, каждый раз действий не требовалось. Что вы делаете, кроме заглушения?
alerting - 99
Вы считаете, что команде стоит принять GitOps, но коллегам комфортно с текущими push-деплоями. Как вы двигаете изменение, не ломая доверие?
deploymentgitopsdecision-making - 100
После болезненного инцидента менеджмент хочет, чтобы кто-то понёс ответственность. Как вы защищаете безобвинительную культуру, сохраняя настоящую ответственность?
incidents