и посмотреть медиа
DevOps - interview questions
и посмотреть медиа
DevOps interviews.
AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.
Interview questions on DevOps.
🤔 Как можно визуализировать логи? Визуализация логов — это процесс представления лог-файлов в удобном графическом виде для более легкого анализа, поиска аномалий и устранения проблем. Для этого используются различные инструменты, которые собирают, агрегируют и отображают логи в виде графиков, дашбордов и диаграмм. 🚩Почему нужна визуализация логов? 🟠Упрощает анализ вместо просмотра тысяч строк логов можно быстро увидеть тенденции и аномалии. 🟠Помогает в мониторинге можно отслеживать изменения в режиме реального времени. 🟠Ускоряет диагностику проблем легче выявить причину ошибки, если видеть всплески или изменения в логах. 🟠Облегчает работу с большими объемами данных миллионы строк логов можно представить в виде сводных диаграмм. 🚩Какие инструменты используются? 🟠ELK Stack (Elasticsearch + Logstash + Kibana) Logstash – собирает и обрабатывает логи. Elasticsearch – хранит и индексирует логи для быстрого поиска. Kibana – визуализирует данные, строит графики и дашборды. Пример: Можно создать график с количеством ошибок 500 за последние 24 часа. 🟠Grafana + Loki (альтернатива ELK) Loki – хранит и обрабатывает логи. Grafana – строит красивые дашборды с логами и метриками. Пример: Можно создать панель с последними логами приложений, используя tail-подобное обновление. 🟠Graylog Обрабатывает логи, хранит их в Elasticsearch, строит графики и отправляет алерты. Пример: Можно отфильтровать логи по уровню ERROR и вывести их в виде диаграммы. 🟠Datadog, Splunk, New Relic Коммерческие решения с мощными инструментами аналитики логов. Пример: Автоматическая корреляция логов с метриками системы. 🚩Простой пример работы с ELK Logstash конфиг (сбор логов из файла) input { file { path => "/var/log/app.log" start_position => "beginning" } } output { elasticsearch { hosts => ["Ссылка скрыта } } Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что вообще означает eviction или evict? Evict означает "выселить" или "удалить". В Kubernetes это означает, что pod удаляется с текущей ноды — либо временно (будет пересоздан), либо навсегда (если не управляется контроллером). Это часть механизма автоматического самовосстановления и балансировки нагрузки. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что возвращает функция в bash? В Bash функция возвращает код завершения (exit status), который представляет собой числовое значение от 0 до 255. Это значение используется для указания успешного или неуспешного выполнения функции. По умолчанию, если явно не указано возвращаемое значение, функция возвращает код завершения последней выполненной команды внутри нее. 🚩Как возвращать значения из функции? 🟠Код завершения (exit status) Чтобы явно задать код завершения функции, используется команда return. my_function() { if [[ $1 -gt 0 ]]; then return 0 # Успех else return 1 # Ошибка fi } my_function 5 echo $? # Выведет 0 (успех) 🟠Вывод данных через `echo` Для передачи данных из функции (например, строки или числа) можно использовать echo. Вывод можно перехватить через подстановку команд $() my_function() { echo "Hello, $1!" } result=$(my_function "world") echo "$result" # Выведет "Hello, world!" 🟠Изменение глобальных переменных Функция может менять значения глобальных переменных, которые затем используются за ее пределами my_function() { result=$(( $1 + $2 )) } my_function 3 7 echo $result # Выведет 10 🚩Почему это важно? 🟠Код завершения Используется в сценариях для проверки, выполнилась ли функция успешно. Значение 0 обычно означает успех, а любое другое число — ошибку. 🟠Вывод через `echo` Удобен для передачи данных из функции. 🟠Изменение переменных Полезно, если функция должна сохранять данные для дальнейшей обработки. # Функция проверки файла check_file() { if [[ -f $1 ]]; then echo "Файл $1 существует." return 0 else echo "Файл $1 не найден." return 1 fi } # Вызов функции check_file "/etc/passwd" status=$? # Сохраняем код завершения if [[ $status -eq 0 ]]; then echo "Продолжаем работу..." else echo "Останавливаемся из-за ошибки." fi Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какая разница между Deployment и StatefulSet? - Deployment: - Стейтлес. - Поды с одинаковыми именами. - Легко масштабируется. - StatefulSet: - Стейтфул. - Поды с уникальными именами (pod-0, pod-1...). - Поддерживает привязку к PersistentVolumeClaim. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как linux выбирает, какой из процессов завершить? Она использует механизм, известный как OOM Killer (убийца процессов при нехватке памяти), для завершения процессов с целью освобождения памяти. Выбор процесса для завершения базируется на ряде критериев, чтобы минимизировать влияние на работу системы. 🚩Как работает OOM Killer? 🟠Очки OOM (OOM Score) Каждому процессу присваиваются очки OOM, которые рассчитываются на основе нескольких факторов, таких как: Объем памяти, используемой процессом. Приоритет процесса. Важность процесса для системы (например, системные демоны имеют более низкие очки). 🟠Формула расчета OOM Score Основной фактор при расчете очков - это объем потребляемой процессом памяти. Чем больше памяти потребляет процесс, тем выше его OOM Score. Операционная система также учитывает приоритет процесса (nice value) и некоторые другие параметры. 🟠Принудительное завершение Процесс с наибольшим OOM Score считается наименее критичным для системы и завершается первым. 🚩Пример расчета OOM Score 🟠Вот пример того, как может быть рассчитан OOM Score (упрощенный) Процесс A использует 1 ГБ памяти. Процесс B использует 2 ГБ памяти. Процесс C использует 500 МБ памяти, но это критический системный процесс. 🟠OOM Score для этих процессов может выглядеть так Процесс A: 300 Процесс B: 600 Процесс C: 100 (низкий, так как процесс критический) 🚩Настройка OOM Killer Администраторы могут влиять на работу OOM Killer, настраивая параметры OOM Score для конкретных процессов с помощью файлов в каталоге /proc. Например, для изменения приоритета процесса: echo -1000 > /proc//oom_score_adj 🚩Логирование и мониторинг При срабатывании OOM Killer соответствующие сообщения записываются в системный журнал (обычно /var/log/syslog или /var/log/messages), что позволяет администраторам анализировать причины и предпринимать меры по предотвращению в будущем. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Кластер БД висит, запросы копятся, но другие выполняются быстро. Что происходит? Скорее всего: - Приложение удерживает блокировку, из-за чего остальные запросы висят в очереди. - Блокировки возникают при долгих UPDATE, INSERT, TRANSACTION, особенно без COMMIT. Что делать: 1. Проверить активные сессии и блокировки (pg_stat_activity — для PostgreSQL). 2. Выяснить какой запрос держит блокировку. 3. Убить зависшие транзакции или перезапустить зависший компонент. 4. Настроить таймауты транзакций и контроль количества соединений от приложения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какие есть три вида монтирования в докере? В Docker есть три типа монтирования данных в контейнеры: Volumes (Тома) – рекомендуемый способ хранения данных Bind Mounts (Привязанные тома) – монтирование локальных файлов/папок Tmpfs (Временное хранилище в RAM) – для быстрого доступа без записи на диск 🚩Volumes (Тома) – лучший вариант хранения данных Данные хранятся внутри Docker (/var/lib/docker/volumes) Можно использовать в нескольких контейнерах Не зависят от файловой системы хоста sh docker volume create mydata docker run -d -v mydata:/app/data --name mycontainer ubuntu Удаление тома (только если он не используется) sh docker volume rm mydata 🚩Bind Mounts (Привязанные тома) – монтирование папок с хоста Монтирует директорию с хоста в контейнер Изменения сразу видны на хосте Зависит от структуры файлов на хосте sh docker run -d -v /home/user/logs:/app/logs --name mycontainer ubuntu 🚩Tmpfs (Временное хранилище в RAM) – быстрый, но не сохраняющийся вариант Хранит данные в оперативной памяти (RAM) Очень быстрое чтение/запись Пропадает при перезапуске контейнера Пример: создать tmpfs-монтирование для /app/cache sh docker run -d --tmpfs /app/cache:size=100m --name mycontainer ubuntu Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как создать собственный плагин во Vue 3? Собственный плагин — это объект с методом install, куда передаётся app. Внутри можно: - Добавить глобальные компоненты. - Расширить экземпляр приложения (app.config.globalProperties). - Зарегистрировать директивы или provide/inject. Это полезно для переиспользуемого функционала или внутренних библиотек. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что такое cherry pick? Это команда в системе контроля версий Git, которая позволяет выбрать отдельные коммиты из одной ветки и применить их к другой ветке. Это полезно, когда вы хотите перенести конкретные изменения (коммиты) в текущую ветку, не выполняя слияние всей ветки. 🚩Когда используется 🟠Применение отдельных изменений Когда нужно перенести конкретные исправления или функции из одной ветки в другую, не сливая все изменения из исходной ветки. 🟠Быстрое исправление ошибок Когда найденное исправление в одной ветке нужно срочно применить в другой, например, из ветки разработки в ветку релиза. 🟠Избежание сложного слияния Когда слияние всей ветки может привести к конфликтам или нежелательным изменениям, cherry-pick позволяет аккуратно перенести только нужные коммиты. 🚩Примеры использования 🟠Простого `cherry-pick` Перенос одного коммита из другой ветки. # Переключитесь на ветку, куда вы хотите применить изменения git checkout target-branch # Выполните cherry-pick коммита git cherry-pick 🟠Применения нескольких коммитов Перенос нескольких коммитов из другой ветки. # Переключитесь на ветку, куда вы хотите применить изменения git checkout target-branch # Выполните cherry-pick нескольких коммитов git cherry-pick 🟠Применения диапазона коммитов Перенос диапазона коммитов из другой ветки. # Переключитесь на ветку, куда вы хотите применить изменения git checkout target-branch # Выполните cherry-pick диапазона коммитов git cherry-pick .. 🚩Разрешение конфликтов 1⃣Разрешите конфликты в файлах. 2⃣Добавьте изменения в индекс git add 3⃣Завершите процесс cherry-pick git cherry-pick --continue 🚩Прерывание Если вы хотите прервать процесс cherry-pick, можно использовать команду git cherry-pick --abort Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!