fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

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

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

رفتن به کانال در Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

نمایش بیشتر
5 561
مشترکین
-324 ساعت
-127 روز
-230 روز
آرشیو پست ها
🤔 Может ли быть оверкоммит при виртуализации и при контейнеризации? Это выделение больше ресурсов, чем физически доступно. - При виртуализации – возможен в KVM, VMware, Hyper-V через memory ballooning, swap или динамическое выделение CPU. Это может привести к Out-Of-Memory (OOM) при нехватке физической памяти. - При контейнеризации – возможен, если cgroups и limits настроены неправильно. Например, если память не ограничена, контейнеры могут использовать больше RAM, чем доступно системе. Решение – настройка overcommit_memory=2, swapiness и OOM-killer для защиты системы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое нормализация баз данных? Нормализация баз данных - это процесс организации данных в базе данных для минимизации избыточности данных и обеспечения их целостности. Цель нормализации - структурировать таблицы таким образом, чтобы устранить аномалии обновления, вставки и удаления данных. Нормализация достигается путем разбиения больших таблиц на более мелкие, связанных между собой отношениями, что упрощает управление данными и делает их более логически связанными. 🚩Зачем нужна нормализация 🟠Устранение избыточности данных Нормализация позволяет минимизировать дублирование данных, что экономит пространство и упрощает управление базой данных. 🟠Обеспечение целостности данных Нормализация помогает поддерживать целостность данных, обеспечивая правильное и единообразное хранение данных. 🟠Упрощение структуры базы данных Разделение данных на логические таблицы делает структуру базы данных более понятной и удобной для использования. 🟠Избежание аномалий данных Нормализация предотвращает возникновение аномалий при обновлении, вставке и удалении данных. 🚩Основные формы нормализации 🟠Первая нормальная форма (1NF) Удаление повторяющихся групп в таблице. Каждый столбец должен содержать только атомарные (неделимые) значения. Все записи в таблице должны быть уникальными. 🟠Вторая нормальная форма (2NF) Таблица должна быть в 1NF. Удаление частичной функциональной зависимости: каждый неключевой атрибут должен быть полностью зависим от первичного ключа. 🟠Третья нормальная форма (3NF) Таблица должна быть в 2NF. Удаление транзитивной зависимости: все неключевые атрибуты должны быть напрямую зависимы от первичного ключа, а не от других неключевых атрибутов. 🟠Бойс-Кодд нормальная форма (BCNF) Усиление 3NF: каждая детерминанта должна быть кандидатом на ключ, что означает, что в любой нетривиальной функциональной зависимости X -> Y, X должно быть суперключом. 🟠Четвертая нормальная форма (4NF) Таблица должна быть в BCNF. Устранение многозначных зависимостей: таблица не должна содержать многозначных зависимостей, когда один атрибут зависит от нескольких значений другого атрибута. 🟠Пятая нормальная форма (5NF) Таблица должна быть в 4NF. Устранение соединительных зависимостей: данные должны быть разбиты так, чтобы каждая зависимость сохранялась. 🚩Примеры применения нормализации 🟠Первая нормальная форма Если у вас есть таблица с повторяющимися группами, такими как несколько телефонных номеров для одного клиента, вы создаете отдельную таблицу для телефонов и связываете ее с таблицей клиентов. 🟠Вторая нормальная форма Если у вас есть таблица заказов с колонками "номер заказа", "название товара" и "цена товара", вы можете создать отдельные таблицы для заказов и товаров, чтобы цена товара зависела только от товара, а не от комбинации заказа и товара. 🟠Третья нормальная форма Если у вас есть таблица сотрудников с колонками "идентификатор сотрудника", "название отдела" и "имя начальника отдела", вы можете создать отдельные таблицы для сотрудников и отделов, чтобы имя начальника отдела зависело только от отдела, а не от сотрудника. Ставь 👍 и забирай 📚 Базу знаний

Дарим подписку на Яндекс Музыку Ответьте на 1 вопрос и Яндекс Музыка ваша для вас и 3-х ваших близких. Кинопоиск и Яндекс Кни
Дарим подписку на Яндекс Музыку Ответьте на 1 вопрос и Яндекс Музыка ваша для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в подписке. Попробуйте бесплатно❤️ Попробовать #реклама 18+ music.yandex.ru О рекламодателе Реклама на Яндексе

