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

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

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

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

نمایش بیشتر
5 547
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+107 روز
+4530 روز
آرشیو پست ها
Квартиры в Новостройке СПб. Рассрочка от застройщика Жилой комплекс "Квартал Заречье" Санкт-Петербург. Колпино. 4 девятиэтажных жилых корпуса 8-этажный крытый гараж на 496 парковочных мест В живописном месте у реки Ижора. На первых этажах будут размещены магазины, кофейни, поликлиника и зона коворкинга. Перейти на сайт Проектная декларация на сайте https://наш.дом.рф/. Застройщик: ООО "СЗ "ЗАГОРОДНАЯ, 71". Финансовые услуги оказывает: ПАО Сбербанк. #реклама квартал-заречье.рф О рекламодателе

🤔 Чем отличается headless-сервис от любого другого? Headless-сервис (ClusterIP: None) не использует прокси и балансировку, а напрямую возвращает IP-адреса всех подов. Используется для: - stateful-приложений (например, БД кластеров); - сервисов, которым нужно напрямую знать об остальных нодах. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие есть три вида монтирования в докере? В Docker есть три типа монтирования данных в контейнеры: Volumes (Тома) – рекомендуемый способ хранения данных Bind Mounts (Привязанные тома) – монтирование локальных файлов/папок Tmpfs (Временное хранилище в RAM) – для быстрого доступа без записи на диск 🚩Volumes (Тома) – лучший вариант хранения данных Данные хранятся внутри Docker (/var/lib/docker/volumes) Можно использовать в нескольких контейнерах Не зависят от файловой системы хоста
sh  
docker volume create mydata  
docker run -d -v mydata:/app/data --name mycontainer ubuntu  
Удаление тома (только если он не используется)
sh  
docker volume rm mydata  
🚩Bind Mounts (Привязанные тома) – монтирование папок с хоста Монтирует директорию с хоста в контейнер Изменения сразу видны на хосте Зависит от структуры файлов на хосте
sh  
docker run -d -v /home/user/logs:/app/logs --name mycontainer ubuntu  
🚩Tmpfs (Временное хранилище в RAM) – быстрый, но не сохраняющийся вариант Хранит данные в оперативной памяти (RAM) Очень быстрое чтение/запись Пропадает при перезапуске контейнера Пример: создать tmpfs-монтирование для /app/cache
sh  
docker run -d --tmpfs /app/cache:size=100m --name mycontainer ubuntu
Ставь 👍 и забирай 📚 Базу знаний

