Библиотека задач по DevOps | тесты, код, задания
2.84K subscribers
163 photos
7 videos
2 files
408 links
Задачи и тесты по DevOps для тренировки и обучения.

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

Наши каналы: https://xn--r1a.website/proglibrary/9197

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Halloween Special — последний день магии! 👻

Успевай сегодня купить курсы со скидкой 40%!

А также участвуй в розыгрыше MacBook Pro 14 💻

После полуночи останется только тыква 🎃

🔮 Открой портал и выбери курс
Как корректно посчитать процент ошибок в Prometheus?

👾 — sum(http_errors_total) / sum(http_requests_total) (сырые счетчики)
👍 — rate(http_errors_total[5m]) / rate(http_requests_total[5m]) с теми же фильтрами/лейблами и затем агрегацией
🥰 — avg_over_time(http_errors_total[5m])
⚡️ — irate(http_errors_total[5m]) для алерта по SLO

Библиотека задач по DevOps
👾2👍1
Опишите составные части архитектуры Docker

Основные составные части архитектуры Docker — это:

✍🏻 сервер, содержит сервис Docker, образы и контейнеры. Сервис связывается с Registry, образы — метаданные приложений, запускаемых в контейнерах Docker.
✍🏻 клиент, применяется для запуска различных действий на сервере Docker.
✍🏻 registry, используется для хранения образов. Есть публичные, доступные каждому, например, Docker Hub и Docker Cloud.

Библиотека задач по DevOps
Что такое Kubernetes HPA (горизонтальное автомасштабирование Pod)?

👾 — Механизм автоматического масштабирования количества модулей в зависимости от использования ресурсов
👍 — Способ динамической корректировки ресурсов, выделяемых модулю, в зависимости от спроса
🥰 — Метод распределения сетевого трафика между несколькими модулями
— Инструмент для мониторинга и оптимизации использования ресурсов в кластере

Библиотека задач по DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👾3
👾 В облаке есть 3 зоны доступности. Как сделать так, чтобы поды приложения распределились по этим зонам доступности равномерно?

Необходимо настроить podAntiAffinity. Либо, более новый вариант для данной задачи, настроить topologySpreadConstraints с указание ключа лейбла зон.

Библиотека задач по DevOps
Установите узел с именем «worker node» как недоступный и перепланируйте все работающие на нем модули

Kubectl drain node <worker node> --ignore-daemonsets

Библиотека задач по DevOps
Что реально гарантирует PodDisruptionBudget (PDB) в Kubernetes?

👾 — Защиту от OOM и крэшей ноды
👍 — Ограничение добровольных эвикшенов (drain/upgrade), ниже минимума не опустят; от аварий не спасает
🥰 — Нулевой простой при любых инцидентах
⚡️ — Автоматический автоскейлинг при эвикшене

Библиотека задач по DevOps
👍5
Как выдать CI job облачные права без хранения долгоживущих ключей?

👾 — Хранить access-keys в переменных окружения репозитория
👍 — OIDC/workload identity: обмен короткоживущего токена раннера на временные креды (AWS STS/GCP WIF/Azure)
🥰 — Прокинуть ключи через ARG в Dockerfile
⚡️ — Закоммитить .env и закодировать Base64

Библиотека задач по DevOps
👍51
Что такое error budget в SRE?

👾 — Плановый бюджет на инфраструктуру в долларах
👍 — Допустимая доля несоответствия SLO за окно наблюдения (напр., 0.1% при SLO 99.9%), используемая для темпа релизов и алертинга
🥰 — Сумма логов, которую можно хранить
⚡️ — Максимальный RTO при аварии

Библиотека задач по DevOps
👍5
Для чего нужен паттерн Circuit Breaker?

👾 — Для распределения нагрузки по репликам
👍 — Чтобы при частых ошибках/таймаутах прекращать вызовы к зависимому сервису (open), затем пробовать редко (half-open) и восстанавливаться при успехе (closed)
🥰 — Для кэширования успешных ответов
⚡️ — Для очередей ретраев в брокере сообщений

Библиотека задач по DevOps
👍7
Что происходит при обновлении ConfigMap в Kubernetes?

👾 — Env-переменные в работающем поде обновятся сразу автоматически
👍 — При монтировании как volume файлы обновятся (с задержкой), а env-переменные применятся только после рестарта пода/роллаута
🥰 — Ничего не изменится, пока не удалить и не создать ConfigMap заново
⚡️ — Обновление ConfigMap всегда триггерит автоматический rolling restart Deployment

Библиотека задач по DevOps
👍5
Как смонтировать один и тот же том в несколько подов на разных нодах Kubernetes?

👾 — Использовать emptyDir с RWX
👍 — Нужен storage-класс/драйвер, поддерживающий ReadWriteMany (RWX) — напр., NFS/CSI с RWX; ReadWriteOnce (RWO) не подходит
🥰 — Достаточно hostPath, он общий для кластера
⚡️ — Любой PersistentVolumeClaim по умолчанию делится между подами

Библиотека задач по DevOps
👍41
🖤 ЧЕРНАЯ ПЯТНИЦА: СКИДКА 40%

Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎

🔥 Курсы со скидкой 40% до конца ноября:

🐍 Python
📐 Математика
🤖 AI
🔢 Алгоритмы и структуры

Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈
Как реализовать «build once, promote many» для контейнеров?

👾 — Пересобирать образ под каждое окружение с разными ARG
👍 — Продвигать один неизменяемый образ по digest, конфиг/секреты — через env/Secrets/ConfigMaps
🥰 — Везде тянуть :latest
⚡️ — Вшивать секреты и конфиги в образ для каждого окружения

Библиотека задач по DevOps
👍5
Что опасно из-за высокой кардинальности меток в Prometheus?

👾 — Статический service="payments"
👍 — Лейбл с user_id/request_id в каждой метрике
🥰 — Текст # HELP/# TYPE
⚡️ — Использование counter вместо gauge

Библиотека задач по DevOps
👍1
📊 Задача с собеседования

Имеются данные о продажах за последние 12 месяцев. Требуется оценить наличие линейной зависимости между количеством заключённых сделок и объёмом выручки, а также построить прогноз выручки при достижении 150 сделок.


Если не понимаете с какой стороны подступиться к задаче, то пора подтянуть математику.

🎓 Именно этому посвящен курс экспресс-курс «Математика для Data Science» от Proglib Academy:

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

Старт: 4 декабря
🔥 Скидка: 40% до конца ноября

👉 Подключиться к курсу
Как в Kubernetes сделать канареечный релиз с точным процентом трафика (10%→30%→100%)?

👾 — Просто увеличить число подов новой версии — сервис сам обеспечит точные проценты
👍 — Использовать Ingress/Service Mesh с взвешенным роутингом (Istio VirtualService, NGINX Ingress canary аннотации)
🥰 — Обновить ConfigMap — проценты применятся автоматически
⚡️ — Поставить maxSurge: 10% — это и есть доля трафика

Библиотека задач по DevOps
👍9
Какой тип Kubernetes Service нужен для внешнего доступа из интернета в облаке?

👾 — ClusterIP — достаточно
👍 — LoadBalancer (облачный LB); Ingress обычно работает поверх него
🥰 — Headless Service
⚡️ — NodePort всегда автоматически создаёт облачный балансировщик

Библиотека задач по DevOps
👍10
Что происходит при превышении memory limit в контейнере Kubernetes?

👾 — Контейнер просто троттлится, как при CPU limit
👍 — Ядро срабатывает OOM-killer в cgroup: процесс убивают, Pod перезапускается по политике
🥰 — Память временно свопится и всё продолжает работать
⚡️ — Scheduler переносит Pod на ноду с большей памятью без рестарта

Библиотека задач по DevOps
👍12
Для чего нужен startupProbe в Kubernetes?

👾 — Проверяет, готов ли под принимать трафик
👍 — Для медленно стартующих приложений: пока он падает, liveness/readiness не срабатывают, избегая преждевременных рестартов
🥰 — Чтобы гарантировать достаточную CPU-квоту
⚡️ — Чтобы разместить под на ноде с SSD

Библиотека задач по DevOps
👍11