DevOps | Вопросы собесов
Open in Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
Show more5 546
Subscribers
No data24 hours
+107 days
+4530 days
Posts Archive
🤔 Через что делается создание неймспейсов и запуск деплойментов?
- Всё делается через kube-apiserver, к которому обращаются:
- kubectl
- другие компоненты
- CI/CD пайплайны
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Целевые кибератаки 2025: аналитика и кейсы
Ландшафт киберугроз в России меняется.
Злоумышленники используют более продвинутые инструменты, а разработка ВПО стала гораздо доступнее благодаря AI. К чему готовиться бизнесу?
11 марта в 12:00 команда Solar 4RAYS проведет вебинар по итогам расследований целевых атак 2025 года и прогнозам на 2026-й.
В программе:
✅Актуальные методы защиты на 2026 год.
✅Акцент на отраслях, которые злоумышленники атакуют чаще всего.
✅Интересные техники киберпреступников из реальных расследований.
Регистрируйтесь на вебинар, чтобы строить надежную эшелонированную защиту с помощью актуальных данных.
Узнать больше
#реклама 16+
rt-solar.ru
О рекламодателе
🤔 Как в линуксе посмотреть список дескрипторов файлов?
В Linux список дескрипторов файлов можно посмотреть, используя утилиты и команды, которые позволяют работать с процессами и их открытыми файлами. Основным методом является использование файловой системы
/proc, которая содержит информацию о процессах, включая их открытые файловые дескрипторы.
🚩Основные способы
🟠Команда `ls` в каталоге `/proc/[PID]/fd`
Каждый процесс в Linux имеет свой подкаталог в /proc с идентификатором процесса (PID). В подкаталоге fd хранятся ссылки на открытые дескрипторы файлов.
ls -l /proc/$(pidof <имя_процесса>)/fd
Вывод
lrwx------ 1 user user 64 Dec 23 12:00 0 -> /dev/pts/0
lrwx------ 1 user user 64 Dec 23 12:00 1 -> /dev/pts/0
lrwx------ 1 user user 64 Dec 23 12:00 2 -> /dev/pts/0
🟠Использование `lsof`
Команда lsof (list open files) отображает список всех открытых файлов в системе.
lsof -p <PID>
Пример для всех процессов
lsof
Вывод
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1234 user cwd DIR 8,1 4096 256 /home/user
bash 1234 user rtd DIR 8,1 4096 2 /
bash 1234 user 0u CHR 136,0 0 3 /dev/pts/0
bash 1234 user 1u CHR 136,0 0 3 /dev/pts/0
bash 1234 user 2u CHR 136,0 0 3 /dev/pts/0
🟠Использование `lsfd`
Утилита lsfd (из пакета util-linux) удобна для просмотра файловых дескрипторов.
lsfd
Вывод
PID FD TTY TYPE DEVICE SIZE/OFF NODE NAME
1234 0 /dev/pts/0 CHR 136,0 0 3 /dev/pts/0
1234 1 /dev/pts/0 CHR 136,0 0 3 /dev/pts/0
1234 2 /dev/pts/0 CHR 136,0 0 3 /dev/pts/0
🚩Полезные флаги и фильтрация
Список дескрипторов определенного пользователя:
lsof -u <имя_пользователя>
Список файлов определенного типа (например, сокеты):
lsof -i
Фильтрация по определенному файлу или устройству:
lsof /path/to/file
🚩Почему важно знать про дескрипторы?
🟠Отладка приложений
Определение, какие файлы, сокеты или устройства использует процесс.
🟠Устранение утечек
Проверка, остаются ли ненужные дескрипторы открытыми.
🟠Администрирование
Диагностика проблем, связанных с блокировкой файлов.
Ставь 👍 и забирай 📚 Базу знанийАукцион выделенных серверов!
Серверы дешевеют у вас на глазах!
Новые лоты каждый день, скидки до -35% на весь срок аренды.
Успейте арендовать, пока лот не ушел другому!
Получить предложение
#реклама 16+
selectel.ru
О рекламодателе
🤔 Как сирота отличается от зомби процесса?
1. Сирота: процесс, у которого родитель завершился, но сам процесс продолжает работать. Управление сиротой передаётся init.
2. Зомби: процесс завершён, но его запись остаётся в таблице процессов до тех пор, пока родительский процесс не обработает статус завершения.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как сделать донастройку контейнера?
Донастройка контейнера может понадобиться, если:
Нужно изменить файлы конфигурации.
Установить дополнительные пакеты.
Задать переменные среды.
Подключить тома или сети.
Варианты донастройки: через Dockerfile, docker-compose, exec, тома и Entrypoint/CMD.
🟠Донастройка через Dockerfile (Лучший способ)
Если контейнер нужно модифицировать перед запуском, создаем свой
Dockerfile на основе существующего образа.
FROM nginx:latest
COPY my-nginx.conf /etc/nginx/nginx.conf
CMD ["nginx", "-g", "daemon off;"]
Собираем новый образ
docker build -t my-nginx .
docker run -d -p 80:80 my-nginx
🟠Донастройка через `docker-compose` (Гибкость)
Можно задать окружение, тома, команды.
version: '3'
services:
db:
image: postgres:15
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
POSTGRES_DB: mydb
volumes:
- ./custom-postgres.conf:/etc/postgresql/postgresql.conf
command: postgres -c config_file=/etc/postgresql/postgresql.conf
Запуск
docker-compose up -d
🟠Донастройка запущенного контейнера (`docker exec`)
Если контейнер уже работает, можно внести изменения прямо в него.
docker exec -it my-container bash
apt update && apt install -y vim
🟠Донастройка через тома (Volumes)
Если нужно изменять файлы без пересборки образа, подключаем тома.
docker run -d -p 80:80 -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf nginx
🟠Использование `ENTRYPOINT` или `CMD`
Можно задать скрипт донастройки, который выполнится при старте контейнера.
FROM postgres:15
COPY setup.sh /docker-entrypoint-initdb.d/setup.sh
RUN chmod +x /docker-entrypoint-initdb.d/setup.sh
В setup.sh:
#!/bin/bash
psql -U postgres -d mydb -c "CREATE TABLE test (id SERIAL PRIMARY KEY);"
Ставь 👍 и забирай 📚 Базу знанийНа картах — Азия, на самом деле — РазнообрАзия!
Яндекс Путешествия открывают секреты отличного отдыха по-восточному, дарят скидку 5000 ₽ на отели и программу для путешествия по вашим интересам.
Забронировать
#реклама
special.travel.yandex.ru
О рекламодателе
🤔 Для чего нужны пробы в Kubernetes?
Пробы (probes) используются для определения состояния контейнера.
- Liveness — показывает, жив ли контейнер (если нет — будет перезапущен).
- Readiness — показывает, готов ли контейнер принимать трафик.
- Startup — определяет, когда приложение полностью загрузилось, особенно полезно при долгом старте.
Они помогают Kubernetes принимать решения о перезапуске, маршрутизации и health-чек.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как можно визуализировать логи?
Визуализация логов — это процесс представления лог-файлов в удобном графическом виде для более легкого анализа, поиска аномалий и устранения проблем. Для этого используются различные инструменты, которые собирают, агрегируют и отображают логи в виде графиков, дашбордов и диаграмм.
🚩Почему нужна визуализация логов?
🟠Упрощает анализ
вместо просмотра тысяч строк логов можно быстро увидеть тенденции и аномалии.
🟠Помогает в мониторинге
можно отслеживать изменения в режиме реального времени.
🟠Ускоряет диагностику проблем
легче выявить причину ошибки, если видеть всплески или изменения в логах.
🟠Облегчает работу с большими объемами данных
миллионы строк логов можно представить в виде сводных диаграмм.
🚩Какие инструменты используются?
🟠ELK Stack (Elasticsearch + Logstash + Kibana)
Logstash – собирает и обрабатывает логи.
Elasticsearch – хранит и индексирует логи для быстрого поиска.
Kibana – визуализирует данные, строит графики и дашборды.
Пример: Можно создать график с количеством ошибок 500 за последние 24 часа.
🟠Grafana + Loki (альтернатива ELK)
Loki – хранит и обрабатывает логи.
Grafana – строит красивые дашборды с логами и метриками.
Пример: Можно создать панель с последними логами приложений, используя
tail-подобное обновление.
🟠Graylog
Обрабатывает логи, хранит их в Elasticsearch, строит графики и отправляет алерты.
Пример: Можно отфильтровать логи по уровню ERROR и вывести их в виде диаграммы.
🟠Datadog, Splunk, New Relic
Коммерческие решения с мощными инструментами аналитики логов.
Пример: Автоматическая корреляция логов с метриками системы.
🚩Простой пример работы с ELK
Logstash конфиг (сбор логов из файла)
input {
file {
path => "/var/log/app.log"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
}
}
Ставь 👍 и забирай 📚 Базу знанийНужны актуальные вопросы с собеседований ?
DevOps | Собеседования - твой незаменимый помощник в подготовке к собеседованиям.
🔊Обзоры собеседований c вилками на позиции:
🔵DevOps инженеров (Junior, Middle, Senior).
🔵С комментариями автора, как человека, который активно собеседует кандидатов.
🔊В ближайшее время:
🔵Записи реальных собеседований (не моки и открытые собеседования).
🔵Гайды и рекомендации по обходу частых ошибок при выступлении на техническом интервью.
➡️ Подписаться
Раньше — выгоднее.
Берите календарь направлений с чек-листами, получайте скидку 5 000 ₽ за раннее бронирование от 60 000 ₽ и бронируйте отпуск, пока лучшие варианты ещё доступны.
Забронировать
#реклама 16+
special.travel.yandex.ru
О рекламодателе
🤔 Что происходит в тот момент, когда вы набираете в браузере, например, google.com?
1. Выполняется DNS-запрос для получения IP-адреса сервера.
2. Устанавливается TCP-соединение с сервером.
3. При использовании HTTPS устанавливается TLS-соединение.
4. Браузер отправляет HTTP-запрос, сервер возвращает ответ.
5. Полученные данные рендерятся в браузере.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Какой командой можно показать все работающие процессы на Linux?
Для отображения всех работающих процессов в Linux можно использовать несколько команд. Самые популярные из них:
ps, top, htop и pgrep. Каждая из них имеет свои особенности.
🚩Команда `ps`
ps выводит снимок (snapshot) текущих процессов в момент выполнения команды.
🟠`ps aux`
Показывает все процессы, запущенные в системе, включая пользователей и системные демоны.
ps aux
🟠`ps -ef`
Альтернативный стиль вывода всех процессов с более детальной информацией.
ps -ef
🚩Команда `top`
top — интерактивная утилита для отображения всех запущенных процессов в реальном времени. Вывод обновляется автоматически.
Запуск
top
🚩Команда `htop`
htop — более современная и удобная версия top. Требуется предварительная установка:
sudo apt install htop # Для Ubuntu/Debian
sudo yum install htop # Для CentOS/RHEL
Запуск
htop
🚩Команда `pgrep`
pgrep используется для поиска процессов по имени, но с дополнительными опциями можно вывести все процессы.
Пример
pgrep -a ""
🚩Команда `systemctl` (для сервисов)
Если вы хотите посмотреть системные службы
systemctl list-units --type=service
🚩Какую команду выбрать?
🟠Для быстрого снимка
ps aux.
🟠Для мониторинга в реальном времени
top или htop.
🟠Для поиска конкретного процесса
pgrep <имя процесса>.
Ставь 👍 и забирай 📚 Базу знанийIT-магистратура ИТМО, МИФИ в партнёрстве с Яндексом
Освойте высокооплачиваемую IT-профессию. Актуальные программы ИТМО и МФТИ 2026 года, диплом гособразца, много практики от Яндекса. Гибкий график, обучение полностью онлайн, господдержка оплаты, отсрочка от армии
Узнать больше
#реклама 16+
practicum.yandex.ru
О рекламодателе
🤔 Какие элементы мониторинга вы знаете, из чего он состоит в большинстве своём?
Мониторинг включает:
- Сбор метрик (экспортёры, агенты, SNMP),
- Хранилище данных (TSDB: Prometheus, InfluxDB),
- Визуализацию (Grafana, Zabbix frontend),
- Алерты (Alertmanager, Email, Telegram),
- Логирование (ELK, Loki),
- Проверку доступности (Blackbox exporter, Pingdom),
- Систему трассировки (Jaeger, Zipkin).
Полноценный мониторинг — это не только метрики, но и трассировка, логи, алерты и дашборды.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 В каких случаях используется multi stage?
Multi-stage (многоэтапная сборка) — это метод создания Docker-образов, позволяющий уменьшить их размер и повысить безопасность.
🚩Когда используется?
🟠Оптимизация размера образа
удаляем ненужные зависимости из финального образа.
🟠Безопасность
не включаем инструменты сборки в рабочий контейнер.
🟠Скорость деплоя
меньший образ быстрее скачивается и запускается.
🟠Кросс-компиляция
собираем приложение в одном окружении, а запускаем в другом.
🚩Пример использования Multi-stage в Docker
Допустим, у нас есть приложение на Go. Мы сначала компилируем его в одном контейнере, а затем создаем минимальный образ для запуска.
# Этап 1: сборка
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Этап 2: минимальный образ для запуска
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/myapp .
CMD ["./myapp"]
🚩Использование в React / Angular / Vue
При сборке фронтенда мы можем сначала установить зависимости и собрать проект, а затем развернуть его на nginx.
# Этап 1: сборка приложения
FROM node:18 AS builder
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
RUN npm run build
# Этап 2: деплой на nginx
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое Continuous Deployment?
Это практика, при которой каждая успешная сборка автоматически разворачивается в прод, без ручного вмешательства. Подразумевает высокий уровень автоматизации, покрытие тестами и зрелость процессов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Задумывались об обучении нейросетям?
Большинство людей использует меньше 20% потенциала ИИ, упуская возможности заработка и улучшения качества жизни.
Сегодня нейросети – не просто тренд, а необходимость и возможность для каждого. Это навыки, которые важно изучать и отрабатывать. И чем раньше вы начнете учиться взаимодействовать с AI, тем больше выиграете в будущем.
Присоединяйтесь к челленджу и вы освоите нейросети, научитесь писать профессиональные промт-запросы, продвинутому использованию MIDJOURNEY, созданию вирусных видео, получению точных ответов и актуальным способам заработка в сфере AI.
В рамках бесплатного челленджа NEXT AI вы также получите 3 дня бесплатного доступа к PRO-тарифу нашей новой нейросети IMI, чтобы отработать свои навыки на практике.
Присоединяйтесь к челленджу NEXT AI сейчас
Зарегистрироваться
#реклама 16+
game.imigo.ai
О рекламодателе
🤔 Сколько часов живёт один вал Prometeus CICD?
Вал (или "валидность данных") в Prometheus определяется настройками временного диапазона хранения данных. Обычно данные в Prometheus живут столько, сколько задано в параметре
--storage.tsdb.retention.time, который устанавливает период хранения временных рядов.
🟠По умолчанию
Если не указать параметр --storage.tsdb.retention.time, данные хранятся 15 дней. Это соответствует 360 часам.
🟠Как изменить время жизни данных
Вы можете настроить период хранения данных, передав значение параметра при запуске Prometheus:
CLI-параметр:
prometheus --storage.tsdb.retention.time=30d
🟠Конфигурационный файл
Если Prometheus запускается как часть системы CI/CD через Docker Compose, Kubernetes или другой инструмент, параметр указывается в соответствующем разделе.
services:
prometheus:
image: prom/prometheus
command:
- '--storage.tsdb.retention.time=7d' # 7 дней (168 часов)
🚩Почему это важно?
🟠Оптимизация дискового пространства
Большие периоды хранения требуют больше дискового пространства. Если валидация данных больше не нужна, лучше очищать старые временные ряды.
🟠Баланс производительности
Длительное хранение может замедлить обработку запросов, особенно если используемые метрики застарелые или редко запрашиваются.
🟠Потребности CI/CD
Для CI/CD-пайплайнов обычно достаточно короткого периода (например, 7–15 дней), чтобы сохранять данные релевантными и свежими.
🟠Пример настройки в CI/CD контексте
Если вы хотите, чтобы метрики для CI/CD жили 12 часов (подходящий срок для проверки тестов и сборок), настройте
prometheus:
image: prom/prometheus
command:
- '--storage.tsdb.retention.time=12h'
🚩Как проверить текущий срок хранения?
🟠В интерфейсе Prometheus
Перейдите на страницу /status → /status/flags, где можно увидеть значение параметра --storage.tsdb.retention.time.
🟠Через командную строку
Проверьте журнал запуска Prometheus или конфигурационный файл.
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое SRE, чем отличается от DevOps?
- SRE (Site Reliability Engineering) — инженерная практика от Google.
- Фокус на доступности, стабильности, SLO, SLA.
- Работает с ошибками, алертами, инцидентами.
- DevOps — культурный подход, объединяющий разработку и эксплуатацию.
SRE — это инженерная реализация DevOps, с акцентом на метрики и надёжность.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
