По вашему опыту, в чем преимущества DevOps?
Пример ответа:«Применяя философию 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
DS-специалистов:
Библиотека собеса по DevOps
❤1
Вопрос на собеседовании: «Как вы будете мониторить LLM в проде?»
Чтобы не плавать в теме
Разбираем эксплуатационную часть:
— инструменты трейсинга и логирования агентов;
— оптимизация затрат на токены;
— безопасность и контроль доступов.
Первая лекция открыта. Отличная возможность прокачать скиллы для поддержки современных AI-проектов.
Записаться
Смотреть лекцию
Чтобы не плавать в теме
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
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
Библиотека собеса по 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
Пример определения Ingress YAML:
apiVersion:
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host:
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
Библиотека собеса по DevOps
❤1👍1
Объясните, что такое распределенные вычисления (или распределенные системы).
По словам Мартина Клеппманна:
«Множество процессов, работающих на многих машинах... только передача сообщений через ненадежную сеть с переменными задержками, и система может страдать от частичных сбоев, ненадежных часов и остановок процессов».
Другое определение: «Системы, которые физически разделены, но логически связаны».
Библиотека собеса по DevOps
«Множество процессов, работающих на многих машинах... только передача сообщений через ненадежную сеть с переменными задержками, и система может страдать от частичных сбоев, ненадежных часов и остановок процессов».
Другое определение: «Системы, которые физически разделены, но логически связаны».
Библиотека собеса по DevOps
❤1
Что такое API-шлюз?
API-шлюз подобен привратнику, который контролирует, как различные части взаимодействуют друг с другом и как происходит обмен информацией между ними.
API-шлюз обеспечивает единую точку входа для всех клиентов и может выполнять несколько задач, включая маршрутизацию запросов к соответствующей внутренней службе, балансировку нагрузки, безопасность и аутентификацию, ограничение скорости, кэширование и мониторинг.
Используя API-шлюз, организации могут упростить управление своими API, обеспечить согласованную безопасность и управление, а также улучшить производительность и масштабируемость своих внутренних сервисов. Они также широко используются в архитектурах микросервисов, где есть много небольших независимых служб, к которым необходимо получать доступ разным клиентам.
Библиотека собеса по DevOps
API-шлюз обеспечивает единую точку входа для всех клиентов и может выполнять несколько задач, включая маршрутизацию запросов к соответствующей внутренней службе, балансировку нагрузки, безопасность и аутентификацию, ограничение скорости, кэширование и мониторинг.
Используя API-шлюз, организации могут упростить управление своими API, обеспечить согласованную безопасность и управление, а также улучшить производительность и масштабируемость своих внутренних сервисов. Они также широко используются в архитектурах микросервисов, где есть много небольших независимых служб, к которым необходимо получать доступ разным клиентам.
Библиотека собеса по DevOps
👍1
Что такое виртуализация?
В момент появления понятия виртуализации, оно представляло собой метод логического разделения мейнфреймов для одновременной работы нескольких приложений. Однако с развитием технологий появилась возможность одновременной работы нескольких операционных систем на одном сервере x86, что значительно изменило смысл виртуализации.
В результате виртуализация позволяет запускать две различные операционные системы на одном устройстве. Первая операционная система может использоваться для административных целей, в то время как остальные гостевые операционные системы загружаются как обычно, включая инициализацию и загрузку ядра. Этот метод также обеспечивает повышенный уровень безопасности, так как гостевая операционная система не имеет полного доступа к управляющей (host) операционной системе, что помогает избежать возможных уязвимостей в безопасности.
Есть три типа виртуализации:
✍🏻 Паравиртуализация
✍🏻 Эмуляция
✍🏻 Контейнерная виртуализация
Библиотека собеса по DevOps
В результате виртуализация позволяет запускать две различные операционные системы на одном устройстве. Первая операционная система может использоваться для административных целей, в то время как остальные гостевые операционные системы загружаются как обычно, включая инициализацию и загрузку ядра. Этот метод также обеспечивает повышенный уровень безопасности, так как гостевая операционная система не имеет полного доступа к управляющей (host) операционной системе, что помогает избежать возможных уязвимостей в безопасности.
Есть три типа виртуализации:
✍🏻 Паравиртуализация
✍🏻 Эмуляция
✍🏻 Контейнерная виртуализация
Библиотека собеса по DevOps
Что такое веб-перехват мутационного допуска Kubernetes и как он работает?
Вебхук мутационного допуска позволяет изменять объекты Kubernetes в режиме реального времени до их применения в кластере и сохранения. Он запускает динамический контроллер допуска в Kubernetes, который перехватывает запросы API до сохранения объектов в etcd. Он может изменять полезную нагрузку запроса, внедряя, изменяя или удаляя поля, прежде чем разрешить выполнение запроса.
Они обычно используются для:
✍🏻 Внедрения дополнительных объектов (sidecars).
✍🏻 Установки значений по умолчанию для модулей (pod), развертываний (deployments) и других ресурсов.
✍🏻 Применения передовых практик (например, автоматического назначения ограничений ресурсов).
✍🏻 Добавления настроек безопасности (например, требования меток для отслеживания аудита).
Библиотека собеса по DevOps
Они обычно используются для:
✍🏻 Внедрения дополнительных объектов (sidecars).
✍🏻 Установки значений по умолчанию для модулей (pod), развертываний (deployments) и других ресурсов.
✍🏻 Применения передовых практик (например, автоматического назначения ограничений ресурсов).
✍🏻 Добавления настроек безопасности (например, требования меток для отслеживания аудита).
Библиотека собеса по DevOps
Зачем сначала делать COPY package*.json ./ и только потом RUN npm ci, а уже затем COPY . .?
Так кэшируется слой с зависимостями: пока манифесты не меняются, npm ci берётся из кеша, а изменения в исходниках не инвалидируют установку пакетов. Итог — быстрые пересборки и предсказуемость.
Библиотека собеса по DevOps
Библиотека собеса по DevOps
Почему docker stop иногда не завершает контейнер корректно?
docker stop шлёт SIGTERM PID 1 и по таймауту SIGKILL; если PID 1 — shell/скрипт (shell-форма ENTRYPOINT) или процесс не форвардит/не обрабатывает сигналы, graceful shutdown не случается. Решение: exec-форма ENTRYPOINT ["app"], обработка SIGTERM в коде, при нужде STOPSIGNAL, либо --init/tini.
Библиотека собеса по DevOps
Библиотека собеса по 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
ARG vs ENV?
Как уменьшить размер образа?
Multi-stage builds, .dockerignore, Alpine/ubi-minimal/Distroless, объединяй RUN, чисти кеши (apt/apk) в том же слое, пинь версии.
Библиотека собеса по DevOps
❤🔥5👍3
Что такое CRI?
CRI означает интерфейс выполнения контейнера. Это спецификация, описывающая определенный уровень абстракции, позволяющая унифицированно использовать различные версии программного обеспечения для работы с контейнерами, такими как Containerd или CRI-O.
Библиотека собеса по DevOps
Библиотека собеса по DevOps
Что такое CNI-плагин и для чего он нужен?
Аббревиатура CNI расшифровывается как Container Network Interface. Это представляет собой уровень абстракции над реализацией сети, позволяя работать с верхнеуровневыми абстракциями, такими как IP-адрес PODа и Endpoint. CNI-плагин отвечает за то, как это будет реализовано на физическом уровне. Существует множество CNI-плагинов (например, Flannel, Calico, Cilium), которые предлагают различный функционал и сетевую производительность. Они могут быть простыми, использующими L3-маршрутизацию, iptables и IPVS, а также достаточно сложными, обеспечивающими шифрование внутреннего трафика, поддержку VLAN, маршрутизацию на основе IBGP, поддержку EGRESS и другие функции.
Библиотека собеса по DevOps
Библиотека собеса по DevOps
Определите услугу/проект, используемый для каждого из следующих действий:
Копирование или снимок инстансов
Графический интерфейс для просмотра и изменения ресурсов
Блочное хранилище
Управление виртуальными инстансами
По порядку: Glance, Horizon, Cinder, Nova
Библиотека собеса по DevOps
Копирование или снимок инстансов
Графический интерфейс для просмотра и изменения ресурсов
Блочное хранилище
Управление виртуальными инстансами
Библиотека собеса по DevOps
Какие типы volum’ов можно использовать в k8s?
Для подключения папки на ноде можно воспользоваться hostpath, однако необходимо учитывать, что POD должен быть привязан к конкретной ноде. В случае перемещения POD на другую ноду, он будет использовать ту же папку, но содержимое в ней может отсутствовать.
Другой вариант использования — local-storage, который также использует папку на диске, но привязан к конкретной ноде и автоматически привязывает POD к нужной ноде.
Также есть возможность использовать сетевые диски с помощью CSI-плагинов.
Библиотека собеса по DevOps
Другой вариант использования — local-storage, который также использует папку на диске, но привязан к конкретной ноде и автоматически привязывает POD к нужной ноде.
Также есть возможность использовать сетевые диски с помощью CSI-плагинов.
Библиотека собеса по DevOps
👍2
Что такое финалайзеры (finalizers) и для чего они нужны?
Это уникальные ключи в манифесте объекта, которые определяют операции, необходимые для выполнения перед удалением объекта. Например, они используются для предотвращения удаления pvc и pv при активном PODе.
Библиотека собеса по DevOps
Библиотека собеса по DevOps
Что такое CSI-плагин?
Это концепция, которая обеспечивает единообразное использование сетевых файловых систем, построенных на различных технологических основах.
Мы определяем storageClass, который соответствует дискам определенного типа, и разворачиваем provisioner в кластере — специальное программное обеспечение, способное заказывать сетевые диски в системе, способной их предоставлять (например, NAS или СХД).
Затем мы создаем объект persistentVolumeClaim, указывая нужный storageClass.
При появлении запроса на persistentVolumeClaim, provisioner заказывает диск необходимого размера в системе, которая их предоставляет, создает объект persistentVolume и связывает его с persistentVolumeClaim. При запуске POD на узле, соответствующий диск монтируется на этот узел по определенному пути, который затем монтируется на файловую систему POD.
Библиотека собеса по DevOps
Мы определяем storageClass, который соответствует дискам определенного типа, и разворачиваем provisioner в кластере — специальное программное обеспечение, способное заказывать сетевые диски в системе, способной их предоставлять (например, NAS или СХД).
Затем мы создаем объект persistentVolumeClaim, указывая нужный storageClass.
При появлении запроса на persistentVolumeClaim, provisioner заказывает диск необходимого размера в системе, которая их предоставляет, создает объект persistentVolume и связывает его с persistentVolumeClaim. При запуске POD на узле, соответствующий диск монтируется на этот узел по определенному пути, который затем монтируется на файловую систему POD.
Библиотека собеса по DevOps