и посмотреть медиа
DevOps - preguntas de entrevista
и посмотреть медиа
Entrevistas con DevOps.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
Preguntas de entrevista en DevOps.
🤔 Что такое нормализация баз данных? Нормализация баз данных - это процесс организации данных в базе данных для минимизации избыточности данных и обеспечения их целостности. Цель нормализации - структурировать таблицы таким образом, чтобы устранить аномалии обновления, вставки и удаления данных. Нормализация достигается путем разбиения больших таблиц на более мелкие, связанных между собой отношениями, что упрощает управление данными и делает их более логически связанными. 🚩Зачем нужна нормализация 🟠Устранение избыточности данных Нормализация позволяет минимизировать дублирование данных, что экономит пространство и упрощает управление базой данных. 🟠Обеспечение целостности данных Нормализация помогает поддерживать целостность данных, обеспечивая правильное и единообразное хранение данных. 🟠Упрощение структуры базы данных Разделение данных на логические таблицы делает структуру базы данных более понятной и удобной для использования. 🟠Избежание аномалий данных Нормализация предотвращает возникновение аномалий при обновлении, вставке и удалении данных. 🚩Основные формы нормализации 🟠Первая нормальная форма (1NF) Удаление повторяющихся групп в таблице. Каждый столбец должен содержать только атомарные (неделимые) значения. Все записи в таблице должны быть уникальными. 🟠Вторая нормальная форма (2NF) Таблица должна быть в 1NF. Удаление частичной функциональной зависимости: каждый неключевой атрибут должен быть полностью зависим от первичного ключа. 🟠Третья нормальная форма (3NF) Таблица должна быть в 2NF. Удаление транзитивной зависимости: все неключевые атрибуты должны быть напрямую зависимы от первичного ключа, а не от других неключевых атрибутов. 🟠Бойс-Кодд нормальная форма (BCNF) Усиление 3NF: каждая детерминанта должна быть кандидатом на ключ, что означает, что в любой нетривиальной функциональной зависимости X -> Y, X должно быть суперключом. 🟠Четвертая нормальная форма (4NF) Таблица должна быть в BCNF. Устранение многозначных зависимостей: таблица не должна содержать многозначных зависимостей, когда один атрибут зависит от нескольких значений другого атрибута. 🟠Пятая нормальная форма (5NF) Таблица должна быть в 4NF. Устранение соединительных зависимостей: данные должны быть разбиты так, чтобы каждая зависимость сохранялась. 🚩Примеры применения нормализации 🟠Первая нормальная форма Если у вас есть таблица с повторяющимися группами, такими как несколько телефонных номеров для одного клиента, вы создаете отдельную таблицу для телефонов и связываете ее с таблицей клиентов. 🟠Вторая нормальная форма Если у вас есть таблица заказов с колонками "номер заказа", "название товара" и "цена товара", вы можете создать отдельные таблицы для заказов и товаров, чтобы цена товара зависела только от товара, а не от комбинации заказа и товара. 🟠Третья нормальная форма Если у вас есть таблица сотрудников с колонками "идентификатор сотрудника", "название отдела" и "имя начальника отдела", вы можете создать отдельные таблицы для сотрудников и отделов, чтобы имя начальника отдела зависело только от отдела, а не от сотрудника. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какие экзекьютеры использовали для GitLab CI? Наиболее часто используемые: - Docker Executor — для контейнеризированного выполнения - Shell Executor — выполняет скрипты прямо в системе - SSH Executor — запускает команды по SSH на удалённой машине - Kubernetes Executor — для масштабируемого CI/CD в кластере Docker — самый популярный благодаря изоляции и простоте настройки. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 В каких случаях используется multi stage? Multi-stage (многоэтапная сборка) — это метод создания Docker-образов, позволяющий уменьшить их размер и повысить безопасность. 🚩Когда используется? 🟠Оптимизация размера образа удаляем ненужные зависимости из финального образа. 🟠Безопасность не включаем инструменты сборки в рабочий контейнер. 🟠Скорость деплоя меньший образ быстрее скачивается и запускается. 🟠Кросс-компиляция собираем приложение в одном окружении, а запускаем в другом. 🚩Пример использования Multi-stage в Docker Допустим, у нас есть приложение на Go. Мы сначала компилируем его в одном контейнере, а затем создаем минимальный образ для запуска. # Этап 1: сборка FROM golang:1.20 AS builder WORKDIR /app COPY . . RUN go build -o myapp # Этап 2: минимальный образ для запуска FROM alpine:latest WORKDIR /root/ COPY --from=builder /app/myapp . CMD ["./myapp"] 🚩Использование в React / Angular / Vue При сборке фронтенда мы можем сначала установить зависимости и собрать проект, а затем развернуть его на nginx. # Этап 1: сборка приложения FROM node:18 AS builder WORKDIR /app COPY package.json ./ RUN npm install COPY . . RUN npm run build # Этап 2: деплой на nginx FROM nginx:alpine COPY --from=builder /app/dist /usr/share/nginx/html CMD ["nginx", "-g", "daemon off;"] Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что такое сквош (squash)? Squash — это процесс объединения нескольких коммитов в один перед слиянием ветки. Применяется для: - очистки истории; - упрощения отката; - группировки связанных изменений; - подготовки "чистого" pull request'а. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что сделать если зависает ssh? Если SSH завис, не стоит сразу закрывать терминал. Есть несколько причин и решений. 🚩Проверить, можно ли выйти без разрыва сессии Если SSH завис, но сессия не разорвана, попробуйте выйти без закрытия терминала: ~. Переключение в режим управления SSH ~Ctrl+Z 🚩Проверить соединение с сервером Если SSH завис, причина может быть в разрыве соединения. Проверьте: Работает ли пинг до сервера: ping server_ip 🔹 Открыт ли SSH-порт (22): nc -zv server_ip 22 🚩Перезапустить SSH-клиент Если только один SSH-клиент завис, попробуйте: pkill -9 ssh или killall -9 ssh Затем переподключитесь ssh user@server_ip 🚩Проверить SSH-сервер Если сервер доступен, но SSH зависает, войдите через консоль или другой метод (например, VNC, IPMI). Если SSH не отвечает, перезапустите его: sudo systemctl restart ssh или service ssh restart 🚩Отключить TCP KeepAlive или изменить таймауты Иногда SSH зависает из-за разрыва соединения на роутере или файрволе. Добавьте в ~/.ssh/config на клиенте Host * ServerAliveInterval 60 ServerAliveCountMax 5 Или в /etc/ssh/sshd_config на сервере ClientAliveInterval 60 ClientAliveCountMax 5 Затем перезапустите SSH sudo systemctl restart ssh 🚩Убить зависшую SSH-сессию на сервере Если осталось зависшее подключение, найдите его и завершите: who # Показывает активные пользователи ps aux | grep ssh # Показывает процессы SSH pkill -9 -u username # Завершает все сессии пользователя Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 На каком уровне работает ICMP? ICMP работает на сетевом уровне (уровень 3 по модели OSI). Он используется для сервисных сообщений, таких как: - "Хост недоступен" - "Время вышло" - "Сетевой недоступен" Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как сделать 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 Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что такое OpsWorks? AWS OpsWorks — это сервис управления конфигурациями, который: - Поддерживает Chef и Puppet. - Используется для автоматизации серверной инфраструктуры. - Позволяет управлять слоями, версиями, скриптами и зависимостями. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какие виды метрик в Prometheus знаешь? В Prometheus есть 4 типа метрик, которые используются для мониторинга и сбора данных. 🚩Counter (Счетчик) – только увеличивается Используется для подсчета событий, ошибок, запросов Значение только увеличивается (нельзя уменьшить) promql http_requests_total Как вывести количество запросов за последние 5 минут promql rate(http_requests_total[5m]) Пример экспозиции в приложении go httpRequests := prometheus.NewCounter( prometheus.CounterOpts{ Name: "http_requests_total", Help: "Total number of HTTP requests", }) 🚩Gauge (Измеритель) – может расти и уменьшаться Используется для измерения текущего состояния (температура, RAM, CPU) Значение может расти и уменьшаться promql node_memory_usage_bytes Как вывести среднюю загрузку CPU за 5 минут promql avg(node_cpu_seconds_total) Пример экспозиции в коде go cpuUsage := prometheus.NewGauge( prometheus.GaugeOpts{ Name: "cpu_usage_percentage", Help: "Current CPU usage", }) 🚩Histogram (Гистограмма) – распределение значений Используется для измерения длительности, размера запросов Делит данные по диапазонам (buckets) promql http_request_duration_seconds_bucket Как вычислить среднее время отклика promql histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m])) Пример в коде go requestDuration := prometheus.NewHistogram( prometheus.HistogramOpts{ Name: "http_request_duration_seconds", Help: "Histogram of response time for HTTP requests", Buckets: prometheus.DefBuckets, }) 🚩Summary (Сводка) – квантильные метрики Показывает среднее, медиану, квантильное распределение Используется для измерения задержек, времени отклика promql http_request_duration_seconds{quantile="0.99"} Пример в коде: go requestSummary := prometheus.NewSummary( prometheus.SummaryOpts{ Name: "http_request_duration_seconds", Help: "Summary of response time for HTTP requests", Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }) Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!