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

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

Відкрити в Telegram

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

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

🤔 В чём преимущество Kubernetes как платформы? Это платформа для оркестрации контейнеров, которая упрощает развертывание, управление и масштабирование приложений. Она имеет ряд ключевых преимуществ, которые делают её популярной в DevOps и облачных решениях. 🚩Основные плюсыАвтоматизация управления приложениями Kubernetes автоматически запускает, останавливает и перезапускает контейнеры при сбоях. Поддерживает заданное число экземпляров (реплик) приложений, перезапуская или создавая их при необходимости. ➕Масштабирование (горизонтальное и вертикальное) Ручное: Легко увеличить или уменьшить количество контейнеров (поды) для приложения. Автоматическое: Используя Horizontal Pod Autoscaler (HPA), Kubernetes добавляет ресурсы при увеличении нагрузки. ➕Высокая доступность (HA) Kubernetes поддерживает отказоустойчивость: Если один узел (node) выходит из строя, поды перемещаются на другие узлы. Внутренний балансировщик нагрузки распределяет трафик между подами. ➕Платформонезависимость Kubernetes работает в любых средах: Локальных (например, Minikube). В публичных облаках (AWS, Google Cloud, Azure). В гибридных и on-premise инфраструктурах. ➕Управление конфигурацией и секретами Kubernetes упрощает работу с настройками: ConfigMaps: Для управления конфигурационными данными. Secrets: Для безопасного хранения конфиденциальной информации, например, ключей API или паролей. ➕Эффективное использование ресурсов Kubernetes помогает оптимизировать потребление CPU и памяти: Устанавливая минимальные и максимальные лимиты ресурсов для каждого приложения. Перераспределяя ресурсы между приложениями. ➕Расширяемость Kubernetes поддерживает плагины и кастомизацию: Сетевые плагины (Calico, Flannel) для настройки сети. Системы мониторинга (Prometheus, Grafana). Операторы для автоматизации сложных задач. ➕Сообщество и экосистема Kubernetes поддерживается большинством крупных облачных провайдеров. Обширная экосистема инструментов: Helm для управления шаблонами, ArgoCD для GitOps, Istio для сетевых взаимодействий. 🚩Когда особенно полезен? Разработка микросервисных архитектур. Частые релизы и автоматизация CI/CD. Работа с масштабируемыми приложениями. Использование гибридных или мультиоблачных решений. Ставь 👍 и забирай 📚 Базу знаний

