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

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Как спроектировать 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
👍2
Что такое CRI?

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

Библиотека собеса по DevOps
💡 Задача с собесеседования

Недавно в одном известном всем банке кандидату была предложена задача:

Есть клиент, который за месяц делает 1000 транзакций.
Нужно посчитать вероятность того, что среди них окажется хотя бы одна дублирующаяся сумма, если каждая сумма округляется до 2 знаков после запятой.


Вероятности, распределения, матожидание, градиенты — всё это может всплыть на интервью, и даже в продовых задачах.

🎓 Proglib запускает экспресс-курс «Математика для Data Science» — для тех, кто хочет закрыть эти пробелы и понять математику быстро, качественно и без боли.

🔍 На курсе вас ждет:

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

📅 Старт: 6 ноября
Формат: 10 вебинаров и 3 практических проекта
💬 Поддержка: менторы + Telegram-чат
💰 Стоимость: 37 000 ₽ (есть рассрочка)

🔗 Узнать больше и записаться
🦾 Как можно распределять права в Kubernetes?

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

Библиотека собеса по DevOps
😵‍💫 Устал от бесконечной подготовки к собесам?

Тогда залетай к нам, есть задачка попроще.

Пройди в нашем боте мини-тест по математике и узнай, готов ли ты к Data Science или стоит что-то подтянуть.

📱 Перейти в бота
Как собрать прод-образ и настроить пайплайн так, чтобы он был минимальным, воспроизводимым, безопасным, многоархитектурным и без утечек секретов?

Используйте multi-stage (builder → минимальный runtime вроде distroless/scratch), пингуйте версии и базовый образ по digest, ставьте зависимости по lock-файлам, включайте BuildKit с --mount=cache и --mount=secret, чистите контекст через .dockerignore. Запускайте сервис под непривилегированным USER, с exec-ENTRYPOINT, read-only ФС, tmpfs для /tmp, сброшенными capabilities, лёгким HEALTHCHECK, логами в stdout; секреты и состояние держите вне образа (env/volumes). Для мультиархитектуры собирайте через buildx --platform=linux/amd64,linux/arm64 и публикуйте манифест; в цепочке поставки генерируйте SBOM, подписывайте образ (cosign) и сканируйте уязвимости в CI.

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