en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

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

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

Open in Telegram

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

Show more
5 568
Subscribers
-124 hours
-67 days
+230 days
Posts Archive
🤔 На каком шаге заканчивается Continuous Integration? CI заканчивается после: - успешной сборки, - прохождения тестов, - публикации артефактов. Далее идёт этап доставки (delivery) или развёртывания (deployment) — это уже CD. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Почему выстрелил terraform а не salt? Terraform стал популярнее, чем SaltStack, потому что он лучше решает задачи управления инфраструктурой как кодом (IaC) и обеспечивает декларативный и удобный подход. 🟠Разделение инфраструктуры и конфигурации Terraform = управление инфраструктурой (создание виртуальных машин, баз данных, сетей и т. д.). SaltStack = управление конфигурацией (разворачивание ПО, управление пользователями, файлами и т. д.). 🚩Почему Terraform выстрелил? В современном DevOps важнее быстро и гибко создавать инфраструктуру (AWS, Kubernetes, облака). Salt же больше заточен под настройку серверов, но это стало второстепенным. 🟠Декларативный подход Terraform = декларативный язык HCL (HashiCorp Configuration Language)
  resource "aws_instance" "web" {
    ami           = "ami-123456"
    instance_type = "t2.micro"
  }
  
🟠Лёгкость и отсутствие агентов Terraform = не требует агентов, просто вызывает API облачных провайдеров. Salt = требует установки Salt Master и Minion'ов на серверах. 🟠Популярность облаков (AWS, Azure, GCP, Kubernetes) Terraform нативно интегрируется с облаками (AWS, GCP, Azure, Kubernetes). Salt тоже умеет работать с облаками, но его основное применение – настройка серверов. 🟠Лучшая экосистема и поддержка сообщества - У Terraform больше модулей и провайдеров. - Salt – сложнее настроить для облаков, и сообщество у него меньше. Ставь 👍 и забирай 📚 Базу знаний

🤔 Как работает DNS? DNS (Domain Name System) преобразует читаемые доменные имена (например, google.com) в IP-адреса. Процесс включает: - запрос к локальному кешу; - обращение к DNS-рекурсору; - переход к корневым серверам, затем к серверам доменов верхнего уровня (TLD), затем к авторитетным серверам; - возврат IP-адреса клиенту. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие есть правила которые запрещают запускаться какой-либо ноде? В Kubernetes есть несколько механизмов, которые могут запретить или ограничить запуск подов на определенных нодах. 🚩Taints & Tolerations (Метки и допуска) Taints – метки на нодах, запрещающие размещение подов, если у них нет соответствующего допуска (Toleration). Используется для изоляции, приоритизации узлов или резервирования ресурсов.
kubectl taint nodes my-node key=value:NoSchedule
Разрешить конкретному поду запускаться на этой ноде
tolerations:
  - key: "key"
    operator: "Equal"
    value: "value"
    effect: "NoSchedule"
🚩Node Selectors (Выбор ноды по меткам) Запрещает запускаться на всех нодах, кроме указанных. Используется для привязки подов к определенным серверам.
spec:
  nodeSelector:
    disktype: ssd
🚩Node Affinity (Расширенные правила выбора ноды) Позволяет задать гибкие условия (обязательные и предпочтительные).
affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        - matchExpressions:
            - key: region
              operator: In
              values:
                - us-east-1
🚩Pod Disruption Budget (Ограничение количества перезапусков) Запрещает запуск новых подов, если их уже запущено определенное количество.
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: my-pdb
spec:
  maxUnavailable: 3
  selector:
    matchLabels:
      app: my-app
Ставь 👍 и забирай 📚 Базу знаний

🤔 Пример асимметричного шифрования? - RSA — самый популярный алгоритм. - Пример: клиент шифрует данные публичным ключом сервера, а сервер расшифровывает их своим приватным. Также используется в TLS-сертификатах, PGP, SSH. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Из чего состоит control plane? В Kubernetes Control Plane — это набор компонентов, которые управляют всей кластерной системой. Он отвечает за контроль над состоянием кластера, управлением узлами (nodes) и развертыванием приложений. 🟠kube-apiserver Что делает: Это центральный компонент, предоставляющий API для управления кластером. Почему нужен: Все взаимодействия, включая добавление/удаление узлов, создание подов и настройку сетей, проходят через API-сервер. Как работает: Принимает запросы от пользователей, kubectl, и других компонентов. Проверяет подлинность запросов и валидирует данные. Передает команды другим компонентам через REST API. 🟠etcd Что делает: Это распределённое key-value хранилище, которое сохраняет все данные о состоянии кластера. Почему нужен: Все данные о конфигурации, статусе и метаданных кластера сохраняются в etcd. Если etcd выходит из строя, кластер теряет свою управляемость. Как работает: Хранит информацию о подах, конфигурации сетей и статусе всех компонентов. Поддерживает консенсус между узлами, обеспечивая надёжность данных. 🟠kube-scheduler Что делает: Назначает поды на доступные узлы. Почему нужен: Без планировщика поды не смогут быть развернуты на узлах. Как работает: Считывает незапланированные поды из API-сервера. Анализирует доступные узлы на основе их ресурсов (CPU, память и т.д.). Назначает узел для каждого пода на основе алгоритмов (например, минимальная загрузка). 🟠kube-controller-manager Что делает: Управляет контроллерами, которые следят за состоянием ресурсов в кластере. Почему нужен: Контроллеры — это "надсмотрщики", которые автоматически исправляют отклонения от желаемого состояния. Как работает: Включает несколько встроенных контроллеров: Node Controller: Следит за доступностью узлов. Replication Controller: Поддерживает нужное количество реплик подов. Endpoint Controller: Обновляет Endpoints-объекты. Service Account Controller: Создает учетные записи для сервисов. 🟠cloud-controller-manager Что делает: Управляет интеграцией с облачными провайдерами (например, AWS, GCP). Почему нужен: Позволяет использовать облачные функции, такие как балансировка нагрузки, управление дисками и маршрутизацией. Как работает: Отвечает за создание LoadBalancer. Управляет постоянными томами (Persistent Volumes), связанными с облачными хранилищами. Ставь 👍 и забирай 📚 Базу знаний

❕ Бесплатный вебинар: «GitOps + Flux — ваш путь к автоматизированному деплою в Kubernetes»! Вы хотите развернуть приложение в
❕ Бесплатный вебинар: «GitOps + Flux — ваш путь к автоматизированному деплою в Kubernetes»! Вы хотите развернуть приложение в Kubernetes без тонны ручных команд и нервов? Мечтаете о системе, где код сам «доставляется» в прод по принципу «закоммитил — заработало»? Приглашаем вас на открытый урок в рамках курса «Инфраструктурная платформа на основе Kubernetes , где разберём»: - как перестать вручную деплоить приложения; - как добиться стабильного состояния кластера; - как сделать процессы прозрачными и контролируемыми. 🗓 Когда: 23.12, в 20-00 Для кого: DevOps‑инженеры, разработчики, администраторы Kubernetes, все, кто хочет автоматизировать деплой. На уроке вы узнаете: 💚 Что такое GitOps и почему это новый стандарт работы с Kubernetes. 💚 Как Flux автоматизирует синхронизацию кластера с Git‑репозиторием. 💚Практические примеры настройки Flux для реальных сценариев. 💚Как избежать типичных ошибок при внедрении GitOps. 💚Какие преимущества даёт подход «конфигурация как код». После урока вы сможете: - настроить базовый пайплайн GitOps с Flux; - понять, как интегрировать Flux в существующую инфраструктуру; - оценить, подходит ли GitOps для вашего проекта. ➡️ Регистрирация: https://otus.pw/LUdW/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

🤔 Как Kafka записывает сообщения и как их отдаёт? - Producer отправляет сообщение в топик, который разбит на партиции. - Kafka записывает в лог-файл на диск. - Consumer читает сообщения, обращаясь к нужной партиции. - Каждый consumer хранит offset, Kafka ничего не удаляет, пока не истечёт retention. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Во сколько зонах можно включить репликацию в RDS Aurora? Aurora поддерживает до 5 read-replicas в разных зонах/регионах с высокой доступностью и кросс-региональным фейловером. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как оптимизировать имедж? Оптимизация Docker-имеджа (или другого контейнерного имеджа) необходима для уменьшения его размера, ускорения сборки, повышения безопасности и повышения производительности контейнеров. 🟠Используйте минимальную базовую ОС Почему: Базовый образ сильно влияет на размер. Например, alpine занимает ~5 МБ, в то время как ubuntu или debian могут превышать сотни мегабайт. Как: Замените базовый образ:
FROM alpine:latest
🟠Удаляйте ненужные файлы Почему: Временные файлы, кэш или артефакты сборки занимают место. Как: Добавьте команды для очистки временных данных:
RUN apt-get update && apt-get install -y curl \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
🟠Используйте многоэтапную сборку (multi-stage builds) Почему: Стадия сборки может содержать инструменты, которые не нужны в финальном образе. Как
# Стадия сборки
FROM golang:1.20 as builder
WORKDIR /app
COPY . .
RUN go build -o app .

# Финальный образ
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/app .
CMD ["./app"]
🟠Минимизируйте количество слоёв Почему: Каждый RUN, COPY, ADD создаёт новый слой. Слишком много слоёв увеличивают размер образа. Как: Объединяйте команды:
RUN apt-get update && apt-get install -y curl wget \
    && apt-get clean && rm -rf /var/lib/apt/lists/*
🟠Не сохраняйте секреты Почему: Переменные окружения с паролями или токенами могут быть случайно унаследованы. Как: Используйте Docker secrets или .env-файлы и исключайте их из COPY
ENV APP_ENV=production
🟠Кэшируйте зависимости Почему: Частое скачивание зависимостей замедляет сборку. Как: Переносите команды загрузки зависимостей ближе к началу:
COPY go.mod go.sum ./
RUN go mod download
🟠Проверяйте зависимости Почему: Устаревшие или ненужные зависимости увеличивают размер и могут содержать уязвимости. Как: Используйте сканеры вроде Trivy или Docker Scan для анализа.
trivy image myimage:latest
🚩Пример полного Dockerfile
# 1. Используем минимальный базовый образ
FROM node:20-alpine as builder

# 2. Устанавливаем зависимости
WORKDIR /app
COPY package*.json ./
RUN npm install

# 3. Копируем код
COPY . .

# 4. Собираем проект
RUN npm run build

# Финальный минимальный образ
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]
Ставь 👍 и забирай 📚 Базу знаний

Пост для тех, кто устал от бесконечных отказов на собеседованиях. Все говорят: «Войти в IT легко!» Но на практике собеседован
Пост для тех, кто устал от бесконечных отказов на собеседованиях. Все говорят: «Войти в IT легко!» Но на практике собеседования валятся одно за другим. И это не потому что вы «не подходите». А потому что на джуна смотрят не по сертификатам и не по словам «ничего не знаю, но легко обучаем!», а по конкретным хард-скиллам. К сожалению или счастью, но это именно так. Эти хард-скиллы ждут уже на входе: • умение работать с логами • понимание, как работает API и авторизация • базовый SQL • умение разобрать ошибку, а не гадать • техническое мышление хоть на уровне основ Без этого кандидат теряется, и это чаще всего видно сразу. В канале Кирилла, руководителя технической поддержки T-Банка – эти навыки разбираются простыми, рабочими примерами: что спрашивают на собесах, что проверяют в тестовых, какие ошибки чаще всего допускают новички. Если хотите подготовиться, а не просто смотреть курсы ради мнимой уверенности на собесе – начните отсюда: 🔥@openstudyiteng

🤔 Какой номер порта используется для ping-коммуникации? Ping не использует порты, так как работает на уровне ICMP, а не TCP или UDP. ICMP — это протокол сетевого уровня, используемый для диагностики (например, ping, traceroute). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Для чего используется clickhouse? ClickHouse – это высокопроизводительная колоночная база данных для аналитики. Она предназначена для быстрого выполнения аналитических запросов на больших объемах данных (миллиарды строк). Используется в BI-системах, логировании, мониторинге и обработке событий. 🚩Основные возможности 🟠Очень быстрые запросы за счёт хранения данных по колонкам и сжатия. 🟠Отлично масштабируется работает на одной машине или в кластере. 🟠Поддержка SQL работает с привычными SQL-запросами. 🟠Хорош для real-time аналитики обработка миллионов событий в секунду. 🟠Без индексов использует Primary Key + MergeTree, что упрощает оптимизацию. 🟠Хорошее сжатие данных благодаря специальным алгоритмам хранения. 🚩Где используется? 🟠Аналитика и отчёты BI-системы (анализ продаж, маркетинга, поведения пользователей). Агрегация данных по времени (финансы, реклама, ретеншн). 🟠Логирование и мониторинг Хранение логов (NGINX, Kubernetes, Clickstream). Аналитика событий в реальном времени. 🟠IoT и Big Data Обработка телеметрии с датчиков. Анализ поведения пользователей в приложениях. 🟠Пример работы с ClickHouse 1⃣Создание таблицы
CREATE TABLE visits (
    user_id UInt32,
    url String,
    duration UInt32,
    event_time DateTime
) ENGINE = MergeTree()
ORDER BY event_time;
2⃣Вставка данных
INSERT INTO visits VALUES (1, 'https://example.com', 30, now());
3⃣Аналитический запрос (например, среднее время посещения сайта)
SELECT url, AVG(duration) 
FROM visits 
GROUP BY url 
ORDER BY AVG(duration) DESC;
Ставь 👍 и забирай 📚 Базу знаний

🤔 Какие есть сущности в Kubernetes, минимальные и далее по возрастанию? - Pod — минимальная сущность, может содержать один или несколько контейнеров. - ReplicaSet — управляет количеством pod'ов. - Deployment — управляет ReplicaSet'ами, обновлениями и откатами. - Service — обеспечивает доступ к pod'ам. - Namespace — логическое разделение ресурсов. - Node — физическая или виртуальная машина. - Cluster — объединение всех вышеуказанных компонентов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как определить опции запуска пайплайна при редактировании определенных ресурсов в гите? При работе с CI/CD (GitHub Actions, GitLab CI, Jenkins) часто нужно запускать пайплайн только при изменении определенных файлов. Это помогает оптимизировать сборку, экономить ресурсы и время. 🚩В GitHub Actions (on: push, paths) В GitHub Actions можно указать файлы, изменения в которых запустят пайплайн.
name: Infra Pipeline
on:
  push:
    paths:
      - 'infra/**'
      - 'k8s/**'
  pull_request:
    paths:
      - 'infra/**'
      - 'k8s/**'
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Deploy Infrastructure
        run: ./deploy.sh
🚩В GitLab CI/CD (only: changes) В GitLab можно настроить запуск пайплайна по изменению файлов с помощью only: changes.
stages:
  - deploy

terraform:
  stage: deploy
  script:
    - terraform apply -auto-approve
  only:
    changes:
      - terraform/**
🚩В Jenkins (when { changes }) В Jenkins Declarative Pipeline можно использовать when { changes } для проверки измененных файлов.
pipeline {
    agent any
    stages {
        stage('Deploy Ansible') {
            when { changes path: 'ansible/**' }
            steps {
                sh './deploy_ansible.sh'
            }
        }
        stage('Deploy Helm') {
            when { changes path: 'helm/**' }
            steps {
                sh './deploy_helm.sh'
            }
        }
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Акриловые подоконники — финальный штрих ремонта Пластиковый подоконник портит весь вид? Пора на уровень выше. Акриловый камен
Акриловые подоконники — финальный штрих ремонта Пластиковый подоконник портит весь вид? Пора на уровень выше. Акриловый камень — материал, который выглядит дорого, служит десятилетиями и не боится влаги и не теряет первоначальный вид. ✅ 14 оттенков в наличии. ✅ Фиксированная цена — от 2700 ₽. ✅ Быстрая доставка. ✅ 15 лет гарантии. Выбирайте подоконник, который подчеркнёт стиль вашего дома. Перейти на сайт #реклама podokonniki-online.ru О рекламодателе

🤔 Что будет происходить после внесения изменений в image? - Сборка создаст новый слой поверх существующего; - Старый image сохраняется, пока не удалён; - Изменения можно сравнить, протестировать или запушить в репозиторий; - При развертывании — будет использоваться обновлённая версия образа. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие Enterprise Firewall знаешь? В мире корпоративных (Enterprise) межсетевых экранов (firewall) существует множество решений от разных вендоров. Основные из них: 🟠Palo Alto Networks (Next-Generation Firewall, NGFW) Palo Alto — один из лидеров в сфере NGFW. Он использует глубокий анализ трафика и машинное обучение для выявления угроз. Контроль трафика на уровне приложений (App-ID) Инспекция SSL/TLS Встроенная защита от вредоносных программ (WildFire) Интеграция с SIEM/SOAR 🟠Cisco Firepower (ранее ASA с FirePOWER Services) Cisco Firepower объединяет традиционные возможности Cisco ASA с функциями, полученными после покупки Sourcefire. IPS/IDS (интеграция с Snort) Защита от атак нулевого дня Автоматизация защиты на базе машинного обучения Полная интеграция с экосистемой Cisco 🟠3. Fortinet FortiGate Fortinet — это NGFW, ориентированный на производительность и безопасность. Встроенный SD-WAN Антивирусный сканер и веб-фильтрация DLP (Data Loss Prevention) Поддержка IoT и OT-безопасности 🟠Check Point Next Generation Firewall Check Point — один из старейших игроков в сфере межсетевых экранов, известный своими решениями безопасности. Инспекция шифрованного трафика Защита от APT (Advanced Persistent Threats) Встроенный Threat Intelligence (ThreatCloud) - Многослойная защита от DoS/DDoS 🟠Juniper Networks SRX Juniper предлагает мощные межсетевые экраны, которые часто используются в телекоммуникациях. Высокая производительность Поддержка виртуализации (vSRX) Гибкая маршрутизация и VPN Интеграция с AI для автоматического обнаружения угроз 🟠Huawei USG (Unified Security Gateway) Huawei предлагает сетевые экраны для корпоративного и государственного сектора. Интеграция с 5G-сетями Встроенные функции DDoS-защиты Высокая масштабируемость Ставь 👍 и забирай 📚 Базу знаний

🤔 С каким флагом использовать pg_dump, чтобы сжать бэкап? Чтобы получить сжатый архив, используй формат custom: - Флаг -Fc — это формат custom, который: - создаёт сжатый файл - можно частично восстанавливать - совместим с pg_restore Или можешь перенаправить в gzip, но -Fc предпочтительнее, если нужен сжатый дамп с гибкой структурой. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний