uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

DevOps | Вопросы собесов

DevOps | Вопросы собесов

Kanalga Telegram’da o‘tish

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

Ko'proq ko'rsatish
5 564
Obunachilar
+324 soatlar
-77 kun
-1030 kun
Postlar arxiv
🤔 Как проще проверить есть ли на сервер nginx? Проверить, установлен ли NGINX на сервере, можно несколькими способами: Проверка запущенного процесса
ps aux | grep nginx
Если NGINX работает, будет вывод с процессами, например:
root      1234  0.0  0.1  123456  7890 ? Ss   10:00   0:00 nginx: master process /usr/sbin/nginx
Проверка через systemctl (если systemd)
systemctl status nginx
Если NGINX установлен и работает, будет что-то вроде:
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since ...
Проверка через nginx -v (версия)
nginx -v
Если NGINX установлен, покажет версию, например:
nginx version: nginx/1.20.1
Проверка пакетов (dpkg или rpm) Если сервер на Debian/Ubuntu:
dpkg -l | grep nginx
Если сервер на CentOS/RHEL:
rpm -qa | grep nginx
Проверка открытых портов (если сервер работает)
netstat -tulnp | grep :80
или
ss -tulnp | grep :80
Ставь 👍 и забирай 📚 Базу знаний

Repost from easyoffer
Привет, ребята! 1,5 года я учился на программиста, а сайт easyoffer.ru стал моим пет-проектом. Я создавал его, потому что: а)
Привет, ребята! 1,5 года я учился на программиста, а сайт easyoffer.ru стал моим пет-проектом. Я создавал его, потому что: а) нужно было добавить хоть какой-нибудь проект в резюме б) подготовиться к прохождению собесов И всё получилось! Благодаря еasyoffer я успешно прошёл собеседование и устроился Python Junior-разработчиком на удаленку с зарплатой 115 тысяч рублей. Однако ещё во время разработки я понял, что у этого проекта есть потенциал. Казалось, что сайт может стать популярным и, возможно, превратиться в стартап. По-этому я с самого начала заложил в проект минимальную бизнес-модель, на случай, если сайт начнёт набирать трафик. Я предложил пользователям полный доступ к сайту в обмен на подписку на Telegram-каналы. Это позволяло развивать аудиторию, а в будущем — зарабатывать на рекламе. Результат превзошёл ожидания! С момента запуска easyoffer посетило 400 тысяч человек. А когда доход с рекламы превысил мою зарплату программиста, я принял решение уйти с работы и полностью посвятить себя разработке новой версии сайта. Вот так, зайдя в IT, через 4 месяца вышел через свой же пет-проект. Мне очень повезло Уже год я работаю над easyoffer 2.0. Это будет более масштабный и качественной новый проект: – Появится тренажер – Появятся задачи из собесов – Фильтрация контента по грейдам и еще очень много фич, о которых я расскажу позже. Хочу, довести easyoffer до ума, чтобы сайт стал настоящим помощником для всех, кто готовится к собеседованиям. По этому в ближайшее время я объявлю о старте краудфандинговой кампании, чтобы ускорить разработку и я готов щедро отблагодарить всех, кто поддержит проект. А те, кто поддержат проект первыми, получат специальные лимитированные выгодные вознаграждения. Следите за этим телеграм каналом, если хотите стать первыми сапортерами.

🤔 Опишите обстоятельства, при которых потеряются данные внутри Docker-контейнера, чтобы они полностью исчезли. 1. Контейнер удален без сохранения данных в volume или bind mount. 2. Файлы хранятся в tmpfs, который очищается при остановке контейнера. 3. Используется ephemeral контейнер, данные которого существуют только в памяти. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие есть метрики для измерения качества системы? Для измерения качества системы (особенно в DevOps, SRE и разработке) используют различные метрики производительности, надежности и доступности. 🚩Основные метрики качества системы 🟠Метрики "Четырёх ключевых показателей" (DORA) Эти метрики помогают оценить эффективность процессов DevOps: Lead Time for Changes (Время доставки изменений) — время от написания кода до его выхода в прод. Deployment Frequency (Частота развертываний) — как часто изменения попадают в прод. Mean Time to Restore (MTTR) (Среднее время восстановления) — как быстро исправляются инциденты. Change Failure Rate (Процент неудачных изменений) — доля развертываний, вызывающих сбои. 🟠Метрики надежности и доступности (SRE) Эти метрики помогают измерять надежность системы: SLA (Service Level Agreement) — договорное время доступности (например, 99.9%). SLO (Service Level Objective) — целевое значение доступности (например, 99.95%). SLI (Service Level Indicator) — фактические измеренные показатели (например, 99.93%). Error Rate — процент ошибок в системе (HTTP 500, таймауты и т. д.). Latency (Задержка) — время ответа системы на запросы. 🟠Метрики производительности Они показывают, насколько быстро работает система: CPU Utilization — загрузка процессора. Memory Usage — использование оперативной памяти. Disk I/O — скорость чтения/записи на диск. Network Throughput — пропускная способность сети. Response Time — время отклика системы. 🟠Метрики пользовательского опыта Оценивают удобство работы пользователей с системой: Apdex (Application Performance Index) — индекс удовлетворенности пользователей (0–1). TTFB (Time to First Byte) — время до получения первого байта ответа от сервера. Page Load Time — время полной загрузки страницы. Bounce Rate — процент пользователей, покинувших сайт без взаимодействия. Ставь 👍 и забирай 📚 Базу знаний

🤔 Насколько плотно приходилось работать с Bamboo? Если работали плотно: - Настраивали пайплайны для CI/CD. - Конфигурировали задачи для сборки, тестирования и деплоя. - Использовали Bamboo для мониторинга состояния сборок и анализа ошибок. Если опыта мало: - Работали с базовыми настройками и интеграцией с репозиториями. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое лямбда выражение в Phyton? В Python лямбда-выражение — это анонимная (безымянная) функция, создаваемая с помощью ключевого слова lambda. Синтаксис
lambda аргументы: выражение
🚩Примеры Простая лямбда-функция
add = lambda x, y: x + y
print(add(3, 5))  # Выведет: 8
Эквивалентно обычной функции
def add(x, y):
    return x + y
Лямбда внутри map()
nums = [1, 2, 3, 4]
squares = list(map(lambda x: x ** 2, nums))
print(squares)  # [1, 4, 9, 16]
Лямбда внутри sorted()
words = ["apple", "banana", "kiwi"]
sorted_words = sorted(words, key=lambda w: len(w))
print(sorted_words)  # ['kiwi', 'apple', 'banana']
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как сделать так, чтобы в контейнер попасть извне Kubernetes, например, открыть страничку из интернета? 1. Настройка сервиса: - Создайте Kubernetes Service типа NodePort или LoadBalancer. 2. Ingress: - Настройте Ingress для маршрутизации трафика с использованием доменного имени. 3. Проброс портов: - Используйте kubectl port-forward, чтобы связать локальный порт с портом контейнера. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как посмотреть логи в уже работающем контейнере? Чтобы посмотреть логи работающего контейнера в Docker, используйте команду:
docker logs <container_id>
или
docker logs <container_name>
🚩Основные флаги 🟠`-f` (follow) следить за логами в реальном времени (как tail -f):
  docker logs -f <container_id>
  
🟠`--tail N` показать только последние N строк:
  docker logs --tail 100 <container_id>
  
🟠`-t` (timestamps) добавить метки времени:
docker logs -t <container_id>
🚩Просмотр логов через `docker-compose` Если контейнер запущен через docker-compose, можно использовать:
docker-compose logs -f
или для конкретного сервиса:
docker-compose logs -f <service_name>
🚩Логи для контейнера с systemd (если Docker пишет в `journald`)
journalctl -u docker -f
Ставь 👍 и забирай 📚 Базу знаний

🤔 Если запускаем приложение в контейнере, какой-то микросервис, чем будет отличаться под в данном случае? 1. Контейнер: Это единичная инстанция приложения, работающая в изолированном окружении. 2. Под: В Kubernetes под может содержать один или несколько контейнеров, которые работают вместе, делят ресурсы (например, сеть, volume) и рассматриваются как единая сущность для оркестрации. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

wipe right or swipe left Что делать, если твои мэтчи в жизни не такие точные, как твой код? Спокойно, 14 февраля в 19:00 по М
wipe right or swipe left Что делать, если твои мэтчи в жизни не такие точные, как твой код? Спокойно, 14 февраля в 19:00 по МСК мы разберём, как ML анализирует speed dating и предсказывает match. 📌 Мы возьмем реальные данные со speed dating. 📌 Обучим модель, которая скажет: match или swipe left. 📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥). 💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы. 👉 Записаться

🤔 Как сделать rebase на main branch? Выполнить rebase на main в Git означает "перенести" ваши изменения поверх актуального состояния основной ветки (main). 🟠Переключаемся на вашу текущую ветку Допустим, вы работаете в ветке feature-branch:
git checkout feature-branch
🟠Выполняем rebase на `main` Сначала убедимся, что main обновлена:
git checkout main
git pull origin main
Теперь выполняем сам rebase:
git checkout feature-branch
git rebase main
🟠Разрешение конфликтов (если есть) Если у вас есть конфликты, Git остановит процесс и попросит их решить. Откройте файлы с конфликтами, исправьте их. Добавьте исправленные файлы:
   git add <файл>
   
Продолжите rebase:
   git rebase --continue
   
🟠Обновление удалённого репозитория Если rebase прошёл успешно, вам нужно форсированно обновить удалённую ветку (так как история изменилась):
git push origin feature-branch --force
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что делаем после этапа тестирования сборки? 1. Публикация артефактов: Загружаем успешно протестированные образы в репозиторий Docker (например, Docker Hub). 2. Деплой: Разворачиваем приложение в тестовой, staging или production среде. 3. Мониторинг: Настраиваем мониторинг и сбор метрик для развернутых компонентов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как и где посмотреть логи какого-нибудь сервиса? Обычно хранятся в каталоге /var/log. Также многие современные дистрибутивы используют систему журналирования systemd для управления и просмотра логов. 🚩Способы просмотра 🟠Просмотр логов в /var/log Каталог /var/log содержит логи большинства системных сервисов и приложений. Логи системных сообщений /var/log/syslog: Содержит общие системные логи. /var/log/messages: Содержит общие системные сообщения (не во всех дистрибутивах).
cat /var/log/syslog
less /var/log/syslog
tail -f /var/log/syslog
Логи конкретных сервисов Apache: /var/log/apache2/ или /var/log/httpd/ Логи доступа: /var/log/apache2/access.log или /var/log/httpd/access_log Логи ошибок: /var/log/apache2/error.log или /var/log/httpd/error_log
tail -f /var/log/apache2/access.log
tail -f /var/log/apache2/error.log  
Nginx: /var/log/nginx/ Логи доступа: /var/log/nginx/access.log Логи ошибок: /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log 
MySQL: /var/log/mysql/ или /var/log/mysqld.log
tail -f /var/log/mysql/error.log 
SSH: /var/log/auth.log или /var/log/secure
tail -f /var/log/auth.log 
🟠Использование `journalctl` для системных логов journalctl — это утилита для просмотра и управления журналами systemd. Она позволяет фильтровать логи по различным критериям, таким как время, сервис и уровень логирования. Основные команды journalctl Просмотр всех журналов
journalctl  
Логов конкретного сервиса
journalctl -u nginx.service  
Последних логов и продолжение просмотра в реальном времени
journalctl -f
journalctl -u nginx.service -f
Логов за определённый период
journalctl --since "2024-07-25 12:00:00" --until "2024-07-25 13:00:00" 
Логов с определённым уровнем логирования
journalctl -p err
journalctl -p warning  
🚩Примеры использования 🟠Просмотр логов Apache Логи доступа
tail -f /var/log/apache2/access.log  
Логи ошибок
tail -f /var/log/apache2/error.log 
🟠Просмотр логов Nginx Логи доступа
tail -f /var/log/nginx/access.log
Логи ошибок
tail -f /var/log/nginx/error.log  
🟠Использование `journalctl` для просмотра логов Nginx Все логи Nginx
journalctl -u nginx.service  
Последние логи Nginx в реальном времени
journalctl -u nginx.service -f  
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как на этапе сборки образа передать в контейнер внешнее значение, например, Build ID, сгенерированную CI, чтобы оно там стало env? Используйте аргументы сборки (--build-arg): 1. Укажите переменную через ARG в Dockerfile. 2. Передайте значение аргумента с помощью флага --build-arg при сборке. Это значение можно сохранить как переменную окружения внутри контейнера. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как установить msodbcsql на астре? Установка Microsoft ODBC Driver for SQL Server (msodbcsql) на Astra Linux требует выполнения нескольких шагов, включая настройку репозиториев, установку необходимых пакетов и принятие лицензионного соглашения. 🟠Подготовка системы Перед началом убедитесь, что ваша система обновлена и имеет необходимые инструменты для установки:
sudo apt update
sudo apt install -y curl apt-transport-https
🟠Добавление репозитория Microsoft Microsoft предоставляет собственные репозитории для своих пакетов. Поскольку Astra Linux основана на Debian, мы будем использовать соответствующий репозиторий:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/debian/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
🟠Установка msodbcsql После добавления репозитория обновите список пакетов и установите драйвер:
sudo apt update
sudo ACCEPT_EULA=Y apt install -y msodbcsql18
🟠Установка дополнительных инструментов (опционально) Если вам нужны инструменты командной строки, такие как sqlcmd и bcp, установите пакет mssql-tools:
sudo ACCEPT_EULA=Y apt install -y mssql-tools18
Чтобы эти инструменты были доступны из любого места в терминале, добавьте их в переменную PATH
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
🟠Проверка установки Убедитесь, что драйвер установлен корректно, выполнив команду:
odbcinst -q -d -n "ODBC Driver 18 for SQL Server"
Ставь 👍 и забирай 📚 Базу знаний

🤔 Для чего директории право на исполнение? Право на исполнение для директории разрешает пользователю заходить в неё и просматривать содержимое. Без него доступ к файлам в директории может быть ограничен, даже если к самим файлам есть права чтения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как задать права на всё? В Linux права доступа к файлам и папкам регулируются с помощью команд chmod и chown. 🟠Назначение всех прав (777) Если вам нужно дать полный доступ ко всем файлам и папкам, используйте
chmod -R 777 /путь/к/папке
-R (recursive) — применяет права ко всем вложенным файлам и каталогам. 777 означает: 7 (чтение, запись, выполнение) для владельца 7 (чтение, запись, выполнение) для группы 7 (чтение, запись, выполнение) для всех остальных 🟠Передача владения (если нет прав) Если текущий пользователь не владеет файлами, назначьте нового владельца
chown -R username:group /путь/к/папке
username — новый владелец group — новая группа 🟠Лучший вариант — более безопасные права Вместо 777 лучше дать только нужные права: Для исполняемых файлов: chmod 755 Для конфигураций и данных: chmod 644 Для приватных ключей и чувствительных файлов: chmod 600 Ставь 👍 и забирай 📚 Базу знаний

🤔 Где хранится название файла? Название файла хранится в записи каталога, который указывает на соответствующий inode, содержащий метаданные файла. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 На каких принципах работает докер? Это платформа для автоматизации развертывания, масштабирования и управления приложениями в контейнерах. Контейнеры позволяют изолировать приложения и их зависимости, обеспечивая легкую переносимость и консистентность окружения. Основные принципы работы Docker включают в себя контейнеризацию, использование образов, контейнеров, оркестрацию и сетевую инфраструктуру. 🚩Основные принципы 🟠Контейнеризация Контейнеризация позволяет запускать приложения и их зависимости в изолированных окружениях. Контейнеры предоставляют легкие и эффективные среды, которые включают все необходимое для запуска приложений. Контейнеры: Легковесные, изолированные окружения, которые работают поверх ядра хостовой операционной системы. Namespace: Механизм ядра Linux, обеспечивающий изоляцию процессов, сети, PID, пользовательских идентификаторов и монтирования файловых систем. Cgroups: Контрольные группы в Linux, которые ограничивают и отслеживают использование ресурсов контейнерами, включая процессорное время, память и I/O. 🟠Использование образов Образы Docker являются шаблонами для создания контейнеров. Образ включает в себя все необходимые компоненты, такие как код приложения, библиотеки, зависимости и конфигурационные файлы. Dockerfile: Скрипт, содержащий инструкции по созданию образа. Используется для автоматизации создания образов. Слойность: Каждый образ состоит из нескольких слоев, которые кэшируются и могут использоваться повторно, что ускоряет процесс сборки и уменьшает использование ресурсов. 🟠Изоляция и безопасность Docker обеспечивает изоляцию приложений, что позволяет запускать несколько контейнеров на одном хосте без взаимного влияния. Изоляция процессов: Каждый контейнер имеет свой собственный процессорный контекст, что исключает конфликты между приложениями. Изоляция файловой системы: Контейнеры имеют свои собственные файловые системы, изолированные от файловой системы хостовой операционной системы. Безопасность: Docker использует механизмы, такие как AppArmor, SELinux и seccomp, для обеспечения безопасности контейнеров. 🟠Управление сетями Docker предоставляет гибкие возможности управления сетями для контейнеров, включая создание изолированных сетей и подключение контейнеров к различным сетям. Bridge Network: Создает изолированную сеть для контейнеров на одном хосте. Host Network: Контейнер использует сетевые интерфейсы хостовой операционной системы. Overlay Network: Позволяет контейнерам на разных хостах взаимодействовать друг с другом. Macvlan Network: Контейнеры получают собственные MAC-адреса и ведут себя как физические устройства в сети. 🟠Хранение данных Docker поддерживает различные механизмы хранения данных для обеспечения сохранности и доступности данных контейнеров. Volumes: Независимые от контейнеров хранилища данных, которые могут быть подключены к одному или нескольким контейнерам. Bind Mounts: Позволяют монтировать директории хостовой файловой системы в контейнеры. Tmpfs: Использует память хоста для хранения данных контейнера, что полезно для временных данных. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое umask? Это маска прав доступа, определяющая, какие права будут убраны при создании новых файлов и директорий. Например, umask 022 удаляет права записи для группы и других пользователей. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний