DevOps | Вопросы собесов
5.28K subscribers
27 photos
896 links
Download Telegram
📌 Как сирота отличается от зомби процесса?

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

Сиротские процессы (orphan processes) и зомби-процессы (zombie processes) — это два разных состояния процессов в операционной системе, которые связаны с завершением или отсутствием родительских процессов. Вот основные различия между ними:

🤔 Зомби-процесс

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

Состояние:
- Процесс завершен, но его запись в таблице процессов остается, чтобы передать статус завершения родительскому процессу.
- В таблице процессов такой процесс отмечается буквой Z (zombie).

Влияние:
- Не использует ресурсы CPU или памяти, но занимает запись в таблице процессов.
- Может стать проблемой, если накапливается много зомби-процессов, так как количество записей в таблице процессов ограничено.

Устранение:
- Родительский процесс должен вызвать wait() или waitpid(), чтобы убрать запись зомби-процесса.
- Если родительский процесс не справляется с этой задачей, его можно перезапустить или завершить.

🤔 Сиротский процесс

Определение:
Сиротский процесс — это процесс, у которого родительский процесс завершился до его завершения. В этом случае сиротский процесс "усыновляется" процессом init (обычно PID 1).

Состояние:
- Процесс продолжает выполняться, но его родительский процесс завершен.
- В таблице процессов он получает нового родителя — процесс init.

Влияние:
- Сиротские процессы продолжают выполняться и использовать ресурсы системы (CPU, память и т.д.).
- Не представляют особой проблемы для системы, так как процесс init корректно завершает их при их завершении.

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

🤔 Примеры и сравнение

🤔 Зомби-процесс:

1️⃣ Процесс child завершился.

2️⃣ Родительский процесс parent не вызвал wait().

3️⃣ Процесс child становится зомби и остается в таблице процессов, ожидая, пока parent получит статус завершения.
ps aux | grep Z


🤔 Сиротский процесс:

1️⃣ Процесс parent завершился.

2️⃣ Процесс child продолжает выполняться.

3️⃣ Процесс child усыновляется процессом init.
ps -ef | grep child


🤔 Резюме

1️⃣ Зомби-процесс — это процесс, который завершился, но еще не был убран из таблицы процессов, потому что его родительский процесс не вызвал wait().

2️⃣ Сиротский процесс — это процесс, который продолжает выполняться после завершения его родительского процесса и усыновляется процессом init.

Для ребенка: зомби-процесс — это как призрак программы, которая закончила работать, но еще не исчезла полностью. Сиротский процесс — это как ребенок, чьи родители ушли, и теперь за ним присматривает другой взрослый (процесс init).

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

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

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

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

🤔 Основные шаги работы HTTPS

1️⃣ Инициация соединения

2️⃣ SSL/TLS рукопожатие

3️⃣ Установление защищенного соединения

4️⃣ Обмен данными

🤔 Инициация соединения

Когда пользователь вводит URL, начинающийся с https://, браузер инициирует соединение с веб-сервером через порт 443 (по умолчанию для HTTPS).

🤔 SSL/TLS рукопожатие

Рукопожатие SSL/TLS — это процесс установления защищенного соединения. Оно включает несколько шагов:

a. Клиентское приветствие (Client Hello)

Браузер отправляет сообщение Client Hello, содержащее:
- Версию SSL/TLS, которую поддерживает браузер.
- Набор поддерживаемых шифров (cipher suites).
- Случайное число (random number), которое используется для создания ключей шифрования.

b. Серверное приветствие (Server Hello)

Сервер отвечает сообщением Server Hello, содержащим:
- Версию SSL/TLS, выбранную сервером.
- Выбранный шифр.
- Случайное число сервера.

c. Сертификат сервера (Server Certificate)

Сервер отправляет свой цифровой сертификат, который содержит:
- Публичный ключ сервера.
- Информацию о сервере.
- Подпись удостоверяющего центра (CA), который выдал сертификат.

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

d. Ключевое сообщение (Key Exchange)

Браузер создает премастер-секрет (pre-master secret), шифрует его с использованием публичного ключа сервера и отправляет его серверу. Сервер расшифровывает премастер-секрет с использованием своего приватного ключа.

e. Генерация мастер-ключа (Master Secret)

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

f. Завершение рукопожатия (Finish Handshake)

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

3️⃣ Установление защищенного соединения

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

4️⃣ Обмен данными

Теперь все данные, передаваемые между браузером и сервером, шифруются с использованием симметричного ключа. Это обеспечивает:
- Конфиденциальность: Данные зашифрованы, что предотвращает их чтение третьими лицами.
- Целостность данных: Любые изменения данных в процессе передачи будут обнаружены.
- Аутентификация: Удостоверяет, что данные передаются между подлинным клиентом и сервером.

🤔 Резюме

1️⃣ HTTPS — это безопасная версия HTTP, использующая SSL/TLS для защиты данных.

2️⃣ Рукопожатие SSL/TLS включает обмен сертификатами и создание симметричного ключа для шифрования данных.

3️⃣ Обмен данными после установления соединения зашифрован и защищен.

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

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

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
📌 Зачем нужен inode?

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

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

🤔 Основные функции и структура inode

Метаданные в inode:

1️⃣ Тип файла (например, обычный файл, директория, символическая ссылка).

2️⃣ Размер файла.

3️⃣ Владелец файла (пользователь и группа).

4️⃣ Права доступа (чтение, запись, выполнение для владельца, группы и других).

5️⃣ Временные метки (время создания, последнего доступа, последнего изменения и изменения метаданных).

6️⃣ Ссылки на данные файла (указатели на блоки данных, где хранится содержимое файла).

7️⃣ Количество жестких ссылок (число имен, ссылающихся на inode).

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

1️⃣ Создание файла: Когда создается новый файл или директория, файловая система выделяет новый inode и блоки данных. Имена файлов хранятся в директориях, которые являются специальными типами файлов, связывающими имена файлов с их номерами inode.

2️⃣ Доступ к файлу: Когда система обращается к файлу по его имени, сначала проверяется директория для поиска соответствующего номера inode. Затем файловая система использует этот inode для доступа к метаданным и содержимому файла.

3️⃣ Изменение файла: При изменении содержимого файла или его метаданных inode обновляется соответствующим образом. Например, при добавлении данных к файлу inode обновляется, чтобы указать новые блоки данных.

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

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

🤔 Получение информации о файле с использованием команды `ls -i`:
ls -i filename


Вывод покажет номер inode, связанный с filename.

🤔 Пример вывода:
123456 filename


Здесь 123456 — номер inode, связанный с файлом filename.

🤔 Зачем нужен inode

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

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

3️⃣ Безопасность и права доступа: Inode хранит информацию о правах доступа и владельцах файлов, что обеспечивает безопасность файловой системы.

4️⃣ Производительность: Разделение метаданных и содержимого файла позволяет оптимизировать операции ввода-вывода, улучшая общую производительность файловой системы.

🤔 Резюме

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

Для ребенка: inode — это как карточка в библиотеке, которая содержит информацию о книге, например, где она находится на полке, кто ее автор и сколько страниц в книге.

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

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
📌 Без какой инструкции не может существовать докер файл ?

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


Dockerfile – это текстовый документ, содержащий все команды, которые пользователь может вызвать в командной строке для сборки образа Docker. Эта инструкция обязательна, так как она определяет базовый (родительский) образ, от которого будет строиться ваш собственный образ.

🤔 Инструкция

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

Пример:
# Использование официального образа Python 3.8 как базового
FROM python:3.8


🤔 Зачем нужна инструкция

FROM выполняет несколько ключевых функций:
Определяет начальный слой для образа, на котором будут размещаться все последующие слои.
Задаёт окружение, в котором будут выполняться все команды сборки (например, ОС, предустановленные библиотеки).
Позволяет избежать необходимости с нуля создавать окружение, воспользуясь уже существующими образами с нужными настройками.

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

FROM – это первая и обязательная инструкция в любом Dockerfile, которая определяет базовый образ для вашего Docker-образа. Это как фундамент дома: без него нельзя построить стены и крышу.

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

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👀1
🤔 Какой инструмент используется для автоматизации тестирования безопасности в DevOps?
Anonymous Quiz
35%
Selenium
16%
JUnit
35%
OWASP ZAP
14%
Nagios
📌 Чем отличается CMD от ENTRYPOINT в DockerFile ?

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

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

🤔 Инструкция CMD

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

Пример:
FROM ubuntu
CMD ["echo", "Hello, world!"]
При запуске этого контейнера без дополнительных параметров, будет выведено "Hello, world!". Но если при запуске указать другую команду, например

docker run <image> echo "Hello, Docker!", то будет выведено "Hello, Docker!".

🤔 Инструкция ENTRYPOINT

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

Пример:
FROM ubuntu
ENTRYPOINT ["echo", "Hello,"]
CMD ["world!"]

Здесь, если контейнер запущен без дополнительных аргументов, вывод будет "Hello, world!". Если же запустить контейнер с дополнительными аргументами, например docker run <image> Docker, то вывод будет "Hello, Docker".

🤔 Основные отличия

1️⃣ Переопределение команды: CMD может быть полностью переопределена при запуске контейнера, в то время как ENTRYPOINT предопределяет базовую команду, и любые аргументы, указанные при запуске, добавляются к этой команде.

2️⃣Использование в комбинации: Часто ENTRYPOINT используется в комбинации с CMD, где ENTRYPOINT задает исполняемый файл, а CMD задает аргументы по умолчанию, которые могут быть переопределены при запуске.

CMD и ENTRYPOINT обе определяют, какая команда будет выполнена при запуске Docker-контейнера, но делают это по-разному. CMD лучше использовать для задания параметров по умолчанию, которые могут быть изменены, а ENTRYPOINT для установки фиксированной базовой команды, к которой можно добавлять аргументы.

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

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥72👍2
📌 Что такое и нужен ли swap ?

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

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

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

Когда операционная система исчерпывает доступную RAM, она начинает использовать swap-пространство для хранения данных, которые редко используются. Доступ к данным на жёстком диске медленнее, чем к данным в RAM, поэтому использование swap может снизить производительность системы. Однако наличие swap может предотвратить завершение работы приложений или системы из-за нехватки памяти.

🤔 Нужен ли он?

Зависит от конкретных условий использования и конфигурации системы:

1️⃣ Количество RAM: В системах с большим объёмом оперативной памяти (например, 16 ГБ или больше) может потребоваться меньше или вообще не потребоваться swap, особенно если приложения не потребляют всю доступную память.

2️⃣ Тип используемых приложений: Некоторые приложения, особенно серверные, такие как базы данных, могут требовать swap даже при наличии достаточного объёма RAM, поскольку это может улучшить стабильность и производительность.

3️⃣ Необходимость гибернации: Для гибернации системы (сохранения состояния RAM на диск и полного выключения питания) обычно требуется swap-пространство, размером равным или большим объёму RAM.

4️⃣ Ресурсы сервера: На серверах, управляющих критически важными приложениями, swap может помочь предотвратить сбои приложений из-за исчерпания памяти, особенно при внезапных пиковых нагрузках.

🤔 Рекомендации по настройке

Размер: Традиционная рекомендация — установить размер swap в два раза больше объёма RAM для систем с малым объёмом памяти (например, 2 ГБ RAM). Для систем с большим объёмом памяти (например, 32 ГБ RAM) размер swap обычно устанавливается равным размеру RAM.
Тип носителя: Желательно использовать быстрые носители, такие как SSD, для уменьшения влияния на производительность при использовании swap.

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

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

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
📌 Что такое DevOps ?

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

DevOps — это культурная и профессиональная философия, объединяющая разработку ПО (Dev) и операционную деятельность (Ops), направленная на улучшение сотрудничества и продуктивности путём автоматизации инфраструктуры, рабочих процессов и непрерывного измерения производительности приложений и услуг. Это практика, которая стремится к ускорению процесса разработки программного обеспечения и повышению надёжности выпускаемых продуктов.

🤔 Основные компоненты:

1️⃣ Непрерывная интеграция (CI): Это практика частого включения изменений в код, вносимых разработчиками, в общий репозиторий, где автоматически запускаются тесты для обеспечения их корректности.

2️⃣ Непрерывное развертывание (CD): Это процесс, в котором все изменения кода, прошедшие этапы тестирования, автоматически разворачиваются в рабочей среде. Это уменьшает временной промежуток между написанием кода и его использованием в продуктивной среде.

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

4️⃣ Мониторинг и логирование: Непрерывное мониторинг и логирование работы приложений и инфраструктуры помогают быстро обнаруживать и устранять проблемы, тем самым повышая устойчивость и доступность системы.

5️⃣ Культура сотрудничества: DevOps подчеркивает важность коммуникации и коллаборации между разработчиками и операционными специалистами. Культура непрерывного обучения и улучшения является ключом к успеху DevOps-подхода.

🤔 Преимущества:

Быстрый выпуск продукта: Сокращение времени от идеи до реализации.
Повышение качества продукта: Благодаря автоматическим тестам и непрерывной интеграции.
Эффективность разработки: Меньше времени тратится на "ожидание" благодаря автоматизации процессов.
Улучшение управления инфраструктурой: Инфраструктура как код позволяет управлять развертываниями более эффективно и с меньшими затратами.

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

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

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
📌 Что такое ELK ?

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

ELK — это аббревиатура, обозначающая популярную комбинацию трёх продуктов компании Elastic, которые вместе образуют мощную платформу для поиска, анализа и визуализации данных, особенно больших объёмов лог-данных или временных рядов. Эти три продукта — Elasticsearch, Logstash и Kibana — часто используются для мониторинга, безопасности и оперативного анализа данных.

🤔 Компоненты:

1️⃣ Elasticsearch

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

2️⃣ Logstash

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

3️⃣ Kibana

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

🤔 Преимущества:

Масштабируемость: Elasticsearch способен обрабатывать петабайты данных и распределять нагрузку на множество серверов.
Гибкость: Logstash предоставляет множество плагинов для интеграции с различными источниками данных и может быть настроен на выполнение очень сложных трансформаций данных.
Доступность и открытость: Доступен как в свободно распространяемой открытой версии, так и в виде коммерческой версии с дополнительными функциями и поддержкой.
Расширенные возможности поиска и анализа: Поиск в реальном времени и мощные аналитические возможности делают ELK предпочтительной платформой для задач мониторинга и аналитики.

🤔 Использование

Платформа ELK широко используется в самых разных отраслях для решения задач мониторинга, анализа логов безопасности, оптимизации бизнес-процессов и многого другого. Благодаря своей открытости и масштабируемости, она остаётся одним из самых популярных решений в области обработки и анализа больших данных.

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

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

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

Протоколы HTTP (HyperText Transfer Protocol) и HTTPS (HyperText Transfer Protocol Secure) являются основными протоколами для передачи данных в интернете, особенно в веб-разработке. Они используются для загрузки веб-страниц с сервера на клиентский браузер. Основное отличие между HTTP и HTTPS заключается в уровне безопасности, которым обеспечивается передача данных.

🤔 HTTP

Это протокол передачи гипертекста, который используется для передачи данных между веб-браузером и веб-сайтом. Основная проблема HTTP заключается в том, что он не использует шифрование, что делает передаваемые данные уязвимыми для перехвата или изменения третьими лицами во время передачи. Например, если вы вводите свои данные (имя пользователя, пароль, информацию о кредитной карте) на сайте, работающем через HTTP, эта информация может быть перехвачена кем-либо, кто "прослушивает" сеть.

🤔 HTTPS

Это расширение HTTP с поддержкой шифрования с использованием протокола SSL/TLS. Это означает, что данные, отправляемые между веб-браузером и веб-сайтом, зашифрованы, что обеспечивает три основных аспекта безопасности:

1️⃣Конфиденциальность: Данные не могут быть прочитаны третьими лицами во время передачи.
2️⃣ Целостность данных: Данные не могут быть изменены или повреждены во время передачи без обнаружения.
3️⃣ Аутентификация: Подтверждает, что пользователи общаются с именно тем веб-сайтом, который они ожидают (это предотвращает атаки типа "man-in-the-middle").

🤔 Почему HTTPS является предпочтительным выбором

Его использование стало обязательным стандартом для всех веб-сайтов, особенно тех, которые обрабатывают конфиденциальную информацию. Google и другие технологические компании активно продвигают использование HTTPS, включая его как фактор ранжирования в SEO, что означает, что сайты с HTTPS получают преимущества в поисковой выдаче по сравнению с сайтами, работающими только на HTTP.

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

Процесс начинается с TLS-рукопожатия:

1️⃣ Установление соединения: Браузер пользователя запрашивает у сервера установить безопасное соединение.
2️⃣ Обмен сертификатами: Сервер отправляет свой публичный ключ вместе с сертификатом, который подтвержден третьей стороной (Центром сертификации).
3️⃣ Завершение рукопожатия: Браузер проверяет сертификат, использует публичный ключ для шифрования данных и отправляет их обратно серверу, где они расшифровываются с использованием приватного ключа сервера.

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

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

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👾2👍1
🤔 Какой инструмент используется для контейнеризации приложений?
Anonymous Quiz
5%
Jenkins
95%
Docker
0%
Git
1%
Prometheus
👍1
📌 Чем отличает COPY от ADD ?

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

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

🤔 Инструкция

COPY более простая и прямолинейная инструкция, используемая для копирования файлов и каталогов из контекста сборки в файловую систему образа Docker. COPY принимает исходный путь и путь назначения внутри файловой системы образа. Она строго копирует файлы, сохраняя их точные метаданные, без какой-либо дополнительной интерпретации.
COPY ./localfile.txt /directory/in/container/localfile.txt


🤔 Инструкция

ADD обладает всеми возможностями COPY, но также включает в себя дополнительную функциональность. Также может автоматически распаковывать локальные архивные файлы в целевой каталог образа. Кроме того, она поддерживает загрузку файлов из URL, что делает её более многофункциональной по сравнению с COPY.
ADD ./localarchive.tar.gz /directory/in/container/

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

🤔 Основные отличия

1️⃣Функциональность: COPY просто копирует файлы и папки, в то время как ADD имеет дополнительные функции, такие как распаковка архивов и возможность загрузки файлов из URL.

2️⃣Рекомендации по использованию: Docker рекомендует использовать COPY, если не требуется функциональность распаковки архивов или загрузки из сети, так как COPY более прозрачна и предсказуема.

COPY и ADD используются для добавления файлов в образ Docker, но COPY предпочтительнее для стандартных операций копирования из-за своей простоты и прозрачности. ADD полезна, когда нужно воспользоваться её дополнительными возможностями, но её использование может привести к менее предсказуемому поведению, особенно при работе с внешними источниками.

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

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
📌 В чём отличие Deployment от Delivery ?

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

Термины "Deployment" и "Delivery" часто используются в контексте процессов разработки ПО, особенно в рамках DevOps и непрерывных практик (CI/CD - Continuous Integration/Continuous Deployment или Continuous Delivery). Они имеют разные значения и цели в процессе доставки программного обеспечения.

🤔 Continuous Delivery (Непрерывная доставка)

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

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

🤔 Continuous Deployment (Непрерывное развертывание)

Является расширением практики Continuous Delivery. В контексте Continuous Deployment каждое изменение, которое проходит все стадии автоматизированной сборки и тестирования, немедленно разворачивается в продуктивной среде. Таким образом, не требуется ручного одобрения для выпуска изменений.

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

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

1️⃣Автоматизация vs. ручное управление: В Continuous Delivery финальное решение о развертывании может быть сделано вручную. В Continuous Deployment каждое изменение автоматически разворачивается без вмешательства человека.

2️⃣ Частота развертывания: В Continuous Deployment изменения разворачиваются чаще и постоянно, в то время как в Continuous Delivery изменения готовы к развертыванию, но могут быть запущены в производство в более контролируемом порядке.

3️⃣ Уровень риска: Continuous Deployment требует более строгих мер контроля качества и автоматизации из-за более высокого риска, связанного с непрерывным развертыванием изменений.

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

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

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
🤔 Какой инструмент используется для управления конфигурацией в DevOps?
Anonymous Quiz
3%
Grafana
4%
Docker
90%
Ansible
3%
ELK Stack