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

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

前往频道在 Telegram

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

显示更多
5 544
订阅者
-624 小时
+27
+3730
帖子存档
🤔 Что такое контекст? Контекст в Kubernetes — это комбинация пользователя, кластера и пространства имён (namespace) в kubeconfig. Он определяет, с каким кластером и от имени какого пользователя вы работаете в текущий момент. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Промокоды на сервисы Яндекса для вашего бизнеса Используйте как корпоративные подарки для сотрудников, партнеров и клиентов и
Промокоды на сервисы Яндекса для вашего бизнеса Используйте как корпоративные подарки для сотрудников, партнеров и клиентов или как призы в маркетинговых акциях. Дарите промокоды на Маркет, Плюс, Такси и другие сервисы Яндекса - повышайте лояльность и делайте полезные подарки. Никаких комиссий. Узнать больше #реклама business.go.yandex О рекламодателе Реклама на Яндексе

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

AITO SERES M5 Гибрид AITO SERES - новый уровень комфорта и свободы передвижения. Мощь и технологичность электрокара без привя
AITO SERES M5 Гибрид AITO SERES - новый уровень комфорта и свободы передвижения. Мощь и технологичность электрокара без привязки к зарядным станциям. Гарантия до 4-х лет Узнать больше #реклама seres.ru О рекламодателе

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

Дизайн в FIGMA с нуля. Бесплатный курс + портфолио Онлайн-программа с наставником и чатом. Дизайн от профессионалов. Доступ 0 руб. Узнать больше #реклама 16+ yudaevschool24.online О рекламодателе

🤔 В каких случаях удобно использовать kubernetes, а в каких docker-compose? Оба инструмента управляют контейнерами, но предназначены для разных сценариев. 🚩Когда использовать Docker Compose? Docker Compose удобен для локальной разработки и небольших проектов. Разворачиваете приложение на одном сервере. Нужно быстро поднять несколько сервисов (БД, кэш, бекенд, фронт). Разработка ведется в команде, и среда должна быть одинаковой. Нет необходимости в сложном оркестрационном механизме (авто-масштабирование, балансировка нагрузки). Файл docker-compose.yml для запуска бэкенда и базы данных локально:
version: '3'
services:
  app:
    image: my-backend:latest
    ports:
      - "5000:5000"
    depends_on:
      - db
  db:
    image: postgres:15
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
Команда запуска:
docker-compose up -d
🚩Когда использовать Kubernetes? Kubernetes удобен для продакшн-окружений, облаков и сложных приложений. Нужно масштабирование (автоматическое увеличение/уменьшение количества контейнеров). Требуется автоисправление (если контейнер падает, он перезапускается). Используется балансировка нагрузки (Kubernetes распределяет трафик между подами). Нужна развертка в кластере (несколько машин, облако). Требуется обновление без простоя (rolling updates).
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-backend:latest
        ports:
        - containerPort: 5000
Разворачиваем в Kubernetes:
kubectl apply -f my-app.yaml
Ставь 👍 и забирай 📚 Базу знаний

Как внедрить КЭДО с нуля или перейти на новую систему? КЭДО становится стандартом ведения документооборота. Но внедрение или
Как внедрить КЭДО с нуля или перейти на новую систему? КЭДО становится стандартом ведения документооборота. Но внедрение или переход между системами часто вызывает вопросы: с чего начать, как выбрать провайдера, какие риски упустить? 👌 Мы подготовили подробный гайд: ✅ Какие этапы внедрения КЭДО нельзя игнорировать; ✅ На что обратить внимание при смене вендора; ✅ Как минимизировать простои и потери данных. Заберите бесплатно! Скачать #реклама 16+ hrtek.vk.com О рекламодателе

🤔 Что ожидают от мидла? - Самостоятельность в задачах; - Знание инструментов и шаблонов; - Участие в код-ревью; - Способность анализировать и предлагать улучшения; - Командная работа и ответственность за результат. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

REKONFA Live 6 ноября приглашаем всех, кто имеет отношение к маркетингу и рекламным технологиям, обсудить рынок, тренды, вызо
REKONFA Live 6 ноября приглашаем всех, кто имеет отношение к маркетингу и рекламным технологиям, обсудить рынок, тренды, вызовы и их решения. С докладами на актуальные темы выступят лидеры индустрии и медийные спикеры. Принять участие можно офлайн и онлайн. Мероприятие бесплатное, нужно только зарегистрироваться. Зарегистрироваться #реклама 18+ ya.rekonfa.ru О рекламодателе

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

Приглашаем на Yandex Neuro Scale В этом году главная конференция Yandex Cloud объединит разработчиков, архитекторов, инженеро
Приглашаем на Yandex Neuro Scale В этом году главная конференция Yandex Cloud объединит разработчиков, архитекторов, инженеров и IT-руководителей, чтобы обменяться опытом и увидеть, как работают технологии, которые меняют индустрии. 7 тематических треков, 50+ докладов, реальные бизнес-кейсы и нетворкинг! ✨Участие бесплатное, нужно только зарегистрироваться!✨ Зарегистрироваться #реклама 16+ scale.yandex.cloud О рекламодателе Реклама на Яндексе

🤔 Какие DNS records есть? Основные: - A — IP-адрес (IPv4); - AAAA — IP-адрес (IPv6); - CNAME — псевдоним (редирект на другой домен); - MX — почтовый сервер; - TXT — текстовая информация (часто SPF, DKIM); - NS — сервера имен; - SRV — служебные записи для сервисов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Можно ли на лету изменить настройки dns контейнре через cli? Нет, нельзя изменить DNS у уже запущенного контейнера напрямую через CLI. Но есть обходные способы! 🚩Остановка и перезапуск контейнера с новыми DNS Самый надежный способ — перезапустить контейнер с нужными DNS-серверами
docker run --dns 8.8.8.8 --dns 8.8.4.4 -d my_container
Или задать DNS через docker network
docker network create mynet --dns=1.1.1.1
docker run --net=mynet -d my_container
🚩Изменение `/etc/resolv.conf` внутри контейнера (может сработать) Можно изменить DNS вручную внутри работающего контейнера
docker exec -it my_container sh
echo "nameserver 1.1.1.1" > /etc/resolv.conf
🚩Использование `network connect` (только для user-defined сетей) Можно подключить контейнер к другой сети с нужными DNS:
docker network create mynewnet --dns=8.8.8.8
docker network connect mynewnet my_container
🚩Изменение настроек `systemd-resolved` (для контейнеров с `host`-сетью) Если контейнер использует сеть хоста (--network host), можно поменять DNS на хосте:
resolvectl dns eth0 8.8.8.8
Ставь 👍 и забирай 📚 Базу знаний

Solaris KRX у оф. дилера с первоначальным взносом от 0% Хэтчбек Solaris KRX - комфортный автомобиль со встроенной телематикой
Solaris KRX у оф. дилера с первоначальным взносом от 0% Хэтчбек Solaris KRX - комфортный автомобиль со встроенной телематикой и автозапуском. В кредит от производителя на выгодных условиях! ✨Низкая процентная ставка ✨Срок от 1 до 8 лет ✨Оформление без визита в банк Успейте приобрести Solaris KRX до повышения цен. Бронируйте сейчас! Получить предложение Изучите все условия кредита (займа) на сайте в соответствующем разделе. Оценивайте свои финансовые возможности и риски. Финансовые услуги оказывает: ПАО "Совкомбанк", АО "Альфа-Банк". #реклама solaris.auto О рекламодателе

🤔 Из чего состоит control plane в Kubernetes? - Control Plane включает: - kube-apiserver — входная точка API. - etcd — хранилище состояния кластера. - controller-manager — следит за desired state. - scheduler — определяет, где запускать поды. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как AWS работает с DevOps? AWS предоставляет облачные сервисы для автоматизации CI/CD, управления инфраструктурой, мониторинга и безопасности. 🚩CI/CD (Непрерывная интеграция и развертывание) AWS предлагает инструменты для автоматической сборки, тестирования и деплоя. AWS CodePipeline – автоматизация CI/CD-процессов AWS CodeBuild – сборка и тестирование кода AWS CodeDeploy – автоматический деплой в EC2, ECS, Lambda AWS CodeCommit – репозиторий Git в AWS Пример CI/CD-пайплайна в AWS CodePipeline 1. CodeCommit получает новый коммит 2. CodeBuild собирает и тестирует код 3. CodeDeploy разворачивает приложение на EC2 🚩Управление инфраструктурой (IaC) В DevOps важно автоматически создавать и управлять ресурсами AWS. Terraform – создает инфраструктуру по коду AWS CloudFormation – аналог Terraform от AWS AWS CDK (Cloud Development Kit) – IaC на Python/TypeScript
hcl  
resource "aws_instance" "web" {  
  ami           = "ami-123456"  
  instance_type = "t2.micro"  
}  
🚩Контейнеризация и оркестрация AWS поддерживает управление контейнерами и Kubernetes. Amazon ECS (Elastic Container Service) – контейнеры без Kubernetes Amazon EKS (Elastic Kubernetes Service) – управляемый Kubernetes AWS Fargate – запуск контейнеров без управления серверами Пример развертывания контейнера в AWS ECS: 1. Собираем Docker-образ 2. Загружаем его в Amazon ECR (Elastic Container Registry) 3. ECS автоматически масштабирует и управляет контейнерами 🚩Мониторинг и логирование Amazon CloudWatch – сбор метрик и логов AWS X-Ray – трассировка запросов в микросервисах AWS CloudTrail – аудит действий в AWS Пример мониторинга EC2 1. CloudWatch собирает метрики CPU, RAM 2. Настраиваем авто-масштабирование на основе этих метрик 3. CloudTrail записывает все изменения инфраструктуры 🚩Безопасность и управление доступом AWS IAM (Identity and Access Management) – контроль прав AWS Secrets Manager – управление паролями и API-ключами AWS KMS (Key Management Service) – шифрование данных
hcl  
resource "aws_iam_role" "s3_read" {  
  name = "s3-read-only"  
  assume_role_policy = jsonencode({  
    Statement = [{  
      Effect = "Allow"  
      Action = "s3:GetObject"  
      Resource = "arn:aws:s3:::my-bucket/*"  
    }]  
  })  
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое Redis и для чего он нужен? Redis — это in-memory хранилище данных типа ключ-значение. Используется как: - кэш, - брокер сообщений (Pub/Sub), - счётчики, - очереди, - сессионное хранилище, - блокировки и семафоры. Он хранит данные в памяти, с возможностью сброса на диск (RDB, AOF), что делает его молниеносным. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что нужно сделать чтобы после того как вы создали репозиторий с этим репозиторием можно было работать? После создания нового репозитория, будь то локальный или удаленный, необходимо выполнить несколько шагов для начала полноценной работы с ним. Эти шаги включают инициализацию репозитория, настройку удаленного репозитория, добавление файлов, коммит и настройку синхронизации с удаленным репозиторием. 🚩Основные шаги 1⃣Создание нового репозитория Перейдите на GitHub и войдите в свой аккаунт. Нажмите на кнопку "New" для создания нового репозитория. Введите имя репозитория, описание (опционально), выберите публичный или приватный доступ, инициализируйте с README (если нужно). Нажмите "Create repository". 2⃣Клонирование или инициализация репозитория Если репозиторий уже существует на GitHub
git clone https://github.com/yourusername/your-repository.git
cd your-repository
Если вы создаете новый локальный репозиторий
mkdir your-repository
cd your-repository
git init
3⃣Добавление файлов и коммит начального состояния Создайте или добавьте файлы
echo "# Your Repository" > README.md   
Добавьте файлы в индекс
git add README.md   
Сделайте первый коммит
git commit -m "Initial commit"   
4⃣Настройка удаленного репозитория Если вы инициализировали локальный репозиторий, вам нужно настроить удаленный репозиторий.
git remote add origin https://github.com/yourusername/your-repository.git
5⃣Пуш изменений в удаленный репозиторий Отправьте ваши изменения в удаленный репозиторий
git push -u origin master
🚩Дополнительные шаги для совместной работы 1⃣Создание веток Для разработки новых функций или исправлений багов рекомендуется создавать отдельные ветки
git checkout -b feature-branch   
2⃣Создание Pull Request (PR) После завершения работы в ветке создайте Pull Request на GitHub для обзора и слияния. 3⃣Настройка файлов `.gitignore` Добавьте файл .gitignore для исключения ненужных файлов из коммитов.
echo "node_modules/" > .gitignore
git add .gitignore
git commit -m "Add .gitignore"
   
4⃣Настройка CI/CD Подключите сервисы Continuous Integration/Continuous Deployment, такие как GitHub Actions, Travis CI или Jenkins, для автоматизации тестирования и развертывания.
# Пример файла .github/workflows/ci.yml для GitHub Actions
name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'
      - run: npm install
      - run: npm test
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что известно про эластик-стэк (ELK/EFK)? ELK (Elasticsearch + Logstash + Kibana) и EFK (Elasticsearch + Fluentd + Kibana) — это стэки для сбора, хранения и визуализации логов. Logstash или Fluentd обрабатывают и отправляют логи в Elasticsearch, где они индексируются и хранятся. Kibana предоставляет UI для поиска, анализа и дашбордов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний