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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
5 573
Obunachilar
-124 soatlar
+137 kun
+3430 kun
Postlar arxiv
🤔 Чем отличаются Secrets и ConfigMaps? ConfigMap используется для хранения неконфиденциальных данных, таких как параметры окружения, пути, настройки. Secrets предназначены для хранения чувствительной информации — паролей, токенов, сертификатов. Все значения в Secret кодируются в base64. ConfigMap читается и монтируется в контейнеры так же, как и Secret, но Secret предоставляет дополнительный уровень безопасности: например, ограничения прав доступа, защита при выводе и хранении в etcd в зашифрованном виде. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое basic auth? Basic Auth (Basic Authentication) – это простой метод аутентификации HTTP-запросов. Он используется для ограничения доступа к ресурсам, отправляя логин и пароль в заголовке запроса. 🟠Как работает Basic Auth? Клиент делает запрос к серверу. Сервер отвечает 401 Unauthorized и требует аутентификацию:
   HTTP/1.1 401 Unauthorized  
   WWW-Authenticate: Basic realm="Restricted Area"
   
Клиент кодирует логин и пароль в Base64 и отправляет их в заголовке:
   Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
   
🟠Пример запроса с Basic Auth В curl
curl -u username:password http://example.com/protected
В Python (requests):
import requests
from requests.auth import HTTPBasicAuth

response = requests.get("http://example.com/protected", auth=HTTPBasicAuth("username", "password"))
print(response.text)
В JavaScript (fetch):
fetch("http://example.com/protected", {
  headers: {
    "Authorization": "Basic " + btoa("username:password")
  }
})
.then(response => response.text())
.then(data => console.log(data));
🚩Минусы ➖Не безопасен без HTTPS данные передаются в открытом виде (Base64 — это не шифрование!). ➖Логин и пароль передаются в каждом запросе что делает систему уязвимой. ➖Нет механизма разлогинивания браузеры кэшируют креды, и их сложно сбросить. Ставь 👍 и забирай 📚 Базу знаний

🤔 Как доставлять билд в окружение? Билд доставляется в окружение через CI/CD пайплайн. Этапы: 1. Сборка (build) — компиляция и упаковка артефакта. 2. Тестирование — юнит, интеграционные, e2e. 3. Артефакт хранится в реестре (например, Docker Registry, Nexus, Artifactory). 4. Деплой — с помощью: - kubectl, Helm (в Kubernetes); - Ansible, Terraform; - скриптов или GitLab/GitHub Actions. Процесс автоматизируется, чтобы исключить ошибки и ускорить доставку. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое cherry pick? Это команда в системе контроля версий Git, которая позволяет выбрать отдельные коммиты из одной ветки и применить их к другой ветке. Это полезно, когда вы хотите перенести конкретные изменения (коммиты) в текущую ветку, не выполняя слияние всей ветки. 🚩Когда используется 🟠Применение отдельных изменений Когда нужно перенести конкретные исправления или функции из одной ветки в другую, не сливая все изменения из исходной ветки. 🟠Быстрое исправление ошибок Когда найденное исправление в одной ветке нужно срочно применить в другой, например, из ветки разработки в ветку релиза. 🟠Избежание сложного слияния Когда слияние всей ветки может привести к конфликтам или нежелательным изменениям, cherry-pick позволяет аккуратно перенести только нужные коммиты. 🚩Примеры использования 🟠Простого `cherry-pick` Перенос одного коммита из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch

# Выполните cherry-pick коммита
git cherry-pick <commit-hash>
🟠Применения нескольких коммитов Перенос нескольких коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch

# Выполните cherry-pick нескольких коммитов
git cherry-pick <commit-hash-1> <commit-hash-2> <commit-hash-3>
🟠Применения диапазона коммитов Перенос диапазона коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch

# Выполните cherry-pick диапазона коммитов
git cherry-pick <start-commit-hash>..<end-commit-hash>
🚩Разрешение конфликтов 1⃣Разрешите конфликты в файлах. 2⃣Добавьте изменения в индекс
git add <filename>   
3⃣Завершите процесс cherry-pick
git cherry-pick --continue   
🚩Прерывание Если вы хотите прервать процесс cherry-pick, можно использовать команду
git cherry-pick --abort
Ставь 👍 и забирай 📚 Базу знаний

Свой ИИ-агент на вашем сервере. Без утечки данных Сотрудники втайне скармливают ChatGPT коммерческую тайну и базы клиентов? П
Свой ИИ-агент на вашем сервере. Без утечки данных Сотрудники втайне скармливают ChatGPT коммерческую тайну и базы клиентов? Пора вернуть контроль IT-департаменту. Разверните изолированного ИИ-агента Hermes в закрытом контуре вашей компании на локальном VPS. Технические особенности: ✅ Безопасность: Вся история запросов, файлы и память хранятся строго у вас. Полное соответствие 152-ФЗ. ✅ Защита: Настроено автоматическое обезличивание данных перед обработкой и защита от prompt injection. ✅ Интеграция: Работает напрямую с вашими внутренними базами данных, 1С, CRM и закрытыми архивами документов через Element-чат. ✅ Выгода: Разовая оплата за внедрение и поддержку. ✅ Никаких плат за лицензии пользователей. Запишитесь на 30-минутное демо — покажем работу агента на вашем процессе. Узнать больше #реклама 16+ agent.itliga.ru О рекламодателе

🤔 Как отличается работа с PersistentVolume у Deployment и StatefulSet? Deployment может использовать общий volume или один PVC для всех подов. В StatefulSet у каждого пода есть свой отдельный PVC, созданный на основе шаблона. Эти PVC жёстко связаны с именами подов и сохраняются даже после удаления подов. Это позволяет сохранять состояние у каждого инстанса. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие виды метрик в Prometheus знаешь? В Prometheus есть 4 типа метрик, которые используются для мониторинга и сбора данных. 🚩Counter (Счетчик) – только увеличивается Используется для подсчета событий, ошибок, запросов Значение только увеличивается (нельзя уменьшить)
promql  
http_requests_total  
Как вывести количество запросов за последние 5 минут
promql  
rate(http_requests_total[5m])  
Пример экспозиции в приложении
go  
httpRequests := prometheus.NewCounter(  
    prometheus.CounterOpts{  
        Name: "http_requests_total",  
        Help: "Total number of HTTP requests",  
    })  
🚩Gauge (Измеритель) – может расти и уменьшаться Используется для измерения текущего состояния (температура, RAM, CPU) Значение может расти и уменьшаться
promql  
node_memory_usage_bytes  
Как вывести среднюю загрузку CPU за 5 минут
promql  
avg(node_cpu_seconds_total)  
Пример экспозиции в коде
go  
cpuUsage := prometheus.NewGauge(  
    prometheus.GaugeOpts{  
        Name: "cpu_usage_percentage",  
        Help: "Current CPU usage",  
    })  
🚩Histogram (Гистограмма) – распределение значений Используется для измерения длительности, размера запросов Делит данные по диапазонам (buckets)
promql  
http_request_duration_seconds_bucket  
Как вычислить среднее время отклика
promql  
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))  
Пример в коде
go  
requestDuration := prometheus.NewHistogram(  
    prometheus.HistogramOpts{  
        Name:    "http_request_duration_seconds",  
        Help:    "Histogram of response time for HTTP requests",  
        Buckets: prometheus.DefBuckets,  
    })  
🚩Summary (Сводка) – квантильные метрики Показывает среднее, медиану, квантильное распределение Используется для измерения задержек, времени отклика
promql  
http_request_duration_seconds{quantile="0.99"}  
Пример в коде:
go  
requestSummary := prometheus.NewSummary(  
    prometheus.SummaryOpts{  
        Name:       "http_request_duration_seconds",  
        Help:       "Summary of response time for HTTP requests",  
        Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001},  
    })
Ставь 👍 и забирай 📚 Базу знаний

Ключевое ИБ-событие года SOC Forum — одно из крупнейших событий в сфере ИБ, которое проходит в рамках Российской недели кибер
Ключевое ИБ-событие года SOC Forum — одно из крупнейших событий в сфере ИБ, которое проходит в рамках Российской недели кибербезопасности. ✅ Здесь встречаются эксперты, представители бизнеса и госструктур, чтобы обсудить ключевые вызовы отрасли. Событие, которое нельзя пропустить. Для тех, кто не может присутствовать лично, будет запущена онлайн-трансляция: 👌 Переключайтесь между залами. 👌 Выбирайте только актуальные для вас выступления. 👌 Задавайте вопросы спикерам в прямом эфире. 👌 Участвуйте в интерактивах. И все это не выходя из дома. Зарегистрируйтесь, и мы напомним о старте трансляции и пришлем ссылку, чтобы вы ничего не пропустили. Узнать больше #реклама 16+ registration.forumsoc.ru О рекламодателе

🤔 Можно ли откатить деплоймент? Да. Kubernetes поддерживает откат на предыдущую ревизию: - С помощью команды kubectl rollout undo deployment <имя>. - Можно указать конкретную ревизию, если нужно вернуться дальше. Это позволяет безопасно вернуться к предыдущей стабильной версии. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое debezium? Она позволяет отслеживать изменения в базах данных (INSERT, UPDATE, DELETE) в реальном времени и передавать их в Kafka, Elasticsearch, MongoDB и другие системы. 🚩Как работает Debezium? Подключается к базе данных (PostgreSQL, MySQL, MongoDB, Oracle и др.). Слушает лог изменений (binlog, WAL, oplog и т. д.) Формирует события в формате JSON Передаёт их в Kafka или другую шину данных. 🚩Где используется? Синхронизация данных между базами Репликация данных в реальном времени Отправка изменений в аналитические системы (Elasticsearch, ClickHouse) Аудит и логирование изменений 🟠Пример работы с Kafka Запускаем Debezium Connector для PostgreSQL*
{
  "name": "inventory-connector",
  "config": {
    "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
    "database.hostname": "localhost",
    "database.port": "5432",
    "database.user": "debezium",
    "database.password": "dbz",
    "database.dbname": "inventory",
    "database.server.name": "dbserver1"
  }
}
При изменении данных в таблице, Kafka получит событие:
{
  "schema": { ... },
  "payload": {
    "before": { "id": 1, "name": "Old Name" },
    "after": { "id": 1, "name": "New Name" },
    "op": "u"  // Update
  }
}
Ставь 👍 и забирай 📚 Базу знаний

Программируешь? Участвуй в олимпиаде Высшая проба Сделай шаг в IT вместе с Яндексом и ВШЭ — прими участие в олимпиаде по пром
Программируешь? Участвуй в олимпиаде Высшая проба Сделай шаг в IT вместе с Яндексом и ВШЭ — прими участие в олимпиаде по промышленному программированию! Победителям — БВИ или 100 баллов по профильному предмету в лучших вузах России. Регистрируйся до 20 октября! Узнать больше #реклама olymp.hse.ru О рекламодателе

🤔 Как прикрутить логирование к любому питон-скрипту? Добавить в начало Можно заменить print на logging.debug(), info(), warning() и т.д. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 По какой причине inode могут закончиться? Это структуры данных, которые хранят информацию о файлах и каталогах. Каждый файл или каталог на диске ассоциируется с одним inode, который содержит метаданные файла, такие как его размер, разрешения, временные метки, ссылки на блоки данных и т.д. Количество inode на файловой системе обычно определяется в момент её создания и не может быть изменено без переформатирования или значительных изменений в файловой системе. 🚩Причины исчерпания 🟠Большое количество мелких файлов Одной из наиболее частых причин исчерпания inode является наличие очень большого количества маленьких файлов на файловой системе. Поскольку каждый файл использует как минимум один inode, системы с большим количеством мелких файлов могут исчерпать доступные inode, даже если дисковое пространство по-прежнему доступно. 🟠Недостаточное количество выделенных inode При создании файловой системы, если количество выделенных inode было рассчитано неправильно (слишком мало для предполагаемого использования), это может привести к раннему их исчерпанию. Это особенно актуально для серверов или систем, где ожидается большое количество файлов. 🟠Особенности файловой системы Некоторые файловые системы, такие как Ext3 или Ext4, имеют фиксированное соотношение inode к объёму файловой системы, которое задаётся при их создании. Если создать файловую систему с недостаточным количеством inode для конкретного случая использования, то в дальнейшем это может стать проблемой. 🚩Решения проблемы исчерпания 🟠Проверка использования С помощью команды df -i можно проверить, сколько inode используется и сколько ещё доступно в вашей файловой системе. 🟠Очистка файловой системы Удаление ненужных или временных файлов может освободить inode. 🟠Изменение файловой системы Если возможно, можно увеличить количество inode путём изменения файловой системы или пересоздания файловой системы с более высоким количеством inode. Для файловых систем, таких как XFS или некоторые конфигурации Btrfs, можно динамически добавлять inode. 🟠Использование других файловых систем Переход на другую файловую систему, которая не имеет строгих ограничений на количество inode (например, Btrfs или ZFS), может быть решением для систем с большим количеством маленьких файлов. 🟠Архивирование Программы и процессы, которые создают большое количество мелких файлов, могут модифицироваться для хранения данных в формате архивов вместо отдельных файлов, что снижает потребление inode. Ставь 👍 и забирай 📚 Базу знаний

Открытый урок: бизнес-логика в микросервисах Разработка в микросервисах — это не только разбиение на сервисы, но и грамотное
Открытый урок: бизнес-логика в микросервисах Разработка в микросервисах — это не только разбиение на сервисы, но и грамотное распределение логики. 22 октября в 19:00 мск — открытый урок для разработчиков и архитекторов. Узнаете, где должна жить бизнес-логика. Запишитесь! Зарегистрироваться #реклама 16+ otus.ru О рекламодателе

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

REKONFA: что интересного вас ждёт 15 октября 15 октября встречаемся на REKONFA — большой конференции Яндекс Рекламы. На сцене: — Глеб Доброрадных — о рекламном рынке и эффективности в сложных условиях — Алексей Штоколов — о новых продуктах и технологиях — Лиза Смирнова — о 360°-форматах и новых точках контакта — Александр Пушной — о человеке и ИИ — Александр Умаров — о персональном подходе, который помогает влюблять клиентов в бренд — Яна Чурикова — об актуальных задачах предпринимателей — Татьяна Мужицкая — о целях и энергии — Антон Беляев — об индивидуальности и проектах, которые любят зрители Вне сцены — зона продуктов Яндекс Рекламы, три игры, викторина, зоны Яндекс Ярда и eLama и нетворкинг. 15 октября, Москва, ВТБ Арена и онлайн. Участие бесплатное. Зарегистрироваться #реклама 16+ ya.rekonfa.ru О рекламодателе

🤔 Как бы построить выделение ресурсов, балансировку, нагрузку и всю масштабированность? Чтобы система работала стабильно и эффективно, нужно правильно распределять ресурсы, балансировать нагрузку и масштабировать сервисы. 🚩Основные компоненты Выделение ресурсов - CPU, RAM, диски, сеть Балансировка нагрузки равномерное распределение трафика Горизонтальное и вертикальное масштабирование Авто-масштабировани – динамическое добавление/удаление мощностей 🟠Выделение ресурсов (CPU, RAM, Диск, Сеть) В виртуализированных средах (Kubernetes, Docker, AWS, KVM, ESXi) выделение ресурсов настраивается через лимиты и квоты.
yaml  
apiVersion: v1  
kind: Pod  
metadata:  
  name: my-app  
spec:  
  containers:  
  - name: app  
    image: my-app:latest  
    resources:  
      requests:  
        cpu: "500m"   # Минимально 0.5 CPU  
        memory: "256Mi" # Минимально 256MB RAM  
      limits:  
        cpu: "1000m"  # Максимально 1 CPU  
        memory: "512Mi" # Максимально 512MB RAM  
🟠Балансировка нагрузки Балансировка уменьшает нагрузку на один сервер и равномерно распределяет запросы.
nginx  
upstream backend {  
  server app1:5000;  
  server app2:5000;  
}  
server {  
  listen 80;  
  location / {  
    proxy_pass http://backend;  
  }  
}  
Пример терраформа для AWS ALB
hcl  
resource "aws_lb" "example" {  
  name               = "my-load-balancer"  
  internal           = false  
  load_balancer_type = "application"  
  security_groups    = [aws_security_group.lb_sg.id]  
}  
🟠Масштабирование (Горизонтальное и Вертикальное) Горизонтальное масштабирование (добавление новых инстансов) Kubernetes Horizontal Pod Autoscaler (HPA)
yaml  
apiVersion: autoscaling/v2beta2  
kind: HorizontalPodAutoscaler  
metadata:  
  name: my-app-hpa  
spec:  
  scaleTargetRef:  
    apiVersion: apps/v1  
    kind: Deployment  
    name: my-app  
  minReplicas: 2  
  maxReplicas: 10  
  metrics:  
  - type: Resource  
    resource:  
      name: cpu  
      target:  
        type: Utilization  
        averageUtilization: 70  
🟠Авто-масштабирование (AWS/GCP/Kubernetes) AWS Auto Scaling Group
hcl  
resource "aws_autoscaling_group" "example" {  
  min_size             = 2  
  max_size             = 10  
  desired_capacity     = 2  
  launch_configuration = aws_launch_configuration.example.name  
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что помимо bash sh можно в шебанг написать без проблем? Можно использовать другие интерпретаторы, такие как zsh, python, perl, env, и т.д., в зависимости от того, на каком языке написан скрипт. Это делает скрипты переносимыми или привязывает их к конкретной среде. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Как войти в Data Science в 2026 году? Бесплатный эфир для тех, кто хочет разобраться, какие навыки нужны для первой работы в
Как войти в Data Science в 2026 году? Бесплатный эфир для тех, кто хочет разобраться, какие навыки нужны для первой работы в Data Science. Опытный практикующий специалист проведёт практическое занятие и понятным языком разберёт: ✅путь от первой строки в Python до проекта для портфолио ✅как собрать pet-проект ✅что изучать для перехода в Data Science ✅реальные практические задачи Посмотрите реальные истории студентов, которые сменили профессию. Регистрируйтесь бесплатно и получите 3 курса в подарок для старта в для старта в Data science! Записаться #реклама 16+ simulative.ru О рекламодателе

🤔 Чем отличается образ от контейнера? Образ (Image) – это шаблон, из которого создаются контейнеры. Контейнер (Container) – это запущенный экземпляр образа. 🚩Что такое образ (Image)? Образ – это неизменяемый шаблон с установленным ПО Содержит все файлы, библиотеки и зависимости Может храниться в реестре (Docker Hub, GitHub Container Registry, ECR)
docker pull nginx:latest
Пример списка образов
docker images
Пример создания образа через Dockerfile
FROM ubuntu:latest
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]
docker build -t my-nginx .
🚩Что такое контейнер (Container)? Контейнер – это запущенный экземпляр образа Может изменять файлы и состояние, но это не сохраняется в образе Изолирован, но использует ядро ОС хоста
docker run -d --name web -p 80:80 nginx
Пример списка контейнеров
docker ps
Пример остановки контейнера
docker stop web
Ставь 👍 и забирай 📚 Базу знаний