uk
Feedback
DevOps | Вопросы собесов

DevOps | Вопросы собесов

Відкрити в Telegram
5 510
Підписники
-224 години
-47 днів
-330 день
Архів дописів
🤔 Что автоматизируешь в работе? Пример скрипта, который недавно писал или помнишь Обычно автоматизируются деплой, мониторинг, создание бэкапов, сбор метрик, очистка логов. Один из частых примеров — bash-скрипт, который настраивает новый сервер под типовой стек. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 В чем отличие девопс-инженера от sre-инженера? DevOps-инженер и SRE (Site Reliability Engineer) — это роли, которые пересекаются в своих задачах, но имеют разные акценты и подходы. 🚩Определение ролей 🟠DevOps-инженер Основная цель: Ускорить и автоматизировать процесс разработки, тестирования и развертывания приложений. Подход: Сосредоточен на создании и поддержке CI/CD, инфраструктуры как кода (IaC) и инструментах автоматизации. Фокус: Эффективность процессов разработки. Улучшение взаимодействия между командами разработки (Dev) и эксплуатации (Ops). 🟠SRE-инженер Основная цель: Обеспечение стабильности, надежности и производительности системы в продакшене. Подход: Применяет инженерные подходы и автоматизацию для управления операциями и масштабированием. Фокус: Стабильность и надежность системы. Мониторинг, устранение сбоев и управление инцидентами. Ставь 👍 и забирай 📚 Базу знаний

🤔 Где можно использовать Kubernetes? Kubernetes используют для: - управления контейнерами и их жизненным циклом; - масштабирования микросервисов; - автоматизации деплоя; - отказоустойчивости и самовосстановления сервисов. Можно использовать в облаке, on-premise, edge и гибридных решениях. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

📺 База 1000+ реальных собеседований На программиста, тестировщика, аналитика, проджекта и другие IT профы. Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д. 🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!

🤔 Сколько часов живёт один вал 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 или конфигурационный файл. Ставь 👍 и забирай 📚 Базу знаний

Купите отельный номер с гарантией пассивного дохода в $ Как стать владельцем отельного номера и получать гарантированный доход в валюте? Да, вы всё правильно прочитали! Процент доходности фиксирован и закреплен в договоре! А выплаты производятся строго по графику. Эксперты International Investment отобрали лучшие объекты для инвестиций по всему миру. Оставляйте заявку и получите персональный план инвестирования прямо сейчас! Посмотреть каталог #реклама international-investment.ru О рекламодателе

🤔 Как решить проблему, если Jenkins не видит merge request и ветки из GitLab? - Убедиться, что используется GitLab Plugin. - Включить webhook из GitLab. - Установить refspec: - +refs/merge-requests/*/head:refs/remotes/origin/mr/* - Убедиться, что Jenkins имеет доступ к правильным permissions в GitLab. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что возвращает функция в bash? В Bash функция возвращает код завершения (exit status), который представляет собой числовое значение от 0 до 255. Это значение используется для указания успешного или неуспешного выполнения функции. По умолчанию, если явно не указано возвращаемое значение, функция возвращает код завершения последней выполненной команды внутри нее. 🚩Как возвращать значения из функции? 🟠Код завершения (exit status) Чтобы явно задать код завершения функции, используется команда return.
my_function() {
    if [[ $1 -gt 0 ]]; then
        return 0  # Успех
    else
        return 1  # Ошибка
    fi
}

my_function 5
echo $?  # Выведет 0 (успех)
🟠Вывод данных через `echo` Для передачи данных из функции (например, строки или числа) можно использовать echo. Вывод можно перехватить через подстановку команд $()
my_function() {
    echo "Hello, $1!"
}

result=$(my_function "world")
echo "$result"  # Выведет "Hello, world!"
🟠Изменение глобальных переменных Функция может менять значения глобальных переменных, которые затем используются за ее пределами
my_function() {
    result=$(( $1 + $2 ))
}

my_function 3 7
echo $result  # Выведет 10
🚩Почему это важно? 🟠Код завершения Используется в сценариях для проверки, выполнилась ли функция успешно. Значение 0 обычно означает успех, а любое другое число — ошибку. 🟠Вывод через `echo` Удобен для передачи данных из функции. 🟠Изменение переменных Полезно, если функция должна сохранять данные для дальнейшей обработки.
# Функция проверки файла
check_file() {
    if [[ -f $1 ]]; then
        echo "Файл $1 существует."
        return 0
    else
        echo "Файл $1 не найден."
        return 1
    fi
}

# Вызов функции
check_file "/etc/passwd"
status=$?  # Сохраняем код завершения
if [[ $status -eq 0 ]]; then
    echo "Продолжаем работу..."
else
    echo "Останавливаемся из-за ошибки."
fi
Ставь 👍 и забирай 📚 Базу знаний

Реклама для бизнеса любого уровня в Яндекс Директе Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌 На
Реклама для бизнеса любого уровня в Яндекс Директе Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌 Начните прямо сейчас ⚡ Зарегистрироваться #реклама direct.yandex.ru О рекламодателе

🤔 Как найти запущенный процесс? 1. Используйте команду ps (например, ps aux для подробной информации). 2. Команда top показывает активные процессы в реальном времени. 3. Для фильтрации можно использовать pgrep <имя процесса>. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

🤔 С каким максимальным кол-ом адресов ОП может провзаимодействовать процессор? Максимальное количество адресов оперативной памяти (ОП), с которыми может взаимодействовать процессор, зависит от ширины адресной шины процессора. Адресная шина определяет, сколько уникальных адресов памяти процессор может адресовать. 🚩Формула вычисления Количество адресуемых ячеек памяти определяется по формуле: \text{Максимальное количество адресов} = 2^{\text{ширина адресной шины (в битах)}} 🚩Примеры 🟠Процессор с 32-битной адресной шиной Максимально возможное количество адресов: 2^{32} = 4,294,967,296 \, (\approx 4 \, \text{Гбайт}) 🟠Процессор с 64-битной адресной шиной Теоретический максимум 2^{64} = 18,446,744,073,709,551,616 \, (\approx 16 \, \text{эксабайт}) Однако современные процессоры обычно поддерживают меньше, например Архитектура x86-64 (например, Intel и AMD): ограничена 48–57 битами для адресов памяти, что позволяет адресовать от 256 Тбайт до 128 Пбайт. 🚩Почему реальная адресуемая память меньше? 🟠Ограничения архитектуры Производители процессоров могут использовать меньшее количество адресных линий, чтобы снизить сложность и стоимость. Например, современные 64-битные процессоры адресуют только часть 64-битного пространства (например, 48 бит). 🟠Ограничения ОЗУ Даже если процессор поддерживает большое количество адресов, максимальная память ограничивается количеством слотов памяти и их емкостью на материнской плате. 🟠Системные резервы Некоторые адреса зарезервированы для системных нужд (например, для ввода/вывода или BIOS). Ставь 👍 и забирай 📚 Базу знаний

Тютю-гребень или капикрыса? Побалуйте себя роскошью от Ричарда Сапогова или утепляйтесь с культовой рубашкой Инженера. Выбира
Тютю-гребень или капикрыса? Побалуйте себя роскошью от Ричарда Сапогова или утепляйтесь с культовой рубашкой Инженера. Выбирайте фаворитов из коллекции с персонажами Антона Лапенко. Перейти на сайт #реклама tbank.ru О рекламодателе

🤔 Как построить выделение ресурсов, балансировку, нагрузку и масштабирование? Выделение ресурсов: - Использование kubernetes requests/limits, cgroups, namespaces. - Автоматическое масштабирование под CPU/Memory. Балансировка нагрузки: - Внутри кластера — через kube-proxy, kube-dns, Istio, Envoy. - Наружу — Ingress Controller, L7 балансировщики (Nginx, Traefik), L4 (HAProxy, AWS ALB). Масштабирование: - Horizontal Pod Autoscaler по метрикам. - Vertical Pod Autoscaler для подбора ресурсов. - Cluster Autoscaler — масштабирует сам кластер. Оркестрация + наблюдение: - Prometheus + Grafana для метрик. - Alertmanager для алертов. - Tracing (Jaeger, OpenTelemetry). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какой инструмент нам может помочь в снятии метрик с продукта? Если вам нужно собирать метрики (нагрузка, ошибки, задержки, бизнес-показатели) с вашего продукта, то вот лучшие инструменты 🟠Prometheus + Grafana Prometheus – база данных временных рядов (time-series DB) для хранения метрик. Grafana – мощная визуализация метрик. Метрики собираются экспортерами (node_exporter, blackbox_exporter и т. д.). Данные хранятся в Prometheus. Grafana показывает красивые графики.
rate(http_requests_total[5m])  # Запросы в секунду за 5 минут
🟠Zabbix Устанавливается агент на сервер (zabbix-agent). Сервер собирает метрики и генерирует алерты. Ставь 👍 и забирай 📚 Базу знаний

🤔 Сколько существует проб в Kubernetes? Существует три типа проб: 1. livenessProbe 2. readinessProbe 3. startupProbe Каждая решает свою задачу и настраивается отдельно в манифесте pod'а. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как посмотреть логи в уже работающем контейнере? Чтобы посмотреть логи работающего контейнера в Docker, используйте команду:
docker logs <container_id>
или
docker logs <container_name>
🚩Основные флаги 🟠`-f` (follow) следить за логами в реальном времени (как tail -f):
  docker logs -f <container_id>
  
🟠`--tail N` показать только последние N строк:
  docker logs --tail 100 <container_id>
  
🟠`-t` (timestamps) добавить метки времени:
docker logs -t <container_id>
🚩Просмотр логов через `docker-compose` Если контейнер запущен через docker-compose, можно использовать:
docker-compose logs -f
или для конкретного сервиса:
docker-compose logs -f <service_name>
🚩Логи для контейнера с systemd (если Docker пишет в `journald`)
journalctl -u docker -f
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как происходит работа с диском? Работа с диском идёт через: 1. Файловую систему — разбивка данных на блоки, управление метаданными. 2. ОС и драйверы — планируют чтение/запись, оптимизируют доступ. 3. Кэширование — часто используется буферизация в RAM. 4. Контроллер диска — управляет физическим доступом на уровне блоков. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как происходит секьюрити тест какой алгоритм под капотом? Security-тестирование – это процесс проверки системы на уязвимости, угрозы и риски атак. Оно помогает защитить данные и сервисы от хакеров. 🚩Сканеры уязвимостей (Nessus, OpenVAS) - Загружают базу известных уязвимостей (CVE). - Проверяют систему на наличие этих уязвимостей. - Используют сигнатурный анализ (по шаблонам) и эвристический анализ (поведенческий). 🚩SQL-инъекции (SQLmap, Burp Suite) - Автоматически подставляют вредоносные SQL-запросы (' OR 1=1 --). - Проверяют, есть ли доступ к базе данных. - Выполняют дамп данных, если нашли уязвимость.
SELECT * FROM users WHERE username = 'admin' --' AND password = 'password'
🚩Поиск XSS-уязвимостей (DOM-XSS, Stored-XSS, Reflected-XSS) - Вставляют вредоносный JavaScript-код в форму ввода. - Если скрипт исполняется в браузере – уязвимость найдена.
<script>alert('XSS!')</script>
🚩Подбор паролей (Brute Force, Dictionary Attack) - Пробуют тысячи вариантов паролей (rockyou.txt). - Используют John the Ripper, Hydra, Hashcat.
hydra -l admin -P passwords.txt 192.168.1.1 ssh
🚩Анализ трафика (MITM, Sniffing, Packet Analysis) Захватывают пакеты сети (tcpdump, Wireshark). Ищут передаваемые пароли, сессии, токены. Ставь 👍 и забирай 📚 Базу знаний

🤔 Как работает GitLab Runner? Это агент, выполняющий CI/CD задачи. 1. Он регистрируется в GitLab и запускает задачи (jobs) из .gitlab-ci.yml. 2. Работает в разных режимах (shell, Docker, Kubernetes) для выполнения сборок, тестов и деплоя. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

DevOps | Вопросы собесов - Статистика та аналітика Telegram каналу @easy_devops