DevOps | Вопросы собесов
Відкрити в Telegram
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+2P7cpjeyfDVlZjcy Вакансии t.me/+i5KFWEWJ21hhYWEy
Показати більше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 год
Медийная реклама давно вышла за рамки имиджевых задач. Новое исследование Яндекса показало: в 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-дизайн (дизайн интерфейсов)
✨сделать 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 в ближайшие полгода:
– Автоотклики
– Агрегатор вакансий
– Проход ATS без отсева
– Уникальные резюме и письма под каждую вакансию
Покупаешь один раз — пользуешься всю жизнь.
👉 Купить PRO со скидкой 70%: https://easyoffer.ru/pro
Новый смартфон 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 | Собеседования - твой незаменимый помощник в подготовке к собеседованиям.
🔊Обзоры собеседований c вилками на позиции:
🔵DevOps инженеров (Junior, Middle, Senior).
🔵С комментариями автора, как человека, который активно собеседует кандидатов.
🔊В ближайшее время:
🔵Записи реальных собеседований (не моки и открытые собеседования).
🔵Гайды и рекомендации по обходу частых ошибок при выступлении на техническом интервью.
➡️ Подписаться
Виртуальный сервер в аренду в Турции или России.
Отказоустойчивый виртуальный облачный сервер на базе виртуализации 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. Вы узнаете:
— как обновились сервисы для онлайн-встреч и вебинаров
— новые инструменты интерактива и вовлечения
— как ускорить рутину с помощью встроенных таск-трекера, ИИ, чат-ботов и интеграций
— как сервисы для обучения и рабочих коммуникаций эволюционировали в единое суперапп-решение.
А еще в программе:
• Планы на 2026,
• FAQ-сессия с лидерами продуктов
• Кейсы миграции действующих клиентов
Кому полезно: CTO и IT-директорам, CEO, руководителям по ИБ, цифровизации и импортозамещению.
Регистрируйтесь на демо. Увидимся 25 марта в 15:00 мск
Зарегистрироваться
#реклама 16+
mts-link.ru
О рекламодателе
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
