DevOps | Вопросы собесов
5.2K subscribers
28 photos
817 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Тесты t.me/+2P7cpjeyfDVlZjcy
Вакансии t.me/+i5KFWEWJ21hhYWEy
Download Telegram
🤔 В чем разница между PVC и Full Stack?

1. PVC (Persistent Volume Claim): запрос на выделение хранилища в Kubernetes, связанный с конкретным подом.
2. Full Stack: общий термин, описывающий весь стек технологий разработки, включая фронтенд, бэкенд и инфраструктуру.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27
🤔 В чем разница между IaaS, PaaS и SaaS?

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

🚩IaaS (Infrastructure as a Service)

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

🟠Что предоставляет
Виртуальные машины, диски, сетевые ресурсы и другие элементы инфраструктуры.

🟠Примеры провайдеров
AWS EC2, Google Compute Engine, Microsoft Azure VMs.

🟠Что делает пользователь
Настраивает операционные системы, устанавливает ПО, управляет сетью и обеспечивает безопасность.

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

🚩Плюсы и минусы

Высокая гибкость и контроль.
Подходит для создания кастомных решений.
Требуется больше времени и усилий на настройку и управление.

🚩PaaS (Platform as a Service)

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

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

🟠Примеры провайдеров
AWS Elastic Beanstalk, Google App Engine, Heroku, Microsoft Azure App Service.

🟠Что делает пользователь
Пишет код, тестирует приложения и развертывает их на платформе.

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

🚩Плюсы и минусы

Быстрое развертывание приложений.
Не нужно беспокоиться об управлении инфраструктурой.
Ограниченная гибкость по сравнению с IaaS.
Зависимость от поставщика платформы.

🚩SaaS (Software as a Service)

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

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

🟠Примеры провайдеров
Gmail, Microsoft 365, Google Drive, Salesforce, Slack.

🟠Что делает пользователь
Пользуется функциональностью приложения, не заботясь о технической стороне.

🟠Пример использования
Организация использует Google Workspace для корпоративной электронной почты и совместной работы.

🚩Плюсы и минусы

Простота использования.
Не требуется установка и управление ПО.
Ограниченная кастомизация.
Данные находятся на стороне провайдера.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🤔 Этапы загрузки в Linux и загрузчики:

1. BIOS/UEFI: выполняет начальную инициализацию оборудования.
2. Загрузчик (GRUB, LILO): выбирает и загружает ядро ОС.
3. Ядро Linux: инициализирует устройства, монтирует корневую файловую систему.
4. Init/Systemd: запускает пользовательские процессы и сервисы.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥5
🤔 Когда вы создаёте файл какие права создаются по умолчанию?

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

🟠Файлы: 666 (rw-rw-rw-)
Это означает, что по умолчанию все пользователи могут читать и записывать в файл.

🟠Каталоги: 777 (rwxrwxrwx)
Это означает, что по умолчанию все пользователи могут читать, записывать и выполнять (заходить) в каталог.

🚩Значение umask: 022

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

🟠Создание файла
Базовые права доступа: 666
Значение umask: 022
Окончательные права доступа: 666 - 022 = 644 (rw-r--r--)

🟠Создание каталога
Базовые права доступа: 777
Значение umask: 022
Окончательные права доступа: 777 - 022 = 755 (rwxr-xr-x)

🚩Создание файла с umask 0022

1⃣Установка umask
umask 0022   


2⃣Создание файла
touch myfile   


3⃣Проверка прав доступа
ls -l myfile   


Вывод
Права доступа: 644 (rw-r--r--)
-rw-r--r-- 1 user user 0 Jul 26 12:00 myfile    


🚩Создание каталога с umask 0027

1⃣Установка umask
umask 0027   


2⃣Создание каталога
mkdir mydir   


3⃣Проверка прав доступа
ls -ld mydir   


Вывод
Права доступа: 750 (rwxr-x---)
drwxr-x--- 2 user user 4096 Jul 26 12:00 mydir     


🚩Дополнительные замечания

🟠umask в скриптах
Вы можете установить umask в скрипте для задания прав доступа по умолчанию для всех создаваемых файлов и каталогов.
#!/bin/bash
umask 027
touch file1
mkdir dir1


🟠Проверка прав доступа в разных ситуациях
Для файлов: По умолчанию права доступа 666 минус umask.
Для каталогов: По умолчанию права доступа 777 минус umask.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🤔 Как выглядит идеальный конвейер?

1. CI/CD: автоматизация сборки, тестирования, деплоя.
2. Тесты: юнит, интеграционные и end-to-end тесты.
3. Мониторинг: проверка производительности и логов после релиза.
4. Масштабируемость: возможность быстрого изменения и расширения инфраструктуры.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍6🤔3
🤔 Удалил файлы, но место не очищается, в чем дело?

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

🚩Файл все еще используется процессом

Если файл удален, но он открыт каким-либо процессом, его содержимое остается в памяти или файловой системе до завершения работы этого процесса. Это называется "удаление с дескриптором".

🟠Как проверить:
Используйте команду lsof (list open files), чтобы найти процессы, удерживающие файл
lsof | grep deleted


🟠Как исправить
Перезапустите процесс или завершите его с помощью kill:
kill -9 <PID>


🚩Файл удален, но он находился в другом файловом пространстве

Например:
- Файл был удален внутри Docker-контейнера, но место занято в образе.
- Файл находился на смонтированном диске, и удаление произошло в другом контексте.

🟠Как проверить
Убедитесь, что вы работаете в правильной файловой системе:
df -h


🟠Как исправить
Убедитесь, что удаление происходит в нужной директории или файловой системе.

🚩Файл был удален из директории, но находится в другой ссылке (hard link)

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

🟠Как проверить
Используйте команду find, чтобы найти оставшиеся ссылки:
find / -samefile <имя_файла>


🟠Как исправить
Удалите все ссылки на файл.

🚩Файл был удален, но находился в файловой системе с квотой

Если используется файловая система с ограничением (например, квоты пользователей или групп), возможно, квота пользователя исчерпана, и это мешает очистке.

🟠Как проверить
Проверьте квоты:
quota -u <username>


🟠Как исправить
Убедитесь, что квоты настроены правильно, или освободите больше места.

🚩Кэшированные данные или временные файлы

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

🟠Как проверить
Очистите кэш или проверьте корзину. Например, для очистки временных файлов
sudo du -sh /tmp
sudo rm -rf /tmp/*


🟠Как исправить
Удалите временные файлы, очистите кэш:
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
🤔 Как посчитать размер ноды в Kubernetes?

1. Используйте команду kubectl describe node <node-name> для просмотра доступной памяти и CPU.
2. Ресурсы также можно получить через метрики (kubectl top nodes).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
🤔 Что нужно сделать чтобы после того как вы создали репозиторий с этим репозиторием можно было работать?

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

🚩Основные шаги

1⃣Создание нового репозитория
Перейдите на GitHub и войдите в свой аккаунт. Нажмите на кнопку "New" для создания нового репозитория. Введите имя репозитория, описание (опционально), выберите публичный или приватный доступ, инициализируйте с README (если нужно). Нажмите "Create repository".

2⃣Клонирование или инициализация репозитория
Если репозиторий уже существует на GitHub
git clone https://github.com/yourusername/your-repository.git
cd your-repository


Если вы создаете новый локальный репозиторий
mkdir your-repository
cd your-repository
git init


3⃣Добавление файлов и коммит начального состояния
Создайте или добавьте файлы
echo "# Your Repository" > README.md   


Добавьте файлы в индекс
git add README.md   


Сделайте первый коммит
git commit -m "Initial commit"   


4⃣Настройка удаленного репозитория
Если вы инициализировали локальный репозиторий, вам нужно настроить удаленный репозиторий.
git remote add origin https://github.com/yourusername/your-repository.git


5⃣Пуш изменений в удаленный репозиторий
Отправьте ваши изменения в удаленный репозиторий
git push -u origin master


🚩Дополнительные шаги для совместной работы

1⃣Создание веток
Для разработки новых функций или исправлений багов рекомендуется создавать отдельные ветки
git checkout -b feature-branch   


2⃣Создание Pull Request (PR)
После завершения работы в ветке создайте Pull Request на GitHub для обзора и слияния.

3⃣Настройка файлов `.gitignore`
Добавьте файл .gitignore для исключения ненужных файлов из коммитов.
echo "node_modules/" > .gitignore
git add .gitignore
git commit -m "Add .gitignore"


4⃣Настройка CI/CD
Подключите сервисы Continuous Integration/Continuous Deployment, такие как GitHub Actions, Travis CI или Jenkins, для автоматизации тестирования и развертывания.
# Пример файла .github/workflows/ci.yml для GitHub Actions
name: CI

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- run: npm install
- run: npm test


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
🤔 Чем отличается Docker от KVM?

1. Docker: контейнеризация, обеспечивающая изоляцию на уровне ОС, с минимальным оверхедом.
2. KVM: гипервизор, обеспечивающий изоляцию на уровне аппаратного обеспечения через полные виртуальные машины.
3. Docker быстрее, а KVM обеспечивает более строгую изоляцию и подходит для более сложных сред.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥61👾1
🤔 Как осуществляли деплой на kubernetes?

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

🚩Шаги для деплоя

1⃣Подготовка Docker-образа
Первый шаг — подготовить Docker-образ приложения. Пример Dockerfile
# Используем официальный образ Python
FROM python:3.8-slim

# Устанавливаем рабочую директорию
WORKDIR /app

# Копируем все файлы в контейнер
COPY . /app

# Устанавливаем зависимости
RUN pip install --no-cache-dir -r requirements.txt

# Определяем команду запуска
CMD ["python", "app.py"]


Создание и загрузка Docker-образа в Docker Hub
docker build -t username/myapp:latest .
docker push username/myapp:latest


2⃣Создание конфигурационных файлов Kubernetes
Для развертывания приложения на Kubernetes, необходимо создать манифесты для деплоя (Deployment), сервиса (Service) и других необходимых ресурсов. Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: username/myapp:latest
ports:
- containerPort: 80


Service
apiVersion: v1
kind: Service
metadata:
name: myapp-service
spec:
type: LoadBalancer
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 80


3⃣Применение конфигураций
Применение манифестов для создания ресурсов в кластере Kubernetes:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml


4⃣Проверка статуса
Проверка статуса развертывания и сервисов:
kubectl get deployments
kubectl get services
kubectl get pods


5⃣Настройка автоскейлинга (по желанию)
Для обеспечения высокой доступности и масштабируемости можно настроить горизонтальное авто-масштабирование:
kubectl autoscale deployment myapp-deployment --cpu-percent=50 --min=1 --max=10


6⃣Обновление приложения
Для обновления приложения необходимо изменить образ в деплойменте и применить изменения:
Обновление Docker-образа
docker build -t username/myapp:v2 .
docker push username/myapp:v2


Обновление манифеста Deployment
spec:
template:
spec:
containers:
- name: myapp
image: username/myapp:v2


Применение изменений
kubectl apply -f deployment.yaml


🚩Пример полного пайплайна

Пример .gitlab-ci.yml для автоматизации деплоя
stages:
- build
- push
- deploy

variables:
DOCKER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG

build:
stage: build
script:
- docker build -t $DOCKER_IMAGE .
only:
- main

push:
stage: push
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker push $DOCKER_IMAGE
only:
- main

deploy:
stage: deploy
script:
- kubectl apply -f deployment.yaml
- kubectl apply -f service.yaml
only:
- main


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍181
🤔 Сколько мастеров в Kubernetes должно быть и почему?

Минимум три мастера для обеспечения высокой доступности (HA).
1. Три мастера позволяют достичь кворума в распределённой системе хранения данных (etcd).
2. Это защищает от сбоев одного или двух мастеров и гарантирует стабильность кластера.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥8
🤔 Как бы вы настроили уведомления для сервисов которые находятся без интернета полностью локализованы закрыты от всего извне?

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

🚩Локальный почтовый сервер (SMTP)

1⃣Установка
sudo apt update
sudo apt install postfix


2⃣Настройка
Отредактируйте /etc/postfix/main.cf
myhostname = local.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relay_domains = $mydestination


3⃣Перезапуск Postfix
sudo systemctl restart postfix   


4⃣Проверка
echo "Test email" | mail -s "Test Subject" user@example.com


🚩Локальный мессенджер (Mattermost)

1⃣Установка Mattermost
Следуйте [документации](https://docs.mattermost.com/install/self-managed-install.html).

2⃣Настройка
Создайте каналы и пользователей.

3⃣Интеграция с мониторингом
Используйте веб-хуки Mattermost для уведомлений.

🚩Системы управления инцидентами (Zabbix)

1⃣Установка Zabbix
Следуйте [документации](https://www.zabbix.com/download).

2⃣Настройка
Настройте хосты, триггеры и действия.

3⃣Настройка уведомлений
Медиатипы: Настройте Email и SMS. Пользователи: Создайте пользователей и уведомления.

🚩Локальный стек мониторинга (Prometheus, Alertmanager)

1⃣Установка Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
tar xvf prometheus-2.26.0.linux-amd64.tar.gz
cd prometheus-2.26.0.linux-amd64
./prometheus --config.file=prometheus.yml


2⃣Установка Alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
tar xvf alertmanager-0.21.0.linux-amd64.tar.gz
cd alertmanager-0.21.0.linux-amd64
./alertmanager --config.file=alertmanager.yml


3⃣Настройка алертинга в Prometheus
groups:
- name: example-alerts
rules:
- alert: HighCPUUsage
expr: avg_over_time(node_cpu_seconds_total{mode="idle"}[5m]) < 20
for: 2m
labels:
severity: critical
annotations:
summary: "High CPU usage detected"
description: "CPU usage is above 80% for more than 2 minutes"


4⃣Настройка Alertmanager
global:
smtp_smarthost: 'localhost:25'
smtp_from: 'alertmanager@local.example.com'
route:
receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
email_configs:
- to: 'admin@local.example.com'
send_resolved: true


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🤔 Что такое Kubernetes — Open Standards (OCI, CRI, CNI, CSI, SMI, CPI)?

1. OCI (Open Container Initiative): стандарты для контейнеров и их выполнения.
2. CRI (Container Runtime Interface): интерфейс взаимодействия Kubernetes с контейнерными движками.
3. CNI (Container Network Interface): стандарты сетевой интеграции контейнеров.
4. CSI (Container Storage Interface): интерфейс для подключения различных систем хранения данных.
5. SMI (Service Mesh Interface): стандарт взаимодействия между сервисами в сетях.
6. CPI (Cloud Provider Interface): взаимодействие Kubernetes с облачными провайдерами.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥111
🤔 Что такое pv, pvc?

Это понятия из Kubernetes, которые используются для управления хранилищем данных (storage). Они решают задачу обеспечения долгоживущего хранилища для приложений, которое сохраняется независимо от жизненного цикла подов (Pods).

🚩Persistent Volume (PV)

Это объект Kubernetes, который представляет физическое хранилище, доступное в кластере. Это может быть локальное хранилище, сетевой диск (например, NFS), или облачный сервис хранения (например, Amazon EBS, Google Persistent Disk, Azure Disk).

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

apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: "/mnt/data"


🚩Persistent Volume Claim (PVC)

Это запрос на использование хранилища (PV) со стороны пользователя или приложения. Это как "заявка" на нужное количество места и определенный тип хранилища.

PVC создается разработчиком или приложением. PVC связывается с подходящим PV, который соответствует запросу. Если подходящий PV найден, он "привязывается" к PVC.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi


🚩Как работают PV и PVC вместе?

🟠Создание PV
Администратор или динамическое создание выделяет хранилище (например, сетевой диск).

🟠Создание PVC
Приложение запрашивает хранилище с помощью PVC.

🟠Привязка
Kubernetes автоматически находит подходящий PV, который соответствует запросу PVC (по размерам, режимам доступа и другим параметрам). После этого PVC "связывается" с PV.

🟠Использование в поде
PVC указывается в поде как volume, что позволяет контейнерам работать с данным хранилищем.

apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx
volumeMounts:
- mountPath: "/data"
name: my-storage
volumes:
- name: my-storage
persistentVolumeClaim:
claimName: my-pvc


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🤔 Какие коды сообщений или ошибок HTTP знаешь и что это значит?

1. 200 OK: успешное выполнение запроса.
2. 404 Not Found: запрашиваемый ресурс не найден.
3. 500 Internal Server Error: ошибка на стороне сервера.
4. 301 Moved Permanently: ресурс перемещён на другой URL.
5. 403 Forbidden: доступ к ресурсу запрещён.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
🤔 Как найти запущенный процесс?

В операционных системах на базе Unix и Linux для поиска запущенных процессов используются различные команды.

🟠Команда `ps`
Команда ps отображает список текущих процессов. Часто используемые опции:
ps aux: Показывает все процессы в системе.
ps -ef: Альтернативный формат вывода всех процессов.
ps aux | grep <имя_процесса>


🟠Команда `top`
Команда top показывает список процессов в реальном времени, обновляя его каждые несколько секунд. Это удобно для мониторинга системы и поиска процессов с высокой загрузкой CPU или памяти.
top


🟠Команда `htop`
Команда htop — это улучшенная версия top, предоставляющая более удобный интерфейс для мониторинга процессов. Она должна быть установлена отдельно.
sudo apt-get install htop
htop


🟠Команда `pgrep`
Команда pgrep используется для поиска процессов по имени. Она возвращает идентификаторы (PID) процессов, соответствующих критериям поиска.

Пример использования:
pgrep <имя_процесса>


🟠Команда `pidof`
Команда pidof возвращает идентификаторы (PID) процессов с указанным именем.
pidof <имя_процесса>


🟠Команда `ps` с фильтрацией
Для более точного поиска можно использовать команду ps с фильтрацией через grep.
ps aux | grep <имя_процесса> | grep -v grep


🟠Команда `lsof`
Команда lsof отображает список открытых файлов и может использоваться для поиска процессов, открывающих определенные файлы.
sudo lsof -i :<номер_порта>


🚩Пример поиска конкретного процесса

Допустим, вам нужно найти процесс с именем nginx. Вот несколько способов сделать это
Использование ps
ps aux | grep nginx | grep -v grep


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


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


🚩Использование `top` или `htop`

Запустите top или htop и найдите процесс nginx в интерактивном режиме.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🤔 Что есть Docker, а что Docker Daemon?

1. Docker: инструмент для создания, управления и развертывания контейнеров.
2. Docker Daemon: фоновый процесс, отвечающий за управление контейнерами, сетями и образами.
3. Docker CLI взаимодействует с Docker Daemon через API для выполнения задач.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥6🤯1
🤔 Где находится swap какое устройство использует?

Это область на диске, которую операционная система использует как виртуальную память, если основной оперативной памяти (RAM) не хватает. Swap может быть представлен в виде:

🚩Где находится swap?

🟠Swap-раздел
Swap может быть выделен как отдельный раздел диска. Он создается во время установки системы или вручную и не имеет файловой системы (тип раздела — swap).
🟠Swap-файл
Swap может быть представлен как обычный файл в файловой системе (например, /swapfile).

🚩Как узнать, где находится swap?

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

Проверка swap через swapon
swapon --show


Пример вывода
NAME       TYPE      SIZE   USED PRIO
/dev/sda2 partition 4G 1G -2
/swapfile file 2G 0B -3

- NAME: Устройство или файл, используемый для swap.
- TYPE: Указывает, является ли swap разделом или файлом.
- SIZE: Размер swap.
- USED: Сколько swap в данный момент используется.
- PRIO: Приоритет использования (меньшее значение — меньший приоритет).

Проверка через free
free -h


🚩Проверка через `fstab`

Если swap является разделом, он обычно прописан в /etc/fstab
cat /etc/fstab | grep swap


Пример
/dev/sda2    none    swap    sw    0   0


🚩Какое устройство использует swap?

Если swap — это раздел, то он отображается как устройство, например, /dev/sda2. Если swap — это файл, его путь будет, например, /swapfile.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Чем отличается процесс от потока?

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


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
🤔 Чем 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 пайплайнов, чтобы каждая итерация разработки могла быть быстро и надежно развернута на серверы.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4😁3🤯21