🤔 Почему при доступном месте файлы не создаются? Это может происходить по нескольким причинам, даже если свободное место есть: 1. Закончились inode'ы — файловая система использует их для хранения метаданных файлов. Если они исчерпаны, новые файлы нельзя создать. 2. Ограничения прав — пользователь или процесс может не иметь разрешения на запись. 3. Переполнение квоты — если включены пользовательские квоты на дисковое пространство. 4. Ошибка монтирования — путь указывает на размонтированное хранилище, и запись идёт не туда. 5. Файловая система в режиме только для чтения — возможно после сбоев или ошибок диска. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое дешборды в графане? Это визуальные панели, на которых отображаются метрики, логи и данные, собранные из различных источников. Они используются для мониторинга состояния систем, приложений и инфраструктуры, предоставляя наглядное представление в виде графиков, диаграмм, таблиц и других визуализаций. 🚩Почему нужны дешборды в Grafana? 🟠Мониторинг в реальном времени Позволяют наблюдать за ключевыми показателями производительности (KPI) систем в реальном времени. Например, загрузка CPU, использование памяти, число запросов в секунду. 🟠Диагностика и устранение проблем Дешборды помогают быстро находить аномалии или сбои. Например, резкий рост времени отклика или падение уровня доступности. 🟠Простота анализа данных Объединяют данные из разных источников в одном месте (Prometheus, Elasticsearch, Loki, InfluxDB, PostgreSQL и др.). Упрощают анализ данных благодаря визуализации. 🟠Настраиваемость и удобство Можно создавать персонализированные панели под конкретные задачи или роли (разработчики, SRE, менеджеры). 🚩Основные элементы дешборда 🟠Панели (Panels) Каждая панель отображает отдельный набор данных в определенном виде (график, таблица, heatmap, текст и др.). Пример: График использования памяти на сервере. 🟠Источник данных (Data Source) Данные, отображаемые на панели, поступают из определённого источника (Prometheus, Elasticsearch, MySQL и т.д.). Grafana поддерживает множество интеграций. 🟠Переменные (Variables) Динамические параметры, которые позволяют изменять отображаемые данные без необходимости редактировать панель. Пример: Переключение между разными серверами или метриками. 🟠Алёрты (Alerts) Настраиваемые уведомления, которые активируются при достижении определённого порога метрики. Пример: Отправка уведомления в Slack при увеличении загрузки CPU выше 90%. 🟠Теги и аннотации Обозначают ключевые события на графиках, например, развёртывание нового релиза. 🚩Пример использования дешборда 🟠Панели 1. Время отклика API (Response Time). 2. Число активных пользователей (Active Users). 3. Использование ресурсов (CPU, RAM). 4. Ошибки HTTP (5xx, 4xx). 🟠Источники данных - Prometheus для метрик. - Loki для логов. - MySQL для аналитических данных. 🟠Переменные - Выбор региона (например, Европа, США). - Фильтрация по микросервисам. 🚩Создание дешборда в Grafana 🟠Добавление панели В интерфейсе Grafana создайте новый дешборд. Добавьте панель и выберите тип визуализации (график, таблица, бар-чарт и т.д.). 🟠Настройка источника данных Укажите источник данных для каждой панели. Например, Prometheus: rate(http_requests_total[5m]). 🟠Настройка фильтров и переменных Добавьте переменные, чтобы дешборд был динамичным. 🟠Добавление алертов Настройте триггеры для уведомлений (например, при высоком времени отклика). Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Какой самый большой минус Ansible? Ansible – мощный инструмент для автоматизации, но у него есть серьезные недостатки, особенно при масштабировании. 🚩Основной минус – Медленная работа на больших инфраструктурах 🟠Нет агентов каждый раз Ansible подключается по SSH и выполняет задачи без предварительного кеширования что замедляет процесс. 🟠Ограничения Python на удаленных хостах если целевой сервер слабый или без Python, выполнение плейбуков будет медленным. 🟠Последовательное выполнение по умолчанию Ansible выполняет задачи последовательно, что дольше, чем параллельные методы (например, в SaltStack).
yaml  
- name: Установка Nginx  
  hosts: all  
  tasks:  
    - name: Установить Nginx  
      apt:  
        name: nginx  
        state: present  
Запуск задач параллельно (-f 50)
sh  
ansible-playbook playbook.yml -f 50  
🚩Другие минусы Ansible 🟠Высокая нагрузка на управляющий узел Если 1000+ серверов, главный Ansible-узел может быстро перегрузиться. 🟠Сложное управление зависимостями Роли могут конфликтовать, если версии не совпадают. Ansible Galaxy не такой удобный, как Terraform Registry 🟠Ограниченная идемпотентность Некоторые модули (особенно shell и command) не всегда понимают, применялась ли конфигурация раньше. Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Что такое брокеры сообщений? Это программные системы, которые позволяют обмениваться данными между разными компонентами приложения или между различными приложениями. Они действуют как посредники, принимая сообщения от отправителей (producers) и доставляя их получателям (consumers). 🚩Основные функции брокеров сообщений 🟠Прием и маршрутизация сообщений Сообщения отправляются от одного компонента и доставляются нужному получателю. Брокер определяет, куда отправить сообщение, используя темы (topics), очереди (queues) или маршруты (routing keys). 🟠Асинхронное взаимодействие Отправитель может передать сообщение, не дожидаясь его обработки, что повышает производительность системы. 🟠Очереди сообщений Если получатель временно недоступен, сообщение сохраняется в очереди до тех пор, пока оно не будет доставлено. 🟠Гарантированная доставка Некоторые брокеры предоставляют механизмы подтверждения получения сообщений (acknowledgment), чтобы избежать их потери. 🟠Распределение нагрузки Сообщения могут быть обработаны несколькими получателями, что позволяет распределить нагрузку между ними. 🟠Фильтрация и маршрутизация Сообщения доставляются только тем потребителям, которые их ожидают, используя фильтры или ключи маршрутизации. 🚩Примеры использования брокеров сообщений 🟠Микросервисы Компоненты приложения обмениваются данными через брокер, что позволяет им оставаться изолированными и независимыми. 🟠Логирование и мониторинг Сбор логов и метрик от множества источников с их дальнейшей обработкой. 🟠Управление задачами Постановка задач в очередь для выполнения одним или несколькими воркерами. 🟠Интеграция систем Связывание разнородных систем, которые обмениваются данными. 🚩Примеры брокеров сообщений 🟠RabbitMQ Протокол: AMQP (Advanced Message Queuing Protocol). Поддерживает очереди, маршрутизацию, подтверждения доставки. Хорошо подходит для сложных сценариев с разными типами маршрутизации. 🟠Apache Kafka Протокол: Проприетарный. Отличается высокой производительностью и надежностью. Используется для потоковой обработки данных, аналитики в реальном времени. 🟠Redis (Pub/Sub) Протокол: Redis. Простая и быстрая модель pub/sub. Хорошо подходит для временных сообщений без сохранения состояния. 🟠ActiveMQ Протокол: AMQP, STOMP, MQTT. Гибкий и совместимый с различными сценариями. 🟠NATS Легковесный и быстрый брокер для приложений, требующих низкой задержки. 🚩Как работают брокеры сообщений Producers (отправители) отправляют сообщение в брокер. Брокер размещает сообщение в соответствующей очереди или теме. Consumers (получатели) получают сообщение: Либо сразу, если они активны. Либо позже, если оно сохраняется в очереди. 🚩Пример использования RabbitMQ 1⃣Отправитель публикует сообщение в очередь:
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
connection.close()
2⃣Получатель забирает сообщение из очереди:
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')

def callback(ch, method, properties, body):
    print(f"Received {body}")

channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
channel.start_consuming()
🚩Плюсы использованияРазделение ответственности Компоненты системы сосредотачиваются на своих задачах, а не на доставке данных. ➕Масштабируемость Легко добавлять новых потребителей или отправителей. ➕Устойчивость к сбоям Брокеры обеспечивают сохранность сообщений, даже если один из компонентов временно недоступен. ➕Гибкость Возможность использовать различные стратегии маршрутизации и обработки данных. Ставь 👍 и забирай 📚 Базу знаний

🤔 Какой дистрибутив выбрать для высоконагруженных приложений — RHEL или Debian? - RHEL/CentOS/AlmaLinux/Rocky: - Более предсказуемое поведение (stable ABI); - Широкая поддержка корпоративных решений (Oracle, SAP); - SELinux. - Debian/Ubuntu: - Больше свободных пакетов; - Быстрее обновления; - Лучше для разработки. Вывод: для продакшна в крупном энтерпрайзе — чаще RHEL. Для DevOps и CI — Debian. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 В каких случаях удобно использовать 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
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 В чем отличие девопс-инженера от sre-инженера? DevOps-инженер и SRE (Site Reliability Engineer) — это роли, которые пересекаются в своих задачах, но имеют разные акценты и подходы. 🚩Определение ролей 🟠DevOps-инженер Основная цель: Ускорить и автоматизировать процесс разработки, тестирования и развертывания приложений. Подход: Сосредоточен на создании и поддержке CI/CD, инфраструктуры как кода (IaC) и инструментах автоматизации. Фокус: Эффективность процессов разработки. Улучшение взаимодействия между командами разработки (Dev) и эксплуатации (Ops). 🟠SRE-инженер Основная цель: Обеспечение стабильности, надежности и производительности системы в продакшене. Подход: Применяет инженерные подходы и автоматизацию для управления операциями и масштабированием. Фокус: Стабильность и надежность системы. Мониторинг, устранение сбоев и управление инцидентами. Ставь 👍 и забирай 📚 Базу знаний

🤔 Где можно использовать Kubernetes? Kubernetes используют для: - управления контейнерами и их жизненным циклом; - масштабирования микросервисов; - автоматизации деплоя; - отказоустойчивости и самовосстановления сервисов. Можно использовать в облаке, on-premise, edge и гибридных решениях. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

📺 База 1000+ реальных собеседований На программиста, тестировщика, аналитика, проджекта и другие IT профы. Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д. 🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!

🤔 Сколько часов живёт один вал Prometeus CICD? Вал (или "валидность данных") в Prometheus определяется настройками временного диапазона хранения данных. Обычно данные в Prometheus живут столько, сколько задано в параметре --storage.tsdb.retention.time, который устанавливает период хранения временных рядов. 🟠По умолчанию Если не указать параметр --storage.tsdb.retention.time, данные хранятся 15 дней. Это соответствует 360 часам. 🟠Как изменить время жизни данных Вы можете настроить период хранения данных, передав значение параметра при запуске Prometheus: CLI-параметр:
prometheus --storage.tsdb.retention.time=30d
🟠Конфигурационный файл Если Prometheus запускается как часть системы CI/CD через Docker Compose, Kubernetes или другой инструмент, параметр указывается в соответствующем разделе.
services:
  prometheus:
    image: prom/prometheus
    command:
      - '--storage.tsdb.retention.time=7d' # 7 дней (168 часов)
🚩Почему это важно? 🟠Оптимизация дискового пространства Большие периоды хранения требуют больше дискового пространства. Если валидация данных больше не нужна, лучше очищать старые временные ряды. 🟠Баланс производительности Длительное хранение может замедлить обработку запросов, особенно если используемые метрики застарелые или редко запрашиваются. 🟠Потребности CI/CD Для CI/CD-пайплайнов обычно достаточно короткого периода (например, 7–15 дней), чтобы сохранять данные релевантными и свежими. 🟠Пример настройки в CI/CD контексте Если вы хотите, чтобы метрики для CI/CD жили 12 часов (подходящий срок для проверки тестов и сборок), настройте
prometheus:
  image: prom/prometheus
  command:
    - '--storage.tsdb.retention.time=12h'
🚩Как проверить текущий срок хранения? 🟠В интерфейсе Prometheus Перейдите на страницу /status/status/flags, где можно увидеть значение параметра --storage.tsdb.retention.time. 🟠Через командную строку Проверьте журнал запуска Prometheus или конфигурационный файл. Ставь 👍 и забирай 📚 Базу знаний

Купите отельный номер с гарантией пассивного дохода в $ Как стать владельцем отельного номера и получать гарантированный доход в валюте? Да, вы всё правильно прочитали! Процент доходности фиксирован и закреплен в договоре! А выплаты производятся строго по графику. Эксперты International Investment отобрали лучшие объекты для инвестиций по всему миру. Оставляйте заявку и получите персональный план инвестирования прямо сейчас! Посмотреть каталог #реклама international-investment.ru О рекламодателе

🤔 Как решить проблему, если Jenkins не видит merge request и ветки из GitLab? - Убедиться, что используется GitLab Plugin. - Включить webhook из GitLab. - Установить refspec: - +refs/merge-requests/*/head:refs/remotes/origin/mr/* - Убедиться, что Jenkins имеет доступ к правильным permissions в GitLab. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что возвращает функция в bash? В Bash функция возвращает код завершения (exit status), который представляет собой числовое значение от 0 до 255. Это значение используется для указания успешного или неуспешного выполнения функции. По умолчанию, если явно не указано возвращаемое значение, функция возвращает код завершения последней выполненной команды внутри нее. 🚩Как возвращать значения из функции? 🟠Код завершения (exit status) Чтобы явно задать код завершения функции, используется команда return.
my_function() {
    if [[ $1 -gt 0 ]]; then
        return 0  # Успех
    else
        return 1  # Ошибка
    fi
}

my_function 5
echo $?  # Выведет 0 (успех)
🟠Вывод данных через `echo` Для передачи данных из функции (например, строки или числа) можно использовать echo. Вывод можно перехватить через подстановку команд $()
my_function() {
    echo "Hello, $1!"
}

result=$(my_function "world")
echo "$result"  # Выведет "Hello, world!"
🟠Изменение глобальных переменных Функция может менять значения глобальных переменных, которые затем используются за ее пределами
my_function() {
    result=$(( $1 + $2 ))
}

my_function 3 7
echo $result  # Выведет 10
🚩Почему это важно? 🟠Код завершения Используется в сценариях для проверки, выполнилась ли функция успешно. Значение 0 обычно означает успех, а любое другое число — ошибку. 🟠Вывод через `echo` Удобен для передачи данных из функции. 🟠Изменение переменных Полезно, если функция должна сохранять данные для дальнейшей обработки.
# Функция проверки файла
check_file() {
    if [[ -f $1 ]]; then
        echo "Файл $1 существует."
        return 0
    else
        echo "Файл $1 не найден."
        return 1
    fi
}

# Вызов функции
check_file "/etc/passwd"
status=$?  # Сохраняем код завершения
if [[ $status -eq 0 ]]; then
    echo "Продолжаем работу..."
else
    echo "Останавливаемся из-за ошибки."
fi
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Как найти запущенный процесс? 1. Используйте команду ps (например, ps aux для подробной информации). 2. Команда top показывает активные процессы в реальном времени. 3. Для фильтрации можно использовать pgrep <имя процесса>. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний