DevOps | Вопросы собесов
Open in Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
Show more5 564
Subscribers
+324 hours
-77 days
-1030 days
Posts Archive
🤔 Что такое дешборды в графане?
Это визуальные панели, на которых отображаются метрики, логи и данные, собранные из различных источников. Они используются для мониторинга состояния систем, приложений и инфраструктуры, предоставляя наглядное представление в виде графиков, диаграмм, таблиц и других визуализаций.
🚩Почему нужны дешборды в Grafana?
🟠Мониторинг в реальном времени
Позволяют наблюдать за ключевыми показателями производительности (KPI) систем в реальном времени. Например, загрузка CPU, использование памяти, число запросов в секунду.
🟠Диагностика и устранение проблем
Дешборды помогают быстро находить аномалии или сбои. Например, резкий рост времени отклика или падение уровня доступности.
🟠Простота анализа данных
Объединяют данные из разных источников в одном месте (Prometheus, Elasticsearch, Loki, InfluxDB, PostgreSQL и др.). Упрощают анализ данных благодаря визуализации.
🟠Настраиваемость и удобство
Можно создавать персонализированные панели под конкретные задачи или роли (разработчики, SRE, менеджеры).
🚩Основные элементы дешборда
🟠Панели (Panels)
Каждая панель отображает отдельный набор данных в определенном виде (график, таблица, heatmap, текст и др.). Пример: График использования памяти на сервере.
🟠Источник данных (Data Source)
Данные, отображаемые на панели, поступают из определённого источника (Prometheus, Elasticsearch, MySQL и т.д.). Grafana поддерживает множество интеграций.
🟠Переменные (Variables)
Динамические параметры, которые позволяют изменять отображаемые данные без необходимости редактировать панель. Пример: Переключение между разными серверами или метриками.
🟠Алёрты (Alerts)
Настраиваемые уведомления, которые активируются при достижении определённого порога метрики. Пример: Отправка уведомления в Slack при увеличении загрузки CPU выше 90%.
🟠Теги и аннотации
Обозначают ключевые события на графиках, например, развёртывание нового релиза.
🚩Пример использования дешборда
🟠Панели
1. Время отклика API (Response Time).
2. Число активных пользователей (Active Users).
3. Использование ресурсов (CPU, RAM).
4. Ошибки HTTP (5xx, 4xx).
🟠Источники данных
- Prometheus для метрик.
- Loki для логов.
- MySQL для аналитических данных.
🟠Переменные
- Выбор региона (например, Европа, США).
- Фильтрация по микросервисам.
🚩Создание дешборда в Grafana
🟠Добавление панели
В интерфейсе Grafana создайте новый дешборд. Добавьте панель и выберите тип визуализации (график, таблица, бар-чарт и т.д.).
🟠Настройка источника данных
Укажите источник данных для каждой панели. Например, Prometheus:
rate(http_requests_total[5m]).
🟠Настройка фильтров и переменных
Добавьте переменные, чтобы дешборд был динамичным.
🟠Добавление алертов
Настройте триггеры для уведомлений (например, при высоком времени отклика).
Ставь 👍 и забирай 📚 Базу знанийНужен человек, для сбора вопросов из собеседований на должность DevOps.
Что надо делать:
1. Смотреть записи собеседований (список будет дан)
2. Выписывать вопросы, которые задают кандидату
Ставка: 450 руб. / час
Примерная ЗП: 54 000 руб. / месяц (4 часа в день)
Если интересно и можешь уделять работе от 4 часов / день, то отправь сообщение https://t.me/niniafd и сразу напиши какие языки программирования знаешь и какие лучше всего?
🤔 Что за команда truncate?
truncate изменяет размер файла, обрезая или увеличивая его. Например, можно обрезать файл до определённого размера или создать пустой файл заданной длины.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 В чем отличие девопс-инженера от sre-инженера?
DevOps-инженер и SRE (Site Reliability Engineer) — это роли, которые пересекаются в своих задачах, но имеют разные акценты и подходы.
🚩Определение ролей
🟠DevOps-инженер
Основная цель: Ускорить и автоматизировать процесс разработки, тестирования и развертывания приложений.
Подход: Сосредоточен на создании и поддержке CI/CD, инфраструктуры как кода (IaC) и инструментах автоматизации.
Фокус: Эффективность процессов разработки. Улучшение взаимодействия между командами разработки (Dev) и эксплуатации (Ops).
🟠SRE-инженер
Основная цель: Обеспечение стабильности, надежности и производительности системы в продакшене.
Подход: Применяет инженерные подходы и автоматизацию для управления операциями и масштабированием.
Фокус: Стабильность и надежность системы. Мониторинг, устранение сбоев и управление инцидентами.
Ставь 👍 и забирай 📚 Базу знаний
🤔 Какие утилиты в Linux обычно используете для траблшутинга?
- top/htop: мониторинг процессов.
- iotop: анализ ввода-вывода.
- strace: трассировка системных вызовов.
- lsof: открытые файлы и сокеты.
- netstat/ss: состояние сети.
- dmesg: системные сообщения ядра.
- journalctl: просмотр логов systemd.
- ping, traceroute: диагностика сети.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Из чего состоит 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), связанными с облачными хранилищами.
Ставь 👍 и забирай 📚 Базу знаний🤔 Чем юниксовая система отличается от линуксовой?
Linux — это свободная реализация Unix, основанная на его принципах. Unix — это семейство проприетарных систем, использующих одноядерную архитектуру, тогда как Linux является открытым и более гибким для модификации.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как оптимизировать имедж?
Оптимизация 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;"]
Ставь 👍 и забирай 📚 Базу знаний🤔 Когда выполняются пробы?
Пробы (liveness, readiness, startup) выполняются периодически в зависимости от настроек initialDelaySeconds, periodSeconds и других параметров.
- Readiness: проверяет готовность пода принимать трафик.
- Liveness: проверяет, что под работает корректно.
- Startup: проверяет успешный старт пода.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Без какой инструкции не может существовать докер файл ?
Это текстовый документ, содержащий все команды, которые пользователь может вызвать в командной строке для сборки образа Docker. Эта инструкция обязательна, так как она определяет базовый (родительский) образ, от которого будет строиться ваш собственный образ.
🚩Инструкция
Указывает на базовый образ, который используется для сборки нового образа Docker. Без этой инструкции Docker не сможет определить, с какого состояния начать сборку, и, соответственно, сборка образа будет невозможна.
# Использование официального образа Python 3.8 как базового
FROM python:3.8
Ставь 👍 и забирай 📚 Базу знаний💣 Освойте принципы и популярные инструменты DevOps-инженера, которые помогут повысить вашу востребованность и доход!
➡️Успейте на онлайн-курс «DevOps практики и инструменты» от OTUS с максимальной скидкой по промокоду DevOps01. Группа стартует уже 30 января.
💻 Для кого этот курс?
- Для разработчиков. Вы научитесь настраивать системы разворачивания и тестирования приложений, либо плавно перейти в новую профессию.
- Для системных администраторов. Сможете разобраться в построении процесса DevOps и оптимизировать нагрузки на системы и сервисы, освоить новые инструменты и подходы, а после сменить профессию.
- Для тестировщиков. Станете более востребованным специалистом за счет изучения инструментов DevOps.
✅За эти годы мы выпустили уже 700 Девопсов, поднявших свой доход до 4 раз. Работодатели - партнёры OTUS уже ждут выпускников. Сделайте шаг вперёд и вы!
➡️ ПРОЙТИ ВСТУПИТЕЛЬНЫЙ ТЕСТ: https://otus.pw/XByU3/?erid=2W5zFHxFRzQ
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🤔 Какие параметры есть в deployment?
Основные параметры:
- replicas: количество реплик.
- selector: выборка подов по меткам.
- template: спецификация подов (контейнеры, ресурсы, переменные окружения).
- strategy: стратегия развертывания (например, RollingUpdate или Recreate).
- revisionHistoryLimit: количество сохранённых версий для отката.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 С каким максимальным кол-ом адресов ОП может провзаимодействовать процессор?
Максимальное количество адресов оперативной памяти (ОП), с которыми может взаимодействовать процессор, зависит от ширины адресной шины процессора. Адресная шина определяет, сколько уникальных адресов памяти процессор может адресовать.
🚩Формула вычисления
Количество адресуемых ячеек памяти определяется по формуле:
\text{Максимальное количество адресов} = 2^{\text{ширина адресной шины (в битах)}}
🚩Примеры
🟠Процессор с 32-битной адресной шиной
Максимально возможное количество адресов:
2^{32} = 4,294,967,296 \, (\approx 4 \, \text{Гбайт})
🟠Процессор с 64-битной адресной шиной
Теоретический максимум
2^{64} = 18,446,744,073,709,551,616 \, (\approx 16 \, \text{эксабайт})
Однако современные процессоры обычно поддерживают меньше, например
Архитектура x86-64 (например, Intel и AMD): ограничена 48–57 битами для адресов памяти, что позволяет адресовать от 256 Тбайт до 128 Пбайт.
🚩Почему реальная адресуемая память меньше?
🟠Ограничения архитектуры
Производители процессоров могут использовать меньшее количество адресных линий, чтобы снизить сложность и стоимость. Например, современные 64-битные процессоры адресуют только часть 64-битного пространства (например, 48 бит).
🟠Ограничения ОЗУ
Даже если процессор поддерживает большое количество адресов, максимальная память ограничивается количеством слотов памяти и их емкостью на материнской плате.
🟠Системные резервы
Некоторые адреса зарезервированы для системных нужд (например, для ввода/вывода или BIOS).
Ставь 👍 и забирай 📚 Базу знаний
Нужен человек, для сбора вопросов из собеседований на должность DevOps.
Что надо делать:
1. Смотреть записи собеседований (список будет дан)
2. Выписывать вопросы, которые задают кандидату
Ставка: 450 руб. / час
Примерная ЗП: 54 000 руб. / месяц (4 часа в день)
Если интересно и можешь уделять работе от 4 часов / день, то отправь сообщение https://t.me/niniafd и сразу напиши какие языки программирования знаешь и какие лучше всего?
🤔 Какую сущность за собой тянет deployment, когда создаёшь его instance?
Deployment создаёт ReplicaSet, который отвечает за управление количеством подов. Он гарантирует, что запущено указанное число подов, и пересоздаёт их в случае сбоя.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Какой командой можно показать все работающие процессы на Linux?
Для отображения всех работающих процессов в Linux можно использовать несколько команд. Самые популярные из них:
ps, top, htop и pgrep. Каждая из них имеет свои особенности.
🚩Команда `ps`
ps выводит снимок (snapshot) текущих процессов в момент выполнения команды.
🟠`ps aux`
Показывает все процессы, запущенные в системе, включая пользователей и системные демоны.
ps aux
🟠`ps -ef`
Альтернативный стиль вывода всех процессов с более детальной информацией.
ps -ef
🚩Команда `top`
top — интерактивная утилита для отображения всех запущенных процессов в реальном времени. Вывод обновляется автоматически.
Запуск
top
🚩Команда `htop`
htop — более современная и удобная версия top. Требуется предварительная установка:
sudo apt install htop # Для Ubuntu/Debian
sudo yum install htop # Для CentOS/RHEL
Запуск
htop
🚩Команда `pgrep`
pgrep используется для поиска процессов по имени, но с дополнительными опциями можно вывести все процессы.
Пример
pgrep -a ""
🚩Команда `systemctl` (для сервисов)
Если вы хотите посмотреть системные службы
systemctl list-units --type=service
🚩Какую команду выбрать?
🟠Для быстрого снимка
ps aux.
🟠Для мониторинга в реальном времени
top или htop.
🟠Для поиска конкретного процесса
pgrep <имя процесса>.
Ставь 👍 и забирай 📚 Базу знаний🤔 Почему сейчас systemd используется чаще, чем init?
1. systemd быстрее загружает системы благодаря параллельному запуску сервисов.
2. Поддерживает улучшенную обработку зависимостей и состояние служб.
3. Предоставляет универсальные команды для управления процессами (systemctl).
4. Является стандартом в большинстве современных дистрибутивов Linux.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Чем DevOps отличается от Agile?
Это два различных подхода в разработке и доставке программного обеспечения, которые имеют разные цели и методы, но могут взаимодополнять друг друга. Давайте рассмотрим основные различия и связи между ними.
🚩Agile
Увеличение гибкости и адаптивности разработки программного обеспечения.
🟠Итеративная разработка
Разработка проходит в коротких циклах (итерациях), что позволяет регулярно представлять работающее программное обеспечение.
🟠Непрерывная обратная связь
Регулярные встречи (например, ежедневные стендапы, спринт-ревью) для получения обратной связи от команды и заинтересованных сторон.
🟠Кросс-функциональные команды
Команды, состоящие из разработчиков, тестировщиков, аналитиков и других специалистов, работают вместе над проектом.
🟠Фокус на клиенте
Постоянное взаимодействие с клиентами для уточнения требований и проверки соответствия продукта их ожиданиям.
Фреймворки: Scrum, Kanban, XP (Extreme Programming).
🚩DevOps
Увеличение скорости и качества доставки программного обеспечения через автоматизацию и улучшение сотрудничества между разработчиками и операционными командами.
🟠Непрерывная интеграция и доставка (CI/CD)
Автоматизация сборки, тестирования и развертывания кода, чтобы изменения могли быстро и надежно попасть в рабочую среду.
🟠Инфраструктура как код (IaC)
Использование кода для управления и автоматизации инфраструктуры, что делает процессы повторяемыми и предсказуемыми.
🟠Мониторинг и логирование
Постоянное отслеживание состояния приложений и инфраструктуры для быстрого обнаружения и устранения проблем.
🟠Сотрудничество и обмен знаниями
Улучшение взаимодействия между разработчиками и операционными инженерами через общие инструменты и процессы.
Инструменты: Jenkins, Docker, Kubernetes, Ansible, Terraform, Prometheus, Grafana.
🚩Сравнение и различия
🟠Фокус
Agile: Сфокусирован на процессе разработки и управлении проектами, улучшая гибкость и адаптивность команды разработки.
DevOps: Сфокусирован на процессе доставки и эксплуатации, улучшая автоматизацию и сотрудничество между разработчиками и операционными командами.
🟠Команды
Agile: Включает кросс-функциональные команды, которые работают вместе над созданием программного обеспечения.
DevOps: Включает команды разработчиков и операций, которые совместно работают над автоматизацией и улучшением процессов развертывания и эксплуатации.
🟠Методы и инструменты
Agile: Методы Scrum, Kanban и другие Agile-практики, которые улучшают процесс управления проектами.
DevOps: Инструменты и практики для автоматизации развертывания, мониторинга и управления инфраструктурой.
🚩Связь между Agile и DevOps
🟠Agile
Помогает улучшить процесс разработки, делая его более гибким и отзывчивым к изменениям.
🟠DevOps
Дополняет Agile, автоматизируя развертывание и эксплуатацию программного обеспечения, что позволяет быстрее доставлять изменения пользователям.
🟠Agile команда
Может использовать Scrum для управления спринтами и задачами.
🟠DevOps практики
Могут быть использованы для автоматизации CI/CD пайплайнов, чтобы каждая итерация разработки могла быть быстро и надежно развернута на серверы.
Ставь 👍 и забирай 📚 Базу знаний
– Помощь с pet-проектом
– Составление roadmap
– Общая консультация
– Проведение код-ревью и mock-собеседования
– Помощь с трудоустройством
Все это и многое другое может Ментор. Он обеспечит вам необходимый boost, ускорит и упростит вход в IT.
🔥 Здесь размещен список менторов, и многие из них предлагают бесплатную первую консультацию
🤔 Чем отличается процесс от потока?
1. Процесс: независимая единица выполнения с собственной памятью.
2. Поток: часть процесса, использующая его общую память.
3. Потоки легче создавать и переключать, но сложнее синхронизировать из-за доступа к общим данным.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
