en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

Библиотека собеса по DevOps | вопросы с собеседований

Библиотека собеса по DevOps | вопросы с собеседований

Open in Telegram

Вопросы с собеседований по DevOps и ответы на них. Учиться у нас: https://clc.to/nLEtvA По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot

Show more
3 468
Subscribers
No data24 hours
+47 days
+1730 days
Posts Archive
😵‍💫 Устал от бесконечной подготовки к собесам? Тогда залетай к нам, есть задачка попроще. Пройди в нашем боте мини-тест по
😵‍💫 Устал от бесконечной подготовки к собесам? Тогда залетай к нам, есть задачка попроще. Пройди в нашем боте мини-тест по математике и узнай, готов ли ты к Data Science или стоит что-то подтянуть. 📱 Перейти в бота

🦾 Как можно распределять права в Kubernetes? В Kubernetes для управления правами применяется механизм RBAC (Role Based Access Control). В этой системе выделяются три ключевых объекта: пользователь (user) или учетная запись сервиса (service account), которые определяют субъект доступа; роль (role) или кластерная роль (clusterRole), задающие разрешения; и привязка роли (roleBinding) или кластерной роли (clusterRoleBinding) к конкретному субъекту. Библиотека собеса по DevOps

💡 Задача с собесеседования Недавно в одном известном всем банке кандидату была предложена задача: Есть клиент, который за ме
💡 Задача с собесеседования Недавно в одном известном всем банке кандидату была предложена задача:
Есть клиент, который за месяц делает 1000 транзакций. Нужно посчитать вероятность того, что среди них окажется хотя бы одна дублирующаяся сумма, если каждая сумма округляется до 2 знаков после запятой.
Вероятности, распределения, матожидание, градиенты — всё это может всплыть на интервью, и даже в продовых задачах. 🎓 Proglib запускает экспресс-курс «Математика для Data Science» — для тех, кто хочет закрыть эти пробелы и понять математику быстро, качественно и без боли. 🔍 На курсе вас ждет: — линейная алгебра, анализ, теория вероятности и статистика; — градиенты, матрицы и экстремумы функций; — математики и алгоритмы машинного обучения; — много практики. 📅 Старт: 6 ноября ⏰ Формат: 10 вебинаров и 3 практических проекта 💬 Поддержка: менторы + Telegram-чат 💰 Стоимость: 37 000 ₽ (есть рассрочка) 🔗 Узнать больше и записаться

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

Как спроектировать Docker-образ для продакшна так, чтобы он был маленький, быстро собирался, воспроизводился и был безопасным? Multi-stage build: отдельно builder и runtime; в финал копируйте только артефакты. База: минимальные образы (distroless/scratch) уменьшают поверхность атаки; Alpine лёгкий, но musl ≠ glibc — учитывайте совместимость. Кэш и слои: сначала копируйте lock-файлы зависимостей, устанавливайте deps, затем код — так сохраните кэш; используйте .dockerignore. BuildKit: включайте BUILDKIT; --mount=type=cache для кэша зависимостей, --mount=type=secret для секретов (не оставляйте их в слоях). COPY vs ADD: по умолчанию COPY; ADD только для авто-распаковки tar/редких кейсов. ENTRYPOINT/CMD: используйте exec-форму; ENTRYPOINT — бинарь, CMD — дефолтные аргументы. Безопасность: USER — непривилегированный; read-only FS, drop capabilities, никакого --privileged; пакеты и компиляторы не тащите в финальный слой. Воспроизводимость: пингуйте версии и базовые образы по digest, избегайте latest; фиксируйте часовой пояс/локаль если важно. Runtime-гигиена: HEALTHCHECK, лимиты ресурсов, логи в stdout/stderr, состояние — только во внешних томах. Снабжение артефактами: публикуйте SBOM/подписи (provenance, cosign) и прогоняйте image-сканы на уязвимости. Мультиархитектура: buildx/manifest list для --platform (amd64/arm64) без двойной поддержки образов. Библиотека собеса по DevOps

Как выполняются обновления и откаты в Kubernetes? Развёртывания Kubernetes поддерживают непрерывные обновления, что позволяет избежать простоев. Вы можете выполнить непрерывные обновления, отредактировав развёртывание или явно указав новую версию его образа, используя:
kubectl set image deployment/my-deployment nginx=nginx:1.21
Затем вы можете проверить статус развертывания:
kubectl rollout status deployment my-deployment
Если вы хотите вернуться к предыдущей версии, вы можете выполнить:
kubectl rollout undo deployment my-deployment
Библиотека собеса по DevOps

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

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

⏳ Время прокачать алгоритмы с 40-процентной скидкой до конца октября На собеседовании не просят бездумно написать шаблонное р
⏳ Время прокачать алгоритмы с 40-процентной скидкой до конца октября На собеседовании не просят бездумно написать шаблонное решение. Важно понимать, как работают алгоритмы под капотом. 🔹 В курсе ты научишься: — искать ошибки с помощью редакционного расстояния; — работать с балансированными деревьями и графами; — решать задачи с динамическим программированием; — и многое другое, что пригодится на собеседованиях. 🤔 Решаешь задачи только в тг каналах? Пройди курс и отправляйся на реальные собеседования! 🔗 Подробнее о курсе

Как Docker ограничивает CPU и почему --cpus может вызвать лаги? Через cgroups/CFS: --cpus задаёт квоту (cpu.max), при всплесках планировщик «душит» контейнер (throttling) → задержки. Для стабильности — пинning ядёр --cpuset-cpus + разумная квота/period; для мягкого приоритета — --cpu-shares (только вес при конкуренции). Библиотека собеса по DevOps

Расскажите подробнее о kube-scheduler. Kube-scheduler распределяет и управляет рабочей нагрузкой на рабочих узлах. Он использует различные политики для выбора наиболее подходящего узла для pod на основе таких факторов, как требования к ресурсам, емкость узла и соответствие/несоответствие pod. Компонент kube-scheduler также отвечает за привязку выбранного узла к pod и обновление сервера Kubernetes API с обновленной информацией. Библиотека собеса по DevOps

Что такое архитектура «Shared-Nothing»? Это архитектура, в которой данные извлекаются из одного, не общего источника, обычно подключенного исключительно к одному узлу, в отличие от архитектур, в которых запрос может попасть на один из многих узлов, а данные будут извлечены из одного общего места (хранилища, памяти). Библиотека собеса по 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

Что такое виртуализация? В момент появления понятия виртуализации, оно представляло собой метод логического разделения мейнфреймов для одновременной работы нескольких приложений. Однако с развитием технологий появилась возможность одновременной работы нескольких операционных систем на одном сервере 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

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

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

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