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

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

Відкрити в Telegram
5 508
Підписники
-124 години
-57 днів
-130 день
Архів дописів
🤔 Как решать проблему, если ваш коллега удалил /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 доступ на easyoffer — по цене одного года! До 31 марта вы можете купить PRO навсегда. Запускаем акцию, чтобы ускорить развитие сервиса. Что добавим в PRO в ближайшие полгода: – Автоотклики – Агрегатор вакансий – Проход ATS без отсева – Уникальные резюме и письма под каждую вакансию Покупаешь один раз — пользуешься всю жизнь. 👉 Купить PRO со скидкой 70%: https://easyoffer.ru/pro

Новый смартфон vivo X300 FE ✅ Компактный размер ✅ Фокус на важном Купить #реклама market.yandex.ru О рекламодателе
Новый смартфон 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 | Собеседования - твой незаменимый помощник в подготовке к собеседованиям.
Нужны актуальные вопросы с собеседований ? DevOps | Собеседования - твой незаменимый помощник в подготовке к собеседованиям. 🔊Обзоры собеседований c вилками на позиции: 🔵DevOps инженеров (Junior, Middle, Senior). 🔵С комментариями автора, как человека, который активно собеседует кандидатов. 🔊В ближайшее время: 🔵Записи реальных собеседований (не моки и открытые собеседования). 🔵Гайды и рекомендации по обходу частых ошибок при выступлении на техническом интервью. ➡️ Подписаться

Виртуальный сервер в аренду в Турции или России. Отказоустойчивый виртуальный облачный сервер на базе виртуализации VMWARE по
Виртуальный сервер в аренду в Турции или России. Отказоустойчивый виртуальный облачный сервер на базе виртуализации 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 — большое демо для ИТ-руководителей Как IT-руководителю разгрузить отдел, отказаться от "зоопарка" решений и перенести рабочие коммуникации, корпоративное обучение и онлайн-встречи в единое приложение? Регистрируйтесь на большое демо МТС Линк 2.0. Вы узнаете: — как обновились сервисы для онлайн-встреч и вебинаров — новые инструменты интерактива и вовлечения — как ускорить рутину с помощью встроенных таск-трекера, ИИ, чат-ботов и интеграций — как сервисы для обучения и рабочих коммуникаций эволюционировали в единое суперапп-решение. А еще в программе: • Планы на 2026, • FAQ-сессия с лидерами продуктов • Кейсы миграции действующих клиентов Кому полезно: CTO и IT-директорам, CEO, руководителям по ИБ, цифровизации и импортозамещению. Регистрируйтесь на демо. Увидимся 25 марта в 15:00 мск Зарегистрироваться #реклама 16+ mts-link.ru О рекламодателе

🤔 Как версионируете чарты? Helm-чарты должны быть версионированы, чтобы отслеживать изменения и управлять развертываниями. Версии чарта (Chart.yaml) Версии приложения (appVersion) Репозиторий Helm (helm repo) Git-теги и CI/CD 🚩Версия чарта (`Chart.yaml`) Каждый Helm-чарт содержит Chart.yaml, где указывается версия чарта.
yaml  
apiVersion: v2  
name: my-app  
description: Helm chart for my application  
version: 1.2.3  
appVersion: 2.0.1  
🚩Хранение и обновление чарта в репозитории Helm Helm-чарты можно хранить в локальном или удаленном репозитории.
sh  
helm package my-chart/  
Обновить индекс в репозитории
sh  
helm repo index .  
Добавить новый чарт в Helm-репозиторий
sh  
helm repo add my-repo https://charts.example.com  
helm push my-app-1.2.3.tgz my-repo  
🚩Автоматическое версионирование через Git и CI/CD Обычно чарты хранятся в Git, и версии обновляются автоматически через CI/CD. Пример автоматического увеличения версии (version) в Chart.yaml через helm/chart-releaser-action
yaml  
name: Release Helm Chart  

on:  
  push:  
    tags:  
      - 'v*'  

jobs:  
  release:  
    runs-on: ubuntu-latest  
    steps:  
      - name: Checkout repo  
        uses: actions/checkout@v3  

      - name: Set up Helm  
        uses: azure/setup-helm@v3  
        with:  
          version: 'latest'  

      - name: Package Helm Chart  
        run: helm package my-chart/  

      - name: Upload to Helm Repo  
        uses: helm/chart-releaser-action@v1  
🚩Как установить конкретную версию чарта? Чтобы развернуть определенную версию Helm-чарта, указываем --version
sh  
helm install my-app my-repo/my-app --version 1.2.3  
Или обновить до новой версии:
sh  
helm upgrade my-app my-repo/my-app --version 1.2.4
Ставь 👍 и забирай 📚 Базу знаний

Битва кейсов ИБ: 6 сценариев киберкошмара 7 апреля в поединке сойдутся эксперты «Солара». По одну сторону — кейсы тестировани
Битва кейсов ИБ: 6 сценариев киберкошмара 7 апреля в поединке сойдутся эксперты «Солара». По одну сторону — кейсы тестирований на проникновение, по другую — реальные атаки. Чьи сценарии окажутся страшнее и критичнее — покажет битва. Кому будет полезно: Руководителям ИБ и ИБ-специалистам — получить данные, чтобы обосновать бюджет и построить стратегию защиты. ИТ-руководителям и менеджерам — узнать о текущих рисках и понять, как спланировать ИБ-бюджет. Руководителям компаний и риск-менеджерам — снизить цифровые и финансовые риски, защитить репутацию. Приходите, чтобы на чужих ошибках закрыть пробелы в своей защите. Зарегистрироваться #реклама 16+ rt-solar.ru О рекламодателе

🤔 Чем отличается Docker от LXC? 1. Docker: предоставляет контейнеры с упрощённым API и инструментами для управления, ориентирован на приложения. 2. LXC: предоставляет низкоуровневую контейнеризацию, ближе к виртуализации всей ОС. 3. Docker упрощает работу разработчиков, а LXC больше подходит для системных администраторов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое acl в linux? ACL (Access Control List) – это механизм расширенных прав доступа в Linux, который позволяет задавать более гибкие разрешения для файлов и директорий, чем стандартные chmod и chown. Позволяет назначать дополнительные права для отдельных пользователей и групп Упрощает гранулярный контроль доступа Работает поверх стандартных прав (rwx) 🚩Проверка поддержки ACL Убедимся, что файловая система поддерживает ACL
mount | grep acl
Если ACL не включен, монтируем с поддержкой ACL
mount -o remount,acl /home
🚩Проверка текущих ACL-прав Команда getfacl показывает текущие ACL для файла или папки
getfacl myfile.txt
Пример вывода
# file: myfile.txt
# owner: user1
# group: users
user::rw-
user:john:r--
group::r--
mask::r--
other::---
🚩Добавление новых ACL-прав (`setfacl`) Разрешить пользователю john запись (rw) в myfile.txt
setfacl -m u:john:rw myfile.txt
Разрешить группе developers выполнение (x)
setfacl -m g:developers:x myfile.txt
Дать всем (other) полный доступ (rwx)
setfacl -m o::rwx myfile.txt
Назначить по умолчанию права для всех новых файлов в папке project/
setfacl -d -m u:john:rwx project/
🚩Удаление ACL-прав Удалить ACL для пользователя john
setfacl -x u:john myfile.txt
Очистить все ACL-права файла
setfacl -b myfile.txt
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Что такое брокеры сообщений? Это программные системы, которые позволяют обмениваться данными между разными компонентами приложения или между различными приложениями. Они действуют как посредники, принимая сообщения от отправителей (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()
🚩Плюсы использованияРазделение ответственности Компоненты системы сосредотачиваются на своих задачах, а не на доставке данных. ➕Масштабируемость Легко добавлять новых потребителей или отправителей. ➕Устойчивость к сбоям Брокеры обеспечивают сохранность сообщений, даже если один из компонентов временно недоступен. ➕Гибкость Возможность использовать различные стратегии маршрутизации и обработки данных. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что хранится в /etc/fstab? Содержит таблицу монтирования файловых систем. 1. Указывает устройства и точки монтирования, например, диски, разделы, сетевые файловые системы. 2. Задаёт параметры монтирования, такие как тип файловой системы, опции (rw, noatime) и поведение при загрузке. 3. Используется системой для автоматического монтирования файловых систем при запуске. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний