Как дать студенту право «сломать всё» и не бояться за инфраструктуру?
В DevITWay Academy мы используем nested virtualization.
Уровни погружения
L0 Хост
Физическое железо:
• изолированные сети
• выделенные ресурсы
• стабильность
Фундамент, который никто не трогает.
---
L1 Песочница студента
Студент получает VM с
и ставит Proxmox внутри.
Это даёт:
• обучение на реальном гипервизоре
• эксперименты с кластерами
• HA
• k8s
Потеря производительности 15–20%
для лабораторных работ незаметно.
---
L2+ Кроличья нора
Если идти глубже:
• CPU инструкции сыпятся
• VT-x и AMD-V проксируются хуже
• производительность ниже 30%
Здесь виртуализация превращается
в медленную эмуляцию.
---
Итог
Двух уровней хватает, чтобы:
• студент безопасно разнёс инфраструктуру
• понял работу гипервизора
• не задел соседей
Ограничение не в Proxmox.
Ограничение в железе и CPU.
❓ Использовали nested virtualization
в проде или только для лаб?
#кейс #devops
В DevITWay Academy мы используем nested virtualization.
Уровни погружения
L0 Хост
Физическое железо:
• изолированные сети
• выделенные ресурсы
• стабильность
Фундамент, который никто не трогает.
---
L1 Песочница студента
Студент получает VM с
--cpu hostи ставит Proxmox внутри.
Это даёт:
• обучение на реальном гипервизоре
• эксперименты с кластерами
• HA
• k8s
Потеря производительности 15–20%
для лабораторных работ незаметно.
---
L2+ Кроличья нора
Если идти глубже:
• CPU инструкции сыпятся
• VT-x и AMD-V проксируются хуже
• производительность ниже 30%
Здесь виртуализация превращается
в медленную эмуляцию.
---
Итог
Двух уровней хватает, чтобы:
• студент безопасно разнёс инфраструктуру
• понял работу гипервизора
• не задел соседей
Ограничение не в Proxmox.
Ограничение в железе и CPU.
❓ Использовали nested virtualization
в проде или только для лаб?
#кейс #devops
✍3🤓1
🐿 Бурундуки спешат на помощь. Завтра.
Мы выкинули Nexus и Harbor. И стало легче.
Вести интенсив в Академии – это постоянно сталкиваться с реальностью. Когда мы переходили от монолита к микросервисам и GitOps, встал вопрос: где хранить артефакты?
Стандартные пути: 🐢 Nexus – монстр на Java, который съедает 4-8 ГБ оперативки на завтрак и грузится вечность. 🏗 Harbor – мощно, но поднимать 10 контейнеров ради простого registry? Оверхед.
Попробовали GitLab Registry, но и там свои "приколы" (писал об этом недавно).
В итоге я решил: если нет идеального инструмента, который просто работает и не жрёт ресурсы как не в себя, его нужно написать.
Завтра покажу, что получилось. Инструмент, который заменяет всё вышеперечисленное, весит 32 МБ и запускается за 3 секунды. 🦀
Ставьте 🔥, если тоже устали тащить тяжёлый софт в инфраструктуре!
#кейс #rust
Мы выкинули Nexus и Harbor. И стало легче.
Вести интенсив в Академии – это постоянно сталкиваться с реальностью. Когда мы переходили от монолита к микросервисам и GitOps, встал вопрос: где хранить артефакты?
Стандартные пути: 🐢 Nexus – монстр на Java, который съедает 4-8 ГБ оперативки на завтрак и грузится вечность. 🏗 Harbor – мощно, но поднимать 10 контейнеров ради простого registry? Оверхед.
Попробовали GitLab Registry, но и там свои "приколы" (писал об этом недавно).
В итоге я решил: если нет идеального инструмента, который просто работает и не жрёт ресурсы как не в себя, его нужно написать.
Завтра покажу, что получилось. Инструмент, который заменяет всё вышеперечисленное, весит 32 МБ и запускается за 3 секунды. 🦀
Ставьте 🔥, если тоже устали тащить тяжёлый софт в инфраструктуре!
#кейс #rust
🔥8👍3
🎉 Представляю NORA — быстрое хранилище артефактов на Rust 🦀
NORA — замена Nexus, Artifactory и Harbor. Без Java, тяжелых микросервисов и долгого старта.
🐿 NORA (НОРА) — автономное убежище для ваших сборок. Наш маскот Чиппи (Chippy) наводит порядок в хранении:
• Docker-образы,
• Maven (Java),
• npm (JS),
• Cargo (Rust),
• PyPI (Python)
⚡️ В чем профит:
• Легкость: < 100 МБ ОЗУ (Nexus: 2–4 ГБ).
• Скорость: Запуск < 3 сек (вместо минуты ожидания).
• Минимализм: Один бинарник 32 МБ.
• S3-native: Хранение локально или в S3-облаках.
• Dashboard: Web UI и метрики Prometheus из коробки.
• Open Source: Лицензия MIT и мощь Rust.
🚀 Запуск одной командой:
🌐 Сайт: getnora.io
🧪 Демо: demo.getnora.io
💻 Код: github.com/getnora-io/nora
Будем публично разбирать архитектуру и безопасность. Присоединяйтесь!
#кейс #rust
NORA — замена Nexus, Artifactory и Harbor. Без Java, тяжелых микросервисов и долгого старта.
🐿 NORA (НОРА) — автономное убежище для ваших сборок. Наш маскот Чиппи (Chippy) наводит порядок в хранении:
• Docker-образы,
• Maven (Java),
• npm (JS),
• Cargo (Rust),
• PyPI (Python)
⚡️ В чем профит:
• Легкость: < 100 МБ ОЗУ (Nexus: 2–4 ГБ).
• Скорость: Запуск < 3 сек (вместо минуты ожидания).
• Минимализм: Один бинарник 32 МБ.
• S3-native: Хранение локально или в S3-облаках.
• Dashboard: Web UI и метрики Prometheus из коробки.
• Open Source: Лицензия MIT и мощь Rust.
🚀 Запуск одной командой:
docker run -d -p 4000:4000 --name nora ghcr.io/getnora-io/nora:latest🌐 Сайт: getnora.io
🧪 Демо: demo.getnora.io
💻 Код: github.com/getnora-io/nora
Будем публично разбирать архитектуру и безопасность. Присоединяйтесь!
#кейс #rust
2🔥12😱3👏2❤1🍾1
🤖 AI-агент в терминале: почему OpenWebUI ломает DevOps-флоу
В DevITWay Academy всё завязано на единый LDAP: один логин для всего.
Для AI я сначала взял OpenWebUI. Инструмент отличный, но в нём нет поддержки пока SSO. Студентам приходилось вводить креды и прыгать в браузер.
DevOps-инженер живет в консоли, а не в веб-чатах.
🛠 Решение: RTX 3090 + Local AI
В итоге я настроил официальный Claude Code CLI для работы поверх локальной Ollama.
Получился гибрид: удобный UX от Anthropic, а данные и модели полностью локальные, внутри периметра.
Почему это важно для студентов:
* Они не учатся «копипастить ошибки в чат».
* Они думают и дебажат прямо в рабочей среде, не теряя контекст.
Как это выглядит на практике:
⏱️ 20–30 секунд работы RTX 3090
✅ Разбор ошибки с учетом контекста файлов.
Скоро выложу в блоге гайд, как собрать такую связку.
❓ Где вы используете AI: в браузере, IDE или уже в терминале?
#кейс #ai
В DevITWay Academy всё завязано на единый LDAP: один логин для всего.
Для AI я сначала взял OpenWebUI. Инструмент отличный, но в нём нет поддержки пока SSO. Студентам приходилось вводить креды и прыгать в браузер.
DevOps-инженер живет в консоли, а не в веб-чатах.
🛠 Решение: RTX 3090 + Local AI
В итоге я настроил официальный Claude Code CLI для работы поверх локальной Ollama.
Получился гибрид: удобный UX от Anthropic, а данные и модели полностью локальные, внутри периметра.
Почему это важно для студентов:
* Они не учатся «копипастить ошибки в чат».
* Они думают и дебажат прямо в рабочей среде, не теряя контекст.
Как это выглядит на практике:
claude "почему этот плейбук падает на этой таске?"
⏱️ 20–30 секунд работы RTX 3090
✅ Разбор ошибки с учетом контекста файлов.
Скоро выложу в блоге гайд, как собрать такую связку.
❓ Где вы используете AI: в браузере, IDE или уже в терминале?
#кейс #ai
1👍6
🤖 AI-ментор: Как я приручал RAG на одной RTX 3090
Краткая сводка для тех, кто ценит время и VRAM:
Задача была амбициозной: создать ИИ, который «съест» 891 файл учебного курса и перестанет придумывать то, чего в материалах нет.
Что в итоге взлетело:
Стек: Ollama + Qdrant + Claude Code CLI.
База знаний: 11,307 чанков в векторном хранилище.
Скорость: ~10-15 секунд на честный, аргументированный ответ прямо с домашнего железа.
Мои «грабли»:
❌ Llama 3.1: Оказалась знатным фантазером. Вместо того чтобы читать файлы, она с уверенным видом сочиняла их содержимое.
❌ Fine-tuning: Модель внезапно «сменила пол» и превратилась в Марию, коуча по позитивному мышлению.
❌ GLM-4.7-flash: Поймали неприятный баг, в режиме размышления (thinking mode) выдавала пустые ответы.
✅ Qwen3:30b-a3b (MoE): Наш фаворит. Качество на уровне 30B, скорость как у 3B, и идеально помещается в 24GB видеопамяти.
Подробнее 👇
https://telegra.ph/Kak-ya-priruchal-RAG-na-RTX-3090-II-mentor-kotoryj-pochti-ne-vret-02-02
#кейс #ai
Краткая сводка для тех, кто ценит время и VRAM:
Задача была амбициозной: создать ИИ, который «съест» 891 файл учебного курса и перестанет придумывать то, чего в материалах нет.
Что в итоге взлетело:
Стек: Ollama + Qdrant + Claude Code CLI.
База знаний: 11,307 чанков в векторном хранилище.
Скорость: ~10-15 секунд на честный, аргументированный ответ прямо с домашнего железа.
Мои «грабли»:
❌ Llama 3.1: Оказалась знатным фантазером. Вместо того чтобы читать файлы, она с уверенным видом сочиняла их содержимое.
❌ Fine-tuning: Модель внезапно «сменила пол» и превратилась в Марию, коуча по позитивному мышлению.
❌ GLM-4.7-flash: Поймали неприятный баг, в режиме размышления (thinking mode) выдавала пустые ответы.
✅ Qwen3:30b-a3b (MoE): Наш фаворит. Качество на уровне 30B, скорость как у 3B, и идеально помещается в 24GB видеопамяти.
Подробнее 👇
https://telegra.ph/Kak-ya-priruchal-RAG-na-RTX-3090-II-mentor-kotoryj-pochti-ne-vret-02-02
#кейс #ai
🔥7
🦀 NORA в бою: Опыт внедрения в K8s
Обкатал NORA в инфраструктуре DevITWay Academy.
Сетап: 3 кластера K8s (9 нод), GitLab CI → NORA ← ArgoCD. План:
Установка
TLS и сертификаты
Nginx + FreeIPA не взлетели: containerd проверяет только SAN. Подключались по IP, а IP в сертификате не было, поэтому TLS не сходился. Временно включил
Rate Limit
При старте 7 подов словили 429. Ресурсы ок, упёрлись в лимиты.
Решение: выставил
Итог:
✅ RAM (RSS): ~2.4 МБ в idle / low load
✅ Деплой: ~87 сек до Running
✅ Rust против Java - без шансов
Если нужен просто registry без enterprise-комбайна - NORA отлично закрывает задачу.
#кейс #rust
Обкатал NORA в инфраструктуре DevITWay Academy.
Сетап: 3 кластера K8s (9 нод), GitLab CI → NORA ← ArgoCD. План:
docker run и в прод. По факту немного "фичей". 😅Установка
getnora.io/install.sh - 404 на момент внедрения. Ставил вручную. Завёл issue #1 сделаю инсталлер по канонам rustup.TLS и сертификаты
Nginx + FreeIPA не взлетели: containerd проверяет только SAN. Подключались по IP, а IP в сертификате не было, поэтому TLS не сходился. Временно включил
insecure_skip_verify на нодах, думаю над issue #2 - нативным TLS.Rate Limit
При старте 7 подов словили 429. Ресурсы ок, упёрлись в лимиты.
Решение: выставил
NORA_RATE_LIMIT_* через ENV, теперь держит.Итог:
✅ RAM (RSS): ~2.4 МБ в idle / low load
✅ Деплой: ~87 сек до Running
✅ Rust против Java - без шансов
Если нужен просто registry без enterprise-комбайна - NORA отлично закрывает задачу.
#кейс #rust
🔥8
🛠 Локальный ИИ-ассистент: пошаговый гайд
Отвечаю на вопрос про загрузку доков в Qdrant. В паре абзацев не вышло - ловите полноценный туториал, как собрать своего «Джарвиса» в терминале.
Стек (красивый Франкенштейн ): Claude Code CLI + Ollama + Qdrant RAG + MCP-протокол.
Что внутри:
✅ Основа: Запуск Qwen3:30b-a3b (MoE) локально.
✅ Мост: Настройка LiteLLM для подмены API Anthropic на Ollama.
✅ Память: Python-скрипт для нарезки чанков и заливки в Qdrant (с метаданными и overlap).
✅ Руки: MCP-сервер, чтобы агент сам гуглил по вашей базе знаний.
Теперь на вопрос claude "почему nginx выдает 502?" ассистент сам найдет инфу в ваших .md файлах и предложит фикс. Без облаков, VPN и подписок.
🔗 Гайд
#миникурс #ai
Отвечаю на вопрос про загрузку доков в Qdrant. В паре абзацев не вышло - ловите полноценный туториал, как собрать своего «Джарвиса» в терминале.
Стек (
Что внутри:
✅ Основа: Запуск Qwen3:30b-a3b (MoE) локально.
✅ Мост: Настройка LiteLLM для подмены API Anthropic на Ollama.
✅ Память: Python-скрипт для нарезки чанков и заливки в Qdrant (с метаданными и overlap).
✅ Руки: MCP-сервер, чтобы агент сам гуглил по вашей базе знаний.
Теперь на вопрос claude "почему nginx выдает 502?" ассистент сам найдет инфу в ваших .md файлах и предложит фикс. Без облаков, VPN и подписок.
🔗 Гайд
#миникурс #ai
1🔥5
AI DevOps: почему это стоит дорого
Намедни помогал с резюме и заметил для себя новый тег AI Devops. Решил посмотреть матчасть. Запустить модель в контейнере и держать прод задачи разные. В вероятностных системах привычный мониторинг не работает. Тут важна стоимость генерации, дрейф качества и дефицит видеокарт.
Что внутри:
Экономика GPU. Видеокарта дорогой актив. Нужно уметь делить мощности и управлять очередями, чтобы не сжигать бюджет. Масштабирование сложнее, чем просто добавить ноды.
Архитектура. Работа с кэшем и сжатием моделей. Балансируем по пропускной способности токенов, а не по CPU.
Контроль. Промпт-инъекции не решаются файрволом. Инфраструктура сама становится слоем фильтрации ответов и изоляции контекста.
Итого: Если пробовали локальный запуск и векторные базы, вы на верном пути. Скоро нейросети станут базой, как Docker. Изучайте экономику инференса сейчас, иначе рынок вас обгонит.
❓ Кто внедрял GPU: во что уперлись? Квоты, мониторинг или бюджет?
#мышление #ai
Намедни помогал с резюме и заметил для себя новый тег AI Devops. Решил посмотреть матчасть. Запустить модель в контейнере и держать прод задачи разные. В вероятностных системах привычный мониторинг не работает. Тут важна стоимость генерации, дрейф качества и дефицит видеокарт.
Что внутри:
Экономика GPU. Видеокарта дорогой актив. Нужно уметь делить мощности и управлять очередями, чтобы не сжигать бюджет. Масштабирование сложнее, чем просто добавить ноды.
Архитектура. Работа с кэшем и сжатием моделей. Балансируем по пропускной способности токенов, а не по CPU.
Контроль. Промпт-инъекции не решаются файрволом. Инфраструктура сама становится слоем фильтрации ответов и изоляции контекста.
Итого: Если пробовали локальный запуск и векторные базы, вы на верном пути. Скоро нейросети станут базой, как Docker. Изучайте экономику инференса сейчас, иначе рынок вас обгонит.
❓ Кто внедрял GPU: во что уперлись? Квоты, мониторинг или бюджет?
#мышление #ai
✍3👍1🫡1
Guacamole vs RustDesk vs Teleport: выбор доступа
Ставили как-то товарищу Guacamole за Кинетик на малинку. Вместо 20 минут, 3 часа борьбы с зависимостями. Спас Docker. Повод сравнить стек для дома и Академии. Мой флоу: браузер → Jump-сервер → SSH → Nested Proxmox. Периметр закрыт снаружи.
Почему остальное мимо:
• RustDesk. Peer-to-peer модель - это рутина при 30+ студентах. В Free-версии нет LDAP, а установка софта учеником, увы, лишний барьер.
• Teleport. Заточен под SSH/K8s аудит. Для GUI-задач избыточен, Desktop Access сложен в настройке под каждую лабу.
Плюсы Guacamole:
• Zero Client: только браузер, без VPN.
• Gateway-centric: нативно встает в изолированный периметр.
• SSO: интеграция с LDAP/GitLab.
Итог:
Дома за Кинетиком - RustDesk. В лабах Академии Guacamole, имхо, лучший компромисс.
❓ Как изолируете тестовые среды?
#кейс #devops
Ставили как-то товарищу Guacamole за Кинетик на малинку. Вместо 20 минут, 3 часа борьбы с зависимостями. Спас Docker. Повод сравнить стек для дома и Академии. Мой флоу: браузер → Jump-сервер → SSH → Nested Proxmox. Периметр закрыт снаружи.
Почему остальное мимо:
• RustDesk. Peer-to-peer модель - это рутина при 30+ студентах. В Free-версии нет LDAP, а установка софта учеником, увы, лишний барьер.
• Teleport. Заточен под SSH/K8s аудит. Для GUI-задач избыточен, Desktop Access сложен в настройке под каждую лабу.
Плюсы Guacamole:
• Zero Client: только браузер, без VPN.
• Gateway-centric: нативно встает в изолированный периметр.
• SSO: интеграция с LDAP/GitLab.
Итог:
Дома за Кинетиком - RustDesk. В лабах Академии Guacamole, имхо, лучший компромисс.
❓ Как изолируете тестовые среды?
#кейс #devops
👌3🤓1
14 февраля: как баг видеодрайвера VMware «ронял» MS Exchange
Для меня 14 февраля — это теперь навсегда своеобразный «вьетнамский флешбэк» и своего рода ПТСР.
Итак, тоже суббота и тоже 14 февраля.
Пустой офис. Руководитель конторки на месте и периодически пингует меня, как ослик из «Шрека»: «Ну что, приехали? Уже работает? А сейчас?». Я гуглю под таким давлением, что IQ падает вдвое.
Кейс: Почтовик на MS Exchange (бизнес-критикал), крутится на виртуалке VMware.
Проблема: Сервер ловит критическую нестабильность. Процессы отваливаются, система ведет себя как при остром дефиците ресурсов, хотя физической оперативной памяти в достатке. Поднимаешь -> живет -> снова в аут.
🔍 Симптомы и ложные следы
Типичная ловушка: когда падает Exchange, ты копаешь внутри самого Exchange. Тюнинг кэша Jet Blue, лимиты памяти Store.exe и всё мимо.
Контекст: за месяц до моего прихода в офисе был жесткий блэкаут. Сервера ребутались по питания несколько раз. Тогда это проигнорировали, «ну завелось же».
Нахожу на StackOverflow (тогда еще живом) тред, где чувак пишет:
«Проверь аллокацию видеопамяти в настройках ВМ».
Моя первая мысль: «Что за бред? Где почта, а где видеокарта?». Но это был последний шанс перед полным фиаско.
⚙️ Root Cause: Истощение Nonpaged Pool
Захожу в настройки VMware. Флаг видеопамяти стоит в «Auto». Выставляю жесткий лимит. Ребут.
Супостатина стабилизировалась.
Что произошло технически:
Это не была нехватка физических планок памяти. Это был классический Nonpaged Pool exhaustion (истощение невыгружаемого пула ядра).
После блэкаута и кривого старта драйвер VMware SVGA начал вести себя неадекватно.
Вместо простой отрисовки консоли драйвер (работая в режиме ядра) начал «течь» и забивать системный пул, который нельзя выгрузить в файл подкачки.
В Windows Server того времени (2008 R2 / 2012) лимиты этого пула были довольно жесткими.
Exchange по своей природе создает колоссальную нагрузку на систему, агрессивно резервируя ресурсы под кэш базы данных.
Как только видеодрайвер из-за бага «отъедал» лимит невыгружаемой памяти ядра, ОС теряла возможность выделять ресурсы под системные структуры. Итог: сбой сетевого стека, ошибки ввода-вывода и аварийное завершение процессов Exchange. Судя по всему, фиксация объема видеопамяти в настройках ВМ изменила логику инициализации драйвера и прекратила утечку.
💡 Системный вывод
Инженер, который мыслит слоями (Приложение → ОС → Ядро/Драйвер → Гипервизор), выигрывает у того, кто копает только в конфигах софта.
Виртуальное железо — это тоже софт. Решение не всегда там, где болит. Логи приложения никогда не скажут тебе, что ядро задыхается из-за видеодрайвера.
Блэкауты — это мина замедленного действия. Настройки, жившие годами, могут не пережить некорректное выключение.
В ту субботу я понял: чтобы реально дебажить инфраструктуру, нужно понимать, как течет ресурс от гипервизора до дескриптора процесса.
❓ Вопрос:
Были случаи, когда софтверную проблему лечили через настройки гипервизора? Когда интуиция вытащила там, где логи молчали?
Пишите в комменты 👇
#кейс #devops
P.S. Желаю, чтобы в это 14 февраля «ослики» тебя не беспокоили, а системы работали как часы.
Для меня 14 февраля — это теперь навсегда своеобразный «вьетнамский флешбэк» и своего рода ПТСР.
Итак, тоже суббота и тоже 14 февраля.
Пустой офис. Руководитель конторки на месте и периодически пингует меня, как ослик из «Шрека»: «Ну что, приехали? Уже работает? А сейчас?». Я гуглю под таким давлением, что IQ падает вдвое.
Кейс: Почтовик на MS Exchange (бизнес-критикал), крутится на виртуалке VMware.
Проблема: Сервер ловит критическую нестабильность. Процессы отваливаются, система ведет себя как при остром дефиците ресурсов, хотя физической оперативной памяти в достатке. Поднимаешь -> живет -> снова в аут.
🔍 Симптомы и ложные следы
Типичная ловушка: когда падает Exchange, ты копаешь внутри самого Exchange. Тюнинг кэша Jet Blue, лимиты памяти Store.exe и всё мимо.
Контекст: за месяц до моего прихода в офисе был жесткий блэкаут. Сервера ребутались по питания несколько раз. Тогда это проигнорировали, «ну завелось же».
Нахожу на StackOverflow (тогда еще живом) тред, где чувак пишет:
«Проверь аллокацию видеопамяти в настройках ВМ».
Моя первая мысль: «Что за бред? Где почта, а где видеокарта?». Но это был последний шанс перед полным фиаско.
⚙️ Root Cause: Истощение Nonpaged Pool
Захожу в настройки VMware. Флаг видеопамяти стоит в «Auto». Выставляю жесткий лимит. Ребут.
Супостатина стабилизировалась.
Что произошло технически:
Это не была нехватка физических планок памяти. Это был классический Nonpaged Pool exhaustion (истощение невыгружаемого пула ядра).
После блэкаута и кривого старта драйвер VMware SVGA начал вести себя неадекватно.
Вместо простой отрисовки консоли драйвер (работая в режиме ядра) начал «течь» и забивать системный пул, который нельзя выгрузить в файл подкачки.
В Windows Server того времени (2008 R2 / 2012) лимиты этого пула были довольно жесткими.
Exchange по своей природе создает колоссальную нагрузку на систему, агрессивно резервируя ресурсы под кэш базы данных.
Как только видеодрайвер из-за бага «отъедал» лимит невыгружаемой памяти ядра, ОС теряла возможность выделять ресурсы под системные структуры. Итог: сбой сетевого стека, ошибки ввода-вывода и аварийное завершение процессов Exchange. Судя по всему, фиксация объема видеопамяти в настройках ВМ изменила логику инициализации драйвера и прекратила утечку.
💡 Системный вывод
Инженер, который мыслит слоями (Приложение → ОС → Ядро/Драйвер → Гипервизор), выигрывает у того, кто копает только в конфигах софта.
Виртуальное железо — это тоже софт. Решение не всегда там, где болит. Логи приложения никогда не скажут тебе, что ядро задыхается из-за видеодрайвера.
Блэкауты — это мина замедленного действия. Настройки, жившие годами, могут не пережить некорректное выключение.
В ту субботу я понял: чтобы реально дебажить инфраструктуру, нужно понимать, как течет ресурс от гипервизора до дескриптора процесса.
❓ Вопрос:
Были случаи, когда софтверную проблему лечили через настройки гипервизора? Когда интуиция вытащила там, где логи молчали?
Пишите в комменты 👇
#кейс #devops
P.S. Желаю, чтобы в это 14 февраля «ослики» тебя не беспокоили, а системы работали как часы.
❤6
🛠 Доверяй, но поднимай стенд: Как системные требования ИИ врут в глаза
В ИТ есть золотое правило: «Доверяй, но проверяй». Когда Gemini с умным видом заявляет, что твоя видяха «не потянет», рука сама тянется закрыть терминал. Я решил не верить прогнозам на слово и поднял стенд.
Дано:
Обсуждали в чате локальный запуск ИИ для кодинга. Gemini выдал базу: «На 12 ГБ VRAM (RTX 4070) даже не суйся в сторону моделей 30B+. Скорость упадет до 1-2 токенов в секунду. Бери DeepSeek-Coder-V2-Lite, это потолок».
Тест в реальности (RTX 4060 8GB Laptop, Ollama, Q4_K_M, контекст до 4k):
Я пошел дальше и запустил всё на 8 ГБ VRAM. По логике «экспертов», мой ноут должен был превратиться в тыкву.
📊 Результаты бенчмарка:
Qwen3:30b-a3b (архитектура MoE)
Прогноз Gemini: 1-2 tok/s.
Реальность: 27-32 tok/s! 🚀
Почему так? Общий вес модели (~18 ГБ) перестал быть главным ограничителем. В архитектуре MoE (Mixture of Experts) на каждый токен активируется лишь малая часть параметров (в данном случае ~3B). Ollama выкинула часть весов в системную оперативку, и за счет малого числа активных параметров гибридный режим выдал отличную скорость.
Парадокс 14B Dense vs 30B MoE
Qwen2.5:14B (Dense) — полностью влезла в GPU, но выдала всего 11 tok/s.
Qwen3:30B (MoE) — в гибридном режиме выдала 27+ tok/s.
Вывод: Модель, которая в 2 раза «тяжелее» по весу, работает в 2.5 раза быстрее. Архитектура теперь важнее объема.
Битва за код: Qwen vs DeepSeek на 8 ГБ VRAM
DeepSeek-Coder-V2 (16b): 42 tok/s. Код чистый, но сухой.
Qwen2.5-Coder (7b): 53 tok/s. Дает doctests, примеры использования и шикарные комменты.
CodeLlama (7b): Рекордные 60 tok/s, но по качеству документации проигрывает Qwen.
Вывод: Для карт с 8-12 ГБ памяти Qwen2.5-Coder сейчас — самый практичный выбор.
🎯 Итоговый вердикт:
Миф: 30B на средних картах — это всегда слайд-шоу.
Факт: MoE-модели (в Q4 квантовании) — это чит-код. По качеству логики они на голову выше моделей 7B-8B и вплотную приближаются к облачным решениям прошлого поколения.
Миф: Нужно смотреть только на объем VRAM.
Факт: Нужно смотреть на тип модели (MoE vs Dense) и на то, как движок (Ollama/llama.cpp) умеет в offload.
Мораль:
Не слушайте советы облачных ИИ про локальные ИИ. Они часто экстраполируют поведение старых тяжелых моделей. На RTX 4070 (12GB) в тех же условиях можно смело ожидать 35–45 tok/s.
Хочешь знать правду? Поднимай стенд, засекай время и меряй всё руками.
#кейс #ai
В ИТ есть золотое правило: «Доверяй, но проверяй». Когда Gemini с умным видом заявляет, что твоя видяха «не потянет», рука сама тянется закрыть терминал. Я решил не верить прогнозам на слово и поднял стенд.
Дано:
Обсуждали в чате локальный запуск ИИ для кодинга. Gemini выдал базу: «На 12 ГБ VRAM (RTX 4070) даже не суйся в сторону моделей 30B+. Скорость упадет до 1-2 токенов в секунду. Бери DeepSeek-Coder-V2-Lite, это потолок».
Тест в реальности (RTX 4060 8GB Laptop, Ollama, Q4_K_M, контекст до 4k):
Я пошел дальше и запустил всё на 8 ГБ VRAM. По логике «экспертов», мой ноут должен был превратиться в тыкву.
📊 Результаты бенчмарка:
Qwen3:30b-a3b (архитектура MoE)
Прогноз Gemini: 1-2 tok/s.
Реальность: 27-32 tok/s! 🚀
Почему так? Общий вес модели (~18 ГБ) перестал быть главным ограничителем. В архитектуре MoE (Mixture of Experts) на каждый токен активируется лишь малая часть параметров (в данном случае ~3B). Ollama выкинула часть весов в системную оперативку, и за счет малого числа активных параметров гибридный режим выдал отличную скорость.
Парадокс 14B Dense vs 30B MoE
Qwen2.5:14B (Dense) — полностью влезла в GPU, но выдала всего 11 tok/s.
Qwen3:30B (MoE) — в гибридном режиме выдала 27+ tok/s.
Вывод: Модель, которая в 2 раза «тяжелее» по весу, работает в 2.5 раза быстрее. Архитектура теперь важнее объема.
Битва за код: Qwen vs DeepSeek на 8 ГБ VRAM
DeepSeek-Coder-V2 (16b): 42 tok/s. Код чистый, но сухой.
Qwen2.5-Coder (7b): 53 tok/s. Дает doctests, примеры использования и шикарные комменты.
CodeLlama (7b): Рекордные 60 tok/s, но по качеству документации проигрывает Qwen.
Вывод: Для карт с 8-12 ГБ памяти Qwen2.5-Coder сейчас — самый практичный выбор.
🎯 Итоговый вердикт:
Миф: 30B на средних картах — это всегда слайд-шоу.
Факт: MoE-модели (в Q4 квантовании) — это чит-код. По качеству логики они на голову выше моделей 7B-8B и вплотную приближаются к облачным решениям прошлого поколения.
Миф: Нужно смотреть только на объем VRAM.
Факт: Нужно смотреть на тип модели (MoE vs Dense) и на то, как движок (Ollama/llama.cpp) умеет в offload.
Мораль:
Не слушайте советы облачных ИИ про локальные ИИ. Они часто экстраполируют поведение старых тяжелых моделей. На RTX 4070 (12GB) в тех же условиях можно смело ожидать 35–45 tok/s.
Хочешь знать правду? Поднимай стенд, засекай время и меряй всё руками.
#кейс #ai
👍5❤1
Клод код кли? 403. Квен код кли? Погнали! 🚀
Пока Anthropic закручивает гайки и выдает «403 Forbidden» на CLI-инструменты для нашего региона, в солопренерстве работает правило: риск бездействия выше риска ошибки. Не тратим время на VPN-костыли, идем по пути локального импортозамещения.
Вчера товарищ жаловался, что не может пощупать Claude Code. Я решил не ждать милости от облаков и развернул Qwen Code CLI на Ubuntu. Китайцы сейчас делают очень бодро, а архитектура MoE позволяет летать даже на среднем железе.
Почему это маст-хэв для терминала:
1. Локально. Поднимаешь Ollama, тянешь qwen2.5-coder (7b — база, 30b — для серьезного дебага). Данные не покидают периметр.
2. Бесплатно. Никаких инвойсов на 85 евро и битвы с продавцами за возврат. Твое железо — твои правила.
3. Вайбкодинг. Он так же пишет код, правит конфиги и находит баги в соседних файлах, как и Клод, но делает это «лампово», прямо у тебя на ноуте.
Что пошло не так при установке (грабли):
>Node.js. Стандартная 18-я версия из репозиториев Ubuntu — мимо. Qwen требует 20+. Пришлось сносить старую и ставить через NodeSource.
>Кладбище ядер. При обновлении словил dpkg error 11 из-за битых хедеров старых ядер Linux. Пока не вычистил «хвосты» через dpkg --purge, npm отказывался ставить пакеты.
>PATH. После установки через npm -g команда qwen часто не видна. Лечится банальным символическим линком в /usr/local/bin.
Итог:
Модель qwen2.5-coder:7b на локалке выдает шикарные комменты и doctests. Это именно тот уровень автономии, который нужен, когда хочешь кодить в самолете или из-за «забора».
Наберем 5 огоньков 🔥 или лайков -> выкачу подробный пошаговый гайд с командами: как победить зависимости Node.js, починить битый dpkg и завести Qwen CLI через локальную Ollama за 5 минут.
#кейс #ai
Пока Anthropic закручивает гайки и выдает «403 Forbidden» на CLI-инструменты для нашего региона, в солопренерстве работает правило: риск бездействия выше риска ошибки. Не тратим время на VPN-костыли, идем по пути локального импортозамещения.
Вчера товарищ жаловался, что не может пощупать Claude Code. Я решил не ждать милости от облаков и развернул Qwen Code CLI на Ubuntu. Китайцы сейчас делают очень бодро, а архитектура MoE позволяет летать даже на среднем железе.
Почему это маст-хэв для терминала:
1. Локально. Поднимаешь Ollama, тянешь qwen2.5-coder (7b — база, 30b — для серьезного дебага). Данные не покидают периметр.
2. Бесплатно. Никаких инвойсов на 85 евро и битвы с продавцами за возврат. Твое железо — твои правила.
3. Вайбкодинг. Он так же пишет код, правит конфиги и находит баги в соседних файлах, как и Клод, но делает это «лампово», прямо у тебя на ноуте.
Что пошло не так при установке (грабли):
>Node.js. Стандартная 18-я версия из репозиториев Ubuntu — мимо. Qwen требует 20+. Пришлось сносить старую и ставить через NodeSource.
>Кладбище ядер. При обновлении словил dpkg error 11 из-за битых хедеров старых ядер Linux. Пока не вычистил «хвосты» через dpkg --purge, npm отказывался ставить пакеты.
>PATH. После установки через npm -g команда qwen часто не видна. Лечится банальным символическим линком в /usr/local/bin.
Итог:
Модель qwen2.5-coder:7b на локалке выдает шикарные комменты и doctests. Это именно тот уровень автономии, который нужен, когда хочешь кодить в самолете или из-за «забора».
Наберем 5 огоньков 🔥 или лайков -> выкачу подробный пошаговый гайд с командами: как победить зависимости Node.js, починить битый dpkg и завести Qwen CLI через локальную Ollama за 5 минут.
#кейс #ai
🔥14❤2
🛠 Tailscale + NoMachine: почему я выкинул RustDesk и забыл про туннели
Иногда архитектуру проверяет не pentest, а жизнь. Ситуация простая: я с ноутом в одной сети, домашняя тачка – в другой. Между ними забор, потому что я сознательно разделил «мир Академии» и «личный мир».
И вот тут начинается инженерная правда.
Сначала классическая матрёшка
Я попробовал по старинке: Tailscale → обратный SSH-туннель → TigerVNC.
Результат предсказуем: TCP-over-TCP, дикие лаги и отвал сессии при любом чихе провайдера. autossh бодро перезапускает то, что всё равно падает. Формально работает, но жить с этим нельзя.
База: Tailscale
Tailscale – это фундамент. Ноут и сервер получают свои 100.x.y.z адреса и просто оказываются в одной виртуальной локалке без проброса портов, белых IP и NAT-магии. Это сразу сняло 80% боли.
Почему я убрал RustDesk?
Он у меня крутится внутри Академии и там он логичен. Но для личной работы начались нюансы: при нестабильной сети он начинает «сыпать» картинку, а P2P-модель хороша для саппорта, но не идеальна для постоянной плотной работы.
Что изменил NoMachine (NX-протокол)
NoMachine – это не VNC. Это адаптивный видеострим, который:
1️⃣ Адаптируется к сети. Не держит TCP в истерике. Упал битрейт – картинка чуть «поплыла», но сессию не рвет.
2️⃣ Использует железо. Моя RTX 4060 на ноуте сама декодирует H.264. CPU холодный, input lag минимальный.
3️⃣ Ощущается «локальным». Скролл браузера не фризится, терминал не отстает. Ты реально забываешь, что это удалёнка.
Где теперь что живёт:
🧑🎓 Для студентов – Apache Guacamole (через браузер).
🔐 Для аудита и SSH/K8s – Teleport.
🏠 Для личных мощностей – Tailscale + NoMachine.
Каждому инструменту – своё место. Инфраструктура должна быть прозрачной, а не заставлять тебя бороться с ней.
🔧 А как вы делите доступ? Оставляете одну «дырку» для всего или сегментируете доступ под разные задачи?
#кейс #devops
Иногда архитектуру проверяет не pentest, а жизнь. Ситуация простая: я с ноутом в одной сети, домашняя тачка – в другой. Между ними забор, потому что я сознательно разделил «мир Академии» и «личный мир».
И вот тут начинается инженерная правда.
Сначала классическая матрёшка
Я попробовал по старинке: Tailscale → обратный SSH-туннель → TigerVNC.
Результат предсказуем: TCP-over-TCP, дикие лаги и отвал сессии при любом чихе провайдера. autossh бодро перезапускает то, что всё равно падает. Формально работает, но жить с этим нельзя.
База: Tailscale
Tailscale – это фундамент. Ноут и сервер получают свои 100.x.y.z адреса и просто оказываются в одной виртуальной локалке без проброса портов, белых IP и NAT-магии. Это сразу сняло 80% боли.
Почему я убрал RustDesk?
Он у меня крутится внутри Академии и там он логичен. Но для личной работы начались нюансы: при нестабильной сети он начинает «сыпать» картинку, а P2P-модель хороша для саппорта, но не идеальна для постоянной плотной работы.
Что изменил NoMachine (NX-протокол)
NoMachine – это не VNC. Это адаптивный видеострим, который:
1️⃣ Адаптируется к сети. Не держит TCP в истерике. Упал битрейт – картинка чуть «поплыла», но сессию не рвет.
2️⃣ Использует железо. Моя RTX 4060 на ноуте сама декодирует H.264. CPU холодный, input lag минимальный.
3️⃣ Ощущается «локальным». Скролл браузера не фризится, терминал не отстает. Ты реально забываешь, что это удалёнка.
Где теперь что живёт:
🧑🎓 Для студентов – Apache Guacamole (через браузер).
🔐 Для аудита и SSH/K8s – Teleport.
🏠 Для личных мощностей – Tailscale + NoMachine.
Каждому инструменту – своё место. Инфраструктура должна быть прозрачной, а не заставлять тебя бороться с ней.
🔧 А как вы делите доступ? Оставляете одну «дырку» для всего или сегментируете доступ под разные задачи?
#кейс #devops
🔥4❤1
Опрос: На какой глубине погружения в ИИ находитесь вы? 🌊
Выберите вариант, который лучше всего описывает ваш «самый продвинутый» опыт:
Выберите вариант, который лучше всего описывает ваш «самый продвинутый» опыт:
Anonymous Poll
10%
Пока только читаю про ИИ, сам кнопки не нажимал.
38%
Балуюсь бесплатными чатами (ChatGPT Free, Claude, GigaChat) для простых текстов.
13%
Плачу за подписки (Plus/Pro) $20/мес, потому что бесплатные модели уже «не тянут» мои задачи.
33%
Использую ИИ как расширение своего мозга: кодинг, архитектура, автоматизация пайплайнов.
8%
Строю свои AI-native системы (агенты, локальный инференс).
❤3
Обещанный гайд: Поднимаем Qwen Code CLI за 5 минут ⚡️
Реакции набрали быстро, как и обещал, делюсь «дорожной картой» по замене Claude Code на локальный стек. Без VPN, подписок и тормозов.
Что в итоге в статье:
🔹 MoE в деле: Разбор, почему модель 30B (MoE) на моей RTX 3090 выдает 30+ токенов и работает быстрее, чем «легкие» dense-модели.
🔹 Хак на скорость: Готовый Modelfile, который вырезает стадию «размышлений» (<think>) и экономит до 40 секунд на каждой цепочке команд.
🔹 Матрица выбора: Какую модель тянуть под твой объем VRAM (от 8ГБ до 24ГБ) и когда стоит уходить в облако.
🔹 Честный тест: Как агент сам фиксит свои ошибки форматирования (self-correction) и обходит системные ограничения через обычный bash.
Это не просто обзор, а готовый скрипт действий, чтобы к вечеру у вас в терминале жил персональный DevOps-ассистент на стероидах MoE.
🔗 Инструкция и все конфиги здесь
#миникурс #ai
Реакции набрали быстро, как и обещал, делюсь «дорожной картой» по замене Claude Code на локальный стек. Без VPN, подписок и тормозов.
Что в итоге в статье:
🔹 MoE в деле: Разбор, почему модель 30B (MoE) на моей RTX 3090 выдает 30+ токенов и работает быстрее, чем «легкие» dense-модели.
🔹 Хак на скорость: Готовый Modelfile, который вырезает стадию «размышлений» (<think>) и экономит до 40 секунд на каждой цепочке команд.
🔹 Матрица выбора: Какую модель тянуть под твой объем VRAM (от 8ГБ до 24ГБ) и когда стоит уходить в облако.
🔹 Честный тест: Как агент сам фиксит свои ошибки форматирования (self-correction) и обходит системные ограничения через обычный bash.
Это не просто обзор, а готовый скрипт действий, чтобы к вечеру у вас в терминале жил персональный DevOps-ассистент на стероидах MoE.
🔗 Инструкция и все конфиги здесь
#миникурс #ai
👍6❤1
🧠 ТРИ СУПЕРСИЛЫ ИНЖЕНЕРА: ДЕДУКЦИЯ, ИНДУКЦИЯ И АБДУКЦИЯ
Реальный кейс из обучения DevIT Academy.
Студент настраивает CI/CD. Docker-образ собирается, но push в GitLab Container Registry падает:
❌ 403 Forbidden
failed to fetch anonymous token
Три инженера решали бы эту задачу по-разному:
📐 ДЕДУКЦИЯ – знаю правило, применяю
"403 = нет прав"
→ Проверяю токен. Есть. ✓
→ Проверяю роли в проекте.
Maintainer. ✓
→ Проверяю namespace. Совпадает. ✓
→ Всё правильно... но не работает.
📊 ИНДУКЦИЯ – собираю факты, ищу паттерн
→ На одном раннере падает, на другом тоже.
→ В другом проекте тоже 403.
→ "Значит проблема глобальная? Может registry сломан?"
→ Нет, у других работает.
🔍 АБДУКЦИЯ – вижу симптом, строю гипотезу
→ "docker login проходит, а push – нет..."
→ "Что если login и push идут на РАЗНЫЕ хосты?"
Смотрим под капот:
login → registry.devitacademy.lab
push → registry.devitacademy.lab:443
Docker хранит пароль по ТОЧНОМУ имени хоста. Для него это два разных сервера. Login сохранил пароль для одного, push ищет пароль для другого. Не находит → идет как anonymous → получает 403.
✅ Убрали :443 из переменной. Заработало.
🎓 Откуда ноги растут? (Инженерная справка)
Термин абдукция ввёл Чарльз Сандерс Пирс – «отец» американской логики. Он доказал: дедукция и индукция не создают новых знаний. Пирс утверждал: Абдукция – это единственный вид логики, способный на озарение. Это когда вы видите странный результат и «догадываетесь», какое правило могло его вызвать. Это не 100% доказательство, а лучшее объяснение из имеющихся. Именно так работает мозг инженера, когда он связывает 403-ю ошибку с портом в URL.
📚 Причём тут цикл Колба?
Дэвид Колб описал, как мы учимся: Опыт → Рефлексия → Теория → Эксперимент.
Три типа мышления – это движки внутри этого цикла:
АБДУКЦИЯ на этапе рефлексии подкидывает гипотезу «почему».
ДЕДУКЦИЯ на этапе теории строит прогноз («если гипотеза верна, то в конфиге будет два ключа»).
ИНДУКЦИЯ после эксперимента превращает результат в правило.
Без абдукции цикл буксует: студент видит ошибку, но не может сформулировать «почему». Абдукция – это мост.
⚡️ Итого
Дедукция – Сила: надёжно. Слабость: нужно уже знать.
Индукция – Сила: учишься на опыте. Слабость: риск ложных корреляций.
Абдукция – Сила: работает в неизвестности. Слабость: гипотеза может быть неверной.
Джуну хватает дедукции. Мидл добавляет индукцию. Сеньор владеет абдукцией – формулирует гипотезы там, где лог молчит.
Абдукция тренируется. Каждая дебаг-сессия – это тренажёр.
📊 ОПРОС: На каком движке ты сегодня?
Ставь реакцию, которая лучше всего описывает твой подход к решению задач:
💯 — Дедукция. Читаю доку, делаю по ГОСТу.
🤔 — Индукция. Вижу знакомые грабли, ищу закономерности.
🤯 — Абдукция. Строю безумные гипотезы, когда всё горит.
👨💻 — Инженерный хаос. Некогда думать, просто копаю до победного!
Пиши в комментах самую дикую гипотезу, которая в итоге оказалась правильной 👇
#мышление #devops
Реальный кейс из обучения DevIT Academy.
Студент настраивает CI/CD. Docker-образ собирается, но push в GitLab Container Registry падает:
❌ 403 Forbidden
failed to fetch anonymous token
Три инженера решали бы эту задачу по-разному:
📐 ДЕДУКЦИЯ – знаю правило, применяю
"403 = нет прав"
→ Проверяю токен. Есть. ✓
→ Проверяю роли в проекте.
Maintainer. ✓
→ Проверяю namespace. Совпадает. ✓
→ Всё правильно... но не работает.
📊 ИНДУКЦИЯ – собираю факты, ищу паттерн
→ На одном раннере падает, на другом тоже.
→ В другом проекте тоже 403.
→ "Значит проблема глобальная? Может registry сломан?"
→ Нет, у других работает.
🔍 АБДУКЦИЯ – вижу симптом, строю гипотезу
→ "docker login проходит, а push – нет..."
→ "Что если login и push идут на РАЗНЫЕ хосты?"
Смотрим под капот:
login → registry.devitacademy.lab
push → registry.devitacademy.lab:443
Docker хранит пароль по ТОЧНОМУ имени хоста. Для него это два разных сервера. Login сохранил пароль для одного, push ищет пароль для другого. Не находит → идет как anonymous → получает 403.
✅ Убрали :443 из переменной. Заработало.
🎓 Откуда ноги растут? (Инженерная справка)
Термин абдукция ввёл Чарльз Сандерс Пирс – «отец» американской логики. Он доказал: дедукция и индукция не создают новых знаний. Пирс утверждал: Абдукция – это единственный вид логики, способный на озарение. Это когда вы видите странный результат и «догадываетесь», какое правило могло его вызвать. Это не 100% доказательство, а лучшее объяснение из имеющихся. Именно так работает мозг инженера, когда он связывает 403-ю ошибку с портом в URL.
📚 Причём тут цикл Колба?
Дэвид Колб описал, как мы учимся: Опыт → Рефлексия → Теория → Эксперимент.
Три типа мышления – это движки внутри этого цикла:
АБДУКЦИЯ на этапе рефлексии подкидывает гипотезу «почему».
ДЕДУКЦИЯ на этапе теории строит прогноз («если гипотеза верна, то в конфиге будет два ключа»).
ИНДУКЦИЯ после эксперимента превращает результат в правило.
Без абдукции цикл буксует: студент видит ошибку, но не может сформулировать «почему». Абдукция – это мост.
⚡️ Итого
Дедукция – Сила: надёжно. Слабость: нужно уже знать.
Индукция – Сила: учишься на опыте. Слабость: риск ложных корреляций.
Абдукция – Сила: работает в неизвестности. Слабость: гипотеза может быть неверной.
Джуну хватает дедукции. Мидл добавляет индукцию. Сеньор владеет абдукцией – формулирует гипотезы там, где лог молчит.
Абдукция тренируется. Каждая дебаг-сессия – это тренажёр.
📊 ОПРОС: На каком движке ты сегодня?
Ставь реакцию, которая лучше всего описывает твой подход к решению задач:
💯 — Дедукция. Читаю доку, делаю по ГОСТу.
🤔 — Индукция. Вижу знакомые грабли, ищу закономерности.
🤯 — Абдукция. Строю безумные гипотезы, когда всё горит.
👨💻 — Инженерный хаос. Некогда думать, просто копаю до победного!
Пиши в комментах самую дикую гипотезу, которая в итоге оказалась правильной 👇
#мышление #devops
👨💻6🤯2🔥1🤔1 1
🦀 Месяц на NORA: полёт нормальный
Месяц назад я полностью перевёз свои Docker-репозитории с GitLab Registry на NORA. Сейчас проект в реальной эксплуатации: на нём держится инфраструктура моей Академии (от движка LMS до внутренних сервисов и ArgoCD).
Как это работает в проде:
GitLab CI собирает образы -> использует NORA как buildx cache -> ArgoCD забирает готовые артефакты для деплоя. Нагрузка: 3 кластера, 9 нод. Если реестр ляжет, деплой встанет.
Про рекурсию:
Я собираю Нору самой же Норой. Прежде чем финальный образ улетает в паблик, он проходит через свой же инстанс как промежуточное хранилище. Такая вот петля в стиле Portal: бинарник сам себя порождает, сам же и хранит. Если в коде есть критичный баг, мой CI/CD сдохнет первым.
---
🛠 Что под капотом
Разделил функционал на то, что уже стабильно, и то, что пришлось допиливать по ходу дела.
Что работает давно (v0.1.x – v0.2.x):
Поддержка Docker, npm, Maven, PyPI, Cargo и Helm OCI.
Общий интерфейс хранилища: сделал абстракцию, чтобы прозрачно переключаться между локальным диском и S3.
Метрики Prometheus и простенькая админка.
---
Свежие правки (v0.2.25 – v0.2.27):
NORA_BODY_LIMIT_MB: вынес лимит размера слоев в конфиг (спасибо Shveik07 за фидбек).
Docker DELETE API: дописал поддержку удаления манифестов и блобов по спецификации V2.
SmartIpKeyExtractor: пофиксил Rate Limiter (v0.2.25), чтобы он не банил запросы от своей же инфры в K8s.
---
🚀 Планы и реестр
Этап v0.3 (с GC, аудитом и RBAC) по факту закрыт в ветке v0.2.x. Сейчас пилю OIDC/LDAP, потому что без нормальной авторизации в серьезный контур соваться нет смысла.
Параллельно готовлю документы для Реестра отечественного ПО.
---
Вопрос к тем, кто в теме:
Как вы ограничиваете размер Docker-образов на уровне реестра? Ставите жесткие лимиты или просто бьёте по рукам тех, кто пушит гигабайтные слои?
#кейс #rust
Месяц назад я полностью перевёз свои Docker-репозитории с GitLab Registry на NORA. Сейчас проект в реальной эксплуатации: на нём держится инфраструктура моей Академии (от движка LMS до внутренних сервисов и ArgoCD).
Как это работает в проде:
GitLab CI собирает образы -> использует NORA как buildx cache -> ArgoCD забирает готовые артефакты для деплоя. Нагрузка: 3 кластера, 9 нод. Если реестр ляжет, деплой встанет.
Про рекурсию:
Я собираю Нору самой же Норой. Прежде чем финальный образ улетает в паблик, он проходит через свой же инстанс как промежуточное хранилище. Такая вот петля в стиле Portal: бинарник сам себя порождает, сам же и хранит. Если в коде есть критичный баг, мой CI/CD сдохнет первым.
---
🛠 Что под капотом
Разделил функционал на то, что уже стабильно, и то, что пришлось допиливать по ходу дела.
Что работает давно (v0.1.x – v0.2.x):
Поддержка Docker, npm, Maven, PyPI, Cargo и Helm OCI.
Общий интерфейс хранилища: сделал абстракцию, чтобы прозрачно переключаться между локальным диском и S3.
Метрики Prometheus и простенькая админка.
---
Свежие правки (v0.2.25 – v0.2.27):
NORA_BODY_LIMIT_MB: вынес лимит размера слоев в конфиг (спасибо Shveik07 за фидбек).
Docker DELETE API: дописал поддержку удаления манифестов и блобов по спецификации V2.
SmartIpKeyExtractor: пофиксил Rate Limiter (v0.2.25), чтобы он не банил запросы от своей же инфры в K8s.
---
🚀 Планы и реестр
Этап v0.3 (с GC, аудитом и RBAC) по факту закрыт в ветке v0.2.x. Сейчас пилю OIDC/LDAP, потому что без нормальной авторизации в серьезный контур соваться нет смысла.
Параллельно готовлю документы для Реестра отечественного ПО.
---
Вопрос к тем, кто в теме:
Как вы ограничиваете размер Docker-образов на уровне реестра? Ставите жесткие лимиты или просто бьёте по рукам тех, кто пушит гигабайтные слои?
#кейс #rust
1🔥8❤1
Самописный софт работает идеально... пока его автор не уйдет в отпуск 😏
Передаю привет всем мкбешникам, которые в своё время пилили на Delphi замену Zabbix-у. Софт вышел по-настоящему «платиновым» – столько времени работодателя было вбухано в его создание, что на эти деньги можно было купить небольшой ЦОД. История максимально поучительная.
В инженерии есть старый принцип – Бритва Оккама. Если упростить: не плоди сущности без необходимости. Но когда у тебя в руках любимый ЯП и зоопарк из облаков, Proxmox и Windows, зуд «написать свое идеальное» пересиливает логику.
---
Реальность жестче:
Каждая строчка своего кода – это долг. Ты берешь его у будущего себя под огромный процент. Если дежурный админ не разберется в твоей поделке в 3 часа ночи без звонка тебе – ты создал проблему, а не решение.
Standard is the new sexy. Zabbix – скучно? Да. Ansible – банально? Возможно. Но у них есть доки, комьюнити и вменяемый бас-фактор. Инфраструктура не должна превращаться в тыкву, когда ты уезжаешь в отпуск.
---
Инженерная модель принятия решений
Чтобы не начудить, я прогоняю идеи через три фильтра:
Правило 72 часов. Пришла идея переписать HashiCorp Vault с нуля? Подожди три дня. (Вспоминаю февраль 2022-го, когда на волне импортозамещения нас так накрыло – вовремя отпустило... или нет 😏). Обычно за это время находится готовый инструмент или понимание, что задача того не стоит.
PoC с дедлайном 4 часа. Ставим готовое (тот же DeepFlow или NetBox). Не завелось за это время? Значит, либо инструмент хлам, либо ты пытаешься забить микроскопом гвоздь.
Док «для стажера». Если не можешь описать архитектуру в паре абзацев так, чтобы понял новичок – ты переусложнил.
---
Итого: Самый дорогой софт – это тот, который кажется «бесплатным», пока его пишет твой штатный инженер. Иногда лучший профессиональный навык – вовремя ударить себя по рукам и выбрать «скучное», но рабочее решение, чем плодить «платину» за чужой счет.
---
На каком уровне «велосипедостроения» находитесь вы или ваша команда? Голосуйте реакциями:
😁 Пишем скрипты-костыли, потому что «так быстрее».
🤗 Пытаемся переписать мировые стандарты, потому что «они тормозят».
😎 Используем скучный стандарт и спим по ночам.
---
В комментариях пишите про свой самый эпичный «велосипед», за который стыдно (или которым тайно гордитесь). 👇
#кейс #devops
Передаю привет всем мкбешникам, которые в своё время пилили на Delphi замену Zabbix-у. Софт вышел по-настоящему «платиновым» – столько времени работодателя было вбухано в его создание, что на эти деньги можно было купить небольшой ЦОД. История максимально поучительная.
В инженерии есть старый принцип – Бритва Оккама. Если упростить: не плоди сущности без необходимости. Но когда у тебя в руках любимый ЯП и зоопарк из облаков, Proxmox и Windows, зуд «написать свое идеальное» пересиливает логику.
---
Реальность жестче:
Каждая строчка своего кода – это долг. Ты берешь его у будущего себя под огромный процент. Если дежурный админ не разберется в твоей поделке в 3 часа ночи без звонка тебе – ты создал проблему, а не решение.
Standard is the new sexy. Zabbix – скучно? Да. Ansible – банально? Возможно. Но у них есть доки, комьюнити и вменяемый бас-фактор. Инфраструктура не должна превращаться в тыкву, когда ты уезжаешь в отпуск.
---
Инженерная модель принятия решений
Чтобы не начудить, я прогоняю идеи через три фильтра:
Правило 72 часов. Пришла идея переписать HashiCorp Vault с нуля? Подожди три дня. (Вспоминаю февраль 2022-го, когда на волне импортозамещения нас так накрыло – вовремя отпустило... или нет 😏). Обычно за это время находится готовый инструмент или понимание, что задача того не стоит.
PoC с дедлайном 4 часа. Ставим готовое (тот же DeepFlow или NetBox). Не завелось за это время? Значит, либо инструмент хлам, либо ты пытаешься забить микроскопом гвоздь.
Док «для стажера». Если не можешь описать архитектуру в паре абзацев так, чтобы понял новичок – ты переусложнил.
---
Итого: Самый дорогой софт – это тот, который кажется «бесплатным», пока его пишет твой штатный инженер. Иногда лучший профессиональный навык – вовремя ударить себя по рукам и выбрать «скучное», но рабочее решение, чем плодить «платину» за чужой счет.
---
На каком уровне «велосипедостроения» находитесь вы или ваша команда? Голосуйте реакциями:
😁 Пишем скрипты-костыли, потому что «так быстрее».
🤗 Пытаемся переписать мировые стандарты, потому что «они тормозят».
😎 Используем скучный стандарт и спим по ночам.
---
В комментариях пишите про свой самый эпичный «велосипед», за который стыдно (или которым тайно гордитесь). 👇
#кейс #devops
😁4😎2💯1🤗1
⚡️ DevOps Digest #1 | 06.03.2026
🔥 Главное:
1. Crossplane и ИИ: платформы должны предоставлять API, а не интерфейсы. Узкое место – не написание кода, а то что происходит после отправки в репозиторий: развёртывание, проверка политик, координация. ИИ-агентам нужны декларативные API и машиночитаемые правила, а не вики и ручные процессы.
🔗 https://blog.crossplane.io/crossplane-ai-the-case-for-api-first-infrastructure/
2. jailed-agents – Nix-песочница для ИИ-агентов кодинга на базе bubblewrap. Агент работает в среде «нулевого доверия» без доступа к SSH-ключам, домашнему каталогу и секретам. Актуально для всех, кто запускает ИИ-ассистентов на своей машине.
🔗 https://github.com/andersonjoseph/jailed-agents
3. Кейс: самообслуживание в наблюдаемости через OpenTelemetry. Платформенная команда встроила OTel в SDK и обслуживает 90+ внутренних команд. Политики вместо инструкций дали единый стандарт телеметрии и 4-кратный рост пропускной способности.
🔗 https://platformengineering.org/blog/self-service-observability
4. devenv 2.0 – обновлённый интерфейс к Nix для разработческих окружений. Один файл devenv.nix описывает зависимости, сервисы и переменные. Воспроизводимые среды без контейнеров, теперь с упрощённой конфигурацией.
🔗 https://devenv.sh
5. Масштабирование GitOps: от одного кластера до 50+. Практическое руководство по OCI-артефактам как хранилищу состояния, топологиям управления парком кластеров и стратегиям работы с секретами и политиками на уровне предприятия.
🔗 https://platformengineering.org/blog/how-to-scale-gitops-in-the-enterprise
🔍 Почему платформа должна говорить на языке API
Тезис Crossplane попадает в точку: ИИ-агенты уже встраиваются в инженерные процессы, но большинство платформ построены для людей – с интерфейсами, неформализованными знаниями в вики и ручной координацией между командами. Если инфраструктура не описана декларативно и не доступна программно, агент упрётся в стену. Практический вывод: убедитесь, что политики живут в коде (OPA, Kyverno), состояние описано через API (Crossplane, Terraform), а зависимости обнаруживаемы – тогда ИИ станет помощником, а не игрушкой.
🛠 Команда дня:
Показывает разницу между желаемым состоянием в файлах и фактическим в кластере – ловит расхождения до применения.
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
#дайджест #devops
🔥 Главное:
1. Crossplane и ИИ: платформы должны предоставлять API, а не интерфейсы. Узкое место – не написание кода, а то что происходит после отправки в репозиторий: развёртывание, проверка политик, координация. ИИ-агентам нужны декларативные API и машиночитаемые правила, а не вики и ручные процессы.
🔗 https://blog.crossplane.io/crossplane-ai-the-case-for-api-first-infrastructure/
2. jailed-agents – Nix-песочница для ИИ-агентов кодинга на базе bubblewrap. Агент работает в среде «нулевого доверия» без доступа к SSH-ключам, домашнему каталогу и секретам. Актуально для всех, кто запускает ИИ-ассистентов на своей машине.
🔗 https://github.com/andersonjoseph/jailed-agents
3. Кейс: самообслуживание в наблюдаемости через OpenTelemetry. Платформенная команда встроила OTel в SDK и обслуживает 90+ внутренних команд. Политики вместо инструкций дали единый стандарт телеметрии и 4-кратный рост пропускной способности.
🔗 https://platformengineering.org/blog/self-service-observability
4. devenv 2.0 – обновлённый интерфейс к Nix для разработческих окружений. Один файл devenv.nix описывает зависимости, сервисы и переменные. Воспроизводимые среды без контейнеров, теперь с упрощённой конфигурацией.
🔗 https://devenv.sh
5. Масштабирование GitOps: от одного кластера до 50+. Практическое руководство по OCI-артефактам как хранилищу состояния, топологиям управления парком кластеров и стратегиям работы с секретами и политиками на уровне предприятия.
🔗 https://platformengineering.org/blog/how-to-scale-gitops-in-the-enterprise
🔍 Почему платформа должна говорить на языке API
Тезис Crossplane попадает в точку: ИИ-агенты уже встраиваются в инженерные процессы, но большинство платформ построены для людей – с интерфейсами, неформализованными знаниями в вики и ручной координацией между командами. Если инфраструктура не описана декларативно и не доступна программно, агент упрётся в стену. Практический вывод: убедитесь, что политики живут в коде (OPA, Kyverno), состояние описано через API (Crossplane, Terraform), а зависимости обнаруживаемы – тогда ИИ станет помощником, а не игрушкой.
🛠 Команда дня:
kubectl diff -f manifests/
Показывает разницу между желаемым состоянием в файлах и фактическим в кластере – ловит расхождения до применения.
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
#дайджест #devops
The Crossplane Blog
Crossplane & AI: The Case for API-First Infrastructure
AI has accelerated coding, but the real bottleneck starts after git push. Infrastructure and operations still rely on fragmented, human workflows. To enable AI agents, platforms must be API-first and declarative, offering a consistent, machine-readable control…
❤1🔥1
🛠 CMDB в 2026: как не поехать кукухой и сделать по-взрослому
Если при слове «учет ресурсов» ты представляешь пыльный Excel или монструозный ServiceNow, где данные протухают быстрее, чем ты жмешь Enter, выдыхай. В эпоху IaC старая добрая CMDB либо сдохла, либо мутировала в нечто полезное.
Разбираем три пути, как не плодить сущности и не врать самому себе.
---
🏠 Сценарий 1: Свой «ламповый» ЦОД (Proxmox, железо, виртуалки)
Где живет правда: Git-репозиторий. Terraform/OpenTofu рулит виртуалками, Ansible – конфигами.
Что прикрутить сверху:
– Каталог сервисов в Git – просто YAML-файлы в папке /catalog. Там пишем то, что код не знает: кто «папа» сервиса (owner), какой SLA и насколько всё бахнет, если сервис приляжет (критичность).
– Netbox – золотой стандарт для физики. Стойки, кабели, IP-план и VLAN-ы. Дружит с API, так что Ansible сам заберет оттуда нужный IP.
– Карта зависимостей – собирается полуавтоматом из состояния (state) Терраформа и API Кубера. Смотреть можно через Node Graph panel в Графане или рендерить Mermaid-схемы прямо в Git.
– Контроль «левака»: Запускаем terraform plan по расписанию. Если кто-то залез руками и что-то поменял – ловим алерт в телегу (drift detection).
---
☁️ Сценарий 2: Живем в облаках (AWS, Yandex Cloud и прочие)
Где живет правда: Удаленный бэкенд Терраформа с блокировкой (для Yandex Cloud будет Object Storage + YDB/PostgreSQL или S3+DynamoDB для AWS или аналоги).
Что прикрутить сверху:
– Родные инструменты – AWS Config или YC Asset Inventory. Облако и так знает про все твои железки, не дублируй – используй.
– Backstage или Port (free tier) – витрина для разработчика. Зашел и сразу видишь: вот сервис, вот его код, вот дока.
– Политика тегов – это и есть твоя CMDB. Тегаем всё: кто владелец, какой проект и сколько денег тратим. Натравливаем OPA/Conftest на пайплайн: нет тегов – не будет тебе деплоя.
– FinOps – когда теги на месте, сразу видно, кто натыкал лишних дисков на пару косарей зелени в месяц.
---
🥗 Сценарий 3: Винегрет (Облако + Своё + Наследие)
Самый распространённый случай. Правда размазана: облако в Терраформе, конфиги в Ансибле, Кубер в Арго, а «древнее зло» – в голове у админа.
Как выжить:
– Единое окно (Backstage) – агрегатор, который ничего не меняет, но всё показывает через плагины.
– Вариант для экономных: Скрипт-собиратор, который раз в час опрашивает все API, валидирует по JSON Schema и обновляет YAML-файлы в гите. Дешево и можно грепать.
– Главное правило: В агрегаторе ничего не трогаем руками! Хочешь изменений – иди в код. Иначе через неделю у тебя будет два вранья вместо одной правды.
---
💡 Коротко: что делать, а что – нет
✅ Надо:
– Хранить бизнес-данные (кто крайний, какой SLA) рядом с кодом.
– Автоматизировать поиск ресурсов (Discovery).
– Бить по рукам в CI за отсутствие тегов ресурсов.
– Ловить расхождения (drift) через алерты.
❌ Не надо:
– Вести учет руками в Excel/ServiceNow (смерти подобно).
– Заводить отдельные записи на каждый контейнер или лямбду (бессмысленно).
– Надеяться, что «потом заполним» (не заполните).
Итого: CMDB мертва, Service Catalog жив. Source of truth – в коде, бизнес-контекст – рядом, агрегация – автоматическая.
---
👇 А как у вас?
🏠 — Своё железо, Netbox, Git-каталог
☁️ — Облако, теги решают всё
💪 — Винегрет, Backstage спасает
🤡 — Excel + «Михалыч помнит»
---
#мышление #devops
Если при слове «учет ресурсов» ты представляешь пыльный Excel или монструозный ServiceNow, где данные протухают быстрее, чем ты жмешь Enter, выдыхай. В эпоху IaC старая добрая CMDB либо сдохла, либо мутировала в нечто полезное.
Разбираем три пути, как не плодить сущности и не врать самому себе.
---
🏠 Сценарий 1: Свой «ламповый» ЦОД (Proxmox, железо, виртуалки)
Где живет правда: Git-репозиторий. Terraform/OpenTofu рулит виртуалками, Ansible – конфигами.
Что прикрутить сверху:
– Каталог сервисов в Git – просто YAML-файлы в папке /catalog. Там пишем то, что код не знает: кто «папа» сервиса (owner), какой SLA и насколько всё бахнет, если сервис приляжет (критичность).
– Netbox – золотой стандарт для физики. Стойки, кабели, IP-план и VLAN-ы. Дружит с API, так что Ansible сам заберет оттуда нужный IP.
– Карта зависимостей – собирается полуавтоматом из состояния (state) Терраформа и API Кубера. Смотреть можно через Node Graph panel в Графане или рендерить Mermaid-схемы прямо в Git.
– Контроль «левака»: Запускаем terraform plan по расписанию. Если кто-то залез руками и что-то поменял – ловим алерт в телегу (drift detection).
---
☁️ Сценарий 2: Живем в облаках (AWS, Yandex Cloud и прочие)
Где живет правда: Удаленный бэкенд Терраформа с блокировкой (для Yandex Cloud будет Object Storage + YDB/PostgreSQL или S3+DynamoDB для AWS или аналоги).
Что прикрутить сверху:
– Родные инструменты – AWS Config или YC Asset Inventory. Облако и так знает про все твои железки, не дублируй – используй.
– Backstage или Port (free tier) – витрина для разработчика. Зашел и сразу видишь: вот сервис, вот его код, вот дока.
– Политика тегов – это и есть твоя CMDB. Тегаем всё: кто владелец, какой проект и сколько денег тратим. Натравливаем OPA/Conftest на пайплайн: нет тегов – не будет тебе деплоя.
– FinOps – когда теги на месте, сразу видно, кто натыкал лишних дисков на пару косарей зелени в месяц.
---
🥗 Сценарий 3: Винегрет (Облако + Своё + Наследие)
Самый распространённый случай. Правда размазана: облако в Терраформе, конфиги в Ансибле, Кубер в Арго, а «древнее зло» – в голове у админа.
Как выжить:
– Единое окно (Backstage) – агрегатор, который ничего не меняет, но всё показывает через плагины.
– Вариант для экономных: Скрипт-собиратор, который раз в час опрашивает все API, валидирует по JSON Schema и обновляет YAML-файлы в гите. Дешево и можно грепать.
– Главное правило: В агрегаторе ничего не трогаем руками! Хочешь изменений – иди в код. Иначе через неделю у тебя будет два вранья вместо одной правды.
---
💡 Коротко: что делать, а что – нет
✅ Надо:
– Хранить бизнес-данные (кто крайний, какой SLA) рядом с кодом.
– Автоматизировать поиск ресурсов (Discovery).
– Бить по рукам в CI за отсутствие тегов ресурсов.
– Ловить расхождения (drift) через алерты.
❌ Не надо:
– Вести учет руками в Excel/ServiceNow (смерти подобно).
– Заводить отдельные записи на каждый контейнер или лямбду (бессмысленно).
– Надеяться, что «потом заполним» (не заполните).
Итого: CMDB мертва, Service Catalog жив. Source of truth – в коде, бизнес-контекст – рядом, агрегация – автоматическая.
---
👇 А как у вас?
🏠 — Своё железо, Netbox, Git-каталог
☁️ — Облако, теги решают всё
💪 — Винегрет, Backstage спасает
🤡 — Excel + «Михалыч помнит»
---
#мышление #devops
🤡4❤1 1 1 1
⚡️ DevOps Digest #2 | 10.03.2026
🔥 Главное:
1. uutils Coreutils 0.7 – GNU-утилиты на Rust – вышел новый релиз альтернативной реализации coreutils на Rust. Более 100 утилит (sort, cp, chmod, ls и др.) теперь работают кроссплатформенно, включая Windows и Fuchsia. Проект зреет и всё ближе к продакшн-применению.
opennet.ru
2. FreeBSD 14.4 – стабильный релиз – после 9 месяцев разработки вышла новая версия с образами для amd64, aarch64, riscv64 и готовыми сборками для виртуализации (QCOW2, VHD, VMDK). Актуально для тех, кто использует FreeBSD в сетевых устройствах и серверах хранения.
opennet.ru
3. Атака через npm-пакет Cline – 4000 заражённых машин – злоумышленники внедрили скрытую зависимость в package.json популярного ИИ-ассистента. Одна строчка
habr.com
4. Self-hosted дашборд для GitHub Actions – Snorlx – инструмент для централизованного мониторинга CI/CD пайплайнов с обновлениями в реальном времени по всем репозиториям. Разворачивается на своей инфраструктуре, без привязки к внешним сервисам.
https://github.com/banshee86vr/snorlx
5. Открытый сервер для мессенджера MAX и ТамТам – энтузиасты написали на Python собственную реализацию серверной части через обратный инжиниринг протокола. Поддерживает MariaDB, MySQL, SQLite. Код под лицензией BSD – интересный пример импортонезависимого подхода.
opennet.ru
🔍 Безопасность цепочки поставок – проблема не уходит
Инцидент с Cline показывает, что атака через
🛠 Команда дня:
Запрещает выполнение lifecycle-скриптов (preinstall, postinstall, prepare) при npm install.
Это снижает риск supply-chain атак, когда вредоносный пакет запускает код во время установки.
⚠️ Но многие пакеты используют postinstall, поэтому включать стоит осознанно.
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
#дайджест #devops
🔥 Главное:
1. uutils Coreutils 0.7 – GNU-утилиты на Rust – вышел новый релиз альтернативной реализации coreutils на Rust. Более 100 утилит (sort, cp, chmod, ls и др.) теперь работают кроссплатформенно, включая Windows и Fuchsia. Проект зреет и всё ближе к продакшн-применению.
opennet.ru
2. FreeBSD 14.4 – стабильный релиз – после 9 месяцев разработки вышла новая версия с образами для amd64, aarch64, riscv64 и готовыми сборками для виртуализации (QCOW2, VHD, VMDK). Актуально для тех, кто использует FreeBSD в сетевых устройствах и серверах хранения.
opennet.ru
3. Атака через npm-пакет Cline – 4000 заражённых машин – злоумышленники внедрили скрытую зависимость в package.json популярного ИИ-ассистента. Одна строчка
postinstall установила стороннего агента с полным доступом к системе. 8 часов до обнаружения.habr.com
4. Self-hosted дашборд для GitHub Actions – Snorlx – инструмент для централизованного мониторинга CI/CD пайплайнов с обновлениями в реальном времени по всем репозиториям. Разворачивается на своей инфраструктуре, без привязки к внешним сервисам.
https://github.com/banshee86vr/snorlx
5. Открытый сервер для мессенджера MAX и ТамТам – энтузиасты написали на Python собственную реализацию серверной части через обратный инжиниринг протокола. Поддерживает MariaDB, MySQL, SQLite. Код под лицензией BSD – интересный пример импортонезависимого подхода.
opennet.ru
🔍 Безопасность цепочки поставок – проблема не уходит
Инцидент с Cline показывает, что атака через
postinstall-скрипты в npm остаётся тривиальной. Ни один аудит зависимостей не спасёт, если вы автоматически обновляете пакеты без проверки diff. Практический вывод: используйте npm audit, lockfile-ы, а в CI – запрет произвольных postinstall-скриптов через .npmrc с ignore-scripts=true и явный whitelist.🛠 Команда дня:
npm config set ignore-scripts true
Запрещает выполнение lifecycle-скриптов (preinstall, postinstall, prepare) при npm install.
Это снижает риск supply-chain атак, когда вредоносный пакет запускает код во время установки.
⚠️ Но многие пакеты используют postinstall, поэтому включать стоит осознанно.
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
#дайджест #devops
www.opennet.ru
Выпуск uutils 0.7, варианта GNU Coreutils на языке Rust
Опубликован выпуск проекта uutils coreutils 0.7.0 (Rust Coreutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id,…
🔥2❤1