🤔 Что такое контейнер в Docker? Контейнер — это изолированная среда, основанная на образе, которая содержит всё необходимое для запуска приложения: код, зависимости, системные библиотеки и конфигурации. Он использует ядро хост-системы, но обеспечивает файловую, сетевую и процессную изоляцию. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Когда вы создаёте файл какие права создаются по умолчанию? Права доступа по умолчанию зависят от базовых прав доступа и значения umask. Базовые права доступа — это значения, которые система использует для определения разрешений перед применением маски umask. 🟠Файлы: 666 (rw-rw-rw-) Это означает, что по умолчанию все пользователи могут читать и записывать в файл. 🟠Каталоги: 777 (rwxrwxrwx) Это означает, что по умолчанию все пользователи могут читать, записывать и выполнять (заходить) в каталог. 🚩Значение umask: 022 Это маска, которая определяет, какие права будут отключены при создании нового файла или каталога. Значение umask указывается в восьмеричной системе счисления. 🟠Создание файла Базовые права доступа: 666 Значение umask: 022 Окончательные права доступа: 666 - 022 = 644 (rw-r--r--) 🟠Создание каталога Базовые права доступа: 777 Значение umask: 022 Окончательные права доступа: 777 - 022 = 755 (rwxr-xr-x) 🚩Создание файла с umask 0022 1⃣Установка umask
umask 0022   
2⃣Создание файла
touch myfile   
3⃣Проверка прав доступа
ls -l myfile   
Вывод Права доступа: 644 (rw-r--r--)
-rw-r--r-- 1 user user 0 Jul 26 12:00 myfile    
🚩Создание каталога с umask 0027 1⃣Установка umask
umask 0027   
2⃣Создание каталога
mkdir mydir   
3⃣Проверка прав доступа
ls -ld mydir   
Вывод Права доступа: 750 (rwxr-x---)
drwxr-x--- 2 user user 4096 Jul 26 12:00 mydir     
🚩Дополнительные замечания 🟠umask в скриптах Вы можете установить umask в скрипте для задания прав доступа по умолчанию для всех создаваемых файлов и каталогов.
#!/bin/bash
umask 027
touch file1
mkdir dir1  
🟠Проверка прав доступа в разных ситуациях Для файлов: По умолчанию права доступа 666 минус umask. Для каталогов: По умолчанию права доступа 777 минус umask. Ставь 👍 и забирай 📚 Базу знаний

Wink AI Challenge — хакатон на стыке IT и кино. Участников ждут задачи, которые ускорят производство фильмов и сериалов за сч
Wink AI Challenge — хакатон на стыке IT и кино. Участников ждут задачи, которые ускорят производство фильмов и сериалов за счёт прикладных AI-решений. Призовой фонд соревнования — 1 125 000 рублей. Регистрация до 31 октября: https://cnrlink.com/winkaichallengeeasydevops Приглашаем на первый в России хакатон, посвящённый применению ИИ в кинопроизводстве, ML-инженеров, backend- и frontend-разработчиков, специалистов в DevOps, MLOps, а также инженеров в сфере мультимедиа. Вы сможете: 🔸 Разработать ML-модель, которую оценят и будут использовать продюсеры популярных российских фильмов и сериалов.   🔸 Решить кейсы, основанные на реальных задачах, с которыми продюсеры сталкиваются каждый день. 🔸 Использовать настоящие сценарии и видеоматериалы для анализа текстов, извлечения сущностей и генерации структуры съёмок. 🔸 Попрактиковаться в применении NLP, NER и мультимодальных данных в задачах кинопроизводства. Регистрируйтесь на Wink AI Challenge, чтобы разработать ИИ-ассистента, который станет частью производства фильмов и сериалов: https://cnrlink.com/winkaichallengeeasydevops

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

🤔 Как делали права доступа в GitHub для агента, который скачивал/разворачивал ECS? Используются: - GitHub Actions OIDC → IAM Role in AWS; - IAM Role for Service Account (IRSA); - IAM policies + ограниченные assume-role. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Где хранить приватный PGP ключ? Приватный PGP-ключ – это чувствительные данные, которые нельзя хранить в незащищенных местах. Потеря или компрометация ключа может привести к утечке зашифрованных данных. 🚩Лучшие способы хранения приватного PGP-ключа 🟠На аппаратном токене (YubiKey, Nitrokey, SmartCard) - Ключ никогда не покидает устройство. - Физическая защита от копирования. - Можно использовать для SSH, GPG, подписи кода. 🟠В защищенном хранилище (Bitwarden, 1Password, KeePassXC) - Хранилище зашифровано и требует пароль или биометрию. - Можно синхронизировать между устройствами без потери безопасности. - Экспортировать ключ в зашифрованный файл:
  gpg --export-secret-keys --armor > private-key.asc
🟠В зашифрованном виде на диске (LUKS, VeraCrypt, EncFS) - Физическая защита – даже если диск украдут, без пароля его не открыть. - Работает на Linux, Windows, MacOS. 1⃣Создать зашифрованный контейнер с LUKS (Linux):
   cryptsetup luksFormat /dev/sdX
   cryptsetup luksOpen /dev/sdX secure_disk
   mkfs.ext4 /dev/mapper/secure_disk
2⃣Хранить ключ внутри /mnt/secure_disk/private-key.asc. 🟠4. В HSM или облачном KMS (AWS KMS, HashiCorp Vault, Azure Key Vault) - Подходит для энтерпрайз-решений. - Аппаратное шифрование (HSM) делает взлом практически невозможным. - AWS KMS или Vault можно использовать для PGP.
vault kv put secret/pgp_key key="$(cat private-key.asc)"
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как получить body запрос? Если используется Flask, тело запроса можно получить с помощью request.get_json() — если это JSON-запрос, request.data — если нужны байты тела, или request.form — если данные отправлены в формате формы. Всё зависит от Content-Type запроса. Для чтения обычного тела можно также использовать request.get_data(). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как разделять элементы CI и CD в jenkins? В Jenkins CI (Continuous Integration) и CD (Continuous Delivery/Deployment) можно разделять на разные стадии (stages) или отдельные пайплайны. Это повышает гибкость, упрощает отладку и делает процесс масштабируемым. 🚩Разделение CI и CD внутри одного `Jenkinsfile` Можно использовать разные стадии (stages) в Jenkinsfile: Пример:
pipeline {
    agent any

    stages {
        stage('CI: Build & Test') {
            steps {
                echo "📦 Сборка и тестирование кода"
                sh 'mvn clean package'  // Сборка
                sh 'mvn test'           // Юнит-тесты
            }
        }

        stage('CI: Code Analysis') {
            steps {
                echo "🧐 Анализ кода (SonarQube)"
                sh 'sonar-scanner'
            }
        }

        stage('CD: Staging Deployment') {
            steps {
                echo "🚀 Деплой на стейджинг"
                sh 'kubectl apply -f k8s/staging.yaml'
            }
        }

        stage('CD: Production Deployment') {
            when {
                branch 'main'  // Только для main-ветки
            }
            steps {
                echo "🔥 Деплой в прод"
                sh 'kubectl apply -f k8s/production.yaml'
            }
        }
    }
}
🚩Отдельные пайплайны для CI и CD Можно разделить CI и CD на разные пайплайны, используя Jenkins Multibranch Pipeline. CI-пайплайн (Jenkinsfile.ci)
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
    }
    post {
        success {
            archiveArtifacts artifacts: '**/target/*.jar'
            build job: 'CD-Pipeline', wait: false  // Запуск CD после успешного CI
        }
    }
}
CD-пайплайн (Jenkinsfile.cd)
pipeline {
    agent any
    stages {
        stage('Deploy to Staging') {
            steps {
                sh 'kubectl apply -f k8s/staging.yaml'
            }
        }
        stage('Manual Approval') {
            steps {
                input message: "Deploy to Production?"
            }
        }
        stage('Deploy to Production') {
            steps {
                sh 'kubectl apply -f k8s/production.yaml'
            }
        }
    }
}
🚩Использование `Jenkins Shared Library` для разделения логики Если много пайплайнов, лучше вынести CI/CD-логику в общую библиотеку (vars/ci.groovy, vars/cd.groovy). Пример CI (vars/ci.groovy)
def call() {
    pipeline {
        agent any
        stages {
            stage('Build & Test') {
                steps {
                    sh 'mvn clean package && mvn test'
                }
            }
        }
    }
}
Пример CD (vars/cd.groovy)
def call() {
    pipeline {
        agent any
        stages {
            stage('Deploy') {
                steps {
                    sh 'kubectl apply -f k8s/production.yaml'
                }
            }
        }
    }
}
Jenkinsfile с использованием библиотек
@Library('my-shared-library') _

ci()  // Запуск CI
cd()  // Запуск CD
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как будут называться поды в ReplicaSet и в StatefulSet? Поды ReplicaSet получают случайное имя с хешем — например, myapp-6c79f8fd58-k9xpf. А поды StatefulSet получают предсказуемые имена — например, db-0, db-1, db-2, где номер отражает порядок. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое container network module в докере? Это архитектурная модель, разработанная Docker для управления сетями контейнеров. Она описывает, как создаются, управляются и взаимодействуют сетевые компоненты в Docker-контейнерах. CNM служит основой для организации сетей Docker и позволяет подключать контейнеры к различным сетевым средам, обеспечивая гибкость, масштабируемость и безопасность. 🚩Основные компоненты CNM 🟠Sandbox Это изолированная среда, где настраиваются сетевые интерфейсы контейнера, такие как IP-адреса, маршруты и DNS. Что включает: veth-пара интерфейсов (виртуальный Ethernet): соединяет контейнер с внешней сетью. Конфигурации маршрутов и сетевых правил. 🟠Endpoint Точка подключения контейнера к сети. Функции: Обеспечивает контейнеру связь с другими контейнерами или внешними сетями. Соединяет Sandbox с Network. 🟠Network Логическая сущность, объединяющая Endpoints для обеспечения взаимодействия контейнеров. Типы сетей в Docker: bridge: Локальная сеть, позволяющая контейнерам взаимодействовать на одном хосте. host: Контейнеры используют сетевой стек хоста без изоляции. none: Сеть отключена; контейнер полностью изолирован. overlay: Распределенная сеть для связи контейнеров на разных хостах. macvlan: Контейнеры получают прямой доступ к физической сети. 🚩Как это работает в Docker Создается Sandbox, где настраиваются сетевые параметры контейнера. Создается Endpoint, который подключает контейнер к выбранной сети. Endpoint добавляется в Network, что позволяет контейнеру взаимодействовать с другими узлами. 🚩Плюсы ➕Гибкость Легко подключать контейнеры к различным типам сетей. ➕Изоляция Обеспечивает безопасность, изолируя сетевые пространства контейнеров. ➕Расширяемость CNM поддерживает сторонние плагины для интеграции с другими сетевыми решениями (например, Calico, Flannel). ➕Управляемость Позволяет контролировать настройки сети через команды Docker. 🚩Пример создания сети 1⃣Создание сети
docker network create my_bridge
2⃣Подключение контейнера к сети
docker run --network my_bridge -d nginx
Ставь 👍 и забирай 📚 Базу знаний

Узнайте подробнее о программе DBA для руководителей На презентации расскажем: - о том, какие возможности создает обучение на программе DBA для бизнес-лидеров, - об отличии программы DBA от зарубежной степени PhD и от российской степени кандидата наук, - о правилах и условиях зачисления на программу DBA, Вы сможете лично познакомиться с руководителями, преподавателями программы DBA, задать вопросы слушателям. Участники презентации в кампусе бизнес-школы получат уникальную возможность принять участие в дискуссии «Стратегическая гибкость в быстроменяющемся мире» от Николая Соустина, преподавателя маркетингового блока программы DBA. Презентация программы пройдет 15 октября 2025 года (среда) в 19:00—20:30 Мск. Участие бесплатное. Очно/онлайн. Регистрируйтесь, ждем Вас! Узнать больше #реклама 16+ mba.hse.ru О рекламодателе

🤔 В каком файле по умолчанию хранится информация об ОС и версии в Linux? Чаще всего: - /etc/os-release — стандартный файл с названием и версией дистрибутива. - Иногда: /etc/issue, /etc/lsb-release (в зависимости от дистрибутива). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое IaC? Это практика управления и настройки IT-инфраструктуры (серверов, сетей, баз данных и других ресурсов) с помощью кода, а не вручную через консоли или графические интерфейсы. 🚩Зачем нужен IaC? 🟠Автоматизация вместо ручной настройки серверов вы пишете код, который делает это автоматически. 🟠Консистентность одинаковая среда на всех серверах, исключение человеческих ошибок. 🟠Быстрое развертывание развернуть инфраструктуру можно за минуты. 🟠Легкость в откате если что-то пошло не так, можно быстро вернуть предыдущее состояние. 🟠Масштабируемость легко добавить новые серверы или ресурсы при увеличении нагрузки. 🚩Как работает IaC? С помощью IaC вы описываете всю инфраструктуру в коде (например, в YAML, JSON, HCL и др.), а затем используете инструменты для автоматического развертывания.
provider "aws" {
  region = "us-east-1"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}
🚩Основные инструменты IaC 🟠Terraform универсальный инструмент для облаков (AWS, Azure, GCP и др.). 🟠Ansible удобен для настройки серверов (конфигурации ПО). 🟠Puppet / Chef похожи на Ansible, но требуют агента на серверах. 🟠CloudFormation инструмент от AWS для управления ресурсами. Ставь 👍 и забирай 📚 Базу знаний

Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие п
Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие повестки и потерянные договоренности мешают нормально работать? Команда МТС Линк собрала на 37 страницах полезные материалы, чек-листы и кейсы, которые помогают компаниям проводить эффективные совещания в онлайне с помощью сервиса Встречи. Из методички узнаете: - Как создать постоянную ссылку и подключаться на встречи в 2 клика, - Как делать заметки и работать с файлами, не переживая за качество связи и безопасность данных. - Как облегчает жизнь ИИ, который расшифровывает созвоны в текст и автоматически отправляет расшифровку на почту. Еще в методичке описаны 7 способов оценки текущей эффективности ваших онлайн-встреч. Получить гайд можно бесплатно на сайте. Скачать #реклама 16+ mts-link.ru О рекламодателе

🤔 Чем отличается CD и CD (непрерывная доставка)? Это два смысла одного сокращения: - Continuous Delivery (непрерывная доставка) — код всегда готов к деплою, но деплой в прод по кнопке. - Continuous Deployment (непрерывное развёртывание) — код автоматически деплоится в прод после прохождения всех тестов. Delivery — ручной шаг, Deployment — полностью автоматизированный. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как заставить процесс отпустить файловые дескрипторы? Если процесс удерживает файловые дескрипторы и вам нужно их освободить, то есть несколько способов это сделать. 🟠Завершение процесса Самый простой способ — завершить процесс, который удерживает файловые дескрипторы.
kill <PID>
или принудительно
kill -9 <PID>
Чтобы найти процессы, удерживающие файлы
lsof | grep <filename>
или
fuser <filename>
🟠Закрытие дескриптора вручную Если вы хотите закрыть файловый дескриптор, не завершая процесс, можно использовать lsof и /proc 1⃣Найдите открытые дескрипторы процесса:
ls -l /proc/<PID>/fd/
2⃣Закройте конкретный дескриптор:
exec 3>&-
🟠Использование `gdb` для вмешательства в процесс Если процесс нельзя перезапустить, но вы имеете к нему доступ, можно закрыть дескриптор через gdb:
gdb -p <PID>
(gdb) call close(<FD>)
(gdb) detach
(gdb) quit
🟠Перемонтирование файловой системы Если файл удален, но все еще удерживается процессом, можно принудительно перемонтировать файловую систему:
mount -o remount /
Или использовать lsof для очистки удаленных файлов
lsof | grep deleted
🟠Использование `systemctl restart` для сервисов Если файлы удерживаются службой (например, Nginx, Apache, MySQL), можно перезапустить службу
systemctl restart <service>
или
service <service> restart
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как можно визуализировать логи? Визуализация логов обычно делается с использованием систем централизованного логирования. Наиболее популярные варианты: - ELK (Elasticsearch + Logstash + Kibana) — мощный стек, Kibana предоставляет гибкий интерфейс для построения графиков, поиска по логам, дашбордов. - Grafana Loki — лёгкая альтернатива ELK, лог-агрегатор, работает с Promtail и отображает логи через интерфейс Grafana. - Fluentd / Fluent Bit + Grafana — логгеры, отправляющие данные в различные хранилища (включая Elasticsearch). - Graylog — альтернатива ELK, заточенная под визуализацию и безопасность. - Sentry / Datadog / Splunk — облачные сервисы для логирования и мониторинга. Логи с подов в Kubernetes можно собирать через sidecar, DaemonSet, или использовать Fluent Bit/Fluentd с отправкой в централизованное хранилище. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний