DevOps | Вопросы собесов
5.28K subscribers
29 photos
898 links
Download Telegram
📌 В чём основное преимущество systemd ?

💬 Спрашивают в 13% собеседований

Основное преимущество systemd заключается в его способности улучшить управление системными службами и процессами в Linux, делая систему более гибкой, эффективной и быстрой. Вот аспекты, делающие systemd важным:

1️⃣ Параллельная загрузка служб

Позволяет загружать и запускать службы параллельно, что значительно ускоряет процесс загрузки системы по сравнению с традиционными системами инициализации, такими как System V init, которые выполняют запуск служб последовательно.
systemctl list-jobs

Эта команда показывает текущие задачи, которые выполняются параллельно при загрузке системы.

2️⃣ Управление зависимостями

Имеет мощный механизм управления зависимостями между службами. Он может определять порядок запуска служб на основе их зависимостей и условий, что позволяет избежать проблем, связанных с неправильным порядком запуска.
[Unit]
Description=My Service
After=network.target

[Service]
ExecStart=/usr/bin/my_service

[Install]
WantedBy=multi-user.target

Здесь указано, что служба my_service должна запускаться после network.target.

3️⃣ Унифицированное управление

Предоставляет единый интерфейс для управления системными службами, монтированием файловых систем, запуском и остановкой процессов, а также отслеживанием состояния системы. Все это делается через команду systemctl.
systemctl start my_service
systemctl stop my_service
systemctl status my_service


4️⃣ Логирование и диагностика

Интегрирован с журналированием через journalctl, что позволяет легко отслеживать и анализировать логи служб и системных событий.
journalctl -u my_service

Эта команда выводит логи конкретной службы my_service.

5️⃣ Снимки и восстановление состояния

Поддерживает создание снимков (snapshots) состояния системы, что позволяет сохранять текущее состояние служб и процессов и восстанавливать его при необходимости.
systemctl snapshot my_snapshot
systemctl isolate my_snapshot


6️⃣ Контроль ресурсов

Интегрирован с cgroups (control groups), что позволяет управлять и ограничивать ресурсы (CPU, память и т.д.) для отдельных служб и процессов.
[Service]
CPUQuota=20%
MemoryLimit=500M

Этот конфигурационный файл ограничивает использование CPU до 20% и памяти до 500 МБ для конкретной службы.

7️⃣ Тайм-ауты и рестарт

Может автоматически перезапускать службы в случае их сбоя, а также задавать тайм-ауты для их завершения или запуска.
[Service]
Restart=on-failure
TimeoutStartSec=30
TimeoutStopSec=30

Эти параметры определяют, что служба будет перезапущена при сбое и задают тайм-ауты для ее запуска и остановки.

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

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍2
📌 Что хранится в etc fstab ?

💬 Спрашивают в 13% собеседований

Файл /etc/fstab (file system table) содержит информацию о файловых системах и устройствах, которые должны быть автоматически смонтированы при загрузке системы или вручную пользователем. Этот файл используется системными утилитами и скриптами для монтирования файловых систем.

🤔 Основные элементы файла /etc/fstab

Каждая строка в /etc/fstab описывает одну файловую систему и состоит из шести полей:

1️⃣ Устройство (Device): Указывает устройство или раздел, который будет смонтирован. Это может быть идентификатор устройства (например, /dev/sda1), UUID (уникальный идентификатор устройства) или метка устройства (label).

/dev/sda1

UUID=123e4567-e89b-12d3-a456-426614174000

LABEL=mydisk

2️⃣ Точка монтирования (Mount Point): Указывает, куда файловая система будет смонтирована в файловой системе. Это может быть, например, корневая файловая система (/), домашний каталог (/home) или специальный каталог для временных файлов (/tmp).

/

/home

/mnt/mydisk

3️⃣ Тип файловой системы (File System Type): Указывает тип файловой системы, который будет использован для монтирования. Примеры файловых систем включают ext4, xfs, ntfs, swap и vfat.

ext4

xfs

ntfs

4️⃣ Параметры монтирования (Mount Options): Указывает параметры монтирования, которые определяют, как файловая система будет смонтирована. Эти параметры включают в себя такие опции, как defaults, ro (read-only), rw (read-write), noexec (запрещение выполнения файлов) и другие.

defaults

noatime

ro

5️⃣ Параметр дампа (Dump): Указывает, следует ли выполнять резервное копирование этой файловой системы утилитой dump. Значение 0 означает, что резервное копирование не требуется, а 1 означает, что необходимо включить файловую систему в дамп.

0

1

6️⃣ Параметр проверки файловой системы (Fsck Order): Указывает порядок проверки файловых систем при загрузке с помощью утилиты fsck. Значение 0 означает, что проверка не требуется, 1 указывает на корневую файловую систему, а 2 и более — на другие файловые системы, которые должны быть проверены после корневой.

🤔 Пример файла /etc/fstab
# <файл устройства>       <точка монтирования> <тип файловой системы> <параметры>     <дамп> <порядок проверки>
UUID=123e4567-e89b-12d3-a456-426614174000 / ext4 defaults 1 1
/dev/sda2 /home ext4 defaults 0 2
/dev/sdb1 /mnt/storage ext4 defaults,noatime 0 2
/dev/sdc1 swap swap defaults 0 0


🤔 В этом примере:

Первая строка монтирует корневую файловую систему (/) с типом ext4 и стандартными параметрами, и указывает, что она должна быть проверена первой.

Вторая строка монтирует раздел /dev/sda2 в каталог /home с типом ext4 и стандартными параметрами.

Третья строка монтирует раздел /dev/sdb1 в каталог /mnt/storage с типом ext4 и дополнительным параметром noatime, который отключает обновление временных меток доступа.

Четвертая строка указывает на использование раздела /dev/sdc1 в качестве подкачки (swap).

Файл /etc/fstab хранит информацию о файловых системах и их параметрах монтирования, используемых для автоматического или ручного монтирования устройств в систему.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
📌 Как работает https ?

💬 Спрашивают в 13% собеседований

HTTPS (HyperText Transfer Protocol Secure) — это расширение HTTP (HyperText Transfer Protocol), которое используется для безопасной передачи данных по сети. Основное отличие HTTPS от HTTP заключается в том, что HTTPS использует SSL/TLS (Secure Sockets Layer / Transport Layer Security) для шифрования данных, что обеспечивает конфиденциальность и целостность передаваемой информации.

🤔 Как он работает

1️⃣ Установление соединения (TLS Handshake):

Инициирование соединения: Клиент (например, веб-браузер) отправляет запрос на сервер с целью установления защищенного соединения. Этот запрос включает информацию о версиях TLS, которые поддерживает клиент, и о криптографических алгоритмах, которые он может использовать.

Ответ сервера: Сервер отвечает, указывая выбранную версию TLS и криптографический алгоритм. Он также отправляет свой цифровой сертификат, который содержит публичный ключ сервера и подтвержден сертификационным центром (CA - Certificate Authority).

2️⃣ Проверка сертификата:

Проверка подлинности: Клиент проверяет сертификат сервера с помощью сертификационного центра. Если сертификат действителен и доверен, клиент продолжает процесс. В противном случае клиент может показать предупреждение пользователю о возможной небезопасности соединения.

3️⃣ Генерация сессионных ключей:

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

4️⃣ Установление защищенного канала:

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

5️⃣ Передача данных:

Безопасное общение: Все данные, передаваемые между клиентом и сервером, зашифрованы сессионным ключом. Это защищает данные от перехвата и изменения.

6️⃣ Завершение сессии:

Закрытие соединения: После завершения обмена данными клиент и сервер закрывают соединение, удаляя сессионные ключи.

Компоненты HTTPS

1️⃣ Цифровой сертификат:

Цифровой сертификат используется для проверки подлинности сервера. Он выдается сертификационным центром и содержит публичный ключ сервера и информацию о его владельце.

2️⃣ SSL/TLS протоколы:

SSL (Secure Sockets Layer) и его более современный вариант TLS (Transport Layer Security) обеспечивают шифрование данных. TLS более безопасен и рекомендуется для использования вместо SSL.

3️⃣ Асимметричное и симметричное шифрование:

Асимметричное шифрование (с использованием публичного и приватного ключей) используется для безопасного обмена сессионными ключами.

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

1️⃣ Пользователь вводит URL-адрес в браузере, начинающийся с https://.

2️⃣ Браузер отправляет запрос на сервер для установления защищенного соединения.

3️⃣ Сервер отвечает, отправляя свой цифровой сертификат.

4️⃣ Браузер проверяет сертификат с помощью сертификационного центра.

5️⃣ Если сертификат действителен, браузер и сервер договариваются о сессионном ключе.

6️⃣ Все данные, передаваемые между браузером и сервером, шифруются сессионным ключом.

7️⃣ После завершения обмена данными соединение закрывается.

HTTPS обеспечивает безопасную передачу данных между клиентом и сервером с помощью шифрования и проверки подлинности.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3👾1
🤔 Какой инструмент используется для управления контейнерами?
Anonymous Quiz
90%
Docker
3%
Vagrant
6%
Jenkins
0%
Git
👍1
📌 Зачем нужен inode ?

💬 Спрашивают в 13% собеседований

Inode (index node) — это структура данных в файловых системах Unix и Unix-подобных системах (например, Linux), которая хранит информацию о файлах и каталогах, за исключением их имен и содержимого. Каждому файлу или каталогу в файловой системе соответствует свой уникальный inode.

🤔 Зачем он нужен?

Предоставляет ключевую информацию о файле, которая необходима для его управления и доступа. Это помогает файловой системе эффективно управлять файлами и каталогами.

Основные функции и информация:

1️⃣ Метаданные файла:

Идентификатор владельца (UID): Указывает, кто является владельцем файла.

Идентификатор группы (GID): Указывает группу, к которой принадлежит файл.

Права доступа (permissions): Определяет, кто может читать, записывать или выполнять файл.

Тип файла: Указывает, является ли файл обычным файлом, каталогом, символической ссылкой, устройством и т.д.

Размер файла: Указывает размер файла в байтах.

Временные метки:

ctime (Change time): Время последнего изменения метаданных файла.

mtime (Modification time): Время последнего изменения содержимого файла.

atime (Access time): Время последнего доступа к файлу.

2️⃣ Указатели на блоки данных:

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

3️⃣ Счетчик ссылок (link count):

Указывает количество жестких ссылок на данный inode, то есть количество имен, связанных с этим файлом.

🤔 Как это работает

Когда создается файл, файловая система выделяет inode и один или несколько блоков для хранения данных файла. Inode хранит всю информацию о файле, кроме его имени и содержимого. Имя файла хранится в каталоге, который содержит сопоставление имен файлов с их inodes.

1️⃣ Создание файла:

При создании нового файла система выделяет новый inode и записывает в него всю необходимую метаинформацию о файле.

2️⃣ Доступ к файлу:

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

3️⃣ Удаление файла:

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

Команда ls -i показывает номер inode для каждого файла в каталоге:
ls -i

Пример вывода:
1234567 file1.txt
1234568 file2.txt
1234569 directory1

Здесь 1234567, 1234568 и 1234569 — номера inodes для file1.txt, file2.txt и directory1 соответственно.

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

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
4
📌 На системах какого типа inode могут закончиться ?

💬 Спрашивают в 13% собеседований

Inode могут закончиться на файловых системах с фиксированным числом inodes. Это может произойти на различных типах файловых систем, особенно если система выделяет inodes при создании файловой системы и не может динамически изменять их количество. Как это происходит и на каких файловых системах это может случиться:

🤔 Системы, где они могут закончиться

1️⃣ Файловые системы на основе ext2/ext3/ext4:

Эти файловые системы выделяют фиксированное количество inodes при создании файловой системы. Это количество основано на размере раздела и задано параметрами mkfs. Если все inodes заняты, создание новых файлов будет невозможно, даже если на диске еще есть свободное место.

   -      mkfs.ext4 -N 100000 /dev/sdX1

Здесь -N 100000 указывает на создание 100,000 inodes.

2️⃣ Файловые системы на основе UFS (Unix File System):

Используемая в операционных системах типа BSD (Berkeley Software Distribution), UFS также выделяет фиксированное количество inodes при создании файловой системы.

   -      newfs -i 8192 /dev/sdX1

Здесь -i 8192 задает размер inodes.

3️⃣ Файловые системы HFS и HFS+ (Hierarchical File System):

Используемые в операционных системах macOS (особенно в более старых версиях), эти файловые системы также имеют фиксированное число inodes.

4️⃣ Файловые системы XFS:

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

   -      mkfs.xfs -i maxpct=25 /dev/sdX1

Здесь -i maxpct=25 задает максимальный процент inodes от общего объема файловой системы.

🤔 Как проверить его использование

Для проверки текущего использования inodes можно использовать команду df с опцией -i:
df -i

Пример вывода:
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1 1000000 50000 950000 5% /

Здесь видно, сколько inodes всего, сколько из них используется и сколько свободно.

🤔 Что происходит, когда inodes заканчиваются

Новые файлы и каталоги не могут быть созданы, даже если на диске еще есть свободное место. Это приводит к ошибкам при попытке создать новые файлы.

🤔 Как предотвратить или решить проблему

1️⃣ Планирование при создании файловой системы:

При создании файловой системы необходимо учитывать предполагаемое количество файлов и каталогов, чтобы выбрать достаточное число inodes.

2️⃣ Мониторинг использования inodes:

Регулярное мониторинг использования inodes позволяет вовремя обнаружить проблему.

3️⃣ Ресайзинг файловой системы (если поддерживается):

Некоторые файловые системы позволяют изменить число inodes при изменении размера файловой системы.

4️⃣ Перемещение данных:

В случае нехватки inodes можно переместить данные на другой раздел или диск с достаточным числом inodes.

Inodes могут закончиться на файловых системах с фиксированным числом inodes, таких как ext2/ext3/ext4, UFS, HFS/HFS+, и XFS. Это ограничение можно избежать, правильно планируя создание файловой системы и мониторя использование inodes.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🤔 Какой из следующих инструментов не используется для непрерывной интеграции?
Anonymous Quiz
10%
Jenkins
15%
GitLab CI/CD
12%
Bamboo
62%
Apache
📌 Что такое провайдеры в Terraform ?

💬 Спрашивают в 13% собеседований

Провайдеры в Terraform — это плагины, которые позволяют Terraform взаимодействовать с различными облачными платформами, сервисами и другими API. Они определяют наборы ресурсов и операций для взаимодействия с этими сервисами. Каждый провайдер управляет одной или несколькими службами и абстрагирует детали API, предоставляя удобный способ управления инфраструктурой.

Основные функции

1️⃣ Определение ресурсов:

Провайдеры определяют типы ресурсов, с которыми можно работать. Например, провайдер для AWS позволяет управлять EC2-инстансами, S3-бакетами и другими сервисами AWS.

2️⃣ Интерфейс для API:

Провайдеры обеспечивают взаимодействие с API целевого сервиса. Они обрабатывают запросы и ответы, управляя состоянием ресурсов в соответствии с конфигурацией Terraform.

3️⃣ Поддержка аутентификации:

Провайдеры обычно предоставляют механизмы для аутентификации и авторизации при доступе к сервисам.

1️⃣ Конфигурация провайдера:

Для начала работы с провайдером необходимо его сконфигурировать в файле конфигурации Terraform. Обычно это делается в файле main.tf.
      provider "aws" {
region = "us-west-2"
access_key = "your-access-key"
secret_key = "your-secret-key"
}


В этом примере настраивается провайдер AWS с указанием региона и учетных данных.

2️⃣ Определение ресурсов:

После конфигурации провайдера можно определять ресурсы, которые будут управляться с его помощью.
      resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"

tags = {
Name = "example-instance"
}
}


В этом примере создается EC2-инстанс в AWS.

🤔 Как они работают

1️⃣ Инициализация:

Когда вы запускаете terraform init, Terraform загружает и инициализирует провайдеры, указанные в конфигурации.

2️⃣ Конфигурация:

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

3️⃣ Создание и управление ресурсами:

При выполнении команд terraform apply или terraform plan Terraform взаимодействует с провайдерами для создания, изменения или удаления ресурсов в соответствии с конфигурацией.
provider "aws" {
region = "us-west-2"
}

resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"

tags = {
Name = "example-instance"
}
}


В этом примере провайдер AWS конфигурируется для использования региона us-west-2, и затем создается EC2-инстанс с указанными параметрами.

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

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 Чем DevOps отличается от Agile ?

💬 Спрашивают в 13% собеседований

DevOps и Agile — это два различных подхода к разработке и доставке программного обеспечения, хотя они часто используются вместе. Оба подхода имеют свои цели и методы, которые могут дополнять друг друга, но фокусируются на разных аспектах разработки.

🤔 Agile

Это методология разработки программного обеспечения, которая акцентирует внимание на гибкости, скорости и итеративном подходе к разработке. Основные принципы Agile изложены в Манифесте Agile, который включает четыре ключевых ценности и двенадцать принципов.

🤔 Основные характеристики:

1️⃣ Итеративный и инкрементальный подход:

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

2️⃣ Коллективная работа и коммуникация:

Акцент на тесное взаимодействие между членами команды и с заказчиком.

3️⃣ Адаптивное планирование:

Возможность быстро адаптироваться к изменениям требований в ходе проекта.

4️⃣ Постоянное улучшение:

Регулярные ретроспективы для анализа и улучшения процесса разработки.

🤔 Примеры:

Scrum: Подход, основанный на спринтах, регулярных встречах (ежедневные stand-up, спринт-планирование, ретроспективы) и определенных ролях (Scrum Master, Product Owner, команда разработки).

Kanban: Метод, ориентированный на визуализацию рабочего процесса и управление потоком задач.

🤔 DevOps

Это культурный и методологический подход, направленный на интеграцию и сотрудничество между командами разработки (Dev) и эксплуатации (Ops) для более быстрой и надежной доставки программного обеспечения.

🤔 Основные характеристики:

1️⃣ Автоматизация:

Автоматизация процессов сборки, тестирования, развертывания и мониторинга.

2️⃣ Непрерывная интеграция и доставка (CI/CD):

Практика частой интеграции кода и его автоматического развертывания на различных средах (разработка, тестирование, продакшн).

3️⃣ Инфраструктура как код (IaC):

Управление инфраструктурой через код для обеспечения репликации и масштабирования сред.

4️⃣ Мониторинг и логирование:

Постоянный мониторинг приложений и инфраструктуры для быстрого обнаружения и устранения проблем.

5️⃣ Культурное изменение:

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

🤔 Примеры:

Jenkins: Инструмент для автоматизации CI/CD

Docker: Платформа для контейнеризации приложений.

Kubernetes: Система оркестрации контейнеров.

Terraform: Инструмент для управления инфраструктурой как кодом.

Prometheus и Grafana: Инструменты для мониторинга и визуализации данных.

🤔 Основные различия

1️⃣ Фокус:

Agile: Сосредоточен на процессе разработки и управлении изменениями требований через итерации и инкременты.

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

2️⃣ Команды и роли:

Agile: Включает роли, такие как Product Owner, Scrum Master и команда разработки.

DevOps: Включает разработчиков, специалистов по эксплуатации, инженеров по автоматизации и других, кто работает над интеграцией и доставкой.

3️⃣ Процессы и инструменты:

Agile: Использует методологии, такие как Scrum и Kanban, для управления процессом разработки.

DevOps: Использует инструменты и практики для автоматизации и мониторинга всего жизненного цикла приложения.

🤔 Как они могут работать вместе

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

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

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

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🤔 Какой из следующих инструментов часто используется для автоматизации развертывания?
Anonymous Quiz
63%
Puppet
31%
Docker
4%
Nagios
2%
Grafana
📌 В чем заключается роль DevOps \SRE\IE?

💬 Спрашивают в 13% собеседований

Роль DevOps, SRE (Site Reliability Engineering) и IE (Infrastructure Engineering) имеет много общего, но также включает специфические задачи и фокус в каждой области. Давайте рассмотрим каждую из них:

🤔 DevOps

🤔 Задачи и обязанности:

1️⃣ Автоматизация и интеграция: Разработка и внедрение CI/CD (Continuous Integration/Continuous Deployment) процессов для автоматизации развертывания приложений.

2️⃣ Мониторинг и логирование: Настройка систем мониторинга и логирования для отслеживания состояния систем и приложений.

3️⃣ Сотрудничество: Работа в тесной связке с командами разработчиков и операционных инженеров для обеспечения гладкой и быстрой доставки приложений.

4️⃣ Инфраструктура как код: Использование инструментов, таких как Terraform или Ansible, для автоматизации развертывания и управления инфраструктурой.

🤔 Почему это важно:

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

🤔 SRE (Site Reliability Engineering)

Задачи и обязанности:

1️⃣ Надежность и производительность: Обеспечение высокой доступности и производительности систем и приложений.

2️⃣ Инцидент-менеджмент: Обнаружение, расследование и устранение инцидентов, связанных с доступностью или производительностью.

3️⃣ SLA и SLO: Установление и соблюдение соглашений об уровне обслуживания (SLA) и целевых уровней обслуживания (SLO).

4️⃣ Автоматизация и инструментирование: Разработка инструментов для автоматизации процессов и улучшения надежности систем.

🤔 Почему это важно:

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

🤔 IE (Infrastructure Engineering)

🤔 Задачи и обязанности:

1️⃣ Проектирование и развертывание: Проектирование, развертывание и поддержка физической и виртуальной инфраструктуры.

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

3️⃣ Облачные решения: Работа с облачными провайдерами (AWS, Azure, GCP) для создания и поддержки облачной инфраструктуры.

4️⃣ Оптимизация: Постоянное улучшение и оптимизация существующей инфраструктуры для повышения производительности и эффективности.

🤔 Почему это важно:

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

🤔 Примеры кода и инструментов

🤔 Пример CI/CD пайплайна с использованием Jenkins:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
sh 'make build'
}
}
stage('Test') {
steps {
echo 'Testing...'
sh 'make test'
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
sh 'make deploy'
}
}
}
}


🤔 Пример Terraform кода для создания виртуальной машины в AWS:
provider "aws" {
region = "us-west-2"
}

resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"

tags = {
Name = "example-instance"
}
}


🤔 Резюме

1️⃣ DevOps: Автоматизирует и интегрирует процессы разработки и развертывания.

2️⃣ SRE: Обеспечивает надежность и производительность систем.

3️⃣ IE: Проектирует и поддерживает инфраструктуру.

Для ребенка: DevOps помогает программам быстро работать, SRE следит, чтобы они не ломались, а IE строит и поддерживает компьютеры и сети для этих программ.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1🔥1
📌 Чем gitlab ci артефакты отличаются от кэша как атрибуты джобы?

💬 Спрашивают в 13% собеседований

GitLab CI/CD предлагает два механизма для управления временными файлами, которые создаются и используются во время выполнения пайплайна: артефакты (artifacts) и кэш (cache). Они служат разным целям и имеют различные характеристики.

🤔 Артефакты (Artifacts)

Задачи и характеристики:

1️⃣ Временные файлы: Артефакты представляют собой временные файлы, созданные в процессе выполнения job (задания), которые сохраняются и могут быть использованы на следующих этапах пайплайна.

2️⃣ Срок хранения: Артефакты могут храниться на протяжении определенного времени, указанного в конфигурации (по умолчанию 30 дней).

3️⃣ Примеры использования: Компиляционные артефакты, такие как бинарные файлы, отчеты о тестировании, логи и артефакты для развертывания.

4️⃣ Доступ: Артефакты доступны только для последующих заданий в том же пайплайне или через веб-интерфейс GitLab.

5️⃣ Конфигурация: Определяются с помощью ключа artifacts в .gitlab-ci.yml файле.

Пример конфигурации артефактов:
job1:
script:
- make build
artifacts:
paths:
- build/
expire_in: 1 week


🤔 Кэш (Cache)

Задачи и характеристики:

1️⃣ Ускорение сборки: Кэш используется для ускорения сборок, сохраняя промежуточные файлы или зависимости между различными запусками пайплайнов.

2️⃣ Долгосрочное хранение: Кэш сохраняется в течение длительного времени, часто используется для кеширования зависимостей, таких как библиотеки или модули.

3️⃣ Примеры использования: Директории с зависимостями (например, node_modules для Node.js или vendor для PHP), промежуточные результаты сборок.

4️⃣ Доступ: Кэш доступен для всех пайплайнов и заданий в проекте, а не только для текущего пайплайна.

5️⃣ Конфигурация: Определяется с помощью ключа cache в .gitlab-ci.yml файле.

Пример конфигурации кэша:
job1:
script:
- npm install
cache:
paths:
- node_modules/

job2:
script:
- npm test
cache:
paths:
- node_modules/


🤔 Ключевые различия

1️⃣ Назначение: Артефакты предназначены для передачи файлов между заданиями в одном пайплайне, тогда как кэш используется для хранения файлов и данных, которые могут быть использованы в различных пайплайнах и заданиях для ускорения сборок.

2️⃣ Срок хранения: Артефакты имеют ограниченный срок хранения (обычно указывается), тогда как кэш может существовать дольше, и его срок хранения часто определяется политиками очистки.

3️⃣ Доступ: Артефакты доступны только в рамках текущего пайплайна, в то время как кэш доступен между разными пайплайнами и заданиями.

🤔 Резюме

1️⃣ Артефакты используются для передачи файлов между заданиями в одном пайплайне.

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

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

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
📌 В чём основное преимущество systemd?

💬 Спрашивают в 13% собеседований

Основное преимущество systemd по сравнению с традиционными системами инициализации, такими как SysV init и Upstart, заключается в его расширенных функциональных возможностях и улучшенной производительности. Вот несколько ключевых аспектов, которые делают systemd более предпочтительным:

1️⃣ Параллельный запуск сервисов

Что это:
systemd позволяет запускать службы параллельно, в то время как SysV init запускает их последовательно.

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

2️⃣ Упрощённое управление зависимостями

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

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

3️⃣ Мониторинг и управление сервисами

Что это:
systemd предоставляет встроенные механизмы для мониторинга состояния служб, их перезапуска при сбоях и сбора логов.

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

4️⃣ Удобные конфигурационные файлы

Что это:
systemd использует простые и читаемые файлы конфигурации в формате INI для определения служб и их параметров.

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

5️⃣ Поддержка современных функций

Что это:
systemd поддерживает множество современных функций, таких как cgroups для управления ресурсами, таймеры для замены cron-джобов и сокет-активацию для запуска служб по запросу.

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

🤔 Примеры использования

🤔 Пример файла сервиса systemd:
[Unit]
Description=My Example Service
After=network.target

[Service]
ExecStart=/usr/bin/myservice
Restart=always

[Install]
WantedBy=multi-user.target


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

🤔 Резюме

1️⃣ systemd запускает службы параллельно, что ускоряет загрузку системы.

2️⃣ systemd управляет зависимостями между службами, упрощая их настройку и управление.

3️⃣ systemd предоставляет встроенные механизмы для мониторинга и управления службами.

4️⃣ systemd использует удобные конфигурационные файлы.

5️⃣ systemd поддерживает современные функции для улучшения производительности и гибкости системы.

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

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
5
📌 Что хранится в etc fstab?

💬 Спрашивают в 13% собеседований

Файл /etc/fstab (файловая таблица файловых систем) содержит информацию о файловых системах и устройствах, которые должны быть автоматически подключены (монтированы) при загрузке системы или вручную. Этот файл является важным компонентом конфигурации системы, поскольку он определяет, какие разделы и устройства будут доступны при запуске операционной системы.

🤔 Основные поля в `/etc/fstab`

Каждая строка в /etc/fstab описывает одну файловую систему и содержит следующие поля:

1️⃣ Устройство (Device): Указывает, какое устройство или раздел должно быть подключено. Это может быть обозначение устройства (например, /dev/sda1), UUID или метка (label) файловой системы.

2️⃣ Точка монтирования (Mount Point): Директория, в которую будет монтироваться файловая система (например, /, /home, /mnt/data).

3️⃣ Файловая система (File System Type): Тип файловой системы (например, ext4, xfs, swap).

4️⃣ Параметры монтирования (Mount Options): Дополнительные параметры монтирования, которые определяют, как файловая система будет использоваться (например, defaults, ro для только чтения, noatime для отключения обновления времени доступа).

5️⃣ Dump: Поле, указывающее, будет ли файловая система использоваться для создания резервных копий утилитой dump. Значение 0 означает, что резервное копирование отключено, 1 — включено.

6️⃣ Порядок проверки (Pass): Определяет порядок проверки файловых систем при загрузке. Значение 0 отключает проверку, 1 означает, что файловая система будет проверена первой (обычно корневая файловая система), 2 — проверка будет выполняться после первой.

🤔 Пример содержимого `/etc/fstab`
# <файл-система> <точка монтирования> <тип> <параметры> <dump> <pass>
UUID=123e4567-e89b-12d3-a456-426614174000 / ext4 defaults 1 1
/dev/sda1 /boot ext4 defaults 1 2
/dev/sda2 none swap sw 0 0
UUID=987f6543-c21b-34a5-6789-0b1234567890 /home ext4 defaults 0 2


🤔 Расшифровка примера:

1️⃣ UUID=123e4567-e89b-12d3-a456-426614174000 / ext4 defaults 1 1:
- Файловая система с указанным UUID будет смонтирована в корень (/).
- Используется файловая система ext4.
- Параметры монтирования defaults.
- Будет участвовать в резервном копировании (dump = 1).
- Будет проверена первой при загрузке (pass = 1).

2️⃣ /dev/sda1 /boot ext4 defaults 1 2:
- Раздел /dev/sda1 будет смонтирован в /boot.
- Используется файловая система ext4.
- Параметры монтирования defaults.
- Будет участвовать в резервном копировании (dump = 1).
- Будет проверена после корневой файловой системы (pass = 2).

3️⃣ /dev/sda2 none swap sw 0 0:
- Раздел /dev/sda2 используется как swap (файл подкачки).
- Не имеет точки монтирования.
- Параметры монтирования sw.
- Не участвует в резервном копировании (dump = 0).
- Не будет проверяться при загрузке (pass = 0).

4️⃣ UUID=987f6543-c21b-34a5-6789-0b1234567890 /home ext4 defaults 0 2:
- Файловая система с указанным UUID будет смонтирована в /home.
- Используется файловая система ext4.
- Параметры монтирования defaults.
- Не участвует в резервном копировании (dump = 0).
- Будет проверена после корневой файловой системы (pass = 2).

🤔 Резюме

Файл /etc/fstab содержит информацию о том, какие файловые системы и устройства нужно подключать при загрузке системы и как это делать.

Для ребенка: в файле /etc/fstab записано, какие "шкафчики" на компьютере нужно открыть при включении и куда их поставить, чтобы они были удобны для использования.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4