Библиотека собеса по DevOps | вопросы с собеседований
3.11K subscribers
152 photos
7 videos
2 files
356 links
Вопросы с собеседований по DevOps и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d7e18893

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Сервис держит долгие HTTP/GRPC-соединения. При деплоях клиенты теряют коннекты. Как добиться graceful shutdown без обрывов?

Обработать SIGTERM в приложении (перестать принимать новые, завершить активные), добавить preStop hook с drain (например, /ready=false), увеличить terminationGracePeriodSeconds, проверять readinessProbe (после перевода в not-ready трафик уйдёт), на входе — корректный LB/ingress timeouts. Для gRPC — GOAWAY перед закрытием.

Библиотека собеса по DevOps
Как в Kubernetes реализовать безопасную ротацию секретов без даунтайма: чтобы сервисы подхватывали новые креды/ключи без ручных рестартов и «мигающих» ошибок?

Хранить секреты вне кластера (KMS/Secret Manager) и подтягивать через External Secrets / CSI Secrets Store, монтируя как файл (а не env) — тогда обновления приходят «на лету». В приложении — hot-reload (watch файла, SIGHUP, sidecar-reloader). Для несовместимых ротаций — двухключевой период (старый+новый), фича-флаг переключения и постепенное отключение старого. Для критичных потоков — поэтапный rollout и health-checks, чтобы трафик шёл только на инстансы с новым секретом.

Библиотека собеса по DevOps
🔥 Не пропустите событие осени для AI-комьюнити

24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта»

😤 Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт:
— почему ИИ-агенты сейчас на пике инвестиций
— чем они отличаются от ChatGPT и обычных моделей
— цикл агента: восприятие → планирование → действие → обучение
— живое демо простого агента
— как бизнес уже получает ROI до 80%

⚡️ Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире.

Мест мало, регистрация закроется, как только забьём комнату
2
В продакшене контейнер «плохо» останавливается: docker stop тянется, внутри остаются зомби-процессы, сервис не ловит SIGTERM. Как диагностировать и починить?

Проблема PID 1: приложение запущено как PID1, не форвардит сигналы и не “reap’ит” детей. Решение — запускать с init (docker run --init / tini, dumb-init), в коде обработать SIGTERM/SIGINT (graceful shutdown), в Dockerfile указать STOPSIGNAL SIGTERM, в Compose/K8s — адекватный stop_grace_period/terminationGracePeriodSeconds. Не ставить /bin/sh -c ... как PID1 без init и не прятать процесс за оболочкой.

Библиотека собеса по DevOps
👍1
Сегодня премьера

В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным«ИИ-агенты: новая фаза развития искусственного интеллекта».

В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.

Это прямой эфир: подключиться можно через лендинг курса.
Какие типы сервисов доступны в Kubernetes Services?

Kubernetes предоставляет четыре основных типа Service, каждый для своей сетевой задачи:

📌 ClusterIP (по умолчанию): обеспечивает внутреннее взаимодействие Pod’ов. Доступен только внутри кластера.

📌 NodePort: публикует Service на статическом порту каждой ноды, делая его доступным извне кластера.

📌 LoadBalancer: использует внешний балансировщик облачного провайдера. Сервис получает публичный IP.

📌 ExternalName: сопоставляет Kubernetes-сервис с внешним DNS-именем (hostname).

Библиотека собеса по DevOps
👍2
🤖 Перечислите основные компоненты архитектуры Kubernetes

Два основных компонента архитектуры Kubernetes — главный узел и рабочий узел.

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

Рабочий узел имеет четыре очень легких компонента, что имеет смысл, поскольку вы хотите зарезервировать большую часть пространства для своих модулей. Эти компоненты — прокси, Kubelet и среда выполнения контейнера.


Библиотека собеса по DevOps
🤫 Курс «ИИ-агенты для DS-специалистов»

Каждый технологический скачок оставляет позади тех, кто «подождал ещё чуть-чуть». ИИ-агенты — это новый рывок.

Уже через пару лет именно они будут драйвить аналитику и автоматизацию. Хотите остаться на гребне?

🖥️ На курсе «ИИ-агенты для DS-специалистов» мы разберём:

— создание AI-агентов с нуля
— сборку собственной RAG-системы
— интеграцию LLM под задачи бизнеса

📌 Курс подходит:

→ ML/AI инженерам (middle+ / senior)
→ Data Scientists
→ Backend и platform-инженерам
→ Advanced CS/DS студентам

⚡️ Старт уже скоро — 3 октября.

💰 До 28 сентября действует скидка — 57.000 ₽ вместо 69.000 ₽ (по промокоду datarascals).

🔗 Узнать больше о курсе и записаться

З.ы. если вы не успели на вебинар «ИИ-агенты: новая фаза развития искусственного интеллекта» — запись уже доступна
Как реализовать авто-масштабирование по SLO (например, p95 latency/RPS), а не только по CPU/Memory, в Kubernetes?

Собрать метрики в Prometheus и отдать их в Custom/External Metrics API через Prometheus Adapter (или KEDA), затем настроить HPA v2 на произвольные метрики (p95, RPS, очередь). Добавить стабилизацию/политику масштабирования (cooldown, behavior), и триггеры алертов/автоотката при деградации.

Библиотека собеса по DevOps
🚀 Всё о курсе «ИИ-агенты для DS-специалистов»

Зачем нужны ИИ-агенты?

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

Зачем мне курс?

Курс отвечает на три ключевых вопроса:

— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?

Подходит ли это мне?

Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.

Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.

Когда старт?

Обучение начинается 3 октября.

Сколько стоит?

До 28 сентября действует скидка → 57 000 ₽ вместо 69 000 ₽ (промокод datarascals).

🔗 Описание программы и регистрация
Объясните принципы оркестровки, когда речь идет о программном обеспечении и DevOps.

Автоматизированная конфигурация, координация и управление компьютерными системами, службами и приложениями называется оркестровкой в ​​DevOps. Она использует инструменты DevOps, которые позволяют контролировать версии, быстро обновлять и выпускать, а также использовать другие передовые методы разработки программного обеспечения.

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

Библиотека собеса по DevOps
Какие инструменты с открытым исходным кодом вы используете, чтобы сделать Puppet более мощным?

Изменения в конфигурации отслеживаются с помощью Jira, а дальнейшее обслуживание осуществляется посредством внутренних процедур. Контроль версий использует поддержку Git и приложения диспетчера кода Puppet. Изменения передаются через конвейер непрерывной интеграции Jenkins.

Библиотека собеса по DevOps
🥱1
Что такое Ingress и для чего он необходим?

Ingress позволяет настраивать маршрутизацию трафика от внешних источников к сервисам внутри кластера.

Ingress определяет правила маршрутизации к сетевым сервисам, а контроллер Ingress отвечает за их реализацию. Контроллер не входит в стандартную поставку Kubernetes, но вы можете использовать сторонние решения, конечно, если предварительно изучите их возможности и особенности.


Библиотека собеса по DevOps
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
1👍1
Почему docker stop иногда не завершает контейнер корректно?

docker stop шлёт SIGTERM PID 1 и по таймауту SIGKILL; если PID 1 — shell/скрипт (shell-форма ENTRYPOINT) или процесс не форвардит/не обрабатывает сигналы, graceful shutdown не случается. Решение: exec-форма ENTRYPOINT ["app"], обработка SIGTERM в коде, при нужде STOPSIGNAL, либо --init/tini.

Библиотека собеса по DevOps
Зачем сначала делать COPY package*.json ./ и только потом RUN npm ci, а уже затем COPY . .?

Так кэшируется слой с зависимостями: пока манифесты не меняются, npm ci берётся из кеша, а изменения в исходниках не инвалидируют установку пакетов. Итог — быстрые пересборки и предсказуемость.

Библиотека собеса по DevOps
Что такое веб-перехват мутационного допуска Kubernetes и как он работает?

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

Они обычно используются для:
✍🏻 Внедрения дополнительных объектов (sidecars).
✍🏻 Установки значений по умолчанию для модулей (pod), развертываний (deployments) и других ресурсов.
✍🏻 Применения передовых практик (например, автоматического назначения ограничений ресурсов).
✍🏻 Добавления настроек безопасности (например, требования меток для отслеживания аудита).


Библиотека собеса по DevOps
Что такое виртуализация?

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

В результате виртуализация позволяет запускать две различные операционные системы на одном устройстве. Первая операционная система может использоваться для административных целей, в то время как остальные гостевые операционные системы загружаются как обычно, включая инициализацию и загрузку ядра. Этот метод также обеспечивает повышенный уровень безопасности, так как гостевая операционная система не имеет полного доступа к управляющей (host) операционной системе, что помогает избежать возможных уязвимостей в безопасности.

Есть три типа виртуализации:
✍🏻 Паравиртуализация
✍🏻 Эмуляция
✍🏻 Контейнерная виртуализация


Библиотека собеса по DevOps
Объясни разницу между layer-кэшем сборки и BuildKit-кэшем через RUN --mount=type=cache/--mount=type=secret, как они инвалидируются и как делиться кэшем между машинами.

Layer-кэш — это слои образа: ключ — инструкция и входы шага (для COPY/ADD — хэш содержимого, для RUN — команда + предыдущие слои); изменение любого раннего шага сбрасывает все ниже, кэш хранится в локальном image store и по сути переносится только вместе с образом. --mount=type=cache даёт временный RW-каталог для шага, содержимое не попадает в слой и уменьшает размер образа; кэш живёт отдельно от образа и идентифицируется id/target, подходит для пакетных менеджеров/сборок. --mount=type=secret подаёт секрет как файл только на время шага, он не записывается в слой и не «утекает» в историю; сам факт секрета не ломает кэш шага. Для обмена кэшем: в Buildx — --cache-to/--cache-from (local|registry), а для наследования кэша слоёв через реестр — пушить образ (или использовать inline-cache/BUILDKIT_INLINE_CACHE=1).

Библиотека собеса по DevOps
Что такое архитектура «Shared-Nothing»?

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

Библиотека собеса по DevOps