Networking 20/80, уровень 0: модель сети – что происходит, когда ты вводишь URL в браузер

Первый из семи уровней мини-курса «Networking 20/80»: 20% сетевых знаний, которые закрывают 80% ежедневной работы DevOps. Без зубрёжки семи слоёв OSI ради собеса – по делу. Сегодня карта местности: какие модели сети существуют и что на самом деле летает между твоим curl и ответом сервера. “OSI – это не то, что нужно зубрить для собеса. Это карта, по которой ты ищешь, на каком уровне сломалось.” Откуда это пошло 1969 – ARPANET. Агентство DARPA (Министерство обороны США) финансирует сеть между четырьмя университетами: UCLA, Stanford, UCSB, University of Utah. 29 октября 1969 года Charley Kline пытается отправить слово “LOGIN” из UCLA в Stanford. Система падает после “LO”. Первое сообщение в истории интернета – “LO”. (Позже шутили: “Lo and behold” – “Вот и чудо”.) ...

25 июня 2026 · 8 минут · 1627 слов · DevOps Way

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

Networking 20/80, уровень 1: IP-адреса и подсети – математика DevOps

Второй из семи уровней мини-курса «Networking 20/80»: 20% сетевых знаний, которые закрывают 80% ежедневной работы DevOps. В нулевом уровне разобрали карту местности – на каком слое искать поломку. Сегодня спускаемся на уровень адресов: как из 10.25.1.100/24 за десять секунд достать сеть, broadcast и число хостов, не открывая калькулятор подсетей. “IP-адресация – единственная часть сетей, где нужна арифметика. Хорошая новость: арифметика простая – степени двойки.” Откуда это пошло 1981 – IPv4 (RFC 791). Jon Postel (ISI, один из отцов интернета) определяет формат: 32 бита, разделённые на 4 октета. 2^32 = ~4.3 миллиарда адресов. В 1981 году казалось, что хватит навсегда. ...

2 июля 2026 · 7 минут · 1454 слова · 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 минут · 2024 слова · 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 минут · 2317 слов · 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

RAG Pipeline 5/N: Cross-encoder reranking – когда порядок важнее полноты

В предыдущих сериях: Qdrant (1/N), эмбеддинги (2/N), нарезка на чанки (3/N), гибридный поиск (4/N). Нужный чанк стабильно залетает в top-15. Но порядок внутри этих 15 результатов определяет, какой чанк окажется в top-1. А top-1 – это то, что видит пользователь (или LLM при генерации ответа). Этот пост о том, как заставить систему вчитываться в результаты. Переранжирование: дешёвый двухступенчатый каскад, который не меняет recall, но переставляет результаты так, чтобы лучший оказывался первым. Проблема: RRF не читает документы Гибридный поиск (пост 4/N) работает так: ...

2 июня 2026 · 8 минут · 1 слово · DevOps Way

RAG Pipeline 6/N: Бенчмарк – от 20% до 98%, а потом 52.7% на чужих данных

В предыдущих сериях: Qdrant (1/N), эмбеддинги (2/N), нарезка на чанки (3/N), гибридный поиск (4/N), переранжирование (5/N). Конвейер (pipeline) – вся цепочка от запроса до ответа – построен и работает. Но насколько хорошо? Пока нет цифры, оценка “хорошо” остаётся субъективной. Повод для замера: проект AgentMemory заявляет 95.2% recall@5 на бенчмарке LongMemEval-S. Recall@5 (полнота поиска) – это доля вопросов, для которых нужный фрагмент попал в первую пятёрку результатов. Решил проверить эту цифру у себя: прогнал тот же метод через свой конвейер, но на реальных данных. ...

11 июня 2026 · 13 минут · 2617 слов · 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