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 560
Subscribers
-424 hours
-157 days
-830 days
Posts Archive
🤔 Что такое императивный подход? Императивный подход — это стиль программирования, где мы пошагово указываем компьютеру, что делать и как это делать. Программист описывает процесс решения задачи. Код выполняется шаг за шагом, изменяя состояние программы.
numbers = [1, 2, 3, 4, 5]
squared = []

for num in numbers:
    squared.append(num ** 2)  # Явно указываем, что делать на каждом шаге

print(squared)  # [1, 4, 9, 16, 25]
🚩Где используется императивный стиль? Языки программирования: C, Java, Python (может быть и императивным, и декларативным). Операционные системы (где важно управлять состоянием). Автоматизация в DevOps (например, скрипты Bash).
#!/bin/bash
mkdir /backup
cp /var/log/syslog /backup/
echo "Backup создан"
Пример в DevOps (Terraform) Императивный (Ansible, Bash)
  apt update
  apt install nginx
Шаги установки Nginx описаны вручную. Декларативный (Terraform, Kubernetes)
  resource "aws_instance" "web" {
    ami = "ami-123456"
    instance_type = "t2.micro"
  }
Ставь 👍 и забирай 📚 Базу знаний

Легендарная AIшница 3.0! Бесплатный онлайн-практикум 3 сезон масштабного онлайн-практикума про нейросети для бизнеса. 3 дня, в программе применение ИИ в продажах, маркетинге, HR и других бизнес-процессов Спикеры: Александр Горный, Сергей Нотевский, Павел Лебедев Регистрируйтесь бесплатно! Узнать больше #реклама 16+ ai-practicum.bitrix24.events О рекламодателе

🤔 Технологии AF_PACKET, PCAP, RAW socket, PF_RING. Что объединяет их и их различия? Все эти технологии используются для перехвата и обработки сетевого трафика: - AF_PACKET – низкоуровневый доступ к пакетам в пространстве ядра, позволяет захватывать пакеты до их обработки IP-стеком. - PCAP (libpcap/tcpdump) – библиотека для пользовательского пространства, позволяет фильтровать и анализировать пакеты. - RAW socket – создаёт сокеты для работы с IP- и Ethernet-пакетами напрямую, нужен root-доступ. - PF_RING – ускоренный механизм захвата пакетов, оптимизирован для высоких нагрузок. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Есть 1000 разработчиков, каждый создал по 1-2 уникальному приложению, как это все масштабировать? Если у вас 1000 разработчиков и 2000 сервисов, то без автоматизации не обойтись. 🟠 Kubernetes для контейнеров Организация: Каждое приложение → отдельный Pod. Namespaces → для команд и сред (dev, stage, prod). Helm → для удобного управления. Манифест деплоя
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-registry.com/my-app:v1
🟠CI/CD для автоматического деплоя Инструменты: GitLab CI/CD, ArgoCD
stages:
  - build
  - deploy

build:
  script:
    - docker build -t my-registry.com/my-app:$CI_COMMIT_SHA .
    - docker push my-registry.com/my-app:$CI_COMMIT_SHA

deploy:
  script:
    - kubectl set image deployment/my-app my-app=my-registry.com/my-app:$CI_COMMIT_SHA
🟠Мониторинг и логирование Prometheus + Grafana → метрики, алерты Loki / ELK (Elasticsearch + Kibana) → логи Запрос ошибок API:
rate(http_requests_total{status="500"}[5m])
🟠Автоматическое масштабирование Горизонтальный автоскейлинг (HPA)
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: my-app-hpa
spec:
  minReplicas: 3
  maxReplicas: 10
  targetCPUUtilizationPercentage: 70
🟠Service Mesh (Istio) для управления трафиком Разделение нагрузки между версиями:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
spec:
  hosts:
  - my-app.example.com
  http:
  - route:
    - destination:
        host: my-app
        subset: v1
      weight: 80
    - destination:
        host: my-app
        subset: v2
      weight: 20
🟠Безопасность (RBAC, Network Policies) Ограничение доступа разработчиков:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: dev-access
subjects:
- kind: User
  name: dev-user
roleRef:
  kind: Role
  name: read-only
  apiGroup: rbac.authorization.k8s.io
Ставь 👍 и забирай 📚 Базу знаний

Обучение трейдингу для новичков и профессиналов Изучайте слайды с основными темами, смотрите видео и практикуйтесь. Торгуйте
Обучение трейдингу для новичков и профессиналов Изучайте слайды с основными темами, смотрите видео и практикуйтесь. Торгуйте на рынке как профи! Зарегистрироваться #реклама 16+ fxproru.pro О рекламодателе

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

🤔 На каких принципах работает докер? Это платформа для автоматизации развертывания, масштабирования и управления приложениями в контейнерах. Контейнеры позволяют изолировать приложения и их зависимости, обеспечивая легкую переносимость и консистентность окружения. Основные принципы работы Docker включают в себя контейнеризацию, использование образов, контейнеров, оркестрацию и сетевую инфраструктуру. 🚩Основные принципы 🟠Контейнеризация Контейнеризация позволяет запускать приложения и их зависимости в изолированных окружениях. Контейнеры предоставляют легкие и эффективные среды, которые включают все необходимое для запуска приложений. Контейнеры: Легковесные, изолированные окружения, которые работают поверх ядра хостовой операционной системы. Namespace: Механизм ядра Linux, обеспечивающий изоляцию процессов, сети, PID, пользовательских идентификаторов и монтирования файловых систем. Cgroups: Контрольные группы в Linux, которые ограничивают и отслеживают использование ресурсов контейнерами, включая процессорное время, память и I/O. 🟠Использование образов Образы Docker являются шаблонами для создания контейнеров. Образ включает в себя все необходимые компоненты, такие как код приложения, библиотеки, зависимости и конфигурационные файлы. Dockerfile: Скрипт, содержащий инструкции по созданию образа. Используется для автоматизации создания образов. Слойность: Каждый образ состоит из нескольких слоев, которые кэшируются и могут использоваться повторно, что ускоряет процесс сборки и уменьшает использование ресурсов. 🟠Изоляция и безопасность Docker обеспечивает изоляцию приложений, что позволяет запускать несколько контейнеров на одном хосте без взаимного влияния. Изоляция процессов: Каждый контейнер имеет свой собственный процессорный контекст, что исключает конфликты между приложениями. Изоляция файловой системы: Контейнеры имеют свои собственные файловые системы, изолированные от файловой системы хостовой операционной системы. Безопасность: Docker использует механизмы, такие как AppArmor, SELinux и seccomp, для обеспечения безопасности контейнеров. 🟠Управление сетями Docker предоставляет гибкие возможности управления сетями для контейнеров, включая создание изолированных сетей и подключение контейнеров к различным сетям. Bridge Network: Создает изолированную сеть для контейнеров на одном хосте. Host Network: Контейнер использует сетевые интерфейсы хостовой операционной системы. Overlay Network: Позволяет контейнерам на разных хостах взаимодействовать друг с другом. Macvlan Network: Контейнеры получают собственные MAC-адреса и ведут себя как физические устройства в сети. 🟠Хранение данных Docker поддерживает различные механизмы хранения данных для обеспечения сохранности и доступности данных контейнеров. Volumes: Независимые от контейнеров хранилища данных, которые могут быть подключены к одному или нескольким контейнерам. Bind Mounts: Позволяют монтировать директории хостовой файловой системы в контейнеры. Tmpfs: Использует память хоста для хранения данных контейнера, что полезно для временных данных. Ставь 👍 и забирай 📚 Базу знаний

В Битрикс24 теперь можно сделать сайт за 30 секунд Серьёзно. Пишешь, что нужно, и AI сам всё собирает: тексты, картинки, офор
В Битрикс24 теперь можно сделать сайт за 30 секунд Серьёзно. Пишешь, что нужно, и AI сам всё собирает: тексты, картинки, оформление. ✨Никакой магии, просто умный помощник. Попробуйте — закайфуете от скорости! Попробовать #реклама 16+ sites-24.bitrix24.ru О рекламодателе

🤔 Какой командой на RedHat Linux сделать так, чтобы сервисы стартовали при boot? Необходимо включить автозапуск системного сервиса. Это делается через системный менеджер, применимый в современных дистрибутивах RedHat (например, systemd). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🖥 Ты теряешь месяцы на YouTube, когда всё можно было бы уместить в один PDF 📄 Senior разработчик Pythonl написал подробный
+5
🖥 Ты теряешь месяцы на YouTube, когда всё можно было бы уместить в один PDF 📄 Senior разработчик Pythonl написал подробный PDF-гайд, в котором всё по-человечески: • без воды • очень наглядные иллюстрации, которые помогают понять сложные концепции • коротко и по делу • ускорение кода в 2–10 раз • снижение потребления памяти • антипаттерны и как их избегать • инструменты: py-spy, cProfile, Scalene • приёмы из Big Tech и реальные кейсы Отлично подходит для новичков Понял → Применил → Пошёл дальше Скачать полностью бесплатный гайд можно здесь.

🤔 Как разделять элементы CI и CD в jenkins? В Jenkins CI (Continuous Integration) и CD (Continuous Delivery/Deployment) можно разделять на разные стадии (stages) или отдельные пайплайны. Это повышает гибкость, упрощает отладку и делает процесс масштабируемым. 🚩Разделение CI и CD внутри одного `Jenkinsfile` Можно использовать разные стадии (stages) в Jenkinsfile: Пример:
pipeline {
    agent any

    stages {
        stage('CI: Build & Test') {
            steps {
                echo "📦 Сборка и тестирование кода"
                sh 'mvn clean package'  // Сборка
                sh 'mvn test'           // Юнит-тесты
            }
        }

        stage('CI: Code Analysis') {
            steps {
                echo "🧐 Анализ кода (SonarQube)"
                sh 'sonar-scanner'
            }
        }

        stage('CD: Staging Deployment') {
            steps {
                echo "🚀 Деплой на стейджинг"
                sh 'kubectl apply -f k8s/staging.yaml'
            }
        }

        stage('CD: Production Deployment') {
            when {
                branch 'main'  // Только для main-ветки
            }
            steps {
                echo "🔥 Деплой в прод"
                sh 'kubectl apply -f k8s/production.yaml'
            }
        }
    }
}
🚩Отдельные пайплайны для CI и CD Можно разделить CI и CD на разные пайплайны, используя Jenkins Multibranch Pipeline. CI-пайплайн (Jenkinsfile.ci)
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
    }
    post {
        success {
            archiveArtifacts artifacts: '**/target/*.jar'
            build job: 'CD-Pipeline', wait: false  // Запуск CD после успешного CI
        }
    }
}
CD-пайплайн (Jenkinsfile.cd)
pipeline {
    agent any
    stages {
        stage('Deploy to Staging') {
            steps {
                sh 'kubectl apply -f k8s/staging.yaml'
            }
        }
        stage('Manual Approval') {
            steps {
                input message: "Deploy to Production?"
            }
        }
        stage('Deploy to Production') {
            steps {
                sh 'kubectl apply -f k8s/production.yaml'
            }
        }
    }
}
🚩Использование `Jenkins Shared Library` для разделения логики Если много пайплайнов, лучше вынести CI/CD-логику в общую библиотеку (vars/ci.groovy, vars/cd.groovy). Пример CI (vars/ci.groovy)
def call() {
    pipeline {
        agent any
        stages {
            stage('Build & Test') {
                steps {
                    sh 'mvn clean package && mvn test'
                }
            }
        }
    }
}
Пример CD (vars/cd.groovy)
def call() {
    pipeline {
        agent any
        stages {
            stage('Deploy') {
                steps {
                    sh 'kubectl apply -f k8s/production.yaml'
                }
            }
        }
    }
}
Jenkinsfile с использованием библиотек
@Library('my-shared-library') _

ci()  // Запуск CI
cd()  // Запуск CD
Ставь 👍 и забирай 📚 Базу знаний

Высшее образование дистанционно в Московском ВУЗе Вы мечтаете получить высшее образование, но не сдали ЕГЭ или получили низки
Высшее образование дистанционно в Московском ВУЗе Вы мечтаете получить высшее образование, но не сдали ЕГЭ или получили низкие баллы? У нас есть решение для вас! Институт Международных Экономических Связей предлагает дистанционное обучение , которое позволяет получать качественные знания из любой точки мира по 10+ направлениям обучения. ✅ Государственный диплом без отметки о дистанте ✅ Удобный личный кабинет студента ✅ Поддержка кураторов на каждом этапе обучения ✅ Можно поступить без ЕГЭ Узнать больше #реклама 16+ imes.su О рекламодателе

🤔 Из чего состоит worker node? Worker-нода содержит: - kubelet — агент, управляющий подами. - kube-proxy — сетевое взаимодействие и балансировка. - container runtime — Docker, containerd, CRI-O. - Мгновенный доступ к данным. - Уменьшение нагрузки на RDS. - TTL для автоочистки. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Подключите корпоративный ДМС в Совкомбанк Страхование Позаботьтесь о своей команде! ✨ ДМС от Совкомбанк Страхование – это решения под любой бюджет и потребности. 25 лет опыта, телемедицина, офисный врач и доступ к 10 000+ клиник по России. Сэкономьте до 30% с ДМС с франшизой и получите налоговые льготы. Собственная диспетчерская служба 24/7 всегда на связи. Здоровые сотрудники – успешный бизнес! Узнайте больше на сайте и оформите ДМС уже сегодня! 🏃‍♂️⚡ Перейти на сайт Финансовые услуги оказывает: ПАО "Совкомбанк", АО "Совкомбанк Страхование". #реклама sovcomins.ru О рекламодателе

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

🤔 Как сделать донастройку контейнера? Донастройка контейнера может понадобиться, если: Нужно изменить файлы конфигурации. Установить дополнительные пакеты. Задать переменные среды. Подключить тома или сети. Варианты донастройки: через Dockerfile, docker-compose, exec, тома и Entrypoint/CMD. 🟠Донастройка через Dockerfile (Лучший способ) Если контейнер нужно модифицировать перед запуском, создаем свой Dockerfile на основе существующего образа.
FROM nginx:latest
COPY my-nginx.conf /etc/nginx/nginx.conf
CMD ["nginx", "-g", "daemon off;"]
Собираем новый образ
docker build -t my-nginx .
docker run -d -p 80:80 my-nginx
🟠Донастройка через `docker-compose` (Гибкость) Можно задать окружение, тома, команды.
version: '3'
services:
  db:
    image: postgres:15
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: mydb
    volumes:
      - ./custom-postgres.conf:/etc/postgresql/postgresql.conf
    command: postgres -c config_file=/etc/postgresql/postgresql.conf
Запуск
docker-compose up -d
🟠Донастройка запущенного контейнера (`docker exec`) Если контейнер уже работает, можно внести изменения прямо в него.
docker exec -it my-container bash
apt update && apt install -y vim
🟠Донастройка через тома (Volumes) Если нужно изменять файлы без пересборки образа, подключаем тома.
docker run -d -p 80:80 -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf nginx
🟠Использование `ENTRYPOINT` или `CMD` Можно задать скрипт донастройки, который выполнится при старте контейнера.
FROM postgres:15
COPY setup.sh /docker-entrypoint-initdb.d/setup.sh
RUN chmod +x /docker-entrypoint-initdb.d/setup.sh
В setup.sh:
#!/bin/bash
psql -U postgres -d mydb -c "CREATE TABLE test (id SERIAL PRIMARY KEY);"
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как в Docker Compose вместо YAML-файла использовать JSON-файл? Docker Compose принимает на вход YAML-файл по умолчанию, но JSON тоже поддерживается, так как JSON является допустимым подмножеством YAML. Для этого нужно просто создать файл с расширением .json, содержащий валидную структуру, аналогичную docker-compose.yml, и передать его явно: docker-compose -f docker-compose.json up. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое data source в графане? Это источник данных, с которым Grafana может взаимодействовать для построения графиков, панелей мониторинга (dashboards) и выполнения запросов. Data Source определяет, как Grafana подключается к внешним системам мониторинга, базам данных или API для получения метрик, логов или другой информации. 🚩Основные аспекты 🟠Типы Data Source Grafana поддерживает множество типов источников данных, включая: Системы мониторинга: Prometheus Zabbix InfluxDB Graphite Лог-агрегаторы: Loki Elasticsearch Splunk Облачные сервисы: AWS CloudWatch Google Cloud Monitoring Azure Monitor Реляционные базы данных: MySQL PostgreSQL API или внешние плагины: JSON API OpenTelemetry 🟠Функции Data Source Подключение: Определяет параметры для соединения с внешним хранилищем данных, такие как URL, токены аутентификации, логин/пароль. Выполнение запросов: Обеспечивает интерфейс для написания запросов к данным через встроенный редактор запросов Grafana. Форматирование данных: Конвертирует данные из формата, предоставляемого источником, в формат, понятный Grafana. 🟠Добавление Data Source Добавление источника данных выполняется через веб-интерфейс Grafana: Зайдите в Settings → Data Sources. Нажмите кнопку Add data source. Выберите нужный тип источника (например, Prometheus). Настройте параметры подключения (например, URL, токен, порт). Нажмите Save & Test, чтобы проверить соединение. 🟠Примеры запросов Для Prometheus:
rate(http_requests_total[5m])
Для MySQL
SELECT time, value FROM metrics WHERE time > NOW() - INTERVAL 1 HOUR;
🚩Особенности Data Source 🟠Кастомизация Вы можете устанавливать плагины для подключения к нестандартным источникам данных. Grafana Marketplace предлагает плагины для расширения функциональности. 🟠Мульти-сорсинг Один дашборд может использовать несколько источников данных, что позволяет объединять данные из разных систем. 🟠Глобальные переменные Источники данных могут использовать глобальные параметры, такие как время ($__timeFilter), для унификации запросов. 🟠Безопасность Поддержка различных методов аутентификации: токены, ключи API, OAuth. Ставь 👍 и забирай 📚 Базу знаний

Подскажем, где остановиться на день или больше В путешествии, отпуске или поездке в соседний город. На Циан.Посуточно вы може
Подскажем, где остановиться на день или больше В путешествии, отпуске или поездке в соседний город. На Циан.Посуточно вы можете забронировать как квартиру и дом, так и отель — выбирайте, что удобнее. ✅ Онлайн-бронирование. Календарь в приложении покажет свободные даты и итоговую стоимость проживания. ✅ Безопасная предоплата. Всего 10% в приложении — можно вернуть, если планы поменяются. Остальное оплачивайте при заезде. ✅ Идеи для путешествий. Собрали рекомендации наших пользователей — что посмотреть и что попробовать — в путеводителе Циана. Перейти на сайт #реклама 16+ cian.ru О рекламодателе

🤔 Что сейчас больше используется — ingress класс в ingress или указывается ingress контроллер непосредственно в приложении? Наиболее распространённый способ — использовать ingressClassName в ресурсе Ingress. Это современный подход с Kubernetes 1.19+. Указание через аннотации контроллера (kubernetes.io/ingress.class) всё ещё встречается, но считается устаревшим. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний