RAG Pipeline 1/N: Qdrant – векторная база данных для AI

Параметр Значение Bloom L3–L4 (Применение → Анализ) SFIA Уровень 2–3 Dreyfus Advanced Beginner → Competent Артефакт docker-compose.yml + скрипт проверки Проверка curl localhost:6333/healthz → ok, семантический поиск работает TL;DR AI-модель забывает всё после каждой сессии. Векторная база данных решает эту проблему – хранит знания в виде чисел и находит похожее по смыслу, а не по ключевым словам. Проблема: AI без памяти Каждая сессия с LLM начинается с чистого листа: БЕЗ RAG: С RAG: ┌──────────┐ ┌──────────┐ │ LLM │──→ Ollama │ LLM │──→ Ollama │ │ │ + RAG │ └──────────┘ └────┬─────┘ │ │ закрыл закрыл сессию сессию │ │ ▼ ▼ ┌──────────┐ ┌──────────┐ │ LLM │ "Я ничего не │ LLM │ "Да, в прошлый │ │ помню" │ + RAG │ раз мы делали X" └──────────┘ └────┬─────┘ │ ┌────▼─────┐ │ Qdrant │ ← вектора └──────────┘ Вы потратили час, объясняя модели архитектуру проекта. Закрыли терминал. Открыли снова – всё с нуля. ...

7 мая 2026 · 8 минут · 1507 слов · DevOps Way

RAG Pipeline 2/N: Embeddings – как текст превращается в числа

Параметр Значение Bloom L3–L4 (Применение → Анализ) SFIA Уровень 2–3 Dreyfus Advanced Beginner → Competent Артефакт Скрипт сравнения моделей + benchmark Проверка Три модели, одна фраза – сравниваем score TL;DR all-MiniLM и nomic-embed-text плохо различают русский текст: борщ и nginx получают одинаковый score. mxbai-embed-large – единственная приемлемая из трёх протестированных, но требует правильной настройки порога. Проблема: мусор на входе – мусор на выходе В прошлом посте мы запустили Qdrant и сделали семантический поиск. Но использовали случайные вектора (random.uniform). В реальном pipeline вектора создаёт embedding-модель – и от неё зависит всё. ...

14 мая 2026 · 10 минут · 1997 слов · DevOps Way

RAG Pipeline 3/N: Чанки – как резать текст, чтобы модель не получала мусор

Параметр Значение Bloom L3–L4 (Применение → Анализ) SFIA Уровень 2–3 Dreyfus Advanced Beginner → Competent Артефакт Скрипт нарезки markdown + stats Проверка 180+ файлов → 3 010 чанков, 0 ошибок Ollama TL;DR Нарезка текста на фрагменты (chunking) – этап, который влияет на качество RAG не меньше, чем выбор модели. Режем по заголовкам H2/H3, дорезаем с перекрытием 150 символов, чистим мусор. 800 символов – потолок для русского текста при 512-токенном лимите модели. ...

20 мая 2026 · 11 минут · 2294 слова · DevOps Way

RAG Pipeline 4/N: Гибридный поиск – почему одних векторов мало

Параметр Значение Bloom L4 (Анализ) SFIA Уровень 3 Dreyfus Competent Артефакт BM25 encoder + RRF fusion скрипт Проверка Hybrid search находит результаты, которые dense и sparse пропускают по отдельности TL;DR Dense-векторы находят похожее по смыслу, но теряют точные совпадения команд. BM25 находит ключевые слова, но не понимает синонимы. Гибридный поиск запускает оба параллельно и сливает результаты через RRF (Reciprocal Rank Fusion). Веса: dense 0.7, sparse 0.3. Итого ~80ms на запрос. ...

27 мая 2026 · 19 минут · 4036 слов · DevOps Way

Интеграция Hashicorp Vault с FreeIPA: Управление секретами в DevOps

Архитектура интеграции graph TB A[Пользователь] B[Vault Server] C[FreeIPA LDAP] A -->|1. Логин| B B -->|2. Проверка| C C -->|3. OK| B B -->|4. Token| A A -->|5. Секреты| B Процесс аутентификации: Пользователь вводит LDAP учётные данные Vault запрашивает FreeIPA LDAP FreeIPA проверяет учётные данные Vault выдаёт токен доступа Пользователь работает с секретами Серия статей: все части Установка FreeIPA NFS + Autofs интеграция Hashicorp Vault интеграция (эта статья) Требования Компонент Требования FreeIPA Настроен и работает (часть 1) Vault Server Linux, 2GB RAM Клиенты Vault CLI Сеть Доступ к FreeIPA:389 Часть 1: Установка Vault Установка на RHEL/CentOS # Репозиторий HashiCorp dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo # Установка dnf install -y vault # Проверка vault --version Конфигурация Vault mkdir -p /etc/vault.d mkdir -p /opt/vault/data cat > /etc/vault.d/vault.hcl << 'EOF' # Vault конфигурация для интеграции с FreeIPA storage "file" { path = "/opt/vault/data" } listener "tcp" { address = "0.0.0.0:8200" tls_disable = 1 } api_addr = "http://192.168.1.30:8200" ui = true EOF chown -R vault:vault /opt/vault /etc/vault.d chmod 640 /etc/vault.d/vault.hcl Важно: tls_disable = 1 только для лаборатории! В production используйте TLS! ...

15 декабря 2025 · 8 минут · 1610 слов · DevOps Way

Стратегии наблюдаемости и примеры дашбордов

Основные подходы к наблюдаемости Метод USE (Utilization, Saturation, Errors) Метод USE (Утилизация, Насыщенность, Ошибки) предложен Брэнданом Греггом как способ системно проверять “здоровье” ресурсов инфраструктуры (CPU, память, диск, сеть и пр.) (brendangregg.com) Идея проста: для каждого ресурса отслеживай три аспекта: Utilization (утилизация) — сколько времени ресурс занят полезной работой (в процентах). Saturation (насыщенность) — имеются ли очереди задач, ждут ли они доступ к ресурсу. Errors (ошибки) — сколько операций завершилось с ошибкой или сбоем. Этот подход помогает быстро выявлять “узкие места” на уровне оборудования или базовых систем, даже когда ты не знаешь заранее, где может быть проблема. (brendangregg.com) ...

25 сентября 2025 · 5 минут · 894 слова · DevOps Way

Локальный AI-ассистент в терминале: гайд для DevOps-инженера (2026)

В феврале Qwen Code выглядел как бесплатная альтернатива Claude Code. 15 апреля Alibaba закрыла бесплатный доступ. Инструмент устарел за два месяца. Это типичная проблема: привязка к одному вендору = риск. Сегодня бесплатно, завтра – нет. Поэтому перезапускаем тему с другим фокусом: tool-agnostic + model-agnostic. Выбираем CLI отдельно, модель отдельно, и собираем рабочий стек, который не сломается от решений чужого менеджмента. Часть 1: Выбираем CLI Три рабочих варианта на май 2026. Все – open-source, все работают с локальными моделями через Ollama. ...

22 мая 2026 · 11 минут · 2175 слов · DevOps Way

Docker Level 04: .dockerignore -- Образ 2GB, внутри .env с паролями

БОЛЬ Ревью Docker-образа перед деплоем. docker images показывает 2.1GB для простого Node.js-приложения. Запускаете docker run --rm myapp ls -la и видите: node_modules (800MB), .git (400MB), test-data (500MB). И самое страшное – .env с DB_PASSWORD, JWT_SECRET, AWS_SECRET_KEY. Образ уже в Docker Hub. Пароли в открытом доступе. Даже если удалить .env в следующем слое – он останется в истории образа. docker history покажет всё. Исправление: .dockerignore – файл-фильтр, который не пускает лишнее в контекст сборки. ...

18 мая 2026 · 3 минуты · 535 слов · DevOps Way

Docker Level 02: Dockerfile -- Работает у меня, а у коллеги нет

БОЛЬ Джуниор присылает в чат: “У меня всё работает”. Вы клонируете репозиторий, запускаете npm install – ошибка. У него Node 18, у вас Node 22. У него Ubuntu, у вас macOS. У него python3 указывает на 3.10, у вас – на 3.12. “Работает у меня” – это не баг, это отсутствие воспроизводимой среды. Dockerfile решает проблему: он описывает среду декларативно. Кто бы ни собрал образ – результат будет одинаковый. КАК УСТРОЕНО Dockerfile – это текстовый файл с инструкциями для сборки образа. Каждая инструкция создаёт слой (layer) в образе. ...

18 мая 2026 · 3 минуты · 448 слов · DevOps Way

Docker Level 01: docker run -- Зачем вообще контейнеры?

БОЛЬ Пятница, 18:47. Вы обновляете Python на сервере, где крутятся 5 микросервисов. apt upgrade python3 – и бот в Telegram падает, потому что ему нужен Python 3.10, а вы только что поставили 3.12. Заодно сломался Flask-сервис, который зависел от libssl1.1, а теперь стоит libssl3. Знакомо? Это классика: конфликт зависимостей на общем хосте. Один apt update может положить всё, потому что 5 сервисов делят одну файловую систему, одни библиотеки, один Python. ...

18 мая 2026 · 3 минуты · 477 слов · DevOps Way

MLOps Roadmap: 838 вакансий против 90 тем roadmap.sh

Проблема: 90 тем и ноль приоритетов Откройте roadmap.sh/mlops. Там 90+ тем, разбросанных по 11 категориям. Feature Store, Model Registry, Data Versioning, Experiment Tracking, Model Serving, A/B Testing, Data Labeling… Каждая тема – отдельный мир с документацией на 200 страниц. Если вы DevOps-инженер, который хочет перейти в MLOps, эта карта выглядит как план захвата Луны, когда вам нужно просто доехать до работы. Проблема roadmap.sh – он показывает всё, что существует, но не говорит, что из этого реально нужно. Это как список из 500 инструментов в Prometheus – технически они есть, практически вы используете 12. ...

1 мая 2026 · 7 минут · 1289 слов · DevOps Way

Страх и ненависть в Telegram: Как я написал свой Bot API на рельсах НОРЫ

«У нас было два бинарника на 22 МБ, 75 SQLite-файлов, 5 петабайт ИИ-данных в НОРЕ и целое множество энкодеров всех сортов и расцветок…» Мы оказались где-то посреди цифровой пустыни между Лас-Вегасом и Бейкерсфилдом, когда до нас начало доходить: Telegram — всё. С 10 февраля медиа тормозят, а 1 апреля маячит полная блокировка. Боль: Мониторинг на грани слепоты У товарища на поддержке 50+ организаций (кино, вещание, живые эфиры). Вся инфраструктура мониторинга — это Zabbix + Python-боты. Они годами слали в Telegram всё: от SNMP-статусов железа до скриншотов эфира и алертов по битрейту. ...

19 марта 2026 · 5 минут · 1042 слова · DevOps Way