Гофер теперь живёт в NORA
NORA v0.3.0 — Go модули из коробки.
Одна строчка:
GOPROXY=https://your-nora:5000/go go build ./...
И все зависимости кэшируются у тебя.
Без Nexus, без Artifactory.
Что ещё в релизе:
→ Токены теперь Argon2id (SHA256 автомиграция, ты ничего не делаешь)
→ Retry при 5xx от upstream (Maven, npm, PyPI)
→ Интеграционные тесты: Docker push/pull, npm install — всё E2E
→ UI: все 7 реестров на одном дашборде
7 реестров. 32 МБ. Ноль зависимостей.
Docker · Maven · npm · Cargo · PyPI · Go · Raw
Полный changelog → @getnora
#кейс #rust
NORA v0.3.0 — Go модули из коробки.
Одна строчка:
GOPROXY=https://your-nora:5000/go go build ./...
И все зависимости кэшируются у тебя.
Без Nexus, без Artifactory.
Что ещё в релизе:
→ Токены теперь Argon2id (SHA256 автомиграция, ты ничего не делаешь)
→ Retry при 5xx от upstream (Maven, npm, PyPI)
→ Интеграционные тесты: Docker push/pull, npm install — всё E2E
→ UI: все 7 реестров на одном дашборде
7 реестров. 32 МБ. Ноль зависимостей.
Docker · Maven · npm · Cargo · PyPI · Go · Raw
Полный changelog → @getnora
#кейс #rust
🔥6
⚡️ DevOps Digest #8 | 31.03.2026
🔥 Главное:
1. Компрометация axios в npm – в популярнейшую HTTP-библиотеку (83 млн загрузок в неделю) через захват аккаунта мейнтейнера внедрили троян удалённого доступа. Третья крупная атака на цепочку поставок за неделю после LiteLLM и Telnyx.
🔗 https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan
2. Microsoft Copilot вставляет рекламу в pull-запросы – ИИ-ассистент начал добавлять рекламу лаунчера Raycast в описания PR на GitHub и GitLab. Обнаружено уже 1,5 млн затронутых pull-запросов.
🔗 https://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/
3. Ubuntu продолжает переход на Rust – в версии 26.10 интегрируют NTP-сервер ntpd-rs, который уже используется в Let's Encrypt. Это третий Rust-компонент после Coreutils и sudo-rs. Заодно уберут поддержку Btrfs, XFS, ZFS и LVM в /boot.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65092
4. Beszel – легковесный мониторинг серверов на Go с историей метрик, статистикой Docker-контейнеров и алертами. Разворачивается на своих серверах, минимальные требования к ресурсам.
🔗 https://github.com/henrygd/beszel
5. Как превратить, что угодно в роутер – подробное руководство по настройке маршрутизации на Linux: iptables, NAT, DHCP, DNS. Полезно для лабораторий и изолированных площадок.
🔗 https://nbailey.ca/post/router/
6. Анонимизация данных с прода в «Гринатоме» – опыт внедрения security-лейблов в Postgres Pro Enterprise для безопасного тестирования на реальных данных. Почему синтетика не заменяет реальный массив и как не нарушить 152-ФЗ.
🔗 https://habr.com/ru/companies/greenatom/articles/1014942/
🔍 Три атаки на цепочку поставок за неделю
axios (npm), LiteLLM и Telnyx (PyPI) – все скомпрометированы через захват аккаунтов мейнтейнеров. Паттерн одинаковый: получают доступ к учётке, публикуют вредоносную версию, собирают секреты из окружения и рабочих директорий жертвы. Двухфакторная аутентификация на всех реестрах пакетов – не рекомендация, а обязательное требование. Для критичных зависимостей пинните хеши и проверяйте подписи.
🛠 Команда дня:
Мгновенный снимок потребления ресурсов всех контейнеров: CPU, память, сеть.
#дайджест #security #devops
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное:
1. Компрометация axios в npm – в популярнейшую HTTP-библиотеку (83 млн загрузок в неделю) через захват аккаунта мейнтейнера внедрили троян удалённого доступа. Третья крупная атака на цепочку поставок за неделю после LiteLLM и Telnyx.
🔗 https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan
2. Microsoft Copilot вставляет рекламу в pull-запросы – ИИ-ассистент начал добавлять рекламу лаунчера Raycast в описания PR на GitHub и GitLab. Обнаружено уже 1,5 млн затронутых pull-запросов.
🔗 https://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/
3. Ubuntu продолжает переход на Rust – в версии 26.10 интегрируют NTP-сервер ntpd-rs, который уже используется в Let's Encrypt. Это третий Rust-компонент после Coreutils и sudo-rs. Заодно уберут поддержку Btrfs, XFS, ZFS и LVM в /boot.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65092
4. Beszel – легковесный мониторинг серверов на Go с историей метрик, статистикой Docker-контейнеров и алертами. Разворачивается на своих серверах, минимальные требования к ресурсам.
🔗 https://github.com/henrygd/beszel
5. Как превратить, что угодно в роутер – подробное руководство по настройке маршрутизации на Linux: iptables, NAT, DHCP, DNS. Полезно для лабораторий и изолированных площадок.
🔗 https://nbailey.ca/post/router/
6. Анонимизация данных с прода в «Гринатоме» – опыт внедрения security-лейблов в Postgres Pro Enterprise для безопасного тестирования на реальных данных. Почему синтетика не заменяет реальный массив и как не нарушить 152-ФЗ.
🔗 https://habr.com/ru/companies/greenatom/articles/1014942/
🔍 Три атаки на цепочку поставок за неделю
axios (npm), LiteLLM и Telnyx (PyPI) – все скомпрометированы через захват аккаунтов мейнтейнеров. Паттерн одинаковый: получают доступ к учётке, публикуют вредоносную версию, собирают секреты из окружения и рабочих директорий жертвы. Двухфакторная аутентификация на всех реестрах пакетов – не рекомендация, а обязательное требование. Для критичных зависимостей пинните хеши и проверяйте подписи.
🛠 Команда дня:
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"Мгновенный снимок потребления ресурсов всех контейнеров: CPU, память, сеть.
#дайджест #security #devops
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
www.stepsecurity.io
axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity
Hijacked maintainer account used to publish poisoned axios releases including 1.14.1 and 0.30.4. The attacker injected a hidden dependency that drops a cross platform RAT. We are actively investigating and will update this post with a full technical analysis.
🔥3
Запускаю КМБ — Курс молодого бойца
Linux-администратор с нуля. Путь в DevOps через практику.
Для тех, кто хочет в IT, но не знает с чего начать.
Что внутри:
— Несколько Linux-серверов: веб-сервер, приложение, база данных — как в реальной компании
— AI-наставник прямо в терминале
— Реальные задачи, не видеолекции
— 24 недели от «что такое терминал» до «поднял и обслуживаю веб-приложение»
Для кого:
— Хочешь сменить профессию на IT
— Нет опыта — не проблема
— Совмещаешь с работой — темп гибкий
После КМБ — готов к работе Linux-администратором или к DevOps-интенсиву
Подробности: devitacademy.com/kmb
Заявка: DevITWay@gmail.com
Звонок: +7 924 077-81-83
ТГ: @devitway_pavel
#курс #linux
Linux-администратор с нуля. Путь в DevOps через практику.
Для тех, кто хочет в IT, но не знает с чего начать.
Что внутри:
— Несколько Linux-серверов: веб-сервер, приложение, база данных — как в реальной компании
— AI-наставник прямо в терминале
— Реальные задачи, не видеолекции
— 24 недели от «что такое терминал» до «поднял и обслуживаю веб-приложение»
Для кого:
— Хочешь сменить профессию на IT
— Нет опыта — не проблема
— Совмещаешь с работой — темп гибкий
После КМБ — готов к работе Linux-администратором или к DevOps-интенсиву
Подробности: devitacademy.com/kmb
Заявка: DevITWay@gmail.com
Звонок: +7 924 077-81-83
ТГ: @devitway_pavel
#курс #linux
🔥3👍2🙏1
NORA теперь в Awesome Docker 🐳
Короткий апдейт: мой PR в awesome-docker вчера ночью успешно смерджили. Теперь NORA официально числится в списке годного инструментария для работы с контейнерами.
Приятно, что подход к производительности и минимализм на Rust находят отклик. Для тех, кто следит за версией 0.3.0: это хороший маркер, что двигаемся в правильном направлении.
И нет, это не первоапрельская шутка. Ссылка в репозитории уже живая.
Работаем дальше.
P.S. В репозитории висит несколько открытых ишуек, если есть желание поконтрибьютить, залетайте.
#кейс #rust
Короткий апдейт: мой PR в awesome-docker вчера ночью успешно смерджили. Теперь NORA официально числится в списке годного инструментария для работы с контейнерами.
Приятно, что подход к производительности и минимализм на Rust находят отклик. Для тех, кто следит за версией 0.3.0: это хороший маркер, что двигаемся в правильном направлении.
И нет, это не первоапрельская шутка. Ссылка в репозитории уже живая.
Работаем дальше.
P.S. В репозитории висит несколько открытых ишуек, если есть желание поконтрибьютить, залетайте.
#кейс #rust
👍4❤2🔥1
Round Robin — свинья на дежурство
Дефолтная балансировка в большинстве систем, и никто его не трогает, «потому что работает же». До первой нормальной нагрузки.
Допустим у нас есть три сервера. Один пускай будет «ветеран» на HDD, который выжил чисто случайно, и два бодрых на NVMe. Пятница, вечер, трафик делает x3.
Round Robin честно пилит запросы поровну. Ему фиолетово, что старый диск захлёбывается. В итоге: очередь растёт, время ответа улетает в потолок, а треть твоих юзеров ловит таймауты. Ты в это время ловишь алерты и пытаешься понять, почему всё горит, если два сервера из трёх почти простаивают.
Least Connections эту драму даже не заметит. Он видит, что одна нода тормозит, и просто перестаёт на неё лить. Всё. Тишина и спокойствие.
Чтобы не объяснять это на пальцах, я собрал симулятор. Там наглядно видно, как ложится сервис при разных раскладах: смерть ноды, скачок трафика или просто тормозной бэкенд. Зайти и бахнуть трафиком можно тут:
👉 sim.devitacademy.com
Посмотрите, как ведут себя алгоритмы под нагрузкой. Разница видна секунд за 30, без регистрации и смс, как говорится.
#кейс #devops
Дефолтная балансировка в большинстве систем, и никто его не трогает, «потому что работает же». До первой нормальной нагрузки.
Допустим у нас есть три сервера. Один пускай будет «ветеран» на HDD, который выжил чисто случайно, и два бодрых на NVMe. Пятница, вечер, трафик делает x3.
Round Robin честно пилит запросы поровну. Ему фиолетово, что старый диск захлёбывается. В итоге: очередь растёт, время ответа улетает в потолок, а треть твоих юзеров ловит таймауты. Ты в это время ловишь алерты и пытаешься понять, почему всё горит, если два сервера из трёх почти простаивают.
Least Connections эту драму даже не заметит. Он видит, что одна нода тормозит, и просто перестаёт на неё лить. Всё. Тишина и спокойствие.
Чтобы не объяснять это на пальцах, я собрал симулятор. Там наглядно видно, как ложится сервис при разных раскладах: смерть ноды, скачок трафика или просто тормозной бэкенд. Зайти и бахнуть трафиком можно тут:
👉 sim.devitacademy.com
Посмотрите, как ведут себя алгоритмы под нагрузкой. Разница видна секунд за 30, без регистрации и смс, как говорится.
#кейс #devops
🔥6
Первая статья на Хабре
Да, я понимаю иронию – писать в Telegram о том, что Telegram заблокировали. Для личного пользования все всё понимают. Но когда приходит аудит и слово «регламент» – VPN на сервере мониторинга перестаёт быть решением.
Telegram замедляли с февраля, в апреле заблокировали окончательно. Алерты из Zabbix перестали доходить.
Кто когда-то строил ChatOps на Mattermost, а потом смотрел как его сворачивают и заменяют на то, что никогда не закроет потребности дежурной смены – тот понимает, зачем нужен свой канал доставки.
Я написал Pusk – self-hosted сервер алертов на Go + SQLite. Один бинарник, мимикрирует под Telegram Bot API. Чтобы переехать, достаточно поменять base_url в конфиге бота – он продолжит работать, не зная, что под капотом уже не Telegram.
На Хабре разложил архитектуру:
— Почему один бинарник с SQLite, а не Mattermost с Postgres на полгига RAM.
— ACK алертов: дежурный нажал кнопку → Alertmanager создал silence автоматически. Видно, кто взял инцидент.
— WebSocket-relay для ботов за NAT — без ngrok и обратных туннелей.
— Что не сделано и почему.
В статье написано 16 МБ – пока была на модерации, собачка немного подросла. Но всё ещё не Mattermost.
Если алерты летят через VPN в заблокированный мессенджер – возможно пригодится.
👉 Статья: habr.com/ru/articles/1018932/
💻 Код: github.com/getpusk/pusk
#кейс #devops
Да, я понимаю иронию – писать в Telegram о том, что Telegram заблокировали. Для личного пользования все всё понимают. Но когда приходит аудит и слово «регламент» – VPN на сервере мониторинга перестаёт быть решением.
Telegram замедляли с февраля, в апреле заблокировали окончательно. Алерты из Zabbix перестали доходить.
Кто когда-то строил ChatOps на Mattermost, а потом смотрел как его сворачивают и заменяют на то, что никогда не закроет потребности дежурной смены – тот понимает, зачем нужен свой канал доставки.
Я написал Pusk – self-hosted сервер алертов на Go + SQLite. Один бинарник, мимикрирует под Telegram Bot API. Чтобы переехать, достаточно поменять base_url в конфиге бота – он продолжит работать, не зная, что под капотом уже не Telegram.
На Хабре разложил архитектуру:
— Почему один бинарник с SQLite, а не Mattermost с Postgres на полгига RAM.
— ACK алертов: дежурный нажал кнопку → Alertmanager создал silence автоматически. Видно, кто взял инцидент.
— WebSocket-relay для ботов за NAT — без ngrok и обратных туннелей.
— Что не сделано и почему.
В статье написано 16 МБ – пока была на модерации, собачка немного подросла. Но всё ещё не Mattermost.
Если алерты летят через VPN в заблокированный мессенджер – возможно пригодится.
👉 Статья: habr.com/ru/articles/1018932/
💻 Код: github.com/getpusk/pusk
#кейс #devops
🔥8
⚡️ DevOps Digest #9 | 03.04.2026
🔥 Главное:
1. Релиз OpenSSH 10.3 – исправлены уязвимости инъекции команд через ProxyJump, улучшена производительность алгоритма sntrup761, добавлена поддержка субсекундных блокировок в PerSourcePenalties. Обновление обязательно для всех.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65126
2. Компрометация NPM-пакета axios (100 млн загрузок/неделю) – через социальную инженерию атакующие захватили аккаунт мейнтейнера и внедрили бэкдор в версии 1.14.1 и 0.30.4. Вредоносный код распространялся ~3 часа. Проверьте зависимости и зафиксируйте версии.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65134
3. Containerd 2.2.0 ломает NixOS-контейнеры – из-за ужесточения валидации путей в Go 1.24 контейнеры с абсолютными симлинками на
🔗 https://github.com/containerd/containerd/issues/12683
4. Оптимизация холодного старта контейнеров: с 5 секунд до 480 мс – подробный разбор: сжатие образов, многоступенчатая сборка, Alpine/Distroless, отложенная загрузка зависимостей. Экономия 35% на вычислительных ресурсах.
🔗 https://dev.to/garrett_yan/optimizing-container-cold-starts-from-5s-to-500ms-484c
5. Tabby – автономный ИИ-ассистент для написания кода на Rust – open-source альтернатива GitHub Copilot для локального развёртывания. Поддерживает RAG-автодополнение с контекстом репозитория, интеграцию с GitLab/GitHub, работает на потребительских GPU.
🔗 https://github.com/TabbyML/tabby
6. Tunnelto – туннелирование локальных сервисов на Rust – лёгкая альтернатива ngrok без привязки к вендору. Асинхронный ввод-вывод на Tokio, поддержка собственных поддоменов, возможность развернуть свой сервер.
🔗 https://github.com/agrinman/tunnelto
🔍 Атака на цепочку поставок: уроки компрометации axios
Мейнтейнер раскрыл детали: его взломали через классическую социальную инженерию – тот же метод, что использовался против разработчиков криптокошельков. Это третья крупная атака на NPM за полгода. Выводы для команд: включите 2FA на всех реестрах пакетов, используйте
🛠 Команда дня:
Проверяет криптографические подписи установленных NPM-пакетов – поможет обнаружить подменённые версии.
#дайджест #security #rust
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное:
1. Релиз OpenSSH 10.3 – исправлены уязвимости инъекции команд через ProxyJump, улучшена производительность алгоритма sntrup761, добавлена поддержка субсекундных блокировок в PerSourcePenalties. Обновление обязательно для всех.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65126
2. Компрометация NPM-пакета axios (100 млн загрузок/неделю) – через социальную инженерию атакующие захватили аккаунт мейнтейнера и внедрили бэкдор в версии 1.14.1 и 0.30.4. Вредоносный код распространялся ~3 часа. Проверьте зависимости и зафиксируйте версии.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65134
3. Containerd 2.2.0 ломает NixOS-контейнеры – из-за ужесточения валидации путей в Go 1.24 контейнеры с абсолютными симлинками на
/etc/passwd перестают запускаться. Не обновляйте k3s до 1.35.3, если используете NixOS-образы.🔗 https://github.com/containerd/containerd/issues/12683
4. Оптимизация холодного старта контейнеров: с 5 секунд до 480 мс – подробный разбор: сжатие образов, многоступенчатая сборка, Alpine/Distroless, отложенная загрузка зависимостей. Экономия 35% на вычислительных ресурсах.
🔗 https://dev.to/garrett_yan/optimizing-container-cold-starts-from-5s-to-500ms-484c
5. Tabby – автономный ИИ-ассистент для написания кода на Rust – open-source альтернатива GitHub Copilot для локального развёртывания. Поддерживает RAG-автодополнение с контекстом репозитория, интеграцию с GitLab/GitHub, работает на потребительских GPU.
🔗 https://github.com/TabbyML/tabby
6. Tunnelto – туннелирование локальных сервисов на Rust – лёгкая альтернатива ngrok без привязки к вендору. Асинхронный ввод-вывод на Tokio, поддержка собственных поддоменов, возможность развернуть свой сервер.
🔗 https://github.com/agrinman/tunnelto
🔍 Атака на цепочку поставок: уроки компрометации axios
Мейнтейнер раскрыл детали: его взломали через классическую социальную инженерию – тот же метод, что использовался против разработчиков криптокошельков. Это третья крупная атака на NPM за полгода. Выводы для команд: включите 2FA на всех реестрах пакетов, используйте
npm audit signatures для проверки целостности, а в CI/CD пропишите точные версии зависимостей вместо диапазонов. Lockfile – не рекомендация, а необходимость.🛠 Команда дня:
npm audit signatures 2>/dev/null || echo "Обновите npm до >=8.x для проверки подписей пакетов"
Проверяет криптографические подписи установленных NPM-пакетов – поможет обнаружить подменённые версии.
#дайджест #security #rust
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥4
Барьер входа обнулился. Барьер компетенции – нет (1/6)
Из каждого утюга всё ещё про нейросети. Кто помнит, точно так же было и с криптой. А до неё и с блокчейном, который вот-вот перевернёт всё. А до блокчейна с интернетом вещей. А если копнуть глубже, то с самими персональными компьютерами, когда каждый второй журнал обещал, что ПК заменит вам бухгалтера, секретаря и репетитора по английскому.
Паттерн один: новая технология → шум → "теперь любой сможет" → выясняется, что не любой.
Промптом нельзя обойти три вещи: гравитацию, скорость света и второй закон термодинамики. Всё остальное – маркетинговая надстройка.
По стечению обстоятельств в теме нейросетей давно. Помню ещё "вторую волну", когда мы вручную скрещивали скрытые марковские модели с первыми сетками, а слово "трансформер" ассоциировалось только с игрушками Hasbro да мультиками по утрам. Чтобы научить систему отличать фонему /к/ в слове "кит" от той же /к/ в "кот", нужно было выстраивать трифонные деревья и вручную выравнивать тысячи часов аудио. Одна ошибка в словаре и вся распознавалка рассыпалась как карточный домик.
Сегодня Whisper делает то же самое за три строчки кода. Барьер входа обнулился. Но барьер компетенции – нет. Инструмент масштабирует то, что у тебя в голове. Если ты не отличаешь дебет от кредита, калькулятор не сделает тебя бухгалтером. Он поможет тебе обанкротиться быстрее и эффективнее.
Термин "вайбкодинг" ввёл Андрей Карпати. Говоришь модели, что хочешь, принимаешь код не глядя. Звучит как магия, если забыть, кто такой Карпати. У человека PhD и больше десяти лет в AI, он чувствует кривую архитектуру спинным мозгом. Это как Шумахер, говорящий "я просто еду на ощущениях". Да, Михаэль, но у нас-то прав нет.
Метод ушёл в массы. Контекст и база остались у Андрея. Сам Карпати, кстати, уже переобулся. Его свежий рецепт – не "вайбкодь и не парься", а LLM Wiki: трёхслойная архитектура, линтер, контроль противоречий. Инженерный подход. Массы запомнили "вайб", автор ушёл в структуру.
Занырнул недавно в чат-спутник одного популярного канала про нейронки. Из 1300 постов: четверть про ботов, куча про "курсы", "заработок" и слово "бесплатно". Постов про тестирование – ноль. Про безопасность – ноль. Архитектура, развертывание, отказоустойчивость – не, не слышали, видимо, эти слова не вписываются в вайб.
Продолжение: завтра.
#мышление #ai
Из каждого утюга всё ещё про нейросети. Кто помнит, точно так же было и с криптой. А до неё и с блокчейном, который вот-вот перевернёт всё. А до блокчейна с интернетом вещей. А если копнуть глубже, то с самими персональными компьютерами, когда каждый второй журнал обещал, что ПК заменит вам бухгалтера, секретаря и репетитора по английскому.
Паттерн один: новая технология → шум → "теперь любой сможет" → выясняется, что не любой.
Промптом нельзя обойти три вещи: гравитацию, скорость света и второй закон термодинамики. Всё остальное – маркетинговая надстройка.
По стечению обстоятельств в теме нейросетей давно. Помню ещё "вторую волну", когда мы вручную скрещивали скрытые марковские модели с первыми сетками, а слово "трансформер" ассоциировалось только с игрушками Hasbro да мультиками по утрам. Чтобы научить систему отличать фонему /к/ в слове "кит" от той же /к/ в "кот", нужно было выстраивать трифонные деревья и вручную выравнивать тысячи часов аудио. Одна ошибка в словаре и вся распознавалка рассыпалась как карточный домик.
Сегодня Whisper делает то же самое за три строчки кода. Барьер входа обнулился. Но барьер компетенции – нет. Инструмент масштабирует то, что у тебя в голове. Если ты не отличаешь дебет от кредита, калькулятор не сделает тебя бухгалтером. Он поможет тебе обанкротиться быстрее и эффективнее.
Термин "вайбкодинг" ввёл Андрей Карпати. Говоришь модели, что хочешь, принимаешь код не глядя. Звучит как магия, если забыть, кто такой Карпати. У человека PhD и больше десяти лет в AI, он чувствует кривую архитектуру спинным мозгом. Это как Шумахер, говорящий "я просто еду на ощущениях". Да, Михаэль, но у нас-то прав нет.
Метод ушёл в массы. Контекст и база остались у Андрея. Сам Карпати, кстати, уже переобулся. Его свежий рецепт – не "вайбкодь и не парься", а LLM Wiki: трёхслойная архитектура, линтер, контроль противоречий. Инженерный подход. Массы запомнили "вайб", автор ушёл в структуру.
Занырнул недавно в чат-спутник одного популярного канала про нейронки. Из 1300 постов: четверть про ботов, куча про "курсы", "заработок" и слово "бесплатно". Постов про тестирование – ноль. Про безопасность – ноль. Архитектура, развертывание, отказоустойчивость – не, не слышали, видимо, эти слова не вписываются в вайб.
Продолжение: завтра.
#мышление #ai
🔥6👍1
Хроники пикирующего вайба. Часть первая (2/6)
Наблюдая за чатами вайбкодеров, собрал целую кунсткамеру того, как "обнуление барьера" работает на практике.
Человек без опыта в разработке поднял проект на Next.js. Почему именно Next.js? Потому что модель в 2026-м суёт его в каждый второй ответ. Через месяц выяснилось, что 40% кода написано, чтобы выключить дефолтные функции фреймворка, которые мешали. Никто не спросил: а зачем серверный рендеринг для статической визитки? Нейронка скормила мейнстрим, человек потратил недели на борьбу с инструментом, который не нужен.
В другом углу нейросеть-кодер обнулила боевую базу данных, пока "чинила" мелкий компонент интерфейса. Владелец узнал, когда сайт превратился в тыкву. Теперь параллельно гуглит, как закрыть доступ к базе, чтобы ИИ-помощник не сжёг всё окончательно. Нейросеть выдала решение. Решение оказалось проблемой. Классика.
Мой любимый кейс: дешёвая модель проектирует архитектуру, дорогая пишет код, а дешёвая снова проверяет результат. Это как если бы пятиклассник рисовал чертежи небоскрёба, прораб строил, а потом тот же пятиклассник принимал работу. Вы бы зашли в такой дом? Вайбкодеры заходят и зовут друзей.
Три кейса – один паттерн. Не инструмент виноват. Виноват пропущенный этап: понять задачу до того, как просить решение.
Продолжение: завтра.
#мышление #ai
Наблюдая за чатами вайбкодеров, собрал целую кунсткамеру того, как "обнуление барьера" работает на практике.
Человек без опыта в разработке поднял проект на Next.js. Почему именно Next.js? Потому что модель в 2026-м суёт его в каждый второй ответ. Через месяц выяснилось, что 40% кода написано, чтобы выключить дефолтные функции фреймворка, которые мешали. Никто не спросил: а зачем серверный рендеринг для статической визитки? Нейронка скормила мейнстрим, человек потратил недели на борьбу с инструментом, который не нужен.
В другом углу нейросеть-кодер обнулила боевую базу данных, пока "чинила" мелкий компонент интерфейса. Владелец узнал, когда сайт превратился в тыкву. Теперь параллельно гуглит, как закрыть доступ к базе, чтобы ИИ-помощник не сжёг всё окончательно. Нейросеть выдала решение. Решение оказалось проблемой. Классика.
Мой любимый кейс: дешёвая модель проектирует архитектуру, дорогая пишет код, а дешёвая снова проверяет результат. Это как если бы пятиклассник рисовал чертежи небоскрёба, прораб строил, а потом тот же пятиклассник принимал работу. Вы бы зашли в такой дом? Вайбкодеры заходят и зовут друзей.
Три кейса – один паттерн. Не инструмент виноват. Виноват пропущенный этап: понять задачу до того, как просить решение.
Продолжение: завтра.
#мышление #ai
🔥5👍1
Твое резюме совпало на 85%, но тебя отсеяли на автомате. Почему?
Потому что для HRа ты – «гребец из галеры А», а им нужен «гребец на галеру Б».
Рекрутер видит: «телеком» → «финтех». Всё, mismatch.
И плевать, что твой Kubernetes в Ростелекоме ничем не отличается от их Kubernetes в Сбере, или нет? Напишите в комментариях. В их головах это разные вселенные.
Это называется смена домена (domain transfer). И пока ты не ткнешь их носом в то, что твои скиллы конвертируются, ты будешь получать автоотказы.
Давай по-чесноку, что реально переносится между отраслями:
– Мониторинг хайлоуда: (телеком → финтех). Три девятки SLA, ну они и в Африке три девятки. Grafana везде светится одинаково.
– Управление инцидентами: (госсектор → e-commerce). Процесс «пролюбили полимеры -> подняли по тревоге -> починили -> написали post-mortem» везде один. Меняется только цена минуты простоя.
– IaC практики: (SaaS → gamedev). Terraform'у плевать, поднимает он виртуалки под микросервисы или под игровые сервера.
А где реально придется попотеть (адаптация):
– Комплаенс и безопасность: (PCI DSS в банках, 152-ФЗ и КИИ в госе, и вот "это" всё). Вот тут твой опыт деплоя котиков в AWS не поможет, когда придут аудиторы с морковками.
– Специфичные пайплайны: Банковский CI/CD с десятью контурами безопасности и ручными апрувами, очевидно, не то же самое, что геймдев-пайплайн, где главное "просто" быстрее доставить текстуры гигабайтами.
Короче.
Чтобы не тратить время на объяснение очевидного каждому второму HRу, я допилил в Career Matcher блок
Работает просто: кидаешь CV + вакансию. Нейросеть определяет домены, цинично показывает, что из твоего опыта реально зайдет, а где ты «нуб», и генерирует 2-3 убойных предложения для сопроводительного.
Нажал
Какой переход считаете самым тяжёлым: гос→коммерция или коммерция→гос?
Тестируй тут: lms.devitacademy.com/career
#карьера #devops
Потому что для HRа ты – «гребец из галеры А», а им нужен «гребец на галеру Б».
Рекрутер видит: «телеком» → «финтех». Всё, mismatch.
И плевать, что твой Kubernetes в Ростелекоме ничем не отличается от их Kubernetes в Сбере,
Это называется смена домена (domain transfer). И пока ты не ткнешь их носом в то, что твои скиллы конвертируются, ты будешь получать автоотказы.
Давай по-чесноку, что реально переносится между отраслями:
– Мониторинг хайлоуда: (телеком → финтех). Три девятки SLA, ну они и в Африке три девятки. Grafana везде светится одинаково.
– Управление инцидентами: (госсектор → e-commerce). Процесс «пролюбили полимеры -> подняли по тревоге -> починили -> написали post-mortem» везде один. Меняется только цена минуты простоя.
– IaC практики: (SaaS → gamedev). Terraform'у плевать, поднимает он виртуалки под микросервисы или под игровые сервера.
А где реально придется попотеть (адаптация):
– Комплаенс и безопасность: (PCI DSS в банках, 152-ФЗ и КИИ в госе, и вот "это" всё). Вот тут твой опыт деплоя котиков в AWS не поможет, когда придут аудиторы с морковками.
– Специфичные пайплайны: Банковский CI/CD с десятью контурами безопасности и ручными апрувами, очевидно, не то же самое, что геймдев-пайплайн, где главное "просто" быстрее доставить текстуры гигабайтами.
Короче.
Чтобы не тратить время на объяснение очевидного каждому второму HRу, я допилил в Career Matcher блок
Переход между отраслями. Если система не обнаружит признаков смены домена, уведомления не будет в тексте.Работает просто: кидаешь CV + вакансию. Нейросеть определяет домены, цинично показывает, что из твоего опыта реально зайдет, а где ты «нуб», и генерирует 2-3 убойных предложения для сопроводительного.
Нажал
Скопировать → вставил в отклик → пошел пить кофе, пока HR пытается осознать, что ты подходишь.Какой переход считаете самым тяжёлым: гос→коммерция или коммерция→гос?
Тестируй тут: lms.devitacademy.com/career
#карьера #devops
🔥5
Хроники пикирующего вайба. Часть вторая (3/6)
"Там на неведомых дорожках следы невиданных зверей..." Александр Сергеевич, конечно же, не бывал в чатах вайбкодеров, но кунсткамеру описал точно.
В чате встречается типаж: "Нейроинженер, Архитектор ЧатБотов". Проектирует ботов мышкой в BotHelp – от лид-форм до "сложных логик с интеграциями". Кода нет в принципе. Сидит на Windows 7, где современные IDE даже не запустятся, зато авторитетно рассуждает об архитектуре. Когда титул в телеграме заменяет базу – на выходе карго-культ в чистом виде.
Другой типаж: работа с госсектором, критическая инфраструктура, сложные риски. Развернула n8n на хостинге за двести рублей, конфиденциальные данные клиентов гонит через зарубежные API. На вопрос о безопасности – искреннее недоумение. Курит на бензоколонке, радуясь, что зажигалка красивая.
Третий: полгода "пишет" агента, не дополз до тестов, зато "глубоко погрузился в DevOps". Docker для него – "прога-коробочка". Продакшен-ключи хранит в Obsidian, где их читает другой LLM-агент. А главное – цифровая эхо-камера. Grok хвалит код, написанный Gemini. Gemini одобряет архитектуру от Grok. Человек посередине нажимает кнопки и репостит похвалу, как доказательство мастерства. Он думает что дирижёр, хотя он прослойка между двумя чат-ботами.
Три типажа – одна ловушка. Инструмент упростился, но иллюзия понимания опаснее честного незнания.
Продолжение: завтра.
#мышление #ai
"Там на неведомых дорожках следы невиданных зверей..." Александр Сергеевич, конечно же, не бывал в чатах вайбкодеров, но кунсткамеру описал точно.
В чате встречается типаж: "Нейроинженер, Архитектор ЧатБотов". Проектирует ботов мышкой в BotHelp – от лид-форм до "сложных логик с интеграциями". Кода нет в принципе. Сидит на Windows 7, где современные IDE даже не запустятся, зато авторитетно рассуждает об архитектуре. Когда титул в телеграме заменяет базу – на выходе карго-культ в чистом виде.
Другой типаж: работа с госсектором, критическая инфраструктура, сложные риски. Развернула n8n на хостинге за двести рублей, конфиденциальные данные клиентов гонит через зарубежные API. На вопрос о безопасности – искреннее недоумение. Курит на бензоколонке, радуясь, что зажигалка красивая.
Третий: полгода "пишет" агента, не дополз до тестов, зато "глубоко погрузился в DevOps". Docker для него – "прога-коробочка". Продакшен-ключи хранит в Obsidian, где их читает другой LLM-агент. А главное – цифровая эхо-камера. Grok хвалит код, написанный Gemini. Gemini одобряет архитектуру от Grok. Человек посередине нажимает кнопки и репостит похвалу, как доказательство мастерства. Он думает что дирижёр, хотя он прослойка между двумя чат-ботами.
Три типажа – одна ловушка. Инструмент упростился, но иллюзия понимания опаснее честного незнания.
Продолжение: завтра.
#мышление #ai
🔥2❤1👍1
Минус девятнадцать процентов (4/6)
Упомянутые случаи из чатов читаешь как анекдоты, в каких-то моментах можно и себя найти, я не исключение. Можно отмахнуться: "ну это новички, у серьёзных людей всё иначе". Окей. Давайте к серьёзным людям.
METR в 2025 взяли шестнадцать опытных open-source разработчиков. Не джунов из чатов, а людей с историей коммитов. Дали 246 реальных задач.
Результат: с нейросетью работали медленнее на 19%.
При этом были уверены, что ускорились процентов на двадцать. Код мелькает, строчки появляются, ощущение полёта. А git log потом показывает: половина коммитов – правки за нейросетью.
Гарвард назвал это "Эффект стены GenAI". На старте модель разгоняет – идеи, черновики, прототипы. Но на уровне, где нужна экспертиза, – стена. Карту выдаст, ходить по ней не научит.
Anthropic проверили иначе: одни копипастили из модели, другие работали без неё, третьи использовали как спарринг-партнёра. Копипастеры сдали тест на 50%. Без AI – на 67%. Выиграли только те, кто спрашивал "почему так" и "где тут дыры", а не жал "принять всё".
И вишенка. Отдельное исследование, три тысячи участников. Чем дольше человек общается с моделью, тем выше оценивает собственную компетентность.
Механика элементарная: в восьмидесяти процентах случаев модель соглашается. Ведёшь к обрыву – "отличный маршрут, продолжаем".
Даннинг и Крюгер не предполагали, что у их эффекта появится усилитель. Раньше нужно было хотя бы самому додуматься до глупости. Теперь глупость генерирует модель, а человек одобряет. "Работает – значит правильно". Ровно до первого инцидента в самый неожиданный момент.
Три исследования – один вывод: инструмент масштабирует не навык, а уверенность в навыке.
Продолжение: завтра.
#мышление #ai
Упомянутые случаи из чатов читаешь как анекдоты, в каких-то моментах можно и себя найти, я не исключение. Можно отмахнуться: "ну это новички, у серьёзных людей всё иначе". Окей. Давайте к серьёзным людям.
METR в 2025 взяли шестнадцать опытных open-source разработчиков. Не джунов из чатов, а людей с историей коммитов. Дали 246 реальных задач.
Результат: с нейросетью работали медленнее на 19%.
При этом были уверены, что ускорились процентов на двадцать. Код мелькает, строчки появляются, ощущение полёта. А git log потом показывает: половина коммитов – правки за нейросетью.
Гарвард назвал это "Эффект стены GenAI". На старте модель разгоняет – идеи, черновики, прототипы. Но на уровне, где нужна экспертиза, – стена. Карту выдаст, ходить по ней не научит.
Anthropic проверили иначе: одни копипастили из модели, другие работали без неё, третьи использовали как спарринг-партнёра. Копипастеры сдали тест на 50%. Без AI – на 67%. Выиграли только те, кто спрашивал "почему так" и "где тут дыры", а не жал "принять всё".
И вишенка. Отдельное исследование, три тысячи участников. Чем дольше человек общается с моделью, тем выше оценивает собственную компетентность.
Механика элементарная: в восьмидесяти процентах случаев модель соглашается. Ведёшь к обрыву – "отличный маршрут, продолжаем".
Даннинг и Крюгер не предполагали, что у их эффекта появится усилитель. Раньше нужно было хотя бы самому додуматься до глупости. Теперь глупость генерирует модель, а человек одобряет. "Работает – значит правильно". Ровно до первого инцидента в самый неожиданный момент.
Три исследования – один вывод: инструмент масштабирует не навык, а уверенность в навыке.
Продолжение: завтра.
#мышление #ai
🔥3👍2❤1
Почему код гниёт сам по себе (5/6)
Нейросеть не делает людей умнее. Она накладывает фильтр "красиво". Код новичка выглядит как работа мидла, лендинг гипсокартонщика – как проект дизайн-студии.
Снаружи все резко стали "хорошими". Внутри – тот же колокол Гаусса. Разрыв между тем, как проект выглядит, и тем, как он спроектирован, – это зона катастрофы.
Майкл Поланьи ещё в 60-х сказал: "Мы знаем больше, чем можем выразить словами". Чутьё инженера, понимание, где код "пахнет", – это неявное знание. Оно не передаётся через промпты. Добывается только через практику и личную боль. Я недавно разбирал это на реальном кейсе: студент видит 403 Forbidden и три типа мышления дают три разных пути к ответу. Аристотель разделял: можно "знать", что огонь горячий (тебе сказали), а можно ЗНАТЬ (ты обжёгся). Нейросеть выдаёт чужой опыт, красивый и бесплатный. Но без своих шишек он не усваивается.
Есть закон эволюции софта, сформулированный Мейром Леманом в 70-х: сложность системы растёт всегда, если не тратишь силы на её снижение. Код гниёт не потому, что ты плохой. Мир вокруг меняется: протухают сертификаты, обновляются зависимости, вылетают новые CVE. Оставь сервер на год без присмотра – решето.
Вайбкодер-самоучка думает: закинул камень на гору, можно открывать шампанское. Инженер знает: этот камень нужно катить каждый день. Тестировать, патчить, мониторить.
Формула проста: Нейросеть умножить на ноль равно ноль. Страшно то, что в 2026 году этот ноль выглядит как уверенная единица.
Продолжение: завтра.
#мышление #ai
Нейросеть не делает людей умнее. Она накладывает фильтр "красиво". Код новичка выглядит как работа мидла, лендинг гипсокартонщика – как проект дизайн-студии.
Снаружи все резко стали "хорошими". Внутри – тот же колокол Гаусса. Разрыв между тем, как проект выглядит, и тем, как он спроектирован, – это зона катастрофы.
Майкл Поланьи ещё в 60-х сказал: "Мы знаем больше, чем можем выразить словами". Чутьё инженера, понимание, где код "пахнет", – это неявное знание. Оно не передаётся через промпты. Добывается только через практику и личную боль. Я недавно разбирал это на реальном кейсе: студент видит 403 Forbidden и три типа мышления дают три разных пути к ответу. Аристотель разделял: можно "знать", что огонь горячий (тебе сказали), а можно ЗНАТЬ (ты обжёгся). Нейросеть выдаёт чужой опыт, красивый и бесплатный. Но без своих шишек он не усваивается.
Есть закон эволюции софта, сформулированный Мейром Леманом в 70-х: сложность системы растёт всегда, если не тратишь силы на её снижение. Код гниёт не потому, что ты плохой. Мир вокруг меняется: протухают сертификаты, обновляются зависимости, вылетают новые CVE. Оставь сервер на год без присмотра – решето.
Вайбкодер-самоучка думает: закинул камень на гору, можно открывать шампанское. Инженер знает: этот камень нужно катить каждый день. Тестировать, патчить, мониторить.
Формула проста: Нейросеть умножить на ноль равно ноль. Страшно то, что в 2026 году этот ноль выглядит как уверенная единица.
Продолжение: завтра.
#мышление #ai
🔥5❤1
Как не стать био-адаптером для нейросети (6/6)
Если не хочешь деградировать до оператора кнопки "Сгенерировать ещё раз", то попробуй такой подход:
Не проси "сделай", проси "объясни".
Забудь "напиши мне скрипт".
Спроси: какие есть варианты архитектуры для этой задачи и чем они плохи?
Требуй хейта. Нейросеть – подхалим по определению.
Пиши прямо: разнеси моё решение, найди дыры в безопасности и архитектурный бред.
Ищи слепые зоны. Главный враг не баг, а вопрос, который ты забыл задать.
Спроси: о чём я тебя не спросил, хотя должен был?
Проверяй реальностью. Нет тестов, логов и понимания, как деплоить, – ты не программируешь, ты играешь в Sims.
Промпт это генерация гипотез. Инженерия – отбор истины. Линтер не подстраивается под спрашивающего. Тест не галлюцинирует. Бенчмарк не льстит. Генератор не может быть судьёй своего вывода. По той же причине, по которой аудитор не может быть клиентом.
Я скормил черновик этого текста двум моделям и попросил найти ошибки. Обе сказали "отлично написано". Ошибки нашёл сам при вычитке.
Нейронка – отличный второй пилот. Но если уберёте руки со штурвала и решите вздремнуть, глядя на красивый "вайб" за окном, – помните про гравитацию. Она работает молча.
Не доверяйте звёздам. Доверяйте тестам.
Серия "Барьер входа" (6/6)
#мышление #ai
Если не хочешь деградировать до оператора кнопки "Сгенерировать ещё раз", то попробуй такой подход:
Не проси "сделай", проси "объясни".
Забудь "напиши мне скрипт".
Спроси: какие есть варианты архитектуры для этой задачи и чем они плохи?
Требуй хейта. Нейросеть – подхалим по определению.
Пиши прямо: разнеси моё решение, найди дыры в безопасности и архитектурный бред.
Ищи слепые зоны. Главный враг не баг, а вопрос, который ты забыл задать.
Спроси: о чём я тебя не спросил, хотя должен был?
Проверяй реальностью. Нет тестов, логов и понимания, как деплоить, – ты не программируешь, ты играешь в Sims.
Промпт это генерация гипотез. Инженерия – отбор истины. Линтер не подстраивается под спрашивающего. Тест не галлюцинирует. Бенчмарк не льстит. Генератор не может быть судьёй своего вывода. По той же причине, по которой аудитор не может быть клиентом.
Я скормил черновик этого текста двум моделям и попросил найти ошибки. Обе сказали "отлично написано". Ошибки нашёл сам при вычитке.
Нейронка – отличный второй пилот. Но если уберёте руки со штурвала и решите вздремнуть, глядя на красивый "вайб" за окном, – помните про гравитацию. Она работает молча.
Не доверяйте звёздам. Доверяйте тестам.
Серия "Барьер входа" (6/6)
#мышление #ai
🔥5❤1
⚡️ DevOps Digest #10 | 12.04.2026
🔥 Главное:
1. NORA – реестр артефактов на Rust. Статья на Хабре. Зачем написал свой реестр вместо Nexus и Artifactory: 34 МБ бинарник, 12 МБ RAM, 7 форматов (Docker, Maven, npm, PyPI, Cargo, Go, Raw), проксирование upstream с кэшем, air-gap режим. MIT-лицензия.
🔗 https://habr.com/ru/articles/1021960/
2. uutils coreutils 0.8 – GNU Coreutils на Rust – кроссплатформенная реализация 100+ утилит (sort, cp, chmod, ls) на Rust. Работает на Linux, Windows, Redox. Проект становится реальной альтернативой GNU-версии.
🔗 github.com/uutils
3. Little Snitch вышел на Linux – популярный межсетевой экран приложений теперь доступен для Linux. Использует eBPF для инспекции трафика на уровне ядра. Веб-интерфейс и eBPF-часть под GPLv2, фоновый процесс на Rust.
🔗 obdev.at
4. Компрометация цепочки поставок Aqua Trivy. Через заражённый сканер уязвимостей украдены исходники у нескольких компаний. Когда инструмент безопасности сам становится вектором атаки – это переворачивает модель угроз. Проверяйте контрольные суммы бинарников, фиксируйте версии в CI/CD. Компрометация цепочки поставок означает, что тысячи пайплайнов могли выполнять чужой код с правами сборки. Минимум: подписанные образы, зеркало зависимостей, фиксированные версии. Максимум — собственный реестр с контролем того, что попадает внутрь.
🔗 habr.com
5. Microsoft заблокировала подпись VeraCrypt и WireGuard – аккаунты разработчиков для цифровой подписи Windows-сборок заблокированы. Ключ VeraCrypt истекает в июне, после чего драйвер перестанет работать с Secure Boot. Ещё один аргумент в пользу open-source инфраструктуры без привязки к вендору.
🔗 opennet.ru
🔍 eBPF как основа сетевой безопасности на Linux
Выход Little Snitch на Linux – знаковое событие. Раньше для контроля сетевой активности приложений на Linux приходилось вручную собирать конфигурацию из iptables/nftables, auditd и скриптов. eBPF меняет правила игры: инспекция трафика на уровне ядра без модификации ядра, с привязкой к конкретному процессу. Для серверной инфраструктуры это открывает путь к zero-trust сетевым политикам без сложных сервисных mesh-решений.
🛠 Команда дня:
Показывает топ-20 локальных портов по числу активных TCP-соединений с именами процессов
#дайджест #security #linux
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное:
1. NORA – реестр артефактов на Rust. Статья на Хабре. Зачем написал свой реестр вместо Nexus и Artifactory: 34 МБ бинарник, 12 МБ RAM, 7 форматов (Docker, Maven, npm, PyPI, Cargo, Go, Raw), проксирование upstream с кэшем, air-gap режим. MIT-лицензия.
🔗 https://habr.com/ru/articles/1021960/
2. uutils coreutils 0.8 – GNU Coreutils на Rust – кроссплатформенная реализация 100+ утилит (sort, cp, chmod, ls) на Rust. Работает на Linux, Windows, Redox. Проект становится реальной альтернативой GNU-версии.
🔗 github.com/uutils
3. Little Snitch вышел на Linux – популярный межсетевой экран приложений теперь доступен для Linux. Использует eBPF для инспекции трафика на уровне ядра. Веб-интерфейс и eBPF-часть под GPLv2, фоновый процесс на Rust.
🔗 obdev.at
4. Компрометация цепочки поставок Aqua Trivy. Через заражённый сканер уязвимостей украдены исходники у нескольких компаний. Когда инструмент безопасности сам становится вектором атаки – это переворачивает модель угроз. Проверяйте контрольные суммы бинарников, фиксируйте версии в CI/CD. Компрометация цепочки поставок означает, что тысячи пайплайнов могли выполнять чужой код с правами сборки. Минимум: подписанные образы, зеркало зависимостей, фиксированные версии. Максимум — собственный реестр с контролем того, что попадает внутрь.
🔗 habr.com
5. Microsoft заблокировала подпись VeraCrypt и WireGuard – аккаунты разработчиков для цифровой подписи Windows-сборок заблокированы. Ключ VeraCrypt истекает в июне, после чего драйвер перестанет работать с Secure Boot. Ещё один аргумент в пользу open-source инфраструктуры без привязки к вендору.
🔗 opennet.ru
🔍 eBPF как основа сетевой безопасности на Linux
Выход Little Snitch на Linux – знаковое событие. Раньше для контроля сетевой активности приложений на Linux приходилось вручную собирать конфигурацию из iptables/nftables, auditd и скриптов. eBPF меняет правила игры: инспекция трафика на уровне ядра без модификации ядра, с привязкой к конкретному процессу. Для серверной инфраструктуры это открывает путь к zero-trust сетевым политикам без сложных сервисных mesh-решений.
🛠 Команда дня:
ss -tnp | awk '{print $4, $6}' | sort -t: -k2 -n | uniq -c | sort -rn | head -20Показывает топ-20 локальных портов по числу активных TCP-соединений с именами процессов
#дайджест #security #linux
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥5❤1
Звёзды врут
Есть каналы, которые заваливают ссылками на GitHub-репозитории. Их периодически чекаю, как сорока: увидел блестящий паттерн, утащил в "гнездо", покрутил. Иногда находишь подход, о котором не думал, а иногда подтверждаешь, что твой велосипед всё-таки едет лучше.
Но есть проблема: 2000 звёзд сегодня – это не знак качества, а бюджет на маркетинг или красивый README. Народ жмёт Star не открывая код. В итоге имеем "проверенное решение" с хардкодом пароля от Postgres в третьем коммите и охапкой CVE.
Отдельная каста – горе-вайбкодеры. Проект нагенерен за вечер, демка крутится, звёзды летят. А внутри двенадцать innerHTML без санитизации и полное отсутствие обработки ошибок. Нейросеть написала, нейросеть похвалила, круг замкнулся.
Чтобы не тащить этот мусор к себе, собрал Code Roast – бесплатную прожарку публичных репо.
Механика прозрачная - как и лента результатов, она общая:
– Кидаешь ссылку.
– 8 классических линтеров (SAST) собирают фактуру.
– 3 разные модели анализируют логику и перепроверяют друг друга.
На выходе – оценка из 10 и детальный разбор. Каждая находка помечена: где строгий вердикт линтера, а где – "мнение" модели, прошедшее через кросс-валидацию.
Пока в пилоте – 50 прожарок в сутки.
Попробуйте скормить ему тот самый "звёздный" репозиторий, который вы отложили в закладки:
👉 roast.devopsway.ru
#кейс #devops #coderoast
Есть каналы, которые заваливают ссылками на GitHub-репозитории. Их периодически чекаю, как сорока: увидел блестящий паттерн, утащил в "гнездо", покрутил. Иногда находишь подход, о котором не думал, а иногда подтверждаешь, что твой велосипед всё-таки едет лучше.
Но есть проблема: 2000 звёзд сегодня – это не знак качества, а бюджет на маркетинг или красивый README. Народ жмёт Star не открывая код. В итоге имеем "проверенное решение" с хардкодом пароля от Postgres в третьем коммите и охапкой CVE.
trivy и semgrep нашли бы это за секунды, но кто будет гонять линтеры на каждый репозиторий из ленты?Отдельная каста – горе-вайбкодеры. Проект нагенерен за вечер, демка крутится, звёзды летят. А внутри двенадцать innerHTML без санитизации и полное отсутствие обработки ошибок. Нейросеть написала, нейросеть похвалила, круг замкнулся.
Чтобы не тащить этот мусор к себе, собрал Code Roast – бесплатную прожарку публичных репо.
Механика прозрачная - как и лента результатов, она общая:
– Кидаешь ссылку.
– 8 классических линтеров (SAST) собирают фактуру.
– 3 разные модели анализируют логику и перепроверяют друг друга.
На выходе – оценка из 10 и детальный разбор. Каждая находка помечена: где строгий вердикт линтера, а где – "мнение" модели, прошедшее через кросс-валидацию.
Пока в пилоте – 50 прожарок в сутки.
Попробуйте скормить ему тот самый "звёздный" репозиторий, который вы отложили в закладки:
👉 roast.devopsway.ru
#кейс #devops #coderoast
🔥6❤1
Не хочу быть DevOps-инженером.
Хочу быть MLOps-инженером.
А.С. Пушкин (из неизданного)
На hh сейчас 200+ вакансий MLOps. Год назад их было от силы 40.
Причина простая: колорит нашего рынка сейчас такой, что всем крупным компаниям сверху поставили КПЭ на внедрение ИИ. Бизнес судорожно накупил дорогих GPU, а как превратить это в работающий сервис почти никто не понимает. Компании ищут тех, кто умеет в инфраструктуру, а не просто "рисует графики в ноутбуках". То есть нас.
Я решил не читать лонгриды, а просто пощупать это руками. Задался целью собрать MLOps-платформу на своей инфре и посмотреть, насколько это вообще "другая планета" для DevOps-инженера.
Первый вывод: 70% базы –внезапно это тот же Kubernetes, CI/CD и Terraform. А вот остальные 30% реально взрывают мозг. Модель может отвечать за 2мс, Prometheus будет гореть зелёным, а бизнес терять деньги, потому что модель несёт чушь просто потому, что данные в мире изменились. Без единого коммита в код.
В следующих 4 постах разложу по фактам: что конкретно поднял, где привычный DevOps спас, а где пришлось учиться заново, чтобы железо не работало вхолостую.
Если уже работаете с ML-инфрой – расскажите в комментариях, что больше всего удивило при переходе. Интересно сверить заметки.
#карьера #devops #mlops
Хочу быть MLOps-инженером.
А.С. Пушкин (из неизданного)
На hh сейчас 200+ вакансий MLOps. Год назад их было от силы 40.
Причина простая: колорит нашего рынка сейчас такой, что всем крупным компаниям сверху поставили КПЭ на внедрение ИИ. Бизнес судорожно накупил дорогих GPU, а как превратить это в работающий сервис почти никто не понимает. Компании ищут тех, кто умеет в инфраструктуру, а не просто "рисует графики в ноутбуках". То есть нас.
Я решил не читать лонгриды, а просто пощупать это руками. Задался целью собрать MLOps-платформу на своей инфре и посмотреть, насколько это вообще "другая планета" для DevOps-инженера.
Первый вывод: 70% базы –
В следующих 4 постах разложу по фактам: что конкретно поднял, где привычный DevOps спас, а где пришлось учиться заново, чтобы железо не работало вхолостую.
Если уже работаете с ML-инфрой – расскажите в комментариях, что больше всего удивило при переходе. Интересно сверить заметки.
#карьера #devops #mlops
❤4🔥4
⚡️ DevOps Digest #11 | 19.04.2026
🔥 Главное за неделю:
1. Ядро Linux 7.0 – Rust стал штатным – включён режим PREEMPT_LAZY по умолчанию, новая ФС Nullfs, поддержка пост-квантовой криптографии ML-DSA и WiFi 8. NFS 4.1 теперь по умолчанию – проверьте монтирование перед обновлением.
https://www.opennet.ru/opennews/art.shtml?num=65194
2. nginx 1.30.0 + OpenSSL 4.0.0 – связка, которая определит следующие два года. nginx получил Encrypted ClientHello, HTTP/2 к бэкендам и sticky sessions. OpenSSL удалил SSLv3 и engine API, добавил постквантовую криптографию. Если у вас HSM через engine (а не provider) – сломается. OpenSSL 3.5 LTS живёт до 2030, не торопитесь.
https://github.com/nginx/nginx/releases/tag/release-1.30.0 | https://github.com/openssl/openssl/releases/tag/openssl-4.0.0
3. RustFS – объектное хранилище, в 2.3 раза быстрее MinIO – S3-совместимое, миграция с MinIO и Ceph из коробки. 1300+ звёзд за неделю. Если выбираете on-premise хранилище – поставьте рядом с MinIO и замерьте на своём профиле.
https://github.com/rustfs/rustfs
4. Критическая уязвимость в Python (CVE-2026-6100, 9.1/10) – use-after-free в модулях lzma, bz2 и gzip. Затронуты все сервисы, распаковывающие сжатые файлы. Обновляйте CPython.
https://www.opennet.ru/opennews/art.shtml?num=65202
5. Бэкдоры в 30 WordPress-плагинах через покупку – злоумышленник скупил 30 плагинов и внедрил вредоносный код во все. Ни код-ревью, ни сканеры не спасают, когда плагин просто меняет владельца. Классика supply chain.
https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/
6. nxs-universal-chart 3.0 – модульный Helm-чарт от Nixys: sub-chart-ы через OCI-реестр, из коробки Istio, KServe, Vault Secret Operator. Открытый проект, Apache 2.0.
https://github.com/nixys/nxs-universal-chart
7. GitHub Stacked PRs – официальный инструмент для цепочек зависимых PR с автоматическим ребейзом. Давняя боль: разбить большое изменение на серию связанных PR.
https://github.github.com/gh-stack/
🔍 Неделя Rust и больших версий
Linux 7.0 перевёл Rust из эксперимента в штатный инструмент ядра. RustFS показывает 2.3x над MinIO. Rust 1.95 стабилизировал if/let guards. Тренд очевиден: критическая инфраструктура переезжает на Rust. Параллельно nginx 1.30 и OpenSSL 4.0 синхронно внедрили ECH – приватность TLS-хендшейка вышла из лаборатории в продакшн. Если обновляете OpenSSL – проверьте, что HSM-интеграции используют provider API, а не устаревший engine.
🛠 Команда дня:
Список образов по размеру – быстрый способ найти раздутые и кандидатов на многоэтапную сборку.
#дайджест #rust #security
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное за неделю:
1. Ядро Linux 7.0 – Rust стал штатным – включён режим PREEMPT_LAZY по умолчанию, новая ФС Nullfs, поддержка пост-квантовой криптографии ML-DSA и WiFi 8. NFS 4.1 теперь по умолчанию – проверьте монтирование перед обновлением.
https://www.opennet.ru/opennews/art.shtml?num=65194
2. nginx 1.30.0 + OpenSSL 4.0.0 – связка, которая определит следующие два года. nginx получил Encrypted ClientHello, HTTP/2 к бэкендам и sticky sessions. OpenSSL удалил SSLv3 и engine API, добавил постквантовую криптографию. Если у вас HSM через engine (а не provider) – сломается. OpenSSL 3.5 LTS живёт до 2030, не торопитесь.
https://github.com/nginx/nginx/releases/tag/release-1.30.0 | https://github.com/openssl/openssl/releases/tag/openssl-4.0.0
3. RustFS – объектное хранилище, в 2.3 раза быстрее MinIO – S3-совместимое, миграция с MinIO и Ceph из коробки. 1300+ звёзд за неделю. Если выбираете on-premise хранилище – поставьте рядом с MinIO и замерьте на своём профиле.
https://github.com/rustfs/rustfs
4. Критическая уязвимость в Python (CVE-2026-6100, 9.1/10) – use-after-free в модулях lzma, bz2 и gzip. Затронуты все сервисы, распаковывающие сжатые файлы. Обновляйте CPython.
https://www.opennet.ru/opennews/art.shtml?num=65202
5. Бэкдоры в 30 WordPress-плагинах через покупку – злоумышленник скупил 30 плагинов и внедрил вредоносный код во все. Ни код-ревью, ни сканеры не спасают, когда плагин просто меняет владельца. Классика supply chain.
https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/
6. nxs-universal-chart 3.0 – модульный Helm-чарт от Nixys: sub-chart-ы через OCI-реестр, из коробки Istio, KServe, Vault Secret Operator. Открытый проект, Apache 2.0.
https://github.com/nixys/nxs-universal-chart
7. GitHub Stacked PRs – официальный инструмент для цепочек зависимых PR с автоматическим ребейзом. Давняя боль: разбить большое изменение на серию связанных PR.
https://github.github.com/gh-stack/
🔍 Неделя Rust и больших версий
Linux 7.0 перевёл Rust из эксперимента в штатный инструмент ядра. RustFS показывает 2.3x над MinIO. Rust 1.95 стабилизировал if/let guards. Тренд очевиден: критическая инфраструктура переезжает на Rust. Параллельно nginx 1.30 и OpenSSL 4.0 синхронно внедрили ECH – приватность TLS-хендшейка вышла из лаборатории в продакшн. Если обновляете OpenSSL – проверьте, что HSM-интеграции используют provider API, а не устаревший engine.
🛠 Команда дня:
docker image ls --format '{{.Repository}}:{{.Tag}} {{.Size}}' | sort -k2 -hСписок образов по размеру – быстрый способ найти раздутые и кандидатов на многоэтапную сборку.
#дайджест #rust #security
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
GitHub
Release release-1.30.0 · nginx/nginx
nginx-1.30.0 stable version has been released, incorporating new features and bug fixes from the 1.29.x mainline branch — including Early Hints, HTTP/2 to backend and Encrypted ClientHello, sticky...
🔥6❤1
Пост 2/5: Что конкретно поднял и где DevOps спас
Прежде чем что-то ставить, надо понять, что конкретно ставить. Ваш КО. 😜
Скормил парсеру hh.ru – 272 вакансии "MLOps". Догнал выгрузкой с getmatch – еще 588 за год. Итого: MLflow – 38%, Airflow – 32%, Kubeflow – 16%, DVC – 11%. Требований по SaaS ноль – похоже, рынок облачных ML-платформ в РФ сейчас скорее мертв, чем жив, напишите в комментариях, если что-то не так. Стек выглядит компактным, поэтому точкой входа выбрал MLflow.
Мой подход стандартный: собрать руками и посмотреть, что сломается. Описывал его в DevOps Roadmap.
На сервере уже жили Docker, PostgreSQL и S3. Доставил к ним MLflow – он уютно сел на ту же базу и то же хранилище.
А вот сам MLflow оказался тем, чего мне не хватало, а я и не знал. Это фактически GitLab для экспериментов: запустил обучение – записал параметры, метрики, модель. В UI – табличка, сортировка по точности. Model Registry: теги, алиас production, откат. Запустил
Неа. Пришлось поковыряться с Python-клиентом. Если он обновился, а сервер остался на старой версии, клиент дергает endpoint, которого сервер еще не знает. И делает это молча. Час ковыряния на ровном месте просто потому, что "доверился версии" и иишке.
С артефактами тоже весело. Артефакт модели тут у нас это не один файл, а пачка: сам дамп плюс conda.yaml и requirements.txt. Без них через месяц какой-нибудь scikit-learn обновится, и модель не загрузится. Это как Docker-образ без Dockerfile: запустить сейчас можно, воспроизвести потом уже нет.
И вишенка. Классический реактивный мониторинг тут бесполезен. Сервис жив, latency в норме, всё зеленое, а в ответах мусор. Данные в мире изменились, а модель осталась в прошлом. Ни коммита, ни деплоя, просто мир "поехал" дальше. Для борьбы с этим раскопал Evidently – это такой diff для статистики. Позволяет увидеть дрейф данных до того, как его заметит тот же заказчик.
Итого: MLflow, S3, PostgreSQL, Serving и Evidently. Пять контейнеров, и у тебя полный цикл на одном сервере.
Забавно, как новые знания меняют угол зрения. Оказалось, что у меня в Code Roast та же история: провайдер обновил веса модели и мои оценки кода поплыли. Ни одного коммита с моей стороны, а результат другой. Эталона нет, детекции сдвига нет. Познакомился с дрейфом в ML сразу узнал его паттерны у себя в проде.
В следующем посте – залезем во внутренности MLflow и разберем эксперимент, который показал, что я не логирую и половину того, что стоило бы.
#кейс #ai #mlops
Прежде чем что-то ставить, надо понять, что конкретно ставить. Ваш КО. 😜
Скормил парсеру hh.ru – 272 вакансии "MLOps". Догнал выгрузкой с getmatch – еще 588 за год. Итого: MLflow – 38%, Airflow – 32%, Kubeflow – 16%, DVC – 11%. Требований по SaaS ноль – похоже, рынок облачных ML-платформ в РФ сейчас скорее мертв, чем жив, напишите в комментариях, если что-то не так. Стек выглядит компактным, поэтому точкой входа выбрал MLflow.
Мой подход стандартный: собрать руками и посмотреть, что сломается. Описывал его в DevOps Roadmap.
На сервере уже жили Docker, PostgreSQL и S3. Доставил к ним MLflow – он уютно сел на ту же базу и то же хранилище.
docker compose up, ss -tlnp – порты торчат, логи идут. Пока скучно.А вот сам MLflow оказался тем, чего мне не хватало, а я и не знал. Это фактически GitLab для экспериментов: запустил обучение – записал параметры, метрики, модель. В UI – табличка, сортировка по точности. Model Registry: теги, алиас production, откат. Запустил
mlflow models serve – и у тебя REST endpoint. Curl отправил JSON – получил предсказание. Всё?Неа. Пришлось поковыряться с Python-клиентом. Если он обновился, а сервер остался на старой версии, клиент дергает endpoint, которого сервер еще не знает. И делает это молча. Час ковыряния на ровном месте просто потому, что "доверился версии" и иишке.
С артефактами тоже весело. Артефакт модели тут у нас это не один файл, а пачка: сам дамп плюс conda.yaml и requirements.txt. Без них через месяц какой-нибудь scikit-learn обновится, и модель не загрузится. Это как Docker-образ без Dockerfile: запустить сейчас можно, воспроизвести потом уже нет.
И вишенка. Классический реактивный мониторинг тут бесполезен. Сервис жив, latency в норме, всё зеленое, а в ответах мусор. Данные в мире изменились, а модель осталась в прошлом. Ни коммита, ни деплоя, просто мир "поехал" дальше. Для борьбы с этим раскопал Evidently – это такой diff для статистики. Позволяет увидеть дрейф данных до того, как его заметит тот же заказчик.
Итого: MLflow, S3, PostgreSQL, Serving и Evidently. Пять контейнеров, и у тебя полный цикл на одном сервере.
Забавно, как новые знания меняют угол зрения. Оказалось, что у меня в Code Roast та же история: провайдер обновил веса модели и мои оценки кода поплыли. Ни одного коммита с моей стороны, а результат другой. Эталона нет, детекции сдвига нет. Познакомился с дрейфом в ML сразу узнал его паттерны у себя в проде.
В следующем посте – залезем во внутренности MLflow и разберем эксперимент, который показал, что я не логирую и половину того, что стоило бы.
#кейс #ai #mlops
🔥5❤1
Пост 3/5: Что я нашёл внутри MLflow и чего не нашёл у себя
На прошлой неделе я поднял MLflow и обучил первые модели. Всё выглядело знакомо: параметры, метрики, артефакты. А потом меня осенило, что половину своей работы я вообще не версионирую. Вот что я увидел.
Взял 22 прожарки из своего Code Roast – реальные репо с реальными оценками. У каждой прожарки есть набор метрик: сколько файлов в репо, сколько строк кода, сколько проблем нашли линтеры – trivy, semgrep, bandit. И есть итоговый score по десятибалльной шкале. Задача простая: научить модель предсказывать этот score по метрикам линтеров, без участия человека.
Обучил 8 разных моделей на этих данных. MLflow записал каждый запуск: какие параметры у модели, какую точность показала, сколько весит артефакт. Всё это ложится в таблицу, где можно сортировать и сравнивать. Выглядит как
Результаты, мягко говоря, пока так себе – да и выборка маленькая. Одна из моделей выдала ошибку 18 баллов при шкале-то от 0 до 10. Как обычно: "Петька, приборы?!" — "200!" — "Что 200?" — "А что приборы?". Двенадцать параметров на 22 строки данных – модель заучила шум вместо закономерности.
Лучшая модель (RandomForest) весит 94 КБ. Самая лёгкая (Lasso) – 615 байт. В 155 раз тяжелее, а точнее всего на полбалла. Без таблички бок о бок я бы взял "лес" – звучит-то посолиднее. Но MLflow показал: брать не за что, обе не работают.
Мои Pusk и NORA в Code Roast получили по 8 из 10. Но модель обоим ставит пятёрки. Почему? Модель смотрит на находки линтеров – сколько багов нашёл trivy, сколько подозрительных паттернов поймал semgrep. У чистого кода находок мало. У пустого репо тоже мало. Для модели они выглядят одинаково. А разница между ними – в архитектуре, в тестах, в том, как код организован. Это то, что видит человек при ревью, но ни один линтер не измерит.
Окей, а у самого что там? В Code Roast у меня ровно та же схема: промпты, которые я пишу для анализа кода, набор линтеров, которые запускаю, модель, которая генерирует отчёт. Это полноценный эксперимент – с параметрами, метриками и артефактом на выходе. А я ничего из этого не логирую. Поменял промпт – не записал, как изменился результат. Переключил линтер – не зафиксировал, стало лучше или хуже. Через месяц уже не скажу, какая конфигурация давала лучший результат, потому что сравнивать не с чем. Без конкретных цифр – та же астрология получается.
Привычка "всё в Git и в реджистри" само собой база и спасала не раз, но её мало. Между строчкой кода и результатом в проде есть прослойка из данных и настроек, которую я, получается, бросаю на самотёк. Git версионирует код. Docker Registry версионирует образы. А кто версионирует эксперименты?
Потыкайте: mlflow.devopsway.ru – три эксперимента, реальные данные из Code Roast, 8 моделей.
В следующем посте, что мониторить, когда Prometheus уже зелёный.
#кейс #ai #mlops
На прошлой неделе я поднял MLflow и обучил первые модели. Всё выглядело знакомо: параметры, метрики, артефакты. А потом меня осенило, что половину своей работы я вообще не версионирую. Вот что я увидел.
Взял 22 прожарки из своего Code Roast – реальные репо с реальными оценками. У каждой прожарки есть набор метрик: сколько файлов в репо, сколько строк кода, сколько проблем нашли линтеры – trivy, semgrep, bandit. И есть итоговый score по десятибалльной шкале. Задача простая: научить модель предсказывать этот score по метрикам линтеров, без участия человека.
Обучил 8 разных моделей на этих данных. MLflow записал каждый запуск: какие параметры у модели, какую точность показала, сколько весит артефакт. Всё это ложится в таблицу, где можно сортировать и сравнивать. Выглядит как
git log --oneline, только не для коммитов, а для экспериментов.Результаты, мягко говоря, пока так себе – да и выборка маленькая. Одна из моделей выдала ошибку 18 баллов при шкале-то от 0 до 10. Как обычно: "Петька, приборы?!" — "200!" — "Что 200?" — "А что приборы?". Двенадцать параметров на 22 строки данных – модель заучила шум вместо закономерности.
Лучшая модель (RandomForest) весит 94 КБ. Самая лёгкая (Lasso) – 615 байт. В 155 раз тяжелее, а точнее всего на полбалла. Без таблички бок о бок я бы взял "лес" – звучит-то посолиднее. Но MLflow показал: брать не за что, обе не работают.
Мои Pusk и NORA в Code Roast получили по 8 из 10. Но модель обоим ставит пятёрки. Почему? Модель смотрит на находки линтеров – сколько багов нашёл trivy, сколько подозрительных паттернов поймал semgrep. У чистого кода находок мало. У пустого репо тоже мало. Для модели они выглядят одинаково. А разница между ними – в архитектуре, в тестах, в том, как код организован. Это то, что видит человек при ревью, но ни один линтер не измерит.
Окей, а у самого что там? В Code Roast у меня ровно та же схема: промпты, которые я пишу для анализа кода, набор линтеров, которые запускаю, модель, которая генерирует отчёт. Это полноценный эксперимент – с параметрами, метриками и артефактом на выходе. А я ничего из этого не логирую. Поменял промпт – не записал, как изменился результат. Переключил линтер – не зафиксировал, стало лучше или хуже. Через месяц уже не скажу, какая конфигурация давала лучший результат, потому что сравнивать не с чем. Без конкретных цифр – та же астрология получается.
Привычка "всё в Git и в реджистри" само собой база и спасала не раз, но её мало. Между строчкой кода и результатом в проде есть прослойка из данных и настроек, которую я, получается, бросаю на самотёк. Git версионирует код. Docker Registry версионирует образы. А кто версионирует эксперименты?
Потыкайте: mlflow.devopsway.ru – три эксперимента, реальные данные из Code Roast, 8 моделей.
В следующем посте, что мониторить, когда Prometheus уже зелёный.
#кейс #ai #mlops
❤3🔥3
Пост 4/5: Три модели, ноль мониторинга
В Code Roast работают три LLM-модели. Они анализируют код, перепроверяют друг друга и выставляют оценку. По сути это ML-сервис – только я об этом не думал, пока всё не поехало.
В DevOps мониторинг построен вокруг инфраструктуры: упало, кончилось, тормозит – или вот-вот кончится. Даже проактивные алерты смотрят на те же метрики, просто заглядывают вперёд. Prometheus из коробки этого не увидит. А у меня в какой-то момент провайдер молча обновил модель – и оценки поплыли. Сервис жив, алертов нет, а результат другой. Я это заметил случайно.
На стенде с MLflow я уже видел как работает Evidently – скормил ей два среза данных, она показала что сдвинулось. Но Evidently заточена под классический пайплайн машинного обучения: признаки, предсказания, эталонные ответы. А у меня оценки ревью, находки линтеров, размеры файлов. Другие данные, но вопрос тот же: "что-то поплыло?". Взял саму идею и написал экспортер под свою структуру.
Экспортер лезет в базу, делит ревью пополам по времени и считает статистическую значимость сдвига – та же логика, что у Evidently под капотом, но без тяжёлого обвеса.
Теперь на дашборде рядом с latency и error_rate висят панели дрейфа. Какие метрики поплыли, насколько сильно, что это значит – всё с подсказками прямо на графиках. Ко мне стали нести более тяжёлые проекты, файлы крупнее, находок больше. Экспортер это видит.
Видит, но пока не реагирует. Дашборд показывает дрейф – а дальше что? Нужен эталонный набор репозиториев, который прогоняется после каждого обновления модели. Если оценка эталона уехала – значит модель сменилась и надо разбираться. Нужно версионировать промпты и конфигурации линтеров, чтобы можно было откатиться. Нужен алерт, а не просто график. По сути – тот же CI/CD, только триггер не коммит, а статистика.
Дашборд живой, заходите смотреть, как дрейфуют мои метрики: grafana.devopsway.ru
В следующем посте – чем всё закончилось и что из этого можно повторить за выходные.
#кейс #ai #mlops
В Code Roast работают три LLM-модели. Они анализируют код, перепроверяют друг друга и выставляют оценку. По сути это ML-сервис – только я об этом не думал, пока всё не поехало.
В DevOps мониторинг построен вокруг инфраструктуры: упало, кончилось, тормозит – или вот-вот кончится. Даже проактивные алерты смотрят на те же метрики, просто заглядывают вперёд. Prometheus из коробки этого не увидит. А у меня в какой-то момент провайдер молча обновил модель – и оценки поплыли. Сервис жив, алертов нет, а результат другой. Я это заметил случайно.
На стенде с MLflow я уже видел как работает Evidently – скормил ей два среза данных, она показала что сдвинулось. Но Evidently заточена под классический пайплайн машинного обучения: признаки, предсказания, эталонные ответы. А у меня оценки ревью, находки линтеров, размеры файлов. Другие данные, но вопрос тот же: "что-то поплыло?". Взял саму идею и написал экспортер под свою структуру.
Экспортер лезет в базу, делит ревью пополам по времени и считает статистическую значимость сдвига – та же логика, что у Evidently под капотом, но без тяжёлого обвеса.
Теперь на дашборде рядом с latency и error_rate висят панели дрейфа. Какие метрики поплыли, насколько сильно, что это значит – всё с подсказками прямо на графиках. Ко мне стали нести более тяжёлые проекты, файлы крупнее, находок больше. Экспортер это видит.
Видит, но пока не реагирует. Дашборд показывает дрейф – а дальше что? Нужен эталонный набор репозиториев, который прогоняется после каждого обновления модели. Если оценка эталона уехала – значит модель сменилась и надо разбираться. Нужно версионировать промпты и конфигурации линтеров, чтобы можно было откатиться. Нужен алерт, а не просто график. По сути – тот же CI/CD, только триггер не коммит, а статистика.
Дашборд живой, заходите смотреть, как дрейфуют мои метрики: grafana.devopsway.ru
В следующем посте – чем всё закончилось и что из этого можно повторить за выходные.
#кейс #ai #mlops
🔥3❤1