Библиотека собеса по DevOps | вопросы с собеседований
3.29K subscribers
179 photos
8 videos
2 files
517 links
Вопросы с собеседований по DevOps и ответы на них.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Что такое маршрутизатор?

Маршрутизатор — это физическое или виртуальное устройство, которое передает информацию между двумя или более компьютерными сетями с коммутацией пакетов. Маршрутизатор проверяет адрес Интернет-протокола назначения данного пакета данных (IP-адрес), вычисляет наилучший способ его достижения и затем соответствующим образом пересылает его.


Библиотека собеса по DevOps
1
По вашему опыту, в чем преимущества DevOps?

Пример ответа: «Применяя философию DevOps, я получил несколько преимуществ, в том числе более быстрый выход на рынок, повышенную надежность и стабильность, а также улучшенную масштабируемость. Благодаря простоте распределения ресурсов, которую обеспечивает горизонтальное и вертикальное масштабирование, команды могут улучшить масштабируемость приложения и лучше удовлетворить требования пользователей. Автоматизация, непрерывная интеграция и непрерывная доставка также могут облегчить командам быстрое создание, тестирование и развертывание своих приложений и сократить время вывода на рынок. Автоматизированное тестирование и мониторинг также могут помочь повысить общую надежность и стабильность приложения.»

Библиотека собеса по DevOps
1
Вы разворачиваете продакшн-инфраструктуру для AI-агентов (LLM, ML inference) в контейнерах Docker. В процессе эксплуатации замечаете проблемы: непредсказуемое потребление GPU/CPU, медленный cold start контейнеров и рост задержек при масштабировании. Как вы будете искать и устранять эти проблемы?

Сначала соберу метрики (Prometheus, NVIDIA DCGM, cAdvisor) для анализа загрузки CPU/GPU/памяти. Проверю, что контейнеры используют правильные runtime (например, nvidia-docker2 или --gpus all). Для cold start оптимизирую образы (multi-stage build, минимальные base image, preloading моделей в volume или кеш), а для масштабирования — внедрю оркестрацию (Kubernetes + GPU scheduler, autoscaler) и подготовлю warm-pool контейнеров.

Кстати, у нас скоро стартует курс AI-агенты для
DS-специалистов
:
https://proglib.academy/ai-agents

Библиотека собеса по DevOps
1
Вопрос на собеседовании: «Как вы будете мониторить LLM в проде?»

Чтобы не плавать в теме LLMOps и AgentOps, присоединяйтесь к курсу «Разработка ИИ-агентов». Группа уже стартовала.

Разбираем эксплуатационную часть:

— инструменты трейсинга и логирования агентов;
— оптимизация затрат на токены;
— безопасность и контроль доступов.

Первая лекция открыта. Отличная возможность прокачать скиллы для поддержки современных AI-проектов.

Записаться

Смотреть лекцию
Как убрать долгоживущие секреты из CI/CD и облака?

Используйте OIDC/workload identity: раннер обменивает подписанный токен на краткоживущие креды (AWS STS/GCP WIF/Azure Federated Credentials) с минимальными IAM-ролями. Секреты храните в менеджере (Vault/Secrets Manager), отдавайте по запросу, ведите аудит; ротацию автоматизируйте, доступ — по принципу наименьших привилегий, без встраивания ключей в образы/репозитории.

🐸Библиотека собеса по DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Вопрос: «Как вы будете скелить инференс LLM и векторную БД?»

DevOps изменился. Теперь от вас ждут умения работать с AI-инфраструктурой. На собеседованиях спрашивают про утилизацию GPU, кэширование семантических запросов и трассировку агентов.

Наш курс закрывает этот пробел. Мы разбираем реальные проблемы эксплуатации: от стоимости токенов до задержек (latency) в сложных цепочках агентов.

Что прокачаем для собеса:

— Понимание пайплайнов RAG (ETL для данных).
— Мониторинг качества работы моделей (не только uptime, но и correctness).
— Инструменты экосистемы AI (LangSmith, LangFuse, Arize).

Подготовиться к вопросам по AI-Ops
Объясни разницу между 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
👍1
Что такое Ingress в Kubernetes и как он работает?

Ingress — это API-объект, который управляет внешним доступом HTTP/HTTPS к службам внутри кластера Kubernetes. Он позволяет маршрутизировать запросы на основе имени хоста и путей, выступая в качестве обратного прокси-сервера для нескольких приложений.

Пример определения Ingress YAML:
apiVersion:
networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host:
my-app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80


Библиотека собеса по DevOps
1👍1
Объясните, что такое распределенные вычисления (или распределенные системы).

По словам Мартина Клеппманна:
«Множество процессов, работающих на многих машинах... только передача сообщений через ненадежную сеть с переменными задержками, и система может страдать от частичных сбоев, ненадежных часов и остановок процессов».

Другое определение: «Системы, которые физически разделены, но логически связаны».


Библиотека собеса по DevOps
1
Что такое API-шлюз?

API-шлюз подобен привратнику, который контролирует, как различные части взаимодействуют друг с другом и как происходит обмен информацией между ними.

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

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


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

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

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

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


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

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

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


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

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

Библиотека собеса по DevOps
Почему docker stop иногда не завершает контейнер корректно?

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

Библиотека собеса по DevOps
👍2
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
❤‍🔥5👍3
Что такое CRI?

CRI означает интерфейс выполнения контейнера. Это спецификация, описывающая определенный уровень абстракции, позволяющая унифицированно использовать различные версии программного обеспечения для работы с контейнерами, такими как Containerd или CRI-O.

Библиотека собеса по DevOps
Что такое CNI-плагин и для чего он нужен?

Аббревиатура CNI расшифровывается как Container Network Interface. Это представляет собой уровень абстракции над реализацией сети, позволяя работать с верхнеуровневыми абстракциями, такими как IP-адрес PODа и Endpoint. CNI-плагин отвечает за то, как это будет реализовано на физическом уровне. Существует множество CNI-плагинов (например, Flannel, Calico, Cilium), которые предлагают различный функционал и сетевую производительность. Они могут быть простыми, использующими L3-маршрутизацию, iptables и IPVS, а также достаточно сложными, обеспечивающими шифрование внутреннего трафика, поддержку VLAN, маршрутизацию на основе IBGP, поддержку EGRESS и другие функции.

Библиотека собеса по DevOps
Определите услугу/проект, используемый для каждого из следующих действий:

Копирование или снимок инстансов
Графический интерфейс для просмотра и изменения ресурсов
Блочное хранилище
Управление виртуальными инстансами

По порядку: Glance, Horizon, Cinder, Nova

Библиотека собеса по DevOps
Какие типы volum’ов можно использовать в k8s?

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

Другой вариант использования — local-storage, который также использует папку на диске, но привязан к конкретной ноде и автоматически привязывает POD к нужной ноде.

Также есть возможность использовать сетевые диски с помощью CSI-плагинов.


Библиотека собеса по DevOps
👍2
Что такое финалайзеры (finalizers) и для чего они нужны?

Это уникальные ключи в манифесте объекта, которые определяют операции, необходимые для выполнения перед удалением объекта. Например, они используются для предотвращения удаления pvc и pv при активном PODе.

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