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

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

رفتن به کانال در Telegram
5 508
مشترکین
-324 ساعت
-77 روز
-530 روز
آرشیو پست ها
REKONFA Live 6 ноября приглашаем рекламодателей, агентства и рекламные площадки обсудить технологии, маркетинговые инструмент
REKONFA Live 6 ноября приглашаем рекламодателей, агентства и рекламные площадки обсудить технологии, маркетинговые инструменты и актуальные новинки. Ключевые участники рынка поделятся опытом и расскажут: — О ситуации на рынке рекламы — Как продвигать и продавать в интернете в 2025 году — Как бизнесу адаптироваться к меняющимся условиям Вас ждут доклады на актуальные темы, классный нетворкинг, вдохновляющая атмосфера для творчества и креатива. Встречаемся 6 ноября в Москве. Для тех, кто не сможет приехать, организуем интерактивное digital-шоу. Мероприятие бесплатное, нужно только зарегистрироваться. Зарегистрироваться #реклама 18+ ya.rekonfa.ru О рекламодателе

🤔 Зачем нужен OOM OOM (Out Of Memory) — это механизм, срабатывающий, когда системе не хватает памяти для работы, что приводит к завершению процессов с высокой нагрузкой. Он защищает систему от полного исчерпания памяти, освобождая ресурсы, чтобы другие процессы могли продолжать работать. OOM-killer используется для выбора и завершения наименее критичных процессов, предотвращая полное зависание системы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое Grafana? Grafana — это инструмент для визуализации, мониторинга и анализа метрик. Он позволяет строить графики, панели (dashboards) и оповещения на основе данных из разных источников. 🚩Основные возможности Grafana Дашборды – красивые панели с графиками и таблицами Много источников данных – Prometheus, MySQL, Elasticsearch, AWS CloudWatch Настраиваемые алерты – уведомления в Slack, Telegram, Email Аутентификация – поддержка LDAP, OAuth, GitHub Плагины и расширения – добавление новых панелей и источников данных 🚩Как работает Grafana? Grafana подключается к источнику данных (например, Prometheus) Пользователь создает дашборды с графиками, таблицами и метриками Настраиваются алерты, которые отправляют уведомления при сбоях 🚩Пример развертывания Grafana с Prometheus Запуск Grafana в Docker
docker run -d -p 3000:3000 --name=grafana grafana/grafana
Пример запроса в PromQL
node_cpu_seconds_total{mode="idle"}
🚩Как настроить алерты? Например, если загрузка CPU выше 80%, отправлять сообщение в Telegram. В Grafana → "Alerting" → "Alert Rules" → "Create Alert Rule" Записываем условие:
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
🚩Где используется Grafana? Мониторинг серверов (CPU, RAM, диски, сеть) DevOps (Prometheus + Grafana) для Kubernetes, Docker Бизнес-аналитика (данные из MySQL, Google Analytics) IoT – графики с датчиков и устройств Ставь 👍 и забирай 📚 Базу знаний

Быстрый старт в кибербез: с нуля до первой работы Ищешь перспективную профессию с быстрым ростом зарплаты? Кибербезопасность
Быстрый старт в кибербез: с нуля до первой работы Ищешь перспективную профессию с быстрым ростом зарплаты? Кибербезопасность — востребованная сфера с острой нехваткой специалистов. Здесь реально выйти на доход от 70 000 уже за полгода. Даже без опыта и образования в ИТ. С чего начать и как построить карьеру, расскажут эксперты Солара на вебинаре 14 ноября в 19:00: ✅ Какие профессии доступны новичкам без опыта и как быстро их освоить. ✅ Как найти свою первую работу. ✅ Какие ошибки допускают новички в начале пути. Всем участникам подарим пошаговый план по саморазвитию и быстрому старту в кибербезопасность. Присоединяйтесь! Зарегистрироваться #реклама 16+ rt-solar.ru О рекламодателе

🤔 Что такое брокеры сообщений? Брокер сообщений — это система, которая: - принимает, сохраняет и передаёт сообщения между компонентами системы; - развязывает отправителя и получателя, повышает отказоустойчивость; - поддерживает очереди, топики, доставку и масштабирование. Примеры: Kafka, RabbitMQ, NATS, ActiveMQ. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как мы можем поменять последовательное выполнение таски плейбука на машинах в параллельное? По умолчанию Ansible выполняет задачи последовательно, но можно ускорить выполнение с помощью параметра forks или асинхронных задач (async). 🚩Увеличение параллельных подключений (`forks`) forks – это количество серверов, на которых Ansible выполняет задачи одновременно.
ansible-playbook -i inventory.ini playbook.yml --forks=10
Установить forks в ansible.cfg:
[defaults]
forks = 10
🚩Асинхронное выполнение (`async` + `poll`) Если задача выполняется долго, ее можно запустить асинхронно и не ждать завершения. Пример асинхронного выполнения установки пакета
- name: Установить nginx параллельно
  apt:
    name: nginx
    state: present
  async: 300
  poll: 0
async: 300 – запускает задачу и дает ей 300 секунд на выполнение poll: 0 – не ждет завершения, сразу переходит к следующей Проверить статус запущенных задач:
ansible all -m async_status -a "jid=1234567890" -i inventory.ini
🚩Использование `&` в Shell-командах (`shell` + `nohup`) Пример запуска задачи в фоновом режиме
- name: Запустить долгий процесс
  shell: "nohup long_script.sh &"
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Почему Java Memory Model важно при работе с многопоточностью? Java Memory Model (JMM): - Определяет как потоки видят переменные и как изменения одной нити становятся видимыми другим. - Без JMM каждый поток может кэшировать значения, что приводит к несогласованности данных. - Благодаря JMM можно использовать volatile, synchronized и Atomic переменные с гарантией корректности. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как linux выбирает, какой из процессов завершить? Она использует механизм, известный как OOM Killer (убийца процессов при нехватке памяти), для завершения процессов с целью освобождения памяти. Выбор процесса для завершения базируется на ряде критериев, чтобы минимизировать влияние на работу системы. 🚩Как работает OOM Killer? 🟠Очки OOM (OOM Score) Каждому процессу присваиваются очки OOM, которые рассчитываются на основе нескольких факторов, таких как: Объем памяти, используемой процессом. Приоритет процесса. Важность процесса для системы (например, системные демоны имеют более низкие очки). 🟠Формула расчета OOM Score Основной фактор при расчете очков - это объем потребляемой процессом памяти. Чем больше памяти потребляет процесс, тем выше его OOM Score. Операционная система также учитывает приоритет процесса (nice value) и некоторые другие параметры. 🟠Принудительное завершение Процесс с наибольшим OOM Score считается наименее критичным для системы и завершается первым. 🚩Пример расчета OOM Score 🟠Вот пример того, как может быть рассчитан OOM Score (упрощенный) Процесс A использует 1 ГБ памяти. Процесс B использует 2 ГБ памяти. Процесс C использует 500 МБ памяти, но это критический системный процесс. 🟠OOM Score для этих процессов может выглядеть так Процесс A: 300 Процесс B: 600 Процесс C: 100 (низкий, так как процесс критический) 🚩Настройка OOM Killer Администраторы могут влиять на работу OOM Killer, настраивая параметры OOM Score для конкретных процессов с помощью файлов в каталоге /proc. Например, для изменения приоритета процесса:
echo -1000 > /proc/<PID>/oom_score_adj
🚩Логирование и мониторинг При срабатывании OOM Killer соответствующие сообщения записываются в системный журнал (обычно /var/log/syslog или /var/log/messages), что позволяет администраторам анализировать причины и предпринимать меры по предотвращению в будущем. Ставь 👍 и забирай 📚 Базу знаний

🤔 Как использовать темплейты Helm? Темплейты находятся в директории templates/ и содержат шаблонизированные YAML-файлы, в которых можно: - Использовать переменные из values.yaml - Применять условные конструкции, циклы, функции Go-шаблонов Ты можешь: - Генерировать манифесты: helm template - Переопределять значения при установке: helm install --set key=value Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 При попытке создания файла на диске на linux ошибка что места нет проверяете место есть с чем это может быть связано Если при создании файла в Linux появляется ошибка, что места нет, но df -h показывает свободное место, проблема может быть в следующем: 🚩Закончились inodes Inodes – это структуры, которые хранят метаданные о файлах. Даже если есть свободное место, но inodes кончились, новые файлы создать нельзя.
df -i
Найти каталоги с множеством маленьких файлов:
  find /path -xdev -type f | wc -l  # Количество файлов в каталоге
  
🚩Ограничение дискового квотирования (quota) В системе могут быть настроены дисковые квоты, которые ограничивают использование диска для пользователя или группы.
quota -v
🚩Заполнен раздел `/var`, `/tmp` или `/home` В системе может быть несколько дисковых разделов (/, /var, /home и т. д.). Если один из них заполнен, в него нельзя записывать файлы.
df -hT
🚩Файловая система смонтирована в режиме `read-only` Если файловая система перешла в режим «только для чтения» (read-only) из-за ошибки или сбоя, запись на неё невозможна.
mount | grep ' ro,'
Если файловая система смонтирована с `ro`, значит, запись запрещена. Перемонтировать диск:
  mount -o remount,rw /path
  
Проверить диск на ошибки:
  dmesg | tail -20  # Лог ошибок
  fsck /dev/sdX  # Проверка диска
Ставь 👍 и забирай 📚 Базу знаний

Гайд для РОПов по проведению эффективных вебинаров Как руководителям отделов продаж увеличить количество успешных сделок при
Гайд для РОПов по проведению эффективных вебинаров Как руководителям отделов продаж увеличить количество успешных сделок при том же объеме лидов с помощью вебинаров? Гайд от МТС Линк по обучающим вебинарам для отделов продаж. ✅ В гайде: - Как эффективнее прокачивать скиллы менеджеров и закрывать больше сделок за меньшие сроки; - Как организовать тренинг так, чтобы участники действительно подключились и дошли до финального модуля; - Как выявить слабого менеджера и улучшить его показатели; - Как сэкономить время на организации вебинара и пригласить всех участников в 2 клика. Бонус внутри: 5 прикладных советов по контролю внимания участников во время вебинара ✨ Скачайте гайд бесплатно по ссылке Скачать #реклама 16+ mts-link.ru О рекламодателе

🤔 Kubernetes Control Plane и Worker Node — кто за что отвечает? - Control Plane — управляет кластером, принимает решения, следит за состоянием. - Worker Node — выполняет рабочие задачи, т.е. подами и контейнерами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Где бы хранил tfstate если много разрабов? Файл terraform.tfstate содержит текущее состояние инфраструктуры. Если его неправильно хранить, возможны конфликты и повреждение данных. 🚩Плохие решения Локально (terraform.tfstate в репозитории) Потеря данных, если разработчик сменит машину. Конфликты, если несколько человек применяют terraform apply. Невозможно откатиться к старому состоянию. Не поддерживает блокировки (terraform lock). Возможны проблемы с одновременным доступом. 🚩Лучшие решения для хранения `tfstate` 🟠S3 + DynamoDB (AWS) → Самый популярный способ S3 хранит tfstate, а DynamoDB предотвращает конфликты.
terraform {
  backend "s3" {
    bucket         = "my-terraform-state"
    key            = "prod/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "terraform-lock"
  }
}
🟠Terraform Cloud/Enterprise → Официальное SaaS-решение Terraform Cloud хранит tfstate в облаке HashiCorp.
terraform {
  backend "remote" {
    hostname     = "app.terraform.io"
    organization = "my-org"
    workspaces {
      name = "my-workspace"
    }
  }
}
🟠Google Cloud Storage (GCS) + Firestore (GCP) Для GCP аналог AWS S3 — это Google Cloud Storage (GCS), а DynamoDB заменяется Firestore.
terraform {
  backend "gcs" {
    bucket  = "my-tfstate-bucket"
    prefix  = "terraform/state"
  }
}
🟠Azure Storage + Azure CosmosDB (Azure) Для Azure можно использовать Azure Storage и блокировки через Azure CosmosDB.
terraform {
  backend "azurerm" {
    resource_group_name  = "my-rg"
    storage_account_name = "myterraformstate"
    container_name       = "tfstate"
    key                  = "prod.terraform.tfstate"
  }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Отличия монтирования дисков к виртуалке и к контейнеру? - Виртуальная машина (VM): - Подключается как полноценный виртуальный диск. - Обычно требует перезапуска и настройки в гипервизоре. - Может использовать собственную файловую систему. - Контейнер (Docker): - Монтирование происходит на уровне хоста (bind mount или volume). - Не требует перезапуска контейнера. - Более гибкое и динамичное подключение к каталогам. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как определить ресурс, который необходим одной node? Чтобы определить нагрузку на Node и правильно выделить ресурсы, нужно: Проверить текущее потребление ресурсов (CPU, RAM, диски)* Оценить нагрузку от подов (requests и limits) Использовать мониторинг (Prometheus, Grafana, kubectl top) 🚩Проверить нагрузку на Node (`kubectl top node`) Команда
sh  
kubectl top nodes  
Вывод
NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%  
node-1      500m         25%    2Gi             50%  
node-2      1000m        50%    4Gi             80%  
🚩Проверить потребление ресурсов подами (`kubectl top pods`) Команда
sh  
kubectl top pods --all-namespaces  
Вывод
NAMESPACE   POD            CPU(cores)   MEMORY(bytes)  
default     web-app-1      250m         256Mi  
default     web-app-2      300m         512Mi  
monitoring  prometheus-1   600m         1Gi  
🚩Анализ `requests` и `limits` подов Команда
sh  
kubectl describe node node-1  
Вывод (пример секции Allocatable)
Allocatable:  
  cpu:                4  
  memory:             8Gi  
  pods:               110  
Проверить requests и limits у подов
sh  
kubectl describe pod my-pod  
Вывод
Requests:  
  cpu:     500m  
  memory:  1Gi  
Limits:  
  cpu:     1  
  memory:  2Gi  
🚩Использование Prometheus и Grafana для анализа нагрузки Prometheus-запросы для анализа Node Средняя загрузка CPU за 5 минут
promql  
avg(rate(node_cpu_seconds_total[5m])) * 100  
Среднее использование памяти
promql  
avg(node_memory_Active_bytes) / avg(node_memory_MemTotal_bytes) * 100
Ставь 👍 и забирай 📚 Базу знаний

Бесплатный курс по дизайну: веб, графический и UX/UI Научись создавать дизайн сайтов и приложений, инфографику для карточек н
Бесплатный курс по дизайну: веб, графический и UX/UI Научись создавать дизайн сайтов и приложений, инфографику для карточек на маркетплейсах и работать в Figma! Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰 Этот курс для тебя, если ты: ✅ мечтаешь о новой профессии в digital, но не знаешь, с чего начать; ✅ чувствуешь, что хочешь большего — свободы, самореализации, творчества; ✅ полный новичок и хочешь систему, а не хаос; ✅ хочешь начать зарабатывать удалённо. Зарегистрироваться #реклама 16+ ydaev.ru О рекламодателе

🤔 Какие параметры файловой системы могут влиять на выбор файловой системы? Файловая система выбирается по ряду параметров: - Тип нагрузки – большие файлы (XFS, ZFS) или много мелких файлов (EXT4, Btrfs). - Журналирование – влияет на отказоустойчивость (XFS, EXT4). - Снапшоты – нужны ли сохранения состояний файлов (Btrfs, ZFS). - Шифрование – встроенная защита данных (ZFS, LUKS). - Резервирование пространства – например, XFS и ZFS резервируют место. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие join бывают? В реляционных базах данных, операции объединения (JOIN) позволяют объединить строки из двух или более таблиц на основе связанных между собой столбцов. Существует несколько типов JOIN, каждый из которых имеет свои особенности и применим для разных ситуаций. Рассмотрим основные типы JOIN: 🟠INNER JOIN Объединяет строки из обеих таблиц, если они удовлетворяют условию объединения. Когда необходимо выбрать только те строки, которые имеют соответствующие значения в обеих таблицах.
SELECT *
FROM таблица1
INNER JOIN таблица2
ON таблица1.ключ = таблица2.ключ;
🟠LEFT JOIN (или LEFT OUTER JOIN) Возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если соответствующей строки в правой таблице нет, в результирующем наборе данных для столбцов правой таблицы будут значения NULL. Когда необходимо выбрать все строки из одной таблицы и соответствующие данные из другой таблицы, если они существуют.
SELECT *
FROM таблица1
LEFT JOIN таблица2
ON таблица1.ключ = таблица2.ключ;
🟠RIGHT JOIN (или RIGHT OUTER JOIN) Возвращает все строки из правой таблицы и соответствующие строки из левой таблицы. Если соответствующей строки в левой таблице нет, в результирующем наборе данных для столбцов левой таблицы будут значения NULL. Когда необходимо выбрать все строки из одной таблицы (правой) и соответствующие данные из другой таблицы (левой), если они существуют.
SELECT *
FROM таблица1
RIGHT JOIN таблица2
ON таблица1.ключ = таблица2.ключ;
🟠FULL JOIN (или FULL OUTER JOIN) Возвращает все строки, когда есть совпадения либо в левой, либо в правой таблице. Если строки не соответствуют в одной из таблиц, для этой таблицы будут значения NULL. Когда необходимо выбрать все строки из обеих таблиц, независимо от того, есть ли соответствующие строки в другой таблице.
SELECT *
FROM таблица1
FULL JOIN таблица2
ON таблица1.ключ = таблица2.ключ;
🟠CROSS JOIN Возвращает декартово произведение двух таблиц, то есть все возможные комбинации строк из обеих таблиц. Когда необходимо создать комбинации всех строк из обеих таблиц. Используется редко и с осторожностью, так как может привести к очень большому количеству строк.
SELECT *
FROM таблица1
CROSS JOIN таблица2;
🟠SELF JOIN Применяется для объединения таблицы самой с собой. Обычно используется для сравнения строк внутри одной и той же таблицы. Когда необходимо сопоставить строки одной таблицы друг с другом, например, для анализа иерархий или поиска парных записей.
SELECT A.*
FROM таблица A, таблица B
WHERE A.ключ = B.ключ;
🟠NATURAL JOIN Автоматически объединяет таблицы по всем столбцам с одинаковыми именами и типами данных. Когда у таблиц есть столбцы с одинаковыми именами, и нужно объединить их без явного указания условий объединения.
SELECT *
FROM таблица1
NATURAL JOIN таблица2;
Ставь 👍 и забирай 📚 Базу знаний

Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля Дизайнер карточек для маркетплейсов — востребованная и доходная проф
Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰 Научись ей бесплатно! - Бесплатный доступ - Разбор ДЗ от наставника - Мощные кейсы в портфолио Узнать больше #реклама 16+ yudaevschool24.online О рекламодателе