DevOps | Вопросы собесов
الذهاب إلى القناة على Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
إظهار المزيد5 566
المشتركون
+124 ساعات
-37 أيام
-1030 أيام
أرشيف المشاركات
🤔 От чего зависит время хранения метрик?
Зависит от нескольких ключевых факторов, включая требования бизнеса, технические ограничения, нормативные требования и тип метрик.
🚩Основные факторы
🟠Требования бизнеса
Анализ производительности: Для анализа производительности системы за длительные периоды может потребоваться хранение метрик за несколько месяцев или лет. Исторические данные: В некоторых случаях необходимо хранить исторические данные для сравнения и анализа долгосрочных тенденций.
🟠Технические ограничения
Дисковое пространство: Доступное дисковое пространство напрямую влияет на количество данных, которые можно хранить. Производительность системы: Увеличение объема данных может снижать производительность системы мониторинга.
🟠Нормативные требования
Соблюдение законов и регламентов: В некоторых отраслях существуют требования к хранению данных, включая метрики, за определенные периоды.
🟠Тип метрик
Критические метрики: Метрики, важные для безопасности и стабильности системы, могут храниться дольше. Метрики производительности: Метрики производительности могут храниться короткий период для оперативного анализа и устранения проблем.
🚩Практические рекомендации
🟠Краткосрочное хранение
1-2 месяца: Для оперативного мониторинга и анализа текущих событий и инцидентов.
🟠Среднесрочное хранение
3-6 месяцев: Для анализа тенденций и выявления закономерностей.
🟠Долгосрочное хранение
1-2 года: Для соответствия нормативным требованиям и долгосрочного анализа производительности.
🚩Примеры настройки сроков хранения метрик
🟠Prometheus (Retention Policy)
Позволяет настроить срок хранения данных с помощью параметра
--storage.tsdb.retention.time.
Настройка срока хранения метрик
prometheus --storage.tsdb.retention.time=90d
🟠InfluxDB (Retention Policy)
Позволяет управлять временем хранения данных с помощью политики хранения (Retention Policy).
1⃣Создание политики хранения
CREATE RETENTION POLICY "three_months" ON "mydb" DURATION 90d REPLICATION 1 DEFAULT
2⃣Применение политики хранения
ALTER RETENTION POLICY "three_months" ON "mydb" DURATION 90d REPLICATION 1
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое firewall?
Firewall — это сетевой фильтр, который контролирует входящий и исходящий трафик на основе заданных правил безопасности. Он используется для защиты систем от несанкционированного доступа и обеспечения фильтрации вредоносного трафика.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Сколько времени храните логи по мониторингу?
Зависит от нескольких факторов, включая требования бизнеса, нормативные требования и технические ограничения. Обычно логи по мониторингу хранятся от нескольких недель до нескольких лет.
🚩Факторы
🟠Требования бизнеса
Для анализа и отчетности могут требоваться логи за длительные периоды. Для отладки и решения инцидентов могут быть достаточно короткие периоды хранения.
🟠Нормативные требования
В некоторых отраслях существуют законодательные требования к срокам хранения данных (например, финансовый сектор или здравоохранение).
🟠Технические ограничения
Доступное дисковое пространство и производительность системы могут ограничивать срок хранения логов.
🟠Тип логов
Разные типы логов могут иметь разные сроки хранения. Например, критические системные логи могут храниться дольше, чем логи отладки.
🚩Практические рекомендации
🟠Краткосрочное хранение
Хранение логов за последние 7-30 дней для оперативного мониторинга и анализа.
🟠Среднесрочное хранение
Хранение логов за последние 3-6 месяцев для анализа тенденций и расследования инцидентов.
🟠Долгосрочное хранение
Хранение логов за последние 1-2 года для соответствия нормативным требованиям и долгосрочного анализа.
🚩Примеры настройки сроков хранения логов
🟠Elasticsearch (ILM - Index Lifecycle Management)
ILM позволяет управлять жизненным циклом индексов, автоматически перемещая данные между горячими, теплыми и холодными индексами и удаляя старые данные.
1⃣Создание политики ILM
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_age": "30d",
"max_size": "50gb"
}
}
},
"warm": {
"min_age": "30d",
"actions": {
"shrink": {
"number_of_shards": 1
},
"set_priority": {
"priority": 50
}
}
},
"cold": {
"min_age": "90d",
"actions": {
"freeze": {},
"set_priority": {
"priority": 0
}
}
},
"delete": {
"min_age": "180d",
"actions": {
"delete": {}
}
}
}
}
}
2⃣Применение политики к индексу
PUT /myapp-logs/_settings
{
"index.lifecycle.name": "my_policy"
}
🟠Logrotate
Используется для управления файлами логов и их архивирования.
1⃣Конфигурация logrotate
Создайте файл конфигурации /etc/logrotate.d/myapp
/var/log/myapp/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0640 myuser mygroup
sharedscripts
postrotate
/usr/bin/systemctl reload myapp.service > /dev/null
endscript
}
Ставь 👍 и забирай 📚 Базу знаний🤔 Что даёт load balancer?
Load Balancer распределяет входящий трафик между несколькими серверами или контейнерами, обеспечивая высокую доступность и отказоустойчивость. Он также помогает избежать перегрузки отдельных узлов и улучшает производительность системы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что такое OOM?
OOM расшифровывается как "Out Of Memory" (недостаток памяти). Это состояние, при котором система или процесс исчерпывает все доступные ресурсы памяти, что приводит к невозможности выделения дополнительной памяти для выполнения текущих задач или запуска новых процессов.
🚩Почему возникает
🟠Неэффективное управление памятью
Приложение может не освобождать память после использования (утечки памяти), что со временем приводит к её исчерпанию.
🟠Недостаток ресурсов
На устройстве или сервере физически недостаточно оперативной памяти для поддержки всех запущенных процессов.
🟠Пиковые нагрузки
Внезапное увеличение нагрузки на систему, требующее больше памяти, чем обычно.
🚩Как используется
1⃣Уведомление процессов
Некоторые ОС уведомляют процессы о нехватке памяти, чтобы они могли освободить часть ресурсов.
2⃣Прекращение процессов
В крайнем случае ОС может принудительно завершить процессы для освобождения памяти. В Linux, например, существует OOM Killer, который завершает наиболее "прожорливые" процессы.
3⃣Журналирование
Запись в журнал, чтобы администраторы могли позже проанализировать и устранить причину проблемы.
data = []
while True:
data.append(' ' * 10**6) # Добавляем строки по 1 МБ в список бесконечно
🚩Как предотвратить
🟠Мониторинг
Постоянно отслеживайте использование памяти вашими приложениями и системами.
🟠Оптимизация кода
Пишите код, который эффективно использует и освобождает память.
🟠Настройка лимитов
Устанавливайте ограничения на использование памяти для процессов.
🟠Масштабирование ресурсов
При необходимости увеличивайте объем доступной памяти или используйте распределенные системы.
Ставь 👍 и забирай 📚 Базу знаний⁉️ Хотите понять, как Kubernetes управляет контейнерами?
🔥Узнайте всё о его ключевых компонентах: Control Plane, Worker Nodes, Pods, Namespaces. На открытом вебинаре мы разберём архитектуру Kubernetes и покажем, как настроить систему для масштабирования и отказоустойчивости.
📗Этот урок — ваш первый шаг к созданию инфраструктурной платформы. После вебинара вы поймёте, как управлять контейнерами, их взаимодействием и хранением данных.
🔗Регистрируйтесь на вебинар 17 декабря в 20:00 мск. Участники получат скидку 🎁 на обучение на курсе «Инфраструктурная платформа на основе Kubernetes»: https://otus.pw/aY3z/?erid=LjN8K8RnL
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Поможем освоить методологию DevOps и выйти на новый профессиональный уровень за 4 месяца
🎄 Старт: 16 декабря
Программа курса:
- Контейнеризация и оркестрация: Docker и Kubernetes
- Основы Linux и Git
- Принципы работы с инфраструктурой, контейнерами, CI/CD
- Методы статического анализа для оценки безопасности кода
- Компьютерные сети, базы данных и Bash-скрипты
Кому подойдет этот курс?
- Новичкам: для старта карьеры в команде продуктовой разработки
- Разработчикам: для автоматизации и оптимизации процессов
- Руководителям проектов: для повышения эффективности своей команды
@Codeby_Academy
Узнать подробнее о курсе
🤔 Что такое squash в Docker?
squash — это процесс объединения всех слоёв Docker-образа в один. Это уменьшает количество слоёв, упрощает образ и может ускорить развертывание. Однако использование squash делает процесс сборки менее гибким из-за потери промежуточных слоёв.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Какая файловая система бывает с динамическими inode?
Это файловая система, которая может увеличивать количество inode по мере необходимости, вместо того чтобы фиксировать их количество при создании. Такой подход позволяет более эффективно использовать дисковое пространство и избегать ситуаций, когда inode заканчиваются, хотя на диске еще достаточно свободного места.
🚩XFS
🟠Динамическое управление inode
XFS не фиксирует количество inode при создании файловой системы. Inode выделяются по мере необходимости из свободного дискового пространства, что позволяет более гибко и эффективно использовать ресурсы.
🟠Высокая производительность
XFS разработана для высокопроизводительных операций ввода-вывода и хорошо подходит для больших файлов и файловых систем.
🟠Журналирование
XFS использует журналирование для повышения надежности и быстрого восстановления после сбоев.
🟠Поддержка больших файлов и файловых систем
XFS может управлять очень большими файлами и файловыми системами (до нескольких петабайт).
🟠Дефрагментация и оптимизация
Встроенные средства для дефрагментации и оптимизации файловой системы позволяют поддерживать высокую производительность.
🟠Пример создания XFS файловой системы
Для создания файловой системы XFS на разделе
/dev/sdX1, можно использовать команду mkfs.xfs
mkfs.xfs /dev/sdX1
🟠Пример монтирования XFS файловой системы
После создания файловой системы ее можно смонтировать
mount /dev/sdX1 /mnt/myxfs
Ставь 👍 и забирай 📚 Базу знаний– Помощь с pet-проектом
– Составление roadmap
– Общая консультация
– Проведение код-ревью и mock-собеседования
– Помощь с трудоустройством
Все это и многое другое может Ментор. Он обеспечит вам необходимый boost, ускорит и упростит вход в IT.
🔥 Здесь размещен список менторов, и многие из них предлагают бесплатную первую консультацию
🤔 Что такое service monitor в Kubernetes?
ServiceMonitor — это объект в Kubernetes, используемый в связке с Prometheus для мониторинга сервисов. Он определяет, какие эндпоинты и метрики должны собираться Prometheus. Это часть системы мониторинга, которая позволяет автоматизировать сбор данных о состоянии сервисов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Миграция в облако? Это легко!
Собственная инфраструктура устарела или не справляется с нагрузками? Используйте облачные ресурсы! Эксперты Yandex Cloud помогут перейти в облако быстро, легко и безопасно.
✅ Мы полностью сопровождаем процесс.
✅ От вас — только инженер с доступом к инфраструктуре.
✅ Архитектура под ваши задачи, миграция и поддержка на каждом шагу — всё включено.
⚡Переходите в Yandex Cloud и забудьте о старом железе. А если успеете подать заявку до 31 декабря, мы покроем расходы на инженеров и тестовую инфраструктуру.
Подать заявку
#реклама 16+
yandex.cloud
О рекламодателе
Реклама на Яндексе
🤔 Какой прикручиваете мониторинг к своим приложениям чем мониторите?
Это важная часть управления инфраструктурой и обеспечения стабильной работы сервисов. Различные инструменты позволяют отслеживать состояние приложений, ресурсов системы и выявлять проблемы до того, как они повлияют на пользователей.
🚩Prometheus
Это мощный инструмент для мониторинга и алертинга, который собирает метрики с приложений и систем. Prometheus использует язык запросов PromQL для анализа и генерации алертов.
🚩Установка и настройка Prometheus
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.ym
2⃣Конфигурация prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'my_application'
static_configs:
- targets: ['localhost:9090']
3⃣Экспортеры для сбора метрик
Node Exporter для системных метрик Приложения могут использовать библиотеки клиента для передачи метрик (например, prometheus_client для Python)
🚩Grafana
Это инструмент для визуализации данных, который отлично интегрируется с Prometheus. Он позволяет создавать красивые и информативные дашборды.
🚩Установка и настройка Grafana
1⃣Установка Grafana
wget https://dl.grafana.com/oss/release/grafana-7.4.3.linux-amd64.tar.gz
tar -zxvf grafana-7.4.3.linux-amd64.tar.gz
cd grafana-7.4.3/bin
./grafana-server
2⃣Добавление источника данных
В веб-интерфейсе Grafana добавьте Prometheus как источник данных.
Создайте дашборды и панели для визуализации метрик.
3⃣Alertmanager
Alertmanager управляет алертами, отправляемыми Prometheus, и позволяет настраивать правила алертинга и маршрутизации.
🚩Конфигурация Alertmanager
1⃣Конфигурация alertmanager.yml
global:
smtp_smarthost: 'smtp.example.com:587'
smtp_from: 'alertmanager@example.com'
route:
receiver: 'email-alert'
receivers:
- name: 'email-alert'
email_configs:
- to: 'team@example.com'
ELK Stack используется для сбора, анализа и визуализации логов.
🚩Основные компоненты
🟠Elasticsearch
Хранение и поиск логов.
🟠Logstash
Сбор, обработка и преобразование логов.
🚩Установка и настройка ELK Stack
1⃣Установка Elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.11.2-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.11.2-linux-x86_64.tar.gz
cd elasticsearch-7.11.2
./bin/elasticsearch
2⃣Установка Logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.11.2-linux-x86_64.tar.gz
tar -xzf logstash-7.11.2-linux-x86_64.tar.gz
cd logstash-7.11.2
./bin/logstash -f logstash.conf
3⃣Установка Kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.11.2-linux-x86_64.tar.gz
tar -xzf kibana-7.11.2-linux-x86_64.tar.gz
cd kibana-7.11.2
./bin/kibana
Ставь 👍 и забирай 📚 Базу знанийВсе надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает?
Психолог взрослого человека - канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам.
✔️ Как научиться отвлекаться от работы и отдыхать?
✔️ Как совместить кучу рабочих задач и время с семьей?
✔️ Как справиться с прокрастинацией?
✔️ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит?
Подписывайтесь на канал @vadimpetrov_psy и научитесь работать без упахивания, выгорания и ущерба для личной жизни!
👨🏻💻 Псс. Заходите в закреп канала - там много полезного: https://t.me/+5NBjd_Euafg1YTYy
🤔 На каких технологиях базируется контейнеризация, Docker в том числе?
Контейнеризация базируется на технологиях виртуализации на уровне ОС, таких как cgroups и namespaces, предоставляемых ядром Linux. cgroups управляют ресурсами (CPU, память), а namespaces изолируют процессы. Docker также использует OverlayFS для управления файловыми системами контейнеров. Вместе эти технологии обеспечивают лёгкую изоляцию и портативность.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Если у вас много машин и нет ansible и питона как будете устанавливать?
Если у вас много машин и нет Ansible и Python, можно использовать несколько подходов для автоматической установки этих инструментов.
🚩Методы
🟠Использование SSH и скриптов
Вы можете написать скрипт, который будет подключаться к каждой машине по SSH и устанавливать необходимые пакеты. Шаги:
1⃣Создайте скрипт для установки Python и Ansible
#!/bin/bash
# Установка Python
sudo apt update
sudo apt install -y python3 python3-pip
# Установка Ansible
pip3 install ansible
2⃣Создайте скрипт для выполнения установки на удалённых машинах
#!/bin/bash
# Список IP-адресов или хостнеймов машин
HOSTS=("host1" "host2" "host3")
# Путь к скрипту установки
INSTALL_SCRIPT="install_ansible.sh"
# Копирование скрипта и выполнение на удалённых машинах
for HOST in "${HOSTS[@]}"; do
scp $INSTALL_SCRIPT $HOST:/tmp/
ssh $HOST "bash /tmp/$INSTALL_SCRIPT"
done
🟠Использование `cloud-init` (для облачных машин)
Если вы используете облачные машины, такие как AWS, Azure или Google Cloud, можно использовать cloud-init для автоматической установки Python и Ansible при создании машин.
Пример cloud-init конфигурации
#cloud-config
packages:
- python3
- python3-pip
runcmd:
- pip3 install ansible
🟠Использование Fabric
Это инструмент для выполнения команд на удалённых серверах по SSH, который можно использовать для автоматизации установки Python и Ansible.
Установка Fabric
pip install fabric
Пример использования Fabric
from fabric import Connection
# Список хостов
hosts = ["host1", "host2", "host3"]
# Команды для выполнения
commands = [
"sudo apt update",
"sudo apt install -y python3 python3-pip",
"pip3 install ansible"
]
# Выполнение команд на каждом хосте
for host in hosts:
conn = Connection(host)
for command in commands:
conn.run(command)
Запустите скрипт:
python deploy.py
🟠Использование pdsh (Parallel Distributed Shell)
Это утилита для параллельного выполнения команд на нескольких хостах.
Установка pdsh
sudo apt install pdsh
Пример использования pdsh
# Список хостов
HOSTS="host1,host2,host3"
# Команды для выполнения
pdsh -w $HOSTS "sudo apt update && sudo apt install -y python3 python3-pip"
pdsh -w $HOSTS "pip3 install ansible"
Ставь 👍 и забирай 📚 Базу знаний🤔 Как уменьшить размер Docker image?
Чтобы уменьшить размер Docker image, используйте минимальные базовые образы (например, alpine), удаляйте временные файлы после сборки, объединяйте команды в Dockerfile и избегайте ненужных зависимостей.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
+9
Помощь в трудоустройстве в IT-сфере!
В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно!
Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита.
Для этого нужно:
- Перейти по ссылке
- Заполнить анкету и ответить на вопросы (занимает менее 3 минут)
- На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать
Перейти на сайт
#реклама 16+
urban-university.ru
О рекламодателе
🤔 Через что запускаете плейбуки или роли?
В Ansible плейбуки и роли могут быть запущены различными способами в зависимости от контекста и требований. Основные методы включают использование командной строки, автоматизацию через CI/CD системы и запуск через API. Вот описание основных способов запуска плейбуков и ролей:
🚩Запуск через командную строку
Самый распространенный и прямолинейный способ запуска плейбуков и ролей — это использование командной строки с командой
ansible-playbook.
Запуск плейбука
ansible-playbook site.yml
Запуск плейбука с указанием инвентарного файла
ansible-playbook -i inventory/hosts site.yml
Запуск плейбука с переменными
ansible-playbook -i inventory/hosts site.yml -e "variable1=value1 variable2=value2"
Запуск определенной роли в плейбуке
Плейбук
# site.yml
- hosts: all
roles:
- role: my_role
Команда
ansible-playbook -i inventory/hosts site.yml
🚩Запуск через CI/CD системы
Многие современные проекты используют CI/CD системы, такие как Jenkins, GitLab CI, GitHub Actions и другие для автоматизации процесса развертывания и тестирования. Ansible легко интегрируется с такими системами.
Jenkins Pipeline
pipeline {
agent any
stages {
stage('Deploy') {
steps {
sh 'ansible-playbook -i inventory/hosts site.yml'
}
}
}
}
🟠Пример запуска через GitLab CI
.gitlab-ci.yml
stages:
- deploy
deploy:
stage: deploy
script:
- ansible-playbook -i inventory/hosts site.yml
🟠Запуск через Ansible Tower или AWX
Ansible Tower (коммерческий продукт) и AWX (open-source версия Ansible Tower) предоставляют веб-интерфейс и API для управления и автоматизации Ansible задач.
🚩Пример запуска через Ansible Tower/AWX
🟠Создание Job Template
В веб-интерфейсе Ansible Tower или AWX создайте новый шаблон задания (Job Template), укажите плейбук и инвентарь.
🟠Запуск задания:
Запустите задание через веб-интерфейс или API.
Запуск через API
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{"inventory": "1", "job_template": "1"}' \
http://tower.example.com/api/v2/job_templates/1/launch/
Пример плейбука site.yml
# site.yml
- hosts: all
roles:
- role: my_role
Запуск через командную строку
ansible-playbook -i inventory/hosts site.yml
Ставь 👍 и забирай 📚 Базу знаний🤔 Когда используется UDP?
UDP используется, когда важна скорость и допустима потеря данных, например, в стриминге, видеозвонках, DNS-запросах и онлайн-играх.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