🤔 Если запустить любой плейбук через консоль, какая там появится первая надпись? Обычно первой появляется надпись: PLAY [название play] — это начало выполнения плейбука и определение группы хостов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Что поднимали на Terraform? Terraform — IaC-инструмент от HashiCorp: - Использовали для: - Развёртывания кластеров EKS. - Конфигурации VPC, IAM, S3, RDS. - Подключения ресурсов между регионами. Ценность — модульность, контроль и версионирование. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Динамическая маршрутизация и разные протоколы динамической маршрутизации, ebgp ibgp, константы bgp. На чём сейчас принято строить bgp-пиринги? 🟠Динамическая маршрутизация Динамическая маршрутизация – это механизм автоматического выбора маршрута на основе изменяющихся сетевых условий. В отличие от статической маршрутизации, она автоматически адаптируется к изменениям в сети. Протоколы динамической маршрутизации делятся на: Протоколы внутреннего шлюза (IGP – Interior Gateway Protocol) RIP (Routing Information Protocol) – устаревший, работает на алгоритме дистанционно-векторного маршрутизации. OSPF (Open Shortest Path First) – основан на SPF (Dijkstra) и работает по принципу линк-стейт. IS-IS (Intermediate System to Intermediate System) – аналог OSPF, но чаще используется в провайдерских сетях. Протоколы внешнего шлюза (EGP – Exterior Gateway Protocol) BGP (Border Gateway Protocol) – основной протокол маршрутизации в интернете. 🟠BGP: Основной протокол глобальной маршрутизации eBGP vs iBGP BGP бывает двух типов: eBGP (External BGP) – маршрутизация между автономными системами (AS). Используется для обмена маршрутами между разными организациями или провайдерами. iBGP (Internal BGP) – работает внутри одной AS, передавая BGP-маршруты между роутерами этой сети. 🚩Константы BGP (Attributes) BGP использует атрибуты маршрута для выбора наилучшего пути. Основные атрибуты: 🟠Local Preference приоритетный маршрут внутри AS (чем выше, тем лучше). 🟠AS Path список AS, через которые проходит маршрут (короче – лучше). 🟠MED (Multi-Exit Discriminator) предпочтение одного из выходов из AS (меньше – лучше). 🟠Origin источник маршрута (IGP < EGP < Incomplete). 🟠Community метки маршрутов для упрощения политики маршрутизации. 🟠Weight (Cisco-only) локальный параметр (чем больше, тем лучше). 🚩На чём сейчас строят BGP-пиринги? BGP можно развернуть на разных платформах, включая аппаратные и программные решения: 🟠Оборудование (Аппаратные маршрутизаторы) Cisco (IOS, IOS-XE, IOS-XR, NX-OS) – классика для крупных сетей. Juniper (Junos OS) – мощное решение для дата-центров и операторов. Arista (EOS) – высокопроизводительные маршрутизаторы для ЦОДов. Huawei (VRP) – популярно в крупных корпоративных сетях. 🟠Программные решения (SOFT-router) FRRouting (FRR) – open-source, поддерживает BGP, OSPF, IS-IS. BIRD – лёгкий BGP-демон для Linux, используется в IX (Internet Exchange). GoBGP – BGP-демон, написанный на Go. VyOS – Linux-маршрутизатор с поддержкой BGP. MikroTik (RouterOS) – бюджетное, но мощное решение. Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Как работает DRCP? DRCP (Database Resident Connection Pooling) — это механизм в Oracle Database, который уменьшает нагрузку на базу данных за счет повторного использования соединений между клиентами и сервером. DRCP полезен для сред с большим количеством краткоживущих соединений, например, веб-приложений. 🚩Почему нужен DRCP? Экономит ресурсы – вместо создания новых соединений база использует пул уже существующих. Снижает нагрузку на сервер – меньше процессов, меньше потребления памяти и CPU. Ускоряет работу – повторное использование соединений сокращает время на установку нового подключения. Идеально для многопоточных сред – например, PHP-приложений, где соединения краткосрочные. 🚩Как DRCP работает? 🟠Клиент делает запрос на подключение Клиент (например, веб-приложение) отправляет запрос на подключение к базе. Вместо создания нового процесса сервер ищет свободное соединение в пуле DRCP. 🟠DRCP предоставляет соединение Если в пуле есть свободное соединение, оно передается клиенту. Если нет – создается новое (если не превышен лимит). 🟠Клиент выполняет SQL-запрос После завершения работы клиент "освобождает" соединение. Вместо закрытия соединение возвращается в пул, чтобы быть использованным другим клиентом. 🟠Диспетчер соединений управляет пулом Connection Broker (диспетчер соединений) следит за балансировкой нагрузки и распределяет соединения между клиентами. 🚩Как включить DRCP? Включаем DRCP на сервере
EXEC DBMS_CONNECTION_POOL.START_POOL();
Проверяем статус пула
SELECT * FROM V$CPOOL_STATS;
Подключаем клиента с использованием DRCP
CONNECT user/password@database:pooled
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Что используется внутри докер контейнера? Внутри Docker-контейнера используется изолированная среда, которая позволяет запускать приложения в предсказуемом и воспроизводимом окружении. Контейнер предоставляет доступ к базовой файловой системе, процессам, сетевым интерфейсам и другим ресурсам, изолированным от хоста и других контейнеров. Давайте разберем основные компоненты, которые используются внутри Docker-контейнера. 🟠Файловая система Каждый контейнер имеет собственную файловую систему, основанную на многослойной архитектуре. Это изолированное пространство предоставляет доступ к: Образу Docker (image): Базовый набор файлов, определенных в Docker Image. Copy-on-write (COW): Контейнеры используют copy-on-write слой для изменений. Базовый образ остается неизменным, а любые изменения записываются в слой контейнера. Точки монтирования: Возможность монтировать директории хоста или сетевые тома (volumes) для сохранения данных.
docker run -v /host/path:/container/path nginx
🟠Процессы В контейнере запускаются процессы, как в обычной операционной системе. Главный процесс контейнера (например, команда из CMD или ENTRYPOINT) работает с PID 1 и отвечает за выполнение приложения. Процессы внутри контейнера изолированы от процессов на хосте благодаря использованию Linux namespaces.
docker exec <container_id> ps aux
🟠Сетевые интерфейсы Docker-контейнеры используют виртуальные сетевые интерфейсы для связи: veth-pair: Каждый контейнер имеет виртуальный интерфейс, подключенный к мосту (docker0 по умолчанию). Типы сетей: bridge (по умолчанию): Локальная сеть между контейнерами. host: Контейнер использует сетевой стек хоста. none: Полностью изолированный контейнер без сети. overlay: Сеть для соединения контейнеров на разных хостах.
docker network create my_network
docker run --network my_network nginx
🟠Ресурсы хоста (CPU, память, диски) Контейнеры используют ресурсы хоста, но их потребление можно ограничить: CPU: Контейнер может использовать определенную долю процессора.
docker run --cpus="2" nginx
Память: Лимит на использование оперативной памяти.
docker run -m 512m nginx
I/O (диск): Возможность ограничения операций чтения/записи.
docker run --device-read-bps=/dev/sda:1mb nginx
🟠Изоляция (Namespaces и Control Groups) Docker использует технологии изоляции, встроенные в ядро Linux: Namespaces: Обеспечивают изоляцию пространства имен (PID, сети, файловой системы и т.д.). Control Groups (cgroups): Управляют использованием ресурсов (CPU, RAM, I/O).
lsns
🟠Среда выполнения (Runtime) Docker-контейнеры работают благодаря среде выполнения, например: runc: Легковесное средство выполнения контейнеров, совместимое со стандартом OCI. containerd: Менеджер для запуска контейнеров, который Docker использует для взаимодействия с низкоуровневыми компонентами. 🟠Настройки и переменные среды Контейнер может быть настроен с использованием: Переменных среды: Устанавливаются через ENV в Dockerfile или с помощью флага -e.
docker run -e ENV_VAR=value nginx
Аргументов при сборке: Используются в Dockerfile через ARG.
ARG BUILD_VERSION
🟠Приложение или служба Главное, что работает внутри контейнера, — это само приложение: Например, веб-сервер (Nginx, Apache) или база данных (MySQL, PostgreSQL). Контейнеры упрощают запуск приложений с предсказуемыми зависимостями. 🟠Логи и мониторинг Docker предоставляет возможность просматривать логи контейнера и собирать метрики Логи
docker logs <container_id>
Информация о контейнере
docker inspect <container_id>
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Сколько часов живёт один вал Prometheus CI/CD? Файлы WAL (write-ahead log) в Prometheus обычно хранятся 2 часа по умолчанию, после чего происходит компрессия данных в блоки. Этот параметр можно настроить через флаг запуска --storage.tsdb.min-block-duration. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Как осуществляли деплой на kubernetes? Развертывание приложения на Kubernetes включает несколько шагов, таких как подготовка конфигурационных файлов, настройка окружения и выполнение команд для развертывания. 🚩Шаги для деплоя 1⃣Подготовка Docker-образа Первый шаг — подготовить Docker-образ приложения. Пример Dockerfile
# Используем официальный образ Python
FROM python:3.8-slim

# Устанавливаем рабочую директорию
WORKDIR /app

# Копируем все файлы в контейнер
COPY . /app

# Устанавливаем зависимости
RUN pip install --no-cache-dir -r requirements.txt

# Определяем команду запуска
CMD ["python", "app.py"]
Создание и загрузка Docker-образа в Docker Hub
docker build -t username/myapp:latest .
docker push username/myapp:latest
2⃣Создание конфигурационных файлов Kubernetes Для развертывания приложения на Kubernetes, необходимо создать манифесты для деплоя (Deployment), сервиса (Service) и других необходимых ресурсов. Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: username/myapp:latest
        ports:
        - containerPort: 80
Service
apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  type: LoadBalancer
  selector:
    app: myapp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
3⃣Применение конфигураций Применение манифестов для создания ресурсов в кластере Kubernetes:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
4⃣Проверка статуса Проверка статуса развертывания и сервисов:
kubectl get deployments
kubectl get services
kubectl get pods
5⃣Настройка автоскейлинга (по желанию) Для обеспечения высокой доступности и масштабируемости можно настроить горизонтальное авто-масштабирование:
kubectl autoscale deployment myapp-deployment --cpu-percent=50 --min=1 --max=10
6⃣Обновление приложения Для обновления приложения необходимо изменить образ в деплойменте и применить изменения: Обновление Docker-образа
docker build -t username/myapp:v2 .
docker push username/myapp:v2
Обновление манифеста Deployment
spec:
  template:
    spec:
      containers:
      - name: myapp
        image: username/myapp:v2
Применение изменений
kubectl apply -f deployment.yaml
🚩Пример полного пайплайна Пример .gitlab-ci.yml для автоматизации деплоя
stages:
  - build
  - push
  - deploy

variables:
  DOCKER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG

build:
  stage: build
  script:
    - docker build -t $DOCKER_IMAGE .
  only:
    - main

push:
  stage: push
  script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker push $DOCKER_IMAGE
  only:
    - main

deploy:
  stage: deploy
  script:
    - kubectl apply -f deployment.yaml
    - kubectl apply -f service.yaml
  only:
    - main
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Что такое сокет? Сокет — это конечная точка двустороннего сетевого соединения. Используется для обмена данными между приложениями по сети. Может быть: - TCP-сокет (надёжный, соединение); - UDP-сокет (без соединения, быстрее). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое squash в Docker? В Docker термин "squash" (от англ. "раздавить", "сплющить") относится к процессу объединения нескольких слоев образа Docker в один. Это делается для уменьшения размера итогового образа и оптимизации хранения. 🚩Зачем нужен `squash`? Docker-образы состоят из последовательности слоев. Каждый слой создается на основе команд в Dockerfile. Например, если ваш Dockerfile выглядит так:
FROM ubuntu:latest
RUN apt update && apt install -y nginx
RUN echo "Hello, World!" > /usr/share/nginx/html/index.html
🚩Как использовать `squash`? В Docker squash можно выполнить с помощью флага --squash при сборке образа:
docker build --squash -t my-squashed-image .
Для включения экспериментального режима: 1. Открываем /etc/docker/daemon.json (или создаем, если его нет). 2. Добавляем строку "experimental": true. 3. Перезапускаем Docker:
systemctl restart docker
🚩Пример с `squash` Без --squash
docker history my-image
С --squash
docker build --squash -t my-squashed-image .
docker history my-squashed-image
Ставь 👍 и забирай 📚 Базу знаний

Виртуальный сервер в аренду в России и Турции. Отказоустойчивый виртуальный облачный сервер / дата центр IaaS на базе виртуал
Виртуальный сервер в аренду в России и Турции. Отказоустойчивый виртуальный облачный сервер / дата центр IaaS на базе виртуализаций VMWARE, РУСТЭК по модели подписки. Аналог Elastic Cloud EC2. - Доступность сервиса — от 99,982% SLA - Дата центры Tier III в России и Турции - Резервное копирование на удаленную площадку (ок. 10 км) - Размещение персональных данных и ГИС по ФЗ-152 - Лицензированные решения Microsoft - Почасовой биллинг и постоплата - Оплата в рублях, турецких лирах, Euro - 30 дней бесплатное тестирование для юр. лиц Подключите услугу сегодня со скидкой 50% на инфраструктуру. Подать заявку #реклама 16+ cloud4y.ru О рекламодателе

🤔 Что такое Kafka Connector? Это часть Kafka Connect — фреймворка для интеграции с внешними системами: - Source connector — забирает данные (из БД, файлов и т.п.) и пишет в Kafka. - Sink connector — читает из Kafka и пишет в БД, Elastic, ClickHouse и т.д. Коннекторы — это готовые модули, которые не требуют писать код вручную. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний