Перейти к основному содержимому

200 вопросов по DevOps

200 вопросов по DevOps

Основы DevOps и культура

Вопрос

Что такое DevOps?

Ответ

DevOps — это набор практик, культурных норм и инструментов, направленных на автоматизацию и интеграцию процессов разработки программного обеспечения (Development) и эксплуатации ИТ-инфраструктуры (Operations). Цель DevOps — ускорение доставки качественных изменений в production при поддержании стабильности и надёжности системы.


Вопрос

Какие ключевые принципы лежат в основе DevOps?

Ответ

Ключевые принципы DevOps включают непрерывную интеграцию, непрерывную доставку, автоматизацию инфраструктуры, совместную ответственность за качество, мониторинг в реальном времени, обратную связь от пользователей и культуру постоянного совершенствования.


Вопрос

Что означает термин «Shift Left» в контексте DevOps?

Ответ

«Shift Left» означает перенос проверок качества, безопасности и тестирования на более ранние этапы жизненного цикла разработки. Это позволяет выявлять ошибки и уязвимости до попадания кода в production, снижая стоимость исправления и повышая надёжность.


Вопрос

Как DevOps влияет на время вывода продукта на рынок?

Ответ

DevOps сокращает время вывода продукта на рынок за счёт автоматизации сборки, тестирования и развёртывания, а также за счёт устранения барьеров между командами разработки и эксплуатации. Это позволяет чаще и безопаснее выпускать обновления.


Вопрос

Что такое CI/CD?

Ответ

CI/CD — это практика непрерывной интеграции (Continuous Integration) и непрерывной доставки или развёртывания (Continuous Delivery/Deployment). CI предполагает частую интеграцию изменений в основную ветку с автоматическим запуском тестов. CD обеспечивает автоматическую доставку кода в staging или production после прохождения всех проверок.


Вопрос

В чём разница между Continuous Delivery и Continuous Deployment?

Ответ

Continuous Delivery подразумевает, что каждое изменение автоматически готово к развёртыванию в production, но требует ручного подтверждения. Continuous Deployment автоматически развёртывает каждое успешное изменение в production без участия человека.


Вопрос

Какие метрики используются для оценки эффективности DevOps-практик?

Ответ

Основные метрики включают частоту развёртываний, время восстановления после сбоя, время цикла от коммита до production, процент неудачных развёртываний и среднее время устранения инцидентов (MTTR).


Вопрос

Что такое культура blameless postmortem?

Ответ

Blameless postmortem — это практика анализа инцидентов без поиска виноватых. Акцент делается на понимании системных причин сбоя и внедрении мер по предотвращению повторения, а не на наказании отдельных людей.


Вопрос

Как DevOps связан с Agile?

Ответ

DevOps дополняет Agile, расширяя его принципы за пределы разработки. Если Agile фокусируется на гибкой разработке ПО через итерации и обратную связь, то DevOps обеспечивает быструю и надёжную доставку этих итераций в эксплуатацию.


Вопрос

Что такое Site Reliability Engineering (SRE)?

Ответ

Site Reliability Engineering — это дисциплина, сочетающая инженерные практики с операционной надёжностью. SRE применяет автоматизацию, определяет уровни сервиса (SLI/SLO/SLA) и управляет рисками, чтобы балансировать скорость изменений и стабильность системы.


Системы контроля версий

Вопрос

Что такое система контроля версий (VCS)?

Ответ

Система контроля версий — это программное обеспечение, которое отслеживает изменения в файлах и позволяет восстанавливать предыдущие версии, анализировать историю изменений и управлять совместной работой над кодом.


Вопрос

Какие типы систем контроля версий существуют?

Ответ

Существуют централизованные (CVCS, например Subversion) и распределённые (DVCS, например Git, Mercurial). В CVCS все изменения хранятся на центральном сервере, а в DVCS каждый разработчик имеет полную копию репозитория со всей историей.


Вопрос

Что такое коммит в Git?

Ответ

Коммит — это фиксация изменений в локальном репозитории. Каждый коммит содержит снимок состояния проекта, сообщение, автора и уникальный хеш.


Вопрос

Что такое ветка (branch) в Git?

Ответ

Ветка — это независимая линия разработки, позволяющая изолированно вносить изменения без влияния на основную кодовую базу. Основная ветка часто называется main или master.


Вопрос

Как работает слияние (merge) в Git?

Ответ

Слияние объединяет изменения из одной ветки в другую. Git автоматически объединяет изменения, если они не конфликтуют. При конфликтах требуется ручное разрешение.


Вопрос

Что такое rebase в Git и чем он отличается от merge?

Ответ

Rebase переносит коммиты одной ветки поверх другой, создавая линейную историю. В отличие от merge, который создаёт дополнительный коммит слияния, rebase перезаписывает историю, что удобно для чистоты лога.


Вопрос

Что такое .gitignore и зачем он нужен?

Ответ

Файл .gitignore определяет, какие файлы и директории Git должен игнорировать при отслеживании изменений. Это полезно для исключения временных, секретных или системных файлов (например, node_modules/, .env, *.log).


Вопрос

Как отменить последний коммит в Git?

Ответ

Если коммит ещё не отправлен в удалённый репозиторий, можно использовать git reset --soft HEAD~1 для отмены коммита с сохранением изменений или git reset --hard HEAD~1 для полного удаления. Если коммит уже отправлен, безопаснее создать новый коммит с исправлением (git revert).


Вопрос

Что такое stash в Git?

Ответ

Stash временно сохраняет незакоммиченные изменения, позволяя переключиться на другую ветку без потери текущих правок. Позже изменения можно вернуть командой git stash pop.


Вопрос

Как проверить историю изменений в Git?

Ответ

Историю можно просмотреть с помощью команды git log. Для компактного вывода используется git log --oneline, а для графического представления — git log --graph --all.


CI/CD

Вопрос

Что такое непрерывная интеграция (Continuous Integration)?

Ответ

Непрерывная интеграция — это практика, при которой разработчики регулярно объединяют свои изменения в общую ветку, и каждый коммит автоматически проходит сборку и тестирование. Это позволяет быстро выявлять ошибки и поддерживать стабильность основной ветки.


Вопрос

Какие компоненты обычно входят в пайплайн CI?

Ответ

Типичный пайплайн CI включает этапы: клонирование репозитория, установку зависимостей, запуск линтеров, выполнение unit- и интеграционных тестов, сборку артефактов и их сохранение для последующих этапов.


Вопрос

Что такое артефакт в контексте CI/CD?

Ответ

Артефакт — это результат сборки программного обеспечения: исполняемый файл, Docker-образ, ZIP-архив, пакет или любой другой выходной продукт, который может быть использован на следующих этапах доставки или развёртывания.


Вопрос

Как обеспечивается воспроизводимость сборок в CI/CD?

Ответ

Воспроизводимость достигается фиксацией версий зависимостей, использованием изолированных сред (например, контейнеров), детерминированными скриптами сборки и хранением всех входных данных (исходный код, конфигурации, переменные окружения).


Вопрос

Что такое pipeline as code?

Ответ

Pipeline as code — это подход, при котором конфигурация CI/CD-пайплайна описывается в виде текстовых файлов (например, .gitlab-ci.yml, Jenkinsfile, workflow.yaml) и хранится в системе контроля версий вместе с исходным кодом.


Вопрос

Какие преимущества даёт pipeline as code?

Ответ

Pipeline as code обеспечивает версионирование конфигураций, совместное редактирование, повторное использование, аудит изменений и возможность тестирования самого пайплайна как части кодовой базы.


Вопрос

Что такое blue-green deployment?

Ответ

Blue-green deployment — это стратегия развёртывания, при которой две идентичные среды (blue и green) существуют одновременно. Трафик переключается с одной на другую после успешного развёртывания новой версии, что минимизирует время простоя и упрощает откат.


Вопрос

Что такое канареечное развёртывание (canary deployment)?

Ответ

Канареечное развёртывание — это постепенное внедрение новой версии для небольшой части пользователей с последующим мониторингом метрик. При отсутствии проблем трафик постепенно переключается полностью на новую версию.


Вопрос

Как организуется откат в случае неудачного развёртывания?

Ответ

Откат может быть реализован через переключение обратно на предыдущую версию образа или артефакта, восстановление состояния базы данных из резервной копии, или автоматическое переключение трафика в blue-green или канареечной схеме.


Вопрос

Что такое feature flag и как он используется в CI/CD?

Ответ

Feature flag — это механизм, позволяющий включать или отключать функциональность без изменения кода или повторного развёртывания. Он используется для безопасного тестирования новых возможностей в production и управления постепенным выпуском.


Инфраструктура как код

Вопрос

Что такое инфраструктура как код (IaC)?

Ответ

Инфраструктура как код — это практика управления и подготовки ИТ-инфраструктуры с помощью машинно-читаемых файлов конфигурации, а не ручных процессов или интерактивных инструментов. Это позволяет автоматизировать создание, изменение и удаление ресурсов.


Вопрос

Какие преимущества даёт использование IaC?

Ответ

IaC обеспечивает воспроизводимость окружений, ускоряет развёртывание, снижает риск человеческой ошибки, упрощает документирование и аудит инфраструктуры, а также поддерживает принципы DevOps за счёт версионирования и автоматизации.


Вопрос

В чём разница между декларативным и императивным подходами в IaC?

Ответ

Декларативный подход описывает желаемое конечное состояние инфраструктуры (например, «этот сервер должен существовать с такими параметрами»). Императивный подход описывает последовательность действий для достижения цели (например, «создай сервер, затем настрой сеть»).


Вопрос

Какие популярные инструменты IaC вы знаете?

Ответ

Популярные инструменты IaC включают Terraform, AWS CloudFormation, Azure Resource Manager (ARM), Google Deployment Manager, Pulumi и Ansible (в части управления конфигурацией).


Вопрос

Что такое state-файл в Terraform и зачем он нужен?

Ответ

State-файл в Terraform хранит текущее состояние управляемой инфраструктуры: соответствие реальных ресурсов описанным в конфигурации, метаданные и зависимости. Он необходим для планирования изменений и корректного применения обновлений.


Вопрос

Как обеспечивается безопасность при работе с IaC?

Ответ

Безопасность достигается через управление доступом к репозиториям с конфигурациями, шифрование чувствительных данных (например, с помощью Vault или секретов CI/CD), сканирование конфигураций на уязвимости и применение принципа минимальных привилегий к создаваемым ресурсам.


Вопрос

Что такое drift в контексте IaC?

Ответ

Drift — это расхождение между фактическим состоянием инфраструктуры и состоянием, описанным в коде. Такое может возникнуть при ручном изменении ресурсов вне системы IaC.


Вопрос

Как обнаружить и устранить drift?

Ответ

Drift можно обнаружить с помощью команды terraform plan, которая сравнивает state-файл с реальной инфраструктурой. Устранение достигается либо приведением инфраструктуры в соответствие коду (terraform apply), либо обновлением кода под текущее состояние.


Вопрос

Можно ли использовать IaC для управления конфигурацией внутри виртуальных машин?

Ответ

Да, для этого используются инструменты управления конфигурацией, такие как Ansible, Chef, Puppet и SaltStack. Они применяют желаемое состояние к уже запущенным системам, в отличие от Terraform, который управляет облачными ресурсами на уровне API.


Вопрос

Что такое модуль в Terraform?

Ответ

Модуль в Terraform — это переиспользуемый блок конфигурации, содержащий ресурсы, переменные и выходные значения. Модули позволяют абстрагировать сложные компоненты инфраструктуры (например, VPC, кластер Kubernetes) и использовать их в разных проектах.


Контейнеризация

Вопрос

Что такое контейнер?

Ответ

Контейнер — это лёгковесная, изолированная среда выполнения приложения, включающая код, зависимости, библиотеки и конфигурации, необходимые для его работы. Контейнеры разделяют ядро хост-системы, но работают независимо друг от друга.


Вопрос

В чём разница между виртуальной машиной и контейнером?

Ответ

Виртуальная машина включает полноценную операционную систему и работает поверх гипервизора. Контейнер использует ядро хост-ОС и изолируется на уровне процессов и файловой системы, что делает его значительно легче и быстрее в запуске.


Вопрос

Что такое Docker?

Ответ

Docker — это платформа для создания, запуска и управления контейнерами. Она предоставляет инструменты для упаковки приложений в образы, их распространения и выполнения в изолированных средах.


Вопрос

Что такое Dockerfile?

Ответ

Dockerfile — это текстовый файл, содержащий инструкции для сборки Docker-образа. Он описывает базовый образ, копирование файлов, установку зависимостей, настройку переменных окружения и команду запуска.


Вопрос

Какие основные инструкции используются в Dockerfile?

Ответ

Основные инструкции: FROM (базовый образ), RUN (выполнение команд при сборке), COPY/ADD (копирование файлов), WORKDIR (рабочая директория), ENV (переменные окружения), EXPOSE (объявление портов), CMD/ENTRYPOINT (команда запуска).


Вопрос

Что такое слои (layers) в Docker-образе?

Ответ

Каждая инструкция в Dockerfile создаёт новый слой в образе. Слои кэшируются, что ускоряет повторную сборку. При изменении одной инструкции пересобираются только она и последующие слои.


Вопрос

Как уменьшить размер Docker-образа?

Ответ

Размер образа можно уменьшить с помощью многоступенчатой сборки (multi-stage build), использования минимальных базовых образов (например, alpine, distroless), объединения команд RUN и удаления временных файлов в том же слое.


Вопрос

Что такое volume в Docker?

Ответ

Volume — это механизм хранения данных вне контейнера, обеспечивающий сохранность информации между перезапусками и пересозданием контейнеров. Volumes управляются Docker и могут быть именованными или анонимными.


Вопрос

Что такое Docker Compose?

Ответ

Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений с помощью одного YAML-файла. Он описывает сервисы, сети, volumes и зависимости между компонентами.


Вопрос

Как передать секреты в контейнер безопасно?

Ответ

Секреты следует передавать через Docker secrets (в Swarm), Kubernetes Secrets (в кластере) или через переменные окружения, загружаемые из защищённых источников (например, HashiCorp Vault). Никогда не следует хранить секреты в образе или в открытом виде в Dockerfile.


Оркестрация контейнеров

Вопрос

Что такое оркестрация контейнеров?

Ответ

Оркестрация контейнеров — это автоматизированное управление жизненным циклом контейнеризированных приложений, включая развёртывание, масштабирование, балансировку нагрузки, восстановление после сбоев и обновление без простоя.


Вопрос

Какие задачи решает система оркестрации?

Ответ

Система оркестрации обеспечивает распределение контейнеров по узлам кластера, мониторинг их состояния, автоматический перезапуск при падении, горизонтальное масштабирование, управление сетью и хранением, а также безопасное обновление приложений.


Вопрос

Что такое Kubernetes?

Ответ

Kubernetes — это открытая платформа для оркестрации контейнеров, изначально разработанная Google и переданная CNCF. Она автоматизирует развёртывание, масштабирование и управление контейнеризированными приложениями в распределённой среде.


Вопрос

Из каких основных компонентов состоит кластер Kubernetes?

Ответ

Кластер Kubernetes состоит из управляющей плоскости (control plane) и рабочих узлов (worker nodes). Control plane включает kube-apiserver, etcd, kube-scheduler, kube-controller-manager и cloud-controller-manager. Worker nodes запускают kubelet, kube-proxy и container runtime.


Вопрос

Что такое Pod в Kubernetes?

Ответ

Pod — это минимальная единица развёртывания в Kubernetes. Он представляет собой группу одного или нескольких контейнеров, разделяющих сеть, хранилище и спецификацию выполнения. Обычно один Pod содержит один основной контейнер.


Вопрос

Что такое Deployment в Kubernetes?

Ответ

Deployment — это контроллер, управляющий желаемым состоянием ReplicaSet и Pod’ов. Он обеспечивает декларативное обновление приложений, поддержку отката и стратегии развёртывания (например, rolling update).


Вопрос

Как работает обновление приложения в Kubernetes?

Ответ

При обновлении Deployment создаётся новый ReplicaSet с новой версией образа. Kubernetes постепенно уменьшает количество старых Pod’ов и увеличивает количество новых, соблюдая заданные ограничения (maxUnavailable, maxSurge). Это обеспечивает нулевой простой при корректной настройке.


Вопрос

Что такое Service в Kubernetes?

Ответ

Service — это абстракция, предоставляющая стабильный IP-адрес и DNS-имя для доступа к группе Pod’ов. Он обеспечивает балансировку трафика внутри кластера и может быть типа ClusterIP, NodePort, LoadBalancer или ExternalName.


Вопрос

Что такое Ingress в Kubernetes?

Ответ

Ingress — это API-объект, управляющий внешним HTTP/HTTPS-доступом к сервисам внутри кластера. Он позволяет настраивать маршрутизацию по путям и хостам, TLS-терминацию и перезапись заголовков через Ingress-контроллер (например, NGINX, Traefik).


Вопрос

Как Kubernetes обеспечивает отказоустойчивость?

Ответ

Kubernetes автоматически перезапускает упавшие контейнеры, заменяет и планирует Pod’ы на здоровых узлах при сбое ноды, масштабирует реплики при высокой нагрузке и изолирует повреждённые компоненты с помощью health checks (liveness и readiness probes).


Мониторинг и логирование

Вопрос

Зачем нужен мониторинг в DevOps?

Ответ

Мониторинг обеспечивает видимость состояния систем, позволяет быстро обнаруживать аномалии, измерять производительность, подтверждать работоспособность после развёртываний и принимать решения на основе данных в реальном времени.


Вопрос

Какие типы мониторинга существуют?

Ответ

Основные типы: инфраструктурный (загрузка CPU, память, диск), прикладной (время отклика, ошибки, транзакции), бизнес-метрики (конверсия, активные пользователи) и синтетический (проверка доступности извне).


Вопрос

Что такое метрика в контексте мониторинга?

Ответ

Метрика — это числовое значение, измеряемое во времени и характеризующее состояние системы или приложения. Примеры: количество запросов в секунду, процент ошибок HTTP 5xx, использование памяти.


Вопрос

Что такое лог?

Ответ

Лог — это запись о событии, произошедшем в системе или приложении. Логи содержат информацию о времени события, его уровне важности (info, warn, error), контексте и диагностических данных.


Вопрос

Что такое трассировка (tracing)?

Ответ

Трассировка — это метод отслеживания жизненного цикла одного запроса через распределённую систему. Она позволяет визуализировать путь запроса по сервисам, измерять задержки на каждом этапе и выявлять узкие места.


Вопрос

Какие компоненты входят в стек ELK?

Ответ

Стек ELK состоит из Elasticsearch (хранилище и поиск), Logstash (сбор, фильтрация и преобразование логов) и Kibana (визуализация и анализ). Иногда вместо Logstash используется Beats — лёгкий агент для отправки данных.


Вопрос

Что такое Prometheus?

Ответ

Prometheus — это система мониторинга и сбора метрик с открытым исходным кодом. Она использует pull-модель (опрашивает эндпоинты /metrics), имеет встроенный язык запросов PromQL и поддерживает алертинг через Alertmanager.


Вопрос

Как приложение экспортирует метрики в Prometheus?

Ответ

Приложение должно предоставлять HTTP-эндпоинт /metrics в текстовом формате Prometheus. Это достигается с помощью клиентских библиотек (например, prometheus-client для Python, micrometer для Java), которые автоматически собирают и экспонируют метрики.


Вопрос

Что такое Grafana?

Ответ

Grafana — это платформа для визуализации и анализа временных рядов. Она поддерживает множество источников данных, включая Prometheus, Loki, Elasticsearch, и позволяет создавать дашборды, панели и алерты.


Вопрос

Что такое Loki?

Ответ

Loki — это горизонтально масштабируемая система логирования от Grafana Labs. Она индексирует только метки (labels), а не полное содержимое логов, что снижает затраты на хранение. Loki тесно интегрируется с Grafana и Promtail (агент для отправки логов).


Безопасность в DevOps

Вопрос

Что такое DevSecOps?

Ответ

DevSecOps — это интеграция практик безопасности на всех этапах жизненного цикла разработки и эксплуатации. Безопасность рассматривается как общая ответственность и автоматизируется наравне с тестированием и развёртыванием.


Вопрос

Какие практики входят в DevSecOps?

Ответ

Практики DevSecOps включают сканирование кода на уязвимости (SAST), анализ зависимостей (SCA), сканирование образов контейнеров, управление секретами, политики безопасности инфраструктуры (например, через OPA), аудит конфигураций и мониторинг runtime-угроз.


Вопрос

Что такое SAST?

Ответ

SAST (Static Application Security Testing) — это анализ исходного кода без его выполнения с целью выявления уязвимостей, таких как SQL-инъекции, XSS, небезопасная работа с памятью и другие ошибки программирования.


Вопрос

Что такое DAST?

Ответ

DAST (Dynamic Application Security Testing) — это тестирование работающего приложения извне, имитирующее действия злоумышленника. Он выявляет уязвимости, проявляющиеся только во время выполнения, например, неправильную обработку входных данных.


Вопрос

Как безопасно хранить и использовать секреты (пароли, токены, ключи)?

Ответ

Секреты следует хранить в специализированных системах: HashiCorp Vault, AWS Secrets Manager, Azure Key Vault или Kubernetes Secrets. Их нельзя коммитить в репозитории, записывать в логи или передавать в открытом виде через переменные окружения без защиты.


Вопрос

Что такое RBAC и зачем он нужен?

Ответ

RBAC (Role-Based Access Control) — это модель управления доступом, при которой права назначаются ролям, а роли — пользователям или сервисным аккаунтам. Это обеспечивает принцип минимальных привилегий и снижает риск несанкционированного доступа.


Вопрос

Как проверить безопасность Docker-образа?

Ответ

Безопасность образа проверяется с помощью сканеров уязвимостей, таких как Trivy, Clair, Anchore или встроенных средств CI/CD-платформ. Сканеры анализируют слои образа на наличие известных CVE в пакетах и библиотеках.


Вопрос

Что такое network policy в Kubernetes?

Ответ

Network policy — это объект Kubernetes, определяющий правила сетевого трафика между Pod’ами. По умолчанию все Pod’ы могут общаться друг с другом; network policy позволяет ограничить это поведение по принципу «запрещено всё, кроме разрешённого».


Вопрос

Как обеспечить безопасность IaC-конфигураций?

Ответ

Безопасность IaC достигается с помощью статического анализа конфигураций (например, через Checkov, tfsec, cfn-nag), применения политик безопасности (OPA/Rego), запрета жёстко заданных учётных данных и регулярного аудита создаваемых ресурсов.


Вопрос

Что такое принцип наименьших привилегий (PoLP)?

Ответ

Принцип наименьших привилегий гласит, что пользователь, процесс или система должны иметь только те права, которые необходимы для выполнения их задачи, и никаких дополнительных. Это минимизирует потенциальный ущерб при компрометации.


Сетевые основы для DevOps

Вопрос

Какую роль играет сеть в DevOps-инфраструктуре?

Ответ

Сеть обеспечивает взаимодействие между компонентами системы: приложениями, базами данных, внешними сервисами и пользователями. Правильная настройка сети критична для доступности, производительности, безопасности и наблюдаемости.


Вопрос

Что такое CIDR-нотация?

Ответ

CIDR (Classless Inter-Domain Routing) — это способ записи IP-адреса и маски подсети в формате 192.168.1.0/24. Число после слэша указывает количество бит, отведённых под сеть, остальные — под хосты.


Вопрос

Что такое NAT и зачем он используется?

Ответ

NAT (Network Address Translation) — это механизм преобразования частных IP-адресов во внутренней сети в публичный IP-адрес при выходе в интернет. Он позволяет множеству устройств использовать один внешний адрес и повышает безопасность.


Вопрос

В чём разница между TCP и UDP?

Ответ

TCP — это протокол с установлением соединения, гарантирующий доставку, порядок и целостность данных. UDP — это протокол без установления соединения, обеспечивающий минимальную задержку, но не гарантирующий доставку или порядок.


Вопрос

Что такое балансировщик нагрузки?

Ответ

Балансировщик нагрузки распределяет входящий трафик между несколькими серверами или экземплярами приложения, повышая доступность, отказоустойчивость и масштабируемость системы.


Вопрос

Какие алгоритмы балансировки нагрузки вы знаете?

Ответ

Распространённые алгоритмы: round-robin (поочерёдно), least connections (наименьшее число активных соединений), IP hash (фиксация клиента к серверу по его IP), и weighted (с учётом мощности сервера).


Вопрос

Что такое reverse proxy?

Ответ

Reverse proxy — это сервер, который принимает запросы от клиентов и перенаправляет их на внутренние сервисы. Он используется для SSL-терминации, кэширования, сжатия, маршрутизации и защиты backend-серверов.


Вопрос

Что такое TLS и зачем он нужен?

Ответ

TLS (Transport Layer Security) — это криптографический протокол, обеспечивающий конфиденциальность, целостность и аутентификацию данных при передаче по сети. Он используется для защиты HTTP-трафика (HTTPS), почты, API и других каналов связи.


Вопрос

Как работает DNS и зачем он нужен в DevOps?

Ответ

DNS (Domain Name System) преобразует доменные имена (например, example.com) в IP-адреса. В DevOps DNS используется для маршрутизации трафика, blue-green развёртываний через CNAME-записи, управления поддоменами и интеграции с CDN.


Вопрос

Что такое keep-alive в HTTP?

Ответ

Keep-alive — это механизм повторного использования одного TCP-соединения для нескольких HTTP-запросов. Это снижает накладные расходы на установку соединения и ускоряет обмен данными между клиентом и сервером.


Облачные платформы

Вопрос

Что такое облачная инфраструктура?

Ответ

Облачная инфраструктура — это совокупность вычислительных, сетевых и хранилищных ресурсов, предоставляемых через интернет по модели «как услуга». Она позволяет гибко масштабировать ресурсы, оплачивать только использованное и быстро развёртывать приложения.


Вопрос

Какие модели облачных сервисов существуют?

Ответ

Существуют три основные модели: IaaS (Infrastructure as a Service) — предоставление виртуальных машин и сетей; PaaS (Platform as a Service) — среда для разработки и запуска приложений без управления инфраструктурой; SaaS (Software as a Service) — готовые приложения, доступные через браузер.


Вопрос

Что такое AWS?

Ответ

AWS (Amazon Web Services) — это крупнейшая облачная платформа, предлагающая более 200 сервисов, включая EC2 (виртуальные машины), S3 (хранилище объектов), RDS (управляемые базы данных), EKS (Kubernetes), Lambda (бессерверные функции) и многие другие.


Вопрос

Что такое Azure?

Ответ

Azure — это облачная платформа от Microsoft, предоставляющая услуги виртуальных машин, контейнеров, баз данных, AI/ML, DevOps-инструментов (Azure DevOps, GitHub Actions), а также глубокую интеграцию с Windows Server и .NET-экосистемой.


Вопрос

Что такое Google Cloud Platform (GCP)?

Ответ

GCP — это облачная платформа от Google, известная своими решениями в области аналитики, машинного обучения (Vertex AI), контейнеризации (GKE — Google Kubernetes Engine) и глобальной сетевой инфраструктурой на основе технологий Google.


Вопрос

Что такое регион и зона доступности в облаке?

Ответ

Регион — это географическое расположение дата-центров. Зона доступности (Availability Zone) — это изолированный дата-центр внутри региона с независимыми источниками питания и сетью. Распределение ресурсов по нескольким зонам повышает отказоустойчивость.


Вопрос

Что такое autoscaling в облаке?

Ответ

Autoscaling — это автоматическое изменение количества вычислительных ресурсов (например, виртуальных машин или Pod’ов) в зависимости от метрик нагрузки, таких как CPU utilization, количество запросов или очередь сообщений.


Вопрос

Как управлять облачными ресурсами программно?

Ответ

Облачные ресурсы управляются через API, CLI (например, aws, az, gcloud) или инструменты IaC (Terraform, Pulumi, CloudFormation). Это позволяет автоматизировать создание, изменение и удаление инфраструктуры.


Вопрос

Что такое serverless?

Ответ

Serverless — это модель выполнения кода, при которой облачный провайдер полностью управляет инфраструктурой. Разработчик загружает функцию (например, AWS Lambda), а платформа автоматически масштабирует её и взимает плату только за время выполнения.


Вопрос

Как обеспечивается безопасность в облачной среде?

Ответ

Безопасность в облаке достигается через управление идентификацией и доступом (IAM), шифрование данных (в покое и при передаче), сетевые ACL и security groups, мониторинг активности (CloudTrail, Azure Monitor), сканирование образов и конфигураций, а также соблюдение compliance-стандартов.


Продвинутые сценарии и архитектура

Вопрос

Что такое GitOps?

Ответ

GitOps — это операционная модель, в которой желаемое состояние инфраструктуры и приложений хранится в Git-репозитории. Изменения применяются через pull-запросы, а специальный оператор (например, Argo CD или Flux) автоматически синхронизирует кластер с этим состоянием.


Вопрос

Какие преимущества даёт GitOps?

Ответ

GitOps обеспечивает полную аудируемость изменений, единый источник истины, безопасность через code review, автоматическое восстановление после drift и упрощение отката благодаря истории коммитов в Git.


Вопрос

Что такое service mesh?

Ответ

Service mesh — это выделенный слой инфраструктуры для управления взаимодействием между микросервисами. Он обеспечивает маршрутизацию, отказоустойчивость, мониторинг, шифрование трафика (mTLS) и политики доступа без изменения кода приложений.


Вопрос

Какие популярные реализации service mesh существуют?

Ответ

Наиболее известные реализации: Istio, Linkerd, Consul Connect и Kuma. Istio — наиболее функциональный, но сложный; Linkerd — лёгкий и ориентированный на производительность.


Вопрос

Что такое chaos engineering?

Ответ

Chaos engineering — это дисциплина, направленная на повышение устойчивости систем путём намеренного введения сбоев (отключение сервисов, задержки сети, нехватка ресурсов) в контролируемых условиях для проверки реакции системы.


Вопрос

Какие инструменты используются для chaos engineering?

Ответ

Популярные инструменты: Chaos Monkey (Netflix), Gremlin, LitmusChaos (для Kubernetes), Chaos Mesh. Они позволяют моделировать различные типы отказов и интегрироваться в CI/CD-процессы.


Вопрос

Что такое immutable infrastructure?

Ответ

Immutable infrastructure — это подход, при котором серверы или контейнеры после развёртывания никогда не изменяются. Любое обновление приводит к созданию нового экземпляра, а старый удаляется. Это исключает конфигурационный дрейф и упрощает отладку.


Вопрос

Как организовать zero-downtime deployment?

Ответ

Zero-downtime deployment достигается с помощью стратегий blue-green, канареечного развёртывания или rolling update при условии, что приложение поддерживает обратную совместимость, использует readiness-пробы и правильно настроено балансирование нагрузки.


Вопрос

Что такое edge computing и как оно связано с DevOps?

Ответ

Edge computing — это обработка данных ближе к источнику (устройствам IoT, пользователям), а не в центральном дата-центре. DevOps для edge требует новых подходов к доставке, мониторингу и управлению распределённой инфраструктурой с ограниченными ресурсами.


Вопрос

Как обеспечить соответствие (compliance) в DevOps-процессах?

Ответ

Соответствие достигается через автоматизированный аудит конфигураций, сканирование на уязвимости, управление политиками (OPA), логирование всех действий, контроль доступа и регулярные проверки с использованием стандартов (например, ISO 27001, SOC 2, GDPR).


Мониторинг и логирование (продолжение)

Вопрос

Что такое метрика RED и как она используется?

Ответ

RED — это набор трёх ключевых метрик для мониторинга сервисов: Rate (частота запросов), Errors (ошибки), Duration (время выполнения). Она помогает быстро оценить работоспособность и производительность микросервиса без погружения в детали.


Вопрос

Что такое USE-метод в мониторинге инфраструктуры?

Ответ

USE-метод (Utilization, Saturation, Errors) применяется для анализа ресурсов системы: Utilization — процент использования ресурса, Saturation — степень перегрузки (например, очередь задач), Errors — количество ошибок. Этот подход помогает выявлять узкие места на уровне железа и ОС.


Вопрос

Как организуется сбор логов в распределённой системе?

Ответ

Логи собираются агентами (например, Fluentd, Filebeat, Promtail) с каждого узла или контейнера и отправляются в централизованное хранилище (Loki, Elasticsearch, Splunk). Каждая запись содержит метки (labels/tags), позволяющие фильтровать по сервису, окружению, инстансу и другим параметрам.


Вопрос

Зачем нужны health check’и в Kubernetes?

Ответ

Health check’и в Kubernetes бывают двух типов: liveness probe определяет, жив ли контейнер, и при неудаче перезапускает Pod; readiness probe показывает, готов ли Pod принимать трафик, и исключает его из балансировки до полной инициализации.


Вопрос

Что такое SLO и зачем он нужен?

Ответ

SLO (Service Level Objective) — это целевой уровень надёжности сервиса, выраженный в процентах или временных рамках (например, «99.9% запросов должны завершаться за <500 мс»). Он служит основой для принятия решений об инвестировании в стабильность или новых функциях.


Вопрос

Как работает Alertmanager в связке с Prometheus?

Ответ

Alertmanager получает алерты от Prometheus, группирует их, подавляет дубликаты, отправляет уведомления через email, Slack, PagerDuty и другие каналы, а также поддерживает маршрутизацию по правилам и возможность подтверждения (silencing).


Вопрос

Что такое pushgateway в Prometheus и когда он используется?

Ответ

Pushgateway позволяет кратковременным заданиям (например, cron-джобам) отправлять метрики в Prometheus, который обычно использует pull-модель. Это необходимо, когда задание завершается до того, как Prometheus успевает его опросить.


Вопрос

Как обеспечивается долговременное хранение метрик Prometheus?

Ответ

Долговременное хранение реализуется через удалённые хранилища, совместимые с Prometheus Remote Write API: Thanos, Cortex, Mimir, VictoriaMetrics. Они обеспечивают масштабируемость, репликацию и хранение данных за месяцы или годы.


Вопрос

Что такое exemplar в Prometheus?

Ответ

Exemplar — это пример трассировки (trace ID), привязанный к конкретной метрике. Он позволяет перейти от агрегированной метрики (например, высокое время ответа) к конкретному запросу в системе трассировки (например, Jaeger или Tempo) для детального анализа.


Вопрос

Как настроить мониторинг приложения без изменения его кода?

Ответ

Мониторинг можно организовать с помощью sidecar-контейнеров, eBPF-программ (например, Pixie, Parca), или агентов, внедряющих метрики через instrumentation (OpenTelemetry Auto-Instrumentation). Это позволяет собирать данные о CPU, памяти, сетевых вызовах и HTTP-трафике без модификации исходного кода.