Библиотека собеса по DevOps | вопросы с собеседований
Ir al canal en Telegram
Вопросы с собеседований по DevOps и ответы на них. Учиться у нас: https://clc.to/nLEtvA По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot
Mostrar más3 466
Suscriptores
-424 horas
+37 días
+1730 días
Archivo de publicaciones
Динозавр держится за ВМ и снапшоты по расписанию, Археолог давно не помнит, что и где у него крутится, а Повелителю облаков уютно до первого кругленького счёта. Это три из десяти типов инфраструктуры в тесте от команды Deckhouse.
Ответьте на 5 вопросов, узнайте свой тип и отправьте ссылку на результат команде. Посмотрим, совпадёт ли он у коллег.
→ Пройти тест и узнать свой тип
Какой контейнер вернётся после перезапуска Docker?
Два отдельных контейнера Docker Engine успешно работали больше десяти секунд. У одного политика always, у другого unless-stopped. Оба остановили через docker stop, затем перезапустили Docker daemon. Кто запустится автоматически?
Ответ:
Контейнер с always запустится, с unless-stopped останется остановленным. Ручной docker stop подавляет автоматический рестарт, поэтому always не заставит контейнер немедленно ожить. Но после перезапуска daemon эта политика снова запустит его. У unless-stopped ручная остановка сохраняется и после перезапуска daemon. Это поведение отдельных контейнеров, не политик Swarm services.
Политики перезапуска Docker Engine
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше.
В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.
Например, можно совместить два направления по работе с ИИ:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета. А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога. Акция действует до 31 октября включительно ⏳ ⏮️ Пора прокачать свой стек
Почему GitHub Actions отменил ожидающий деплой?
В одном репозитории запуски A, B и C используют одну concurrency group. A выполняется, B ожидает, затем в группу приходит C. Указано cancel-in-progress: false, свойство queue не задано. Выполнятся ли все три?
Ответ:
Нет. По умолчанию queue: single оставляет только один ожидающий запуск. C заменит B, а B будет отменён. A продолжит работу: cancel-in-progress: false защищает выполняющийся запуск, но не ожидающий. В текущей документации GitHub Actions есть queue: max для очереди до 100 ожидающих запусков. Его нельзя сочетать с cancel-in-progress: true.
Управление concurrency в GitHub Actions
A-запись появилась. Откуда всё ещё NXDOMAIN?
Авторитетный DNS-сервер уже возвращает новую A-запись. Рекурсивный резолвер, к которому обращались до её создания, продолжает отвечать NXDOMAIN. Что проверить?
Ответ:
Отрицательный DNS-кеш: резолвер мог сохранить ответ об отсутствии имени. По RFC 2308 исходный TTL такого ответа равен меньшему из SOA.MINIMUM и TTL самой SOA. Короткий TTL новой A-записи уже сохранённый NXDOMAIN не обновляет. Сравните ответы авторитетного сервера и нужного резолвера, посмотрите оставшийся TTL SOA в секции authority. У самого резолвера могут быть дополнительные ограничения времени кеширования.
RFC 2308: отрицательное кеширование DNS
Forbid у CronJob гарантирует выполнение ровно один раз?
Расчёт запускается каждые пять минут через CronJob. Вы указали concurrencyPolicy: Forbid. Достаточно ли этого, чтобы каждый расчёт выполнился ровно один раз?
Ответ:
Нет. Forbid запрещает перекрытие Jobs одного CronJob. Если предыдущий Job ещё работает, новый в этот момент не запускается. После завершения возможен отложенный запуск с учётом startingDeadlineSeconds. Сам CronJob не гарантирует exactly-once: для одного времени расписания могут появиться два Job или ни одного. Обработку нужно делать идемпотентной, а внешние эффекты защищать от повторов. На Jobs других CronJob эта политика не распространяется.
Политики и ограничения CronJob
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция!
До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один.
Например, можно совместить:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥 Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога. Акция действует до 31 октября включительно ⏳ ⏬ Собрать свой учебный билд
Сначала sum или rate?
Реплики API экспортируют счётчик http_requests_total. Одна реплика перезапустилась и сбросила счётчик. Как получить общий RPS: сначала сложить значения или сначала вычислить rate каждой серии?
Ответ:
Сначала rate каждой серии, затем sum. Иначе рост счётчика одной реплики может скрыть сброс другой, и rate уже не распознает его корректно. Окно [5m] даёт среднюю скорость в секунду за пять минут, а не число запросов за это время. Суммируются все серии, попавшие в селектор. Для расчёта по сервисам нужна группировка.
Как Prometheus вычисляет rate
Переименовали ресурс Terraform. Как обойтись без пересоздания?
В Terraform 1.1+ поменяли только имя ресурса: aws_instance.a стал aws_instance.b. Аргументы прежние, но plan предлагает удалить объект и создать новый. Как описать переименование?
Ответ:
Добавить moved-блок: в from указать aws_instance.a, в to — aws_instance.b. Затем проверить новый plan. Terraform свяжет старый адрес в state с новым, и само переименование не потребует удаления объекта. Другие изменения конфигурации всё ещё могут потребовать пересоздания. В общем модуле moved стоит сохранять для пользователей, которые ещё не прошли миграцию.
Переименование ресурсов в Terraform
Команда DevCrowd* запустила новое исследование инженеров, которые отвечают за надёжность: SRE, DevOps, платформенных инженеров и всех, кто держит прод в строю.
В этом году главный сюжет — как меняется роль в эпоху AI. Смотрят на то, что уже автоматизируется, а что, наоборот, дорожает: пускают ли AI действовать в проде и где проходит граница доверия, добавляет ли сгенерированный код новых инцидентов, и что остается исключительно работой человека, когда рутину забирает машина. Отдельный блок про soft skills: какие навыки SRE-специалисты считают важными, в каких проседают и что не заменит AI.
Не обошли и человеческую цену надежности: сколько стоят дежурства по времени, деньгам и здоровью и на ком в команде реально концентрируется нагрузка.
Часть вопросов повторяет прошлогодний опрос, так что по грейдам, зонам ответственности и рынку будет видна динамика, а не разовый срез.
Опрос анонимный на 10–12 минут. Отчет со всеми разрезами опубликуют в начале декабря.
Пройти опрос: https://survey.devcrowd.ru/sre-2026
Приложение стартует три минуты. Какой probe даст ему время?
Проверка liveness начинается рано и перезапускает ещё не готовый контейнер. После старта при этом нужна быстрая реакция на зависание. Что настроить?
Ответ:
Startup probe с бюджетом, который покрывает худшее время запуска. До её успеха liveness и readiness не выполняются. После успеха вступают в работу обычные проверки. В примере документации 30 неудач с интервалом 10 секунд дают до 300 секунд на старт. Если startup probe так и не успешна, контейнер перезапускается согласно restartPolicy. Readiness отвечает за готовность получать трафик, поэтому сама по себе не решает проблему раннего перезапуска liveness.
Startup, liveness и readiness
Почему новый ConfigMap не изменил файл в контейнере?
ConfigMap смонтирован одним файлом через
subPath. Объект обновили, но приложение продолжает читать старое содержимое. Это обязательно ошибка кеша приложения?
Ответ:
Нет. Контейнер с ConfigMap через subPath не получает обновления этого тома. Для текущего способа монтирования потребуется пересоздать Pod. При обычном монтировании ConfigMap как каталога обновление проецируется с задержкой, но приложение ещё должно перечитать файл. Переменные окружения из ConfigMap тоже не обновляются автоматически и требуют перезапуска Pod. Сначала различите способ передачи конфигурации, затем проверяйте приложение.
Обновление ConfigMap в KubernetesRepost from Библиотека программиста
👀 Как вы смотрите видео?
Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?
Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.
🕰️ Опрос займёт около 3 минут.
В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.
🔗 Поделиться опытом
🐸 Библиотека программиста
😭 Как не потратить недельный лимит AI-кодинга за три дня?
Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.
🔘 Поговорим о том:
— когда дорогая модель действительно нужна, а когда хватит дешёвой;
— сколько стоит один прогон и куда уходят токены;
— какие задачи можно отдавать субагентам;
— как настроить маршрутизацию моделей;
— что проверять в AI-коде перед merge.
✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после.
⬇️ 18 сентября, 19:00 МСК
⬇️ 1,5 часа · бесплатно
⬇️ Арсений Харланов и Олег Лайок
💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы разберём на вебинаре.
🔗 Зарегистрироваться на вебинар
COPY vs ADD?
COPY для файлов из контекста. ADD ещё умеет tar-распаковку и URL — почти всегда зло. COPY предпочтительнее.
ARG vs ENV?
ARG виден только на этапе build (не в рантайме). ENV попадает в образ и окружение контейнера.
Как уменьшить размер образа?
Multi-stage builds, .dockerignore, Alpine/ubi-minimal/Distroless, объединяй RUN, чисти кеши (apt/apk) в том же слое, пинь версии.
Библиотека собеса по DevOps
Repost from Proglib.academy | IT-курсы
👅 Самое сложное — выбрать не курс, а направление
Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science.
🔜 Именно поэтому подписка на обучение многим оказывается удобнее отдельных курсов. Можно спокойно переключаться между темами, когда меняются задачи, а не покупать новую программу каждый раз.
В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки 😎 🔗 Узнать подробнее 🏃♀️ Proglib Academy
Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇
Вы заметили, что контейнеры в продакшене начинают работать медленнее со временем. Мониторинг показывает рост использования диска внутри контейнера, хотя приложение не пишет данные в тома. Как вы будете искать и устранять проблему?
Проверить, не накапливаются ли временные файлы или логи внутри контейнера (слои copy-on-write). Использовать docker system df, docker inspect и docker logs для анализа. При необходимости — подключить тома/лог-агрегатор вместо записи в контейнерную ФС. Пересобрать образ так, чтобы данные не сохранялись в контейнере.
Библиотека собеса по DevOps
Repost from Proglib.academy | IT-курсы
🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами
Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности ✔️
На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка.
⚡️ Предзапись на осенний поток уже открыта
🏃♀️ Proglib Academy
Разработчик, DevOps-инженер или техлид — у каждого своя причина навести порядок в работе с AI-агентами.
Разбираем, чем отличаются их задачи 😊
