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

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

Открыть в Telegram
5 497
Подписчики
-724 часа
-127 дней
-1630 день
Архив постов
Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специал
+9
Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно! Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита. Для этого нужно: - Перейти по ссылке - Заполнить анкету и ответить на вопросы (занимает менее 3 минут) - На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

📌 Как работает gitlab runner? 💬 Спрашивают в 13% собеседований 🤔 Как работает GitLab Runner GitLab Runner — это приложение с открытым исход кодом, используемое для выполнения задач CI/CD в проектах GitLab. Оно отвечает за выполнение заданий (jobs), определенных в файле .gitlab-ci.yml, и за передачу результатов обратно в GitLab. 🤔 Основные компоненты и архитектура 1️⃣ GitLab: Центральный сервер, где хранятся репозитории, настройки проектов и пайплайны CI/CD. 2️⃣ GitLab Runner: Агент, который устанавливается на отдельный сервер или виртуальную машину и выполняет задачи CI/CD. 3️⃣ Executor: Способ выполнения заданий Runner-ом, такие как Docker, Shell, VirtualBox, Kubernetes и другие. 🤔 Установка и настройка GitLab Runner 🤔 Установка Установка GitLab Runner зависит от операционной системы. Пример для Ubuntu:
 GitLab Runner
curl -L --output /usr/share/keyrings/gitlab-runner-archive-keyring.gpg https://packages.gitlab.com/runner/gitlab-runner/gpgkey
echo "deb [signed-by=/usr/share/keyrings/gitlab-runner-archive-keyring.gpg] https://packages.gitlab.com/runner/gitlab-runner/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab-runner.list
Runner
sudo apt-get update
sudo apt-get install gitlab-runner
🤔 Регистрация После установки GitLab Runner нужно зарегистрировать его в GitLab для связи с проектом:
sudo gitlab-runner register
Во время регистрации нужно указать: - URL GitLab сервера. - Токен регистрации (доступен в настройках GitLab проекта). - Описание и метки Runner-а. - Тип Executor-а (например, Shell, Docker). 🤔 Пример регистрации
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab.com/
Please enter the gitlab-ci token for this runner:
<TOKEN>
Please enter the gitlab-ci description for this runner:
[hostname] my-runner
Please enter the gitlab-ci tags for this runner (comma separated):
docker,aws
Please enter the executor: shell, docker, docker-ssh, ssh, docker+machine, kubernetes, custom:
docker
🤔 Конфигурация файла .gitlab-ci.yml Файл .gitlab-ci.yml определяет этапы (stages) и задания (jobs) пайплайна CI/CD. Пример простого файла:
stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Building the project..."
    - ./build.sh
test_job:
  stage: test
  script:
    - echo "Running tests..."
    - ./test.sh
deploy_job:
  stage: deploy
  script:
    - echo "Deploying the project..."
    - ./deploy.sh
🤔 Как работает GitLab Runner 1️⃣ Запуск задания: Когда код попадает в репозиторий (например, при пуше или создании мержа), GitLab инициирует запуск пайплайна, используя задания, определенные в .gitlab-ci.yml. 2️⃣ Получение задания: Зарегистрированный Runner получает задание от GitLab сервера. Runner выбирается на основе меток и доступности. 3️⃣ Выполнение задания: Runner выполняет шаги, указанные в скрипте задания (script). Это может включать сборку, тестирование, деплой и другие задачи. 4️⃣ Отправка результатов: После выполнения задания Runner отправляет результаты обратно в GitLab сервер. Это включает в себя выходные данные, статусы выполнения и артефакты. 🤔 Типы Executor-ов - Shell: Выполнение команд в оболочке (например, Bash). - Docker: Выполнение команд в Docker-контейнере. - Docker+machine: Автоматическое создание Docker-окружений с использованием Docker Machine. - Kubernetes: Выполнение заданий в подах Kubernetes. 🤔 Пример использования Docker Executor В файле .gitlab-ci.yml можно указать Docker Executor для выполнения заданий в контейнерах:
build_job:
  stage: build
  image: docker:latest
  services:
    - docker:dind
  script:
    - docker build -t myapp:latest .
    - docker push myregistry/myapp:latest
🤔 Краткое резюме GitLab Runner — это агент для выполнения CI/CD заданий, который устанавливается на отдельный сервер или VM. Он регистрируется в GitLab и получает задания для выполнения, используя различные executors (Shell, Docker, Kubernetes и т.д.). 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

💪 Качественный контент ИТ-сообщества с 14-летним стажем: ⌨️ ITKB_channel — бесплатное обучение по Windows, Linux, DevOps, Security, Network, программирование 📚 ITKB_Archive — библиотека (книги, курсы, ИТ литература)

🤔 Что такое Immutable Infrastructure?
Anonymous voting

📌 Что за сущность такая оператор зачем нужна? 💬 Спрашивают в 13% собеседований 🤔 Оператор в Kubernetes: Что это и зачем он нужен Оператор в Kubernetes — это концепция и методика, которая позволяет автоматизировать управление состоянием сложных приложений и ресурсов. Операторы облегчают управление состоянием приложений. 🤔 Основные компоненты оператора 1️⃣ Custom Resource Definitions (CRD): - CRD расширяют стандартные объекты Kubernetes, добавляя новые типы ресурсов. Эти ресурсы специфичны для приложений или сервисов, которыми управляет оператор. 2️⃣ Контроллер: - Контроллер — это программа, которая следит за состоянием ресурсов, определенных CRD, и выполняет действия для достижения желаемого состояния. Контроллеры пишутся на Go с использованием фреймворка Operator SDK. 🤔 Зачем нужны операторы 1️⃣ Автоматизация сложных задач: - Операторы автоматизируют рутинные задачи, такие как развертывание, обновление, резервное копирование и восстановление приложений, которые требуют знаний и вмешательства администратора. 2️⃣ Управление состоянием приложений: - Операторы следят за состоянием приложения и автоматически предпринимают действия для поддержания или восстановления этого состояния, обеспечивая высокую доступность и отказоустойчивость. 3️⃣ Интеграция с Kubernetes: - Операторы используют встроенные механизмы Kubernetes, такие как CRD и контроллеры, что позволяет легко интегрировать их в существующие кластеры Kubernetes и управлять приложениями в привычной среде. 🤔 Примеры использования операторов 1️⃣ Базы данных: - Оператор для PostgreSQL может автоматизировать задачи развертывания кластеров, настройки репликации, выполнения резервного копирования и восстановления. 2️⃣ Мониторинг и логирование: - Оператор для Prometheus может управлять развертыванием и настройкой экземпляров Prometheus, включая настройку сбора метрик и алертинга. 3️⃣ CI/CD: - Оператор для Jenkins может автоматизировать настройку мастера Jenkins и агентов, а также управлять плагинами и настройками. 🤔 Пример: Создание и использование оператора 🤔 Шаг 1: Определение CRD Пример CRD для PostgreSQL кластера:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: postgresqls.postgres.example.com
spec:
  group: postgres.example.com
  versions:
    - name: v1
      served: true
      storage: true
  scope: Namespaced
  names:
    plural: postgresqls
    singular: postgresql
    kind: PostgreSQL
    shortNames:
      - pg
🤔 Шаг 2: Разработка контроллера Пример логики контроллера на Go может включать:
func (r *ReconcilePostgreSQL) Reconcile(request reconcile.Request) (reconcile.Result, error) {
    instance := &v1alpha1.PostgreSQL{}
    err := r.client.Get(context.TODO(), request.NamespacedName, instance)
    if err != nil {
        return reconcile.Result{}, err
    }
   return reconcile.Result{}, nil
}
🤔 Шаг 3: Развертывание оператора Оператор разворачивается в кластере Kubernetes как набор подов и ресурсов, которые выполняют описанные задачи. Это может включать использование фреймворка Operator SDK для упрощения разработки и развертывания оператора.
operator-sdk init --domain example.com --repo github.com/example/postgresql-operator
operator-sdk create api --group postgres --version v1 --kind PostgreSQL --resource --controller
make install
make run
🤔 Краткое резюме Операторы в Kubernetes автоматизируют управление сложными приложениями и ресурсами, используя CRD для расширения стандартных объектов Kubernetes и контроллеры для управления состоянием этих объектов. Они упрощают развертывание, обновление и управление приложениями, обеспечивая высокую доступность и отказоустойчивость. Операторы широко применяются для управления базами данных, системами мониторинга, CI/CD и многими другими сервисами. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

Митап про карьерный рост в Linux Эксперты из Orion soft, K2 Cloud и K2 Tech расскажут о ключевых шагах Linux-инженера на пути
Митап про карьерный рост в Linux Эксперты из Orion soft, K2 Cloud и K2 Tech расскажут о ключевых шагах Linux-инженера на пути к большому ИТ. В программе: какие навыки в Linux стоит качать, чего ждать на техническом интервью и как найти своё место в мире инфры. Полезная информация для всех, кто стремится развиваться в DevOps и не только. Встречаемся онлайн 7 октября, в 19:00 (мск). Подробности и регистрация по ссылке.

🤔 Что такое Terraform?
Anonymous voting

📌 Какой опыт работы с постгрес? 💬 Спрашивают в 13% собеседований 🤔 Опыт работы с PostgreSQL 🤔 Общий опыт PostgreSQL — это мощная реляционная база данных с открытым исходным кодом, известная своей расширяемостью и соответствием стандартам SQL. У меня есть значительный опыт работы с PostgreSQL, охватывающий различные аспекты разработки, администрирования и оптимизации баз данных. 🤔 Проектирование и создание схем - Опыт: Проектирование баз данных с учетом требований приложения, нормализация данных, создание таблиц, индексов и ограничений. - Пример: Создание схемы базы данных для системы управления заказами с таблицами для пользователей, продуктов, заказов и платежей.
-- Создание таблицы пользователей
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Создание таблицы продуктов
CREATE TABLE products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price DECIMAL(10, 2) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
🤔 Оптимизация запросов - Опыт: Анализ и оптимизация SQL-запросов для повышения производительности, использование индексов, планов выполнения запросов (EXPLAIN), материализованных представлений. - Пример: Оптимизация запросов для отчетов, использующих большие объемы данных, путем добавления индексов и переписывания запросов для более эффективного выполнения.
-- Пример индексации
CREATE INDEX idx_users_email ON users(email);

-- Пример использования EXPLAIN для анализа запроса
EXPLAIN SELECT * FROM users WHERE email = 'example@example.com';
🤔 Администрирование баз данных - Опыт: Настройка и управление PostgreSQL-серверами, создание резервных копий и восстановление, настройка репликации и высокодоступных конфигураций. - Пример: Настройка потоковой репликации для обеспечения отказоустойчивости и высокой доступности.
# Создание резервной копии базы данных
pg_dump -U username -h localhost -F c mydatabase > mydatabase.backup

# Восстановление базы данных из резервной копии
pg_restore -U username -h localhost -d mydatabase mydatabase.backup
🤔 Написание хранимых процедур и функций - Опыт: Создание хранимых процедур и функций с использованием PL/pgSQL для автоматизации сложных бизнес-логик на стороне базы данных. - Пример: Написание функции для расчета общей стоимости заказов для пользователя.
-- Пример хранимой функции
CREATE OR REPLACE FUNCTION get_total_spent(user_id INT) RETURNS DECIMAL AS $$
DECLARE
    total DECIMAL;
BEGIN
    SELECT SUM(price) INTO total
    FROM orders
    WHERE user_id = get_total_spent.user_id;
    RETURN total;
END;
$$ LANGUAGE plpgsql;
🤔 Работа с расширениями - Опыт: Использование расширений для расширения функциональности PostgreSQL, таких как PostGIS для геопространственных данных или pg_trgm для быстрого поиска текста. - Пример: Установка и использование расширения PostGIS для работы с геопространственными данными.
-- Установка расширения PostGIS
CREATE EXTENSION postgis;

-- Пример использования PostGIS
SELECT ST_AsText(ST_MakePoint(-71.064544, 42.28787));
🤔 Инструменты и среды - Опыт: Использование различных инструментов для работы с PostgreSQL, включая pgAdmin, psql, DBeaver и другие инструменты для мониторинга и администрирования. - Пример: Использование pgAdmin для управления базой данных и выполнения запросов, а также настройки пользователей и ролей. 🤔 Краткое резюме Мой опыт работы с PostgreSQL включает проектирование и создание схем баз данных, оптимизацию запросов, администрирование серверов, написание хранимых процедур и функций, использование расширений и работу с различными инструментами. Этот опыт позволяет эффективно использовать PostgreSQL для создания, управления и оптимизации производительных и надежных баз данных. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Что такое Prometheus?
Anonymous voting

📌 Чем отличается git push от git pull и зачем используется каждая? 💬 Спрашивают в 13% собеседований 🤔 Git Push и Git Pull: Отличия и использование Git — это распределенная система управления версиями, которая позволяет разработчикам отслеживать изменения в коде и работать совместно над проектами. Две ключевые команды в Git, которые часто используются в ежедневной работе — это git push и git pull. Каждая из этих команд имеет свою цель и применяется в разных сценариях. 🤔 Git Push `git push` — это команда, которая используется для отправки локальных изменений на удаленный репозиторий. 🤔 Основные аспекты: 1️⃣ Отправка изменений: - git push отправляет коммиты из локального репозитория на удаленный репозиторий. - Обычно используется для публикации локальных изменений и совместной работы с другими разработчиками. 2️⃣ Синхронизация веток: - git push обновляет соответствующую ветку на удаленном репозитории, делая ваши изменения доступными для других. 🤔 Пример использования:
# Отправка изменений на удаленный репозиторий
git push origin main
В этом примере команда отправляет коммиты из локальной ветки main на удаленную ветку main репозитория с именем origin. 🤔 Git Pull `git pull` — это команда, которая используется для получения и слияния изменений из удаленного репозитория в локальный репозиторий. 🤔 Основные аспекты: 1️⃣ Получение изменений: - git pull загружает изменения из удаленного репозитория в локальный. - Команда объединяет команды git fetch (для получения изменений) и git merge (для слияния изменений). 2️⃣ Синхронизация локальной ветки: - git pull обновляет локальную ветку последними изменениями из удаленного репозитория, гарантируя, что ваш локальный репозиторий синхронизирован с удаленным. 🤔 Пример использования:
# Получение и слияние изменений из удаленного репозитория
git pull origin main
В этом примере команда получает изменения из удаленной ветки main репозитория с именем origin и сливает их с локальной веткой main. 🤔 Основные отличия 1️⃣ Направление данных: - git push: Отправляет изменения с локального репозитория в удаленный репозиторий. - git pull: Получает изменения из удаленного репозитория в локальный репозиторий. 2️⃣ Цель: - git push: Публикация локальных изменений для совместной работы. - git pull: Получение и слияние последних изменений для синхронизации с удаленным репозиторием. 3️⃣ Процесс: - git push: Простой процесс отправки коммитов. - git pull: Комбинирует получение и слияние изменений, что может вызывать конфликты, которые необходимо разрешать вручную. 🤔 Когда использовать каждую команду - `git push` используется, когда вы хотите отправить свои изменения на удаленный сервер, чтобы другие разработчики могли видеть и работать с ними. Это важно для совместной работы над проектом. - `git pull` используется, когда вы хотите синхронизировать свою локальную копию репозитория с последними изменениями из удаленного репозитория. Это помогает убедиться, что ваш локальный репозиторий содержит актуальные данные, особенно перед началом новой работы или перед слиянием своих изменений. 🤔 Краткое резюме - `git push`: Команда для отправки локальных изменений в удаленный репозиторий. Используется для публикации изменений. - `git pull`: Команда для получения и слияния изменений из удаленного репозитория в локальный. Используется для синхронизации с удаленным репозиторием. Обе команды являются неотъемлемой частью работы с Git, обеспечивая эффективное управление и синхронизацию изменений в проектах. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Что такое CI/CD?
Anonymous voting

📌 Что такое init контейнер? 💬 Спрашивают в 13% собеседований 🤔 Что такое Init-контейнер Init-контейнер — это особый тип контейнера в Kubernetes, который запускается и выполняется перед основными (основными) контейнерами в поде (Pod). Init-контейнеры предназначены для выполнения задач начальной настройки или подготовки среды перед запуском основных контейнеров. 🤔 Основные особенности Init-контейнеров 1️⃣ Запуск перед основными контейнерами: - Init-контейнеры запускаются последовательно, один за другим. - Основные контейнеры не запускаются, пока все Init-контейнеры не завершат свою работу успешно. 2️⃣ Изоляция и безопасность: - Init-контейнеры имеют свою собственную файловую систему, независимую от основных контейнеров. - Могут использоваться для выполнения задач, требующих повышенных привилегий, минимизируя риск для основных контейнеров. 3️⃣ Повторные запуски: - Init-контейнеры будут перезапускаться до тех пор, пока не завершатся успешно, или до тех пор, пока не выйдет время ожидания. 4️⃣ Подготовка среды: - Выполнение задач инициализации, таких как настройка конфигураций, загрузка данных, проверка условий перед запуском приложения. 🤔 Примеры использования Init-контейнеров 1️⃣ Проверка наличия зависимости: - Перед запуском основного приложения Init-контейнер может проверить наличие необходимых зависимостей или служб. 2️⃣ Загрузка конфигураций: - Init-контейнер может загружать конфигурационные файлы или секреты из внешних источников. 3️⃣ Выполнение миграций базы данных: - Перед запуском основного приложения Init-контейнер может выполнить миграции базы данных. 🤔 Пример манифеста Pod с Init-контейнером Пример Pod, который использует Init-контейнер для выполнения миграций базы данных перед запуском основного приложения:
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  initContainers:
  - name: init-migrate
    image: busybox
    command: ['sh', '-c', 'echo "Running database migrations"; sleep 5;']
  containers:
  - name: myapp-container
    image: myapp:latest
    ports:
    - containerPort: 80
В этом примере: - Init-контейнер init-migrate запускается первым и выполняет команду, которая симулирует выполнение миграций базы данных. - После успешного завершения Init-контейнера запускается основной контейнер myapp-container. 🤔 Преимущества использования Init-контейнеров 1️⃣ Разделение обязанностей: - Разделение задач инициализации и основной логики приложения помогает упростить разработку и поддержку. 2️⃣ Повторное использование: - Init-контейнеры можно повторно использовать в разных Pod-ах, если они выполняют общие задачи подготовки. 3️⃣ Обеспечение готовности среды: - Init-контейнеры могут гарантировать, что все необходимые условия выполнены до запуска основного приложения. 🤔 Краткое резюме Init-контейнеры в Kubernetes — это контейнеры, которые запускаются до основных контейнеров в поде для выполнения задач инициализации и подготовки среды. Они обеспечивают изоляцию, могут перезапускаться до успешного завершения и полезны для выполнения задач, таких как проверка зависимостей, загрузка конфигураций и выполнение миграций базы данных. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Что такое Ansible?
Anonymous voting

📌 Как найти запущенный процесс? 💬 Спрашивают в 13% собеседований 🤔 Как найти запущенный процесс В операционных системах на базе 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 в интерактивном режиме. 🤔 Краткое резюме Для поиска запущенных процессов в Unix и Linux используются команды ps, top, htop, pgrep, pidof и lsof. Эти команды позволяют найти процессы по имени, идентификатору, или другим критериям, предоставляя подробную информацию о текущих задачах системы. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Какую функцию выполняет инструмент Jenkins в DevOps?
Anonymous voting

📌 Какой опыт работы с SQL и noSQL базами? 💬 Спрашивают в 13% собеседований 🤔 Опыт работы с SQL и NoSQL базами данных 🤔 SQL базы данных SQL (Structured Query Language) базы данных используют реляционную модель данных и обеспечивают поддержку ACID-транзакций. 1️⃣ PostgreSQL - Опыт: Проектирование схем, оптимизация запросов, хранимые процедуры, индексы, триггеры. - Пример: Разработка сложных запросов, настройка репликации и резервного копирования. - Инструменты: pgAdmin, psql, pg_stat_statements.
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_users_email ON users(email);
2️⃣ MySQL/MariaDB - Опыт: Администрирование, настройка репликации и кластеризации, оптимизация производительности. - Пример: Миграция данных, оптимизация конфигурации сервера. - Инструменты: MySQL Workbench, phpMyAdmin, mysql, mysqldump.
CREATE TABLE products (
    product_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price DECIMAL(10, 2) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
3️⃣ Microsoft SQL Server - Опыт: Проектирование баз данных, управление сервером, T-SQL скрипты, хранимые процедуры. - Пример: Создание отчетов, настройка Always On Availability Groups. - Инструменты: SQL Server Management Studio (SSMS), Visual Studio.
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName NVARCHAR(50),
    LastName NVARCHAR(50),
    BirthDate DATE,
    Position NVARCHAR(100)
);
CREATE PROCEDURE GetEmployeeById
    @EmployeeID INT
AS
BEGIN
    SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END;
🤔 NoSQL базы данных NoSQL (Not Only SQL) базы данных предназначены для работы с нереляционными структурами данных и часто используются для приложений, требующих высокой производительности. 1️⃣ MongoDB - Опыт: Проектирование схем, работа с коллекциями и документами, агрегирующие запросы, индексы. - Пример: Система учета товаров, настройка репликации и шардинга. - Инструменты: MongoDB Compass, mongo shell, Mongoose.
db.products.insertOne({
    name: "Laptop",
    price: 1200,
    category: "Electronics",
    createdAt: new Date()
});
2️⃣ Redis - Опыт: Кэш и хранилище ключ-значение, настройка кластеров, работа с типами данных (строки, списки, множества). - Пример: Кэширование запросов, очереди задач. - Инструменты: redis-cli, Redis Desktop Manager, redis-py.
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('username', 'johndoe')
username = r.get('username')
print(username)
3️⃣ Cassandra - Опыт: Проектирование и оптимизация схем, управление кластерами, CQL (Cassandra Query Language). - Пример: Высоконагруженные системы, настройка репликации. - Инструменты: cqlsh, DataStax DevCenter.
CREATE TABLE users (
    user_id UUID PRIMARY KEY,
    name TEXT,
    email TEXT,
    created_at TIMESTAMP
);
INSERT INTO users (user_id, name, email, created_at)
VALUES (uuid(), 'Alice', 'alice@example.com', toTimestamp(now()));
🤔 Краткое резюме Имею значительный опыт работы с SQL и NoSQL базами данных. SQL базы данных (PostgreSQL, MySQL, SQL Server) использовал для транзакционных приложений и аналитических систем. NoSQL базы данных (MongoDB, Redis, Cassandra) использовал для высоконагруженных систем, кэширования и работы с большими данными. Этот опыт включает проектирование схем, оптимизацию запросов, настройку репликации и кластеризации. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Что такое Kubernetes?
Anonymous voting

📌 Что такое контейнер в ос? 💬 Спрашивают в 13% собеседований 🤔 Что такое контейнер в ОС? Контейнер в операционной системе (ОС) — это метод изоляции процессов, который позволяет запускать приложения и их зависимости в изолированной среде. Контейнеры предоставляют легковесную виртуализацию на уровне операционной системы, что позволяет эффективно использовать ресурсы и быстро развертывать приложения. 🤔 Осноdные особенности контейнеров 1️⃣ Изоляция: - Контейнеры изолируют приложения и их зависимости от остальной системы и других контейнеров. 2️⃣ Легковесность: - Контейнеры делят ядро хостовой операционной системы, что делает их гораздо более легкими по сравнению с виртуальными машинами. 3️⃣ Пакетирование приложений: - Контейнеры включают все необходимые зависимости и библиотеки, что позволяет запускать приложения в любом окружении без необходимости дополнительной настройки. 4️⃣ Портативность: - Контейнеры обеспечивают совместимость на различных платформах и в разных окружениях. 🤔 Основные технологии и инструменты 1️⃣ Docker: - Наиболее популярная платформа для создания, развертывания и управления контейнерами. Docker использует контейнеры для упрощения разработки и развертывания приложений. 2️⃣ LXC (Linux Containers): - Набор инструментов и библиотек для контейнеризации на уровне ОС. LXC предоставляет более низкоуровневый доступ к контейнерам по сравнению с Docker. 3️⃣ Podman: - Альтернатива Docker, которая предоставляет возможность создания и управления контейнерами без необходимости запуска демона. 4️⃣ Kubernetes: - Система оркестрации контейнеров, используемая для автоматического развертывания, масштабирования и управления контейнеризированными приложениями. 🤔 Примеры использования контейнеров 🤔 Docker Docker позволяет создавать контейнеры с использованием Dockerfile. Пример простого Dockerfile:
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y python3
COPY . /app
CMD ["python3", "/app/app.py"]
Создание и запуск контейнера:
docker build -t myapp:latest .
docker run --rm -p 80:80 myapp:latest
🤔 LXC Создание и запуск контейнера с использованием LXC:
lxc-create -n mycontainer -t ubuntu
lxc-start -n mycontainer
lxc-attach -n mycontainer
🤔 Преимущества контейнеров 1️⃣ Быстрое развертывание: - Контейнеры запускаются быстрее, чем виртуальные машины, так как они не требуют загрузки полной операционной системы. 2️⃣ Эффективное использование ресурсов: - Контейнеры более эффективно используют ресурсы хоста, так как они делят одно и то же ядро ОС. 3️⃣ Упрощенное управление зависимостями: - Все зависимости приложения включены в контейнер, что устраняет проблемы с совместимостью и конфликтами. 4️⃣ Портативность: - Контейнеры могут работать в любом окружении, где поддерживается контейнеризация, что делает их идеальными для разработки, тестирования и продакшн-сред. 🤔 Применение контейнеров Контейнеры широко используются в различных сценариях: 1️⃣ Микросервисная архитектура: - Контейнеры позволяют изолировать отдельные компоненты приложения, что упрощает их разработку, развертывание и масштабирование. 2️⃣ DevOps: - Контейнеры облегчают создание CI/CD пайплайнов, автоматизируя процессы тестирования и развертывания. 3️⃣ Тестирование и разработка: - Контейнеры предоставляют консистентное окружение для разработки и тестирования, устраняя проблемы с конфигурацией. 🤔 Краткое резюме Контейнеры — это легковесные виртуализированные среды, которые обеспечивают изоляцию, пакетирование и портативность приложений. Они позволяют эффективно использовать ресурсы, быстро развертывать приложения и упрощать управление зависимостями. Контейнеры широко применяются в микросервисной архитектуре, DevOps, тестировании и разработке, а также в облачных вычислениях. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

Ментор поможет сэкономить время и быстрее зайти в IT https://easyoffer.ru/mentor
Ментор поможет сэкономить время и быстрее зайти в IT https://easyoffer.ru/mentor

🤔 Какую роль выполняет инструмент Docker в DevOps?
Anonymous voting