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

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

الذهاب إلى القناة على Telegram
5 510
المشتركون
+324 ساعات
-57 أيام
لا توجد بيانات30 أيام
أرشيف المشاركات
🤔 Что такое нормализация баз данных? Нормализация баз данных - это процесс организации данных в базе данных для минимизации избыточности данных и обеспечения их целостности. Цель нормализации - структурировать таблицы таким образом, чтобы устранить аномалии обновления, вставки и удаления данных. Нормализация достигается путем разбиения больших таблиц на более мелкие, связанных между собой отношениями, что упрощает управление данными и делает их более логически связанными. 🚩Зачем нужна нормализация 🟠Устранение избыточности данных Нормализация позволяет минимизировать дублирование данных, что экономит пространство и упрощает управление базой данных. 🟠Обеспечение целостности данных Нормализация помогает поддерживать целостность данных, обеспечивая правильное и единообразное хранение данных. 🟠Упрощение структуры базы данных Разделение данных на логические таблицы делает структуру базы данных более понятной и удобной для использования. 🟠Избежание аномалий данных Нормализация предотвращает возникновение аномалий при обновлении, вставке и удалении данных. 🚩Основные формы нормализации 🟠Первая нормальная форма (1NF) Удаление повторяющихся групп в таблице. Каждый столбец должен содержать только атомарные (неделимые) значения. Все записи в таблице должны быть уникальными. 🟠Вторая нормальная форма (2NF) Таблица должна быть в 1NF. Удаление частичной функциональной зависимости: каждый неключевой атрибут должен быть полностью зависим от первичного ключа. 🟠Третья нормальная форма (3NF) Таблица должна быть в 2NF. Удаление транзитивной зависимости: все неключевые атрибуты должны быть напрямую зависимы от первичного ключа, а не от других неключевых атрибутов. 🟠Бойс-Кодд нормальная форма (BCNF) Усиление 3NF: каждая детерминанта должна быть кандидатом на ключ, что означает, что в любой нетривиальной функциональной зависимости X -> Y, X должно быть суперключом. 🟠Четвертая нормальная форма (4NF) Таблица должна быть в BCNF. Устранение многозначных зависимостей: таблица не должна содержать многозначных зависимостей, когда один атрибут зависит от нескольких значений другого атрибута. 🟠Пятая нормальная форма (5NF) Таблица должна быть в 4NF. Устранение соединительных зависимостей: данные должны быть разбиты так, чтобы каждая зависимость сохранялась. 🚩Примеры применения нормализации 🟠Первая нормальная форма Если у вас есть таблица с повторяющимися группами, такими как несколько телефонных номеров для одного клиента, вы создаете отдельную таблицу для телефонов и связываете ее с таблицей клиентов. 🟠Вторая нормальная форма Если у вас есть таблица заказов с колонками "номер заказа", "название товара" и "цена товара", вы можете создать отдельные таблицы для заказов и товаров, чтобы цена товара зависела только от товара, а не от комбинации заказа и товара. 🟠Третья нормальная форма Если у вас есть таблица сотрудников с колонками "идентификатор сотрудника", "название отдела" и "имя начальника отдела", вы можете создать отдельные таблицы для сотрудников и отделов, чтобы имя начальника отдела зависело только от отдела, а не от сотрудника. Ставь 👍 и забирай 📚 Базу знаний

🤔 За счёт чего Redis такой быстрый? Redis быстрый потому что: - работает целиком в оперативной памяти; - все операции — однотредовые, без блокировок; - использует простые структуры данных (строки, списки, хеши); - оптимизирован на уровне сетевого стека и сериализации. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое лямбда выражение в Phyton? В Python лямбда-выражение — это анонимная (безымянная) функция, создаваемая с помощью ключевого слова lambda. Синтаксис
lambda аргументы: выражение
🚩Примеры Простая лямбда-функция
add = lambda x, y: x + y
print(add(3, 5))  # Выведет: 8
Эквивалентно обычной функции
def add(x, y):
    return x + y
Лямбда внутри map()
nums = [1, 2, 3, 4]
squares = list(map(lambda x: x ** 2, nums))
print(squares)  # [1, 4, 9, 16]
Лямбда внутри sorted()
words = ["apple", "banana", "kiwi"]
sorted_words = sorted(words, key=lambda w: len(w))
print(sorted_words)  # ['kiwi', 'apple', 'banana']
Ставь 👍 и забирай 📚 Базу знаний

🤔 На скольких хостах по умолчанию Ansible позволяет одновременно выполнять сценарии? По умолчанию Ansible запускает задачи на 5 хостах одновременно (forks = 5). Это значение можно изменить в ansible.cfg или через флаг --forks. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

28 млн конверсий результат медийной рекламы за 2025 год Медийная реклама давно вышла за рамки имиджевых задач. Новое исследов
28 млн конверсий результат медийной рекламы за 2025 год Медийная реклама давно вышла за рамки имиджевых задач. Новое исследование Яндекса показало: в 2025 году она принесла бизнесу 28 млн конверсий. Вот что ещё важно: 📊 Всё больше компаний пробуют медийную рекламу: в прошлом году больше половины рекламодателей запустили её впервые; 📊 Алгоритмы становятся эффективнее по сравнению с 2024 годом: +29% к поисковому интересу, +13% к посещаемости и +19% к целевым действиям. 📊 Растёт интерес к новым форматам: число кампаний на Connected TV выросло в 4 раза, а рекламодателей — в 6 раз. Кроме того, постоянно появляются разные возможности размещения: от ТВ-билбордов до брендирования в Картах. Подробнее — в исследовании Яндекса Узнать больше #реклама 16+ yandex.ru О рекламодателе

🤔 Какие виды метрик в Prometheus знаешь? В Prometheus есть 4 типа метрик, которые используются для мониторинга и сбора данных. 🚩Counter (Счетчик) – только увеличивается Используется для подсчета событий, ошибок, запросов Значение только увеличивается (нельзя уменьшить)
promql  
http_requests_total  
Как вывести количество запросов за последние 5 минут
promql  
rate(http_requests_total[5m])  
Пример экспозиции в приложении
go  
httpRequests := prometheus.NewCounter(  
    prometheus.CounterOpts{  
        Name: "http_requests_total",  
        Help: "Total number of HTTP requests",  
    })  
🚩Gauge (Измеритель) – может расти и уменьшаться Используется для измерения текущего состояния (температура, RAM, CPU) Значение может расти и уменьшаться
promql  
node_memory_usage_bytes  
Как вывести среднюю загрузку CPU за 5 минут
promql  
avg(node_cpu_seconds_total)  
Пример экспозиции в коде
go  
cpuUsage := prometheus.NewGauge(  
    prometheus.GaugeOpts{  
        Name: "cpu_usage_percentage",  
        Help: "Current CPU usage",  
    })  
🚩Histogram (Гистограмма) – распределение значений Используется для измерения длительности, размера запросов Делит данные по диапазонам (buckets)
promql  
http_request_duration_seconds_bucket  
Как вычислить среднее время отклика
promql  
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))  
Пример в коде
go  
requestDuration := prometheus.NewHistogram(  
    prometheus.HistogramOpts{  
        Name:    "http_request_duration_seconds",  
        Help:    "Histogram of response time for HTTP requests",  
        Buckets: prometheus.DefBuckets,  
    })  
🚩Summary (Сводка) – квантильные метрики Показывает среднее, медиану, квантильное распределение Используется для измерения задержек, времени отклика
promql  
http_request_duration_seconds{quantile="0.99"}  
Пример в коде:
go  
requestSummary := prometheus.NewSummary(  
    prometheus.SummaryOpts{  
        Name:       "http_request_duration_seconds",  
        Help:       "Summary of response time for HTTP requests",  
        Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001},  
    })
Ставь 👍 и забирай 📚 Базу знаний

Бесплатный курс диджитал-дизайна На бесплатном курсе ты сможешь: ✨попробовать себя в диджитал-дизайне: афиши, сайты, UX/UI-ди
Бесплатный курс диджитал-дизайна На бесплатном курсе ты сможешь: ✨попробовать себя в диджитал-дизайне: афиши, сайты, UX/UI-дизайн (дизайн интерфейсов) ✨сделать 3 проекта для портфолио с обратной связью от наставника ✨понять, как устроена работа дизайнера ✨получить доступ к закрытой базе материалов и пошаговым инструкциям по профессии Попробовать #реклама 18+ study.logomachine.ru О рекламодателе

🤔 Как решать проблему, если ваш коллега удалил /usr/bin/chmod, и нет ОС-донора? - Если chmod удалён, изменить права файла невозможно стандартным способом. - Возможные варианты: - Найти бинарник chmod в другой директории (например, в /bin, /sbin, /usr/local/bin). - Использовать busybox chmod, если busybox установлен. - Если есть root-доступ — попробовать выполнить через python, perl или bash: - python -c 'import os; os.chmod("file", 0o755)' - Или через find с -exec (если chmod встроен туда). - В крайнем случае — смонтировать диск на другой системе (если физически возможно). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Пожизненный PRO доступ на easyoffer — по цене одного года! До 31 марта вы можете купить PRO навсегда. Запускаем акцию, чтобы
Пожизненный PRO доступ на easyoffer — по цене одного года! До 31 марта вы можете купить PRO навсегда. Запускаем акцию, чтобы ускорить развитие сервиса. Что добавим в PRO в ближайшие полгода: – Автоотклики – Агрегатор вакансий – Проход ATS без отсева – Уникальные резюме и письма под каждую вакансию Покупаешь один раз — пользуешься всю жизнь. 👉 Купить PRO со скидкой 70%: https://easyoffer.ru/pro

Новый смартфон vivo X300 FE ✅ Компактный размер ✅ Фокус на важном Купить #реклама market.yandex.ru О рекламодателе
Новый смартфон vivo X300 FE ✅ Компактный размер ✅ Фокус на важном Купить #реклама market.yandex.ru О рекламодателе

🤔 Как настраивать графики на панели графаны? Настройка графиков на панели Grafana позволяет визуализировать данные из подключенных источников в удобной и наглядной форме. 1⃣Создание новой панели (Panel) Откройте существующий дашборд или создайте новый: Перейдите в раздел Dashboards → New Dashboard. Нажмите Add new panel для добавления панели. 2⃣Выбор источника данных В интерфейсе панели в разделе Query выберите источник данных (Data Source) из выпадающего списка. Например, Prometheus, InfluxDB, MySQL, Elasticsearch. Подключение источника данных настраивается через Configuration → Data Sources. 3⃣Написание запроса для графика Каждый источник данных имеет свой язык запросов. Примеры: Prometheus
rate(http_requests_total[5m])
MySQL
SELECT time, value FROM metrics WHERE time > NOW() - INTERVAL 1 HOUR;
Elasticsearch: Используйте Lucene или Elasticsearch Query DSL. 4⃣Настройка визуализации В разделе Visualization выберите тип графика: Time series (график по времени). Bar chart (столбчатая диаграмма). Gauge (гейдж/индикатор). Table (таблица). Pie chart (круговая диаграмма, доступна через плагин). Настройте параметры визуализации: Линии, точки, области (lines, points, fill). Цвета линий, область графика. Подписи данных. 5⃣Форматирование данных В разделе Transform: Преобразуйте данные (группировка, сортировка, вычисления). Добавьте фильтры или агрегируйте данные. В разделе Overrides: Настройте специфичные параметры для отдельных рядов данных (цвета, форматы отображения). 6⃣Настройка временного интервала Выберите временной диапазон панели в правом верхнем углу дашборда: Например, последние 5 минут, 1 час, 24 часа. Установите параметры временного сдвига, если нужно отображать данные за конкретный период. 7⃣Настройка подписей и описаний В разделе Panel settings: Укажите название панели. Добавьте описание для контекста. 8⃣Сохранение дашборда Нажмите Save dashboard. Укажите имя дашборда и добавьте теги (опционально) для удобного поиска. 🚩Полезные фишки 🟠Панели Variables Позволяют создавать динамические фильтры. Например, добавьте переменную для выбора имени хоста:
label_values(node_cpu_seconds_total, instance)
🟠Плагины визуализации Установите дополнительные плагины из Grafana Marketplace (например, Pie Chart, Worldmap Panel). Ставь 👍 и забирай 📚 Базу знаний

🤔 Поды висят в Pending. В чём проблема? Основные причины: - Нет доступных нод, удовлетворяющих требованиям (resources, affinity, taints). - Недостаточно ресурсов (CPU или памяти). - Ошибки в StorageClass или PVC, если поду нужен диск. - Проблемы с сетью или CNI-плагином. - Неверные ограничения в nodeSelector, tolerations, affinity. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как сделать rebase на main branch? Выполнить rebase на main в Git означает "перенести" ваши изменения поверх актуального состояния основной ветки (main). 🟠Переключаемся на вашу текущую ветку Допустим, вы работаете в ветке feature-branch:
git checkout feature-branch
🟠Выполняем rebase на `main` Сначала убедимся, что main обновлена:
git checkout main
git pull origin main
Теперь выполняем сам rebase:
git checkout feature-branch
git rebase main
🟠Разрешение конфликтов (если есть) Если у вас есть конфликты, Git остановит процесс и попросит их решить. Откройте файлы с конфликтами, исправьте их. Добавьте исправленные файлы:
   git add <файл>
   
Продолжите rebase:
   git rebase --continue
   
🟠Обновление удалённого репозитория Если rebase прошёл успешно, вам нужно форсированно обновить удалённую ветку (так как история изменилась):
git push origin feature-branch --force
Ставь 👍 и забирай 📚 Базу знаний

Нужны актуальные вопросы с собеседований ? DevOps | Собеседования - твой незаменимый помощник в подготовке к собеседованиям.
Нужны актуальные вопросы с собеседований ? DevOps | Собеседования - твой незаменимый помощник в подготовке к собеседованиям. 🔊Обзоры собеседований c вилками на позиции: 🔵DevOps инженеров (Junior, Middle, Senior). 🔵С комментариями автора, как человека, который активно собеседует кандидатов. 🔊В ближайшее время: 🔵Записи реальных собеседований (не моки и открытые собеседования). 🔵Гайды и рекомендации по обходу частых ошибок при выступлении на техническом интервью. ➡️ Подписаться

Виртуальный сервер в аренду в Турции или России. Отказоустойчивый виртуальный облачный сервер на базе виртуализации VMWARE по
Виртуальный сервер в аренду в Турции или России. Отказоустойчивый виртуальный облачный сервер на базе виртуализации VMWARE по модели подписки. - Бесплатная миграция инфраструктуры в Турцию - Размещайте ресурсы в Турции или России и оплачивайте в рублях, турицких лирах или евро. - Храните резервные копии данных за рубежом для минимизации рисков - Продолжайте использовать импортное ПО, скачивайте обновления и патчи, общайтесь с техподдержкой - Доступность сервиса — от 99,982% SLA - Дата центры Tier III в России и Турции - Почасовой биллинг и постоплата Подключите услугу сегодня со скидкой 50% на инфраструктуру. Подать заявку #реклама cloud4y.ru О рекламодателе

🤔 Что такое OpsWorks? AWS OpsWorks — это сервис управления конфигурациями, который: - Поддерживает Chef и Puppet. - Используется для автоматизации серверной инфраструктуры. - Позволяет управлять слоями, версиями, скриптами и зависимостями. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Какие 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;
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что является критикал, а что нет? Это то, что влияет на работоспособность, доступность, безопасность или данные системы: - Падение сервиса, от которого зависят другие. - Потеря или повреждение данных. - Утечка доступа, компрометация ключей. - Сбой в CI/CD, блокирующий релиз. - Отказ прод-сервера, отказ балансировки, перегрузка очереди. Некритикал (non-critical) — сбои, которые не мешают работе системы в целом: - Ошибки в логах, не влияющие на функционал. - Временная недоступность второстепенного сервиса. - Глюки в UI без влияния на бекенд. - Тестовые среды, non-prod проблемы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

МТС Линк 2.0 — большое демо для ИТ-руководителей Как IT-руководителю разгрузить отдел, отказаться от "зоопарка" решений и пер
МТС Линк 2.0 — большое демо для ИТ-руководителей Как IT-руководителю разгрузить отдел, отказаться от "зоопарка" решений и перенести рабочие коммуникации, корпоративное обучение и онлайн-встречи в единое приложение? Регистрируйтесь на большое демо МТС Линк 2.0. Вы узнаете: — как обновились сервисы для онлайн-встреч и вебинаров — новые инструменты интерактива и вовлечения — как ускорить рутину с помощью встроенных таск-трекера, ИИ, чат-ботов и интеграций — как сервисы для обучения и рабочих коммуникаций эволюционировали в единое суперапп-решение. А еще в программе: • Планы на 2026, • FAQ-сессия с лидерами продуктов • Кейсы миграции действующих клиентов Кому полезно: CTO и IT-директорам, CEO, руководителям по ИБ, цифровизации и импортозамещению. Регистрируйтесь на демо. Увидимся 25 марта в 15:00 мск Зарегистрироваться #реклама 16+ mts-link.ru О рекламодателе