DevITWay | Павел Волков
166 subscribers
70 photos
6 videos
121 links
Системное мышление → DevOps-практика → карьерный рост.
Production-кейсы, разборы инцидентов, новые подходы.
Бесплатные мини-курсы: Git | Linux | Docker
Веду лично. Основатель DevIT Academy.
devitacademy.com | devopsway.ru | devitacademy.com/kmb
Download Telegram
Взлом Trivy: когда сканер безопасности сам становится угрозой

Инструменты безопасности – новый вектор атаки на цепочки поставок. Раскрыта компрометация aquasecurity/trivy-action – GitHub Action для сканирования уязвимостей в CI/CD. Второй инцидент с Trivy за месяц.

Что произошло

Злоумышленники перезаписали 75 из 76 версионных тегов. Если в workflow указана любая версия кроме @0.35.0 – вы запускаете вредоносный код. Теги в Git можно переназначить через force-push – пин по тегу это иллюзия безопасности.

Малварь срабатывает до скана, поэтому всё выглядит нормально. А в это время: дамп памяти раннера, кража SSH-ключей, учётных данных AWS/GCP/Azure и токенов Kubernetes.

Хронология

13 марта – получен доступ к репозиторию. 13–19 марта – force-push на 75 тегов, малварь невидима. 20 марта – исследователи замечают: хэши тегов не совпадают с релизами. Семь дней инфостилер работал в тысячах пайплайнов незамеченным.

Blast radius

Критический – self-hosted раннеры с персистентным стейтом и доступом к prod. Высокий – GitHub-hosted с долгоживущими AWS/K8s ключами в env. Средний – OIDC-токены с минимальными permissions. Низкий – пин по SHA. Атака не работает. Точка.

Модель «швейцарского сыра»

Атака проходит когда дырки во всех слоях совпадают. У жертв совпало всё:

Фиксация – тег вместо SHA.
Привилегии – write-all вместо read.
Изоляция – персистентные раннеры.
Секреты – долгоживущие ключи вместо OIDC.
Закрой один слой – цепочка рвётся.

Detection: как понять, что затронуты

GitHub Actions logs – сетевые вызовы к неизвестным хостам до начала скана. Self-hosted раннеры – дампы в /tmp, следы curl к внешним IP. Cloud audit logs (CloudTrail, GCP Audit) – API-вызовы с украденных ключей. Если секрет читался в workflow с trivy-action по тегу – считайте утёкшим.

Что делать

Заменить все actions с тегов на SHA-хэши. Ротировать секреты если использовали trivy-action по тегу. Прописать permissions: read-all в каждом workflow.

Пример: NORA

Open-source проект NORA (github.com/getnora-io/nora) – 30 actions в CI/CD, ни один по тегу:

# Уязвимо:
uses: aquasecurity/trivy-action@0.34.2

# NORA – атака не проходит:
uses: aquasecurity/trivy-action@57a97c7e...  # 0.35.0

Плюс permissions: read-all глобально, write только где необходимо. Тот же trivy-action, но атака не проходит ни на одном слое.

От кейса к политике

SHA-пины для всех actions – теги не доверяем. Allowlist на уровне организации. OIDC вместо долгоживущих ключей. Ephemeral раннеры – персистентный стейт это бомба.

Quis custodiet ipsos custodes. Сканер стал вектором. Фиксация по хэшу – не паранойя, а гигиена.

---

Как ваш CI/CD пережил бы атаку на Trivy?

😁 – У нас нет CI/CD в этих ваших интернетах
😎 – SHA-пины, permissions: read-all, OIDC, ephemeral runners.
😱 – Пиним по тегу, permissions не прописаны, секреты вечные.
💪 – Форкнули все actions к себе, собираем раннеры из исходников, threat model включает захват GitHub. Коллеги крутят пальцем у виска, но CI не ломался ни разу.
---

#кейс #devops
😱1
На выходных провел небольшую встречу со студентами на тему: "От журналирования до реестра артефактов". И вспомнил нашу серию постов про "Лотерею собеседований". Серия была навеяна обратной связью от ребят, кто собесы проходил тогда, там был вопрос от HR: "Для чего нужны WAL-файлы в PostgreSQL?" Что за вопросы с подковырками тогда разбирали.

Вот только это не подковырка. Это проверка: ты будешь тем дежурным, который в пятницу в 23:00 поймёт почему база встала? Или тем, кто напишет в чат "всё красное, что делать?"

Инциденты всё реже из-за кода. Всё чаще потому, что инженер не понял систему.
По данным Uptime Institute, доля инцидентов, связанных с ошибками процессов и человеческим фактором, остаётся одной из самых высоких и продолжает расти.

И очень часто причина одна: журнал либо отсутствует, либо работает не так, как ты думаешь.

WAL – Write-Ahead Log, журнал упреждающей записи.
Принцип: прежде чем что-то изменить, запиши это в журнал. Упал? Поднялся и дочитал.

И это не фича PostgreSQL, а фундаментальный принцип, которому больше полувека.

И это не одна и та же технология, но одна и та же задача: пережить сбой, не потеряв согласованность данных.

PostgreSQL — WAL.
Файловые системы — journal.
Kafka — commit log.
Redis — AOF.
etcd — тоже WAL.
Git — reflog (история изменений ссылок).

Каждый реализует идею по-своему: PostgreSQL пишет физические изменения страниц, Redis записывает команды, Kafka вообще строит на логе всю архитектуру.
Но принцип один: сначала зафиксировать, потом применить.
Принципу десятки лет.
И за это время лучше ничего не придумали.

Потому что нечего придумывать. Диск не стал умнее за 50 лет. Он всё так же быстрее пишет подряд, чем прыгает по случайным блокам. Меняются названия. Принципы – нет.

Тот инцидент с диском в пятницу? PostgreSQL копил мёртвые строки три месяца, потому что никто не настроил autovacuum.
Каталог WAL вырос с 1 до 50 гигабайт за выходные. Ноль симптомов до момента полного заполнения диска. Ни медленных запросов, ни ошибок.
А потом – всё и сразу.

Дежурный, который знает что такое WAL, через минуту понимает: освободить место в pg_wal, проверить архивирование, разобраться с replication slot. Дежурный, который не знает – гуглит конфлюенс, идёт в нейронки - "PostgreSQL не запускается" и теряет час. А иногда делает хуже.

Вопрос про WAL на собеседовании – не про PostgreSQL. Он про то, видишь ли ты одни и те же принципы в разных инструментах. Да, бывает, что спрашивающий сам не до конца понимает вопрос. Но это не отменяет главного: ты должен понимать. И если ты это видишь – тебе не нужно зубрить ответы. Ты их выводишь.

Инженер – это не тот, кто знает все команды, а тот, кто видит паттерны.

Проверь себя: сможешь объяснить WAL, не упоминая PostgreSQL?
Если нет – ты учил инструменты, а не принципы.

#devops #мышление #кейс #карьера #devitway
2👍2
⚡️ DevOps Digest #6 | 24.03.2026

🔥 Главное:
1. Istio переезжает на новый реестр образов – контейнеры из gcr.io/istio-release перестанут быть доступны с 1 января 2027. Новый адрес – registry.istio.io. Если не мигрировать, поды при рестарте перестанут подниматься.
https://istio.io/latest/blog/2026/retirement-of-gcr.io/

2. Prometheus: флаг uncached-io для предсказуемого потребления памяти – экспериментальный флаг отключает страничный кэш при компакции блоков, снижая давление на память контейнера и устраняя «призрачное» потребление, которое путает мониторинг и провоцирует OOMKill.
https://prometheus.io/blog/2026/03/05/uncached-io/

3. PentAGI – автономный ИИ-агент для тестирования на проникновение – open-source система на Go, способная самостоятельно выполнять сценарии пентеста. 3400+ звёзд за неделю на GitHub.
https://github.com/vxcontrol/pentagi

4. Canonical выпустила MicroCloud 3.1 – инструмент для быстрого развёртывания кластеров на собственном оборудовании с распределённым хранилищем и защищённой виртуальной сетью. Написан на Go, лицензия AGPL 3.0, ставится из snap.
https://www.opennet.ru/opennews/art.shtml?num=65048

5. Технический анализ перехвата трафика в клиенте Telega – 18 марта создатели «удобного Telegram без VPN» активировали перенаправление трафика через свои серверы с отключённым PFS и нейросетевым анализом переписки. Воспроизводимый разбор с доказательствами.
https://habr.com/ru/articles/1014144/

🔍 Почему Prometheus «ест» больше памяти, чем вы думаете
Путаница между container_memory_usage_bytes, container_memory_working_set_bytes и container_memory_rss – боль каждого, кто настраивал лимиты в Kubernetes (этой проблеме уже 9 лет, и issue до сих пор открыт). Причина – страничный кэш ядра: данные, записанные при компакции, остаются в кэше и учитываются в usage_bytes, хотя процессу не нужны. Флаг --enable-feature=uncached-io использует прямой ввод-вывод (O_DIRECT) для записи компактируемых блоков, обходя кэш. Если ваш Prometheus регулярно упирается в лимит памяти – включите флаг и сравните потребление до и после.

🛠 Команда дня:
kubectl get pods --all-namespaces -o json \
| jq -r '.items[] | select(.spec.containers[].image | startswith("gcr.io/istio-release")) | "\(.metadata.namespace)/\(.metadata.name)"'

Покажет все поды с образами Istio из старого реестра gcr.io – если список не пуст, пора мигрировать на registry.istio.io

#дайджест #kubernetes #security

💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥31
NORA v0.2.35
за 2 недели: 7 релизов, токены на Argon2id, SLSA provenance, полный npm proxy, заявка в Роспатент.

Из интересного: уже несколько просьб добавить Go module proxy. Значит, кому-то нужно, добавил в роудмеп.

Если хочешь попробовать контрибьют, есть несколько несложных issues, буду рад помощи: github.com/getnora-io/nora/issues

Подробный changelog — в @getnora

Статья на dev.to: dev.to/devitway/why-i-replaced-nexus-with-a-32mb-binary-470f

#кейс #rust
👍21
⚡️ DevOps Digest #7 | 27.03.2026

🔥 Главное:
1. Вышли nginx 1.28.3 и 1.29.7 – устранены 6 уязвимостей, четыре с рейтингом 8.5+. Три из них – переполнение буфера. Обновляйтесь без промедления.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65068

2. Библиотеку LiteLLM (95 млн загрузок/мес) скомпрометировали в PyPI. Версии 1.82.7 и 1.82.8 содержали код для кражи ключей и паролей. Вредоносные пакеты удалены, проект заморожен до окончания расследования.
🔗 https://futuresearch.ai/blog/litellm-attack-transcript/

3. Что происходит с открытыми Ollama-серверами: данные с трёх ловушек (DE, US, RU) за март. Трейдинг-боты, контент-фермы, перебор моделей. Если ваш Ollama доступен извне – гости уже в пути.
🔗 https://habr.com/ru/articles/1015646/

4. llm-d – open-source платформа для запуска больших языковых моделей на Kubernetes с аппаратным ускорением. Облачно-агностичное решение для самостоятельного развёртывания.
🔗 https://github.com/llm-d/llm-d

5. Коллекция Shell-приёмов для ежедневной работы – от продвинутого history до хитростей с перенаправлением потоков. 579 очков на Hacker News, значит зацепило многих.
🔗 https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/

🔍 Цепочка поставок Python: один пакет, 95 миллионов загрузок
Атака на LiteLLM показывает: между pip install и утечкой секретов может быть одно скомпрометированное обновление. Защита: фиксируйте версии в requirements.txt с хэшами (--require-hashes), держите приватное зеркало PyPI для продакшена, не обновляйте зависимости автоматически без проверки. Добавьте pip-audit в CI-конвейер – он сканирует пакеты на известные CVE.

🛠 Команда дня:
pip-audit

Проверяет все установленные Python-пакеты на известные уязвимости. После компрометации LiteLLM – первое что стоит запустить на своих серверах.

#дайджест #security #kubernetes

💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥31
Гофер теперь живёт в 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
🔥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) – все скомпрометированы через захват аккаунтов мейнтейнеров. Паттерн одинаковый: получают доступ к учётке, публикуют вредоносную версию, собирают секреты из окружения и рабочих директорий жертвы. Двухфакторная аутентификация на всех реестрах пакетов – не рекомендация, а обязательное требование. Для критичных зависимостей пинните хеши и проверяйте подписи.

🛠 Команда дня:
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"

Мгновенный снимок потребления ресурсов всех контейнеров: CPU, память, сеть.

#дайджест #security #devops

💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥3
Запускаю КМБ — Курс молодого бойца

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
👍42🔥1
Round Robin — свинья на дежурство

Дефолтная балансировка в большинстве систем, и никто его не трогает, «потому что работает же». До первой нормальной нагрузки.

Допустим у нас есть три сервера. Один пускай будет «ветеран» на 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
🔥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 контейнеры с абсолютными симлинками на /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
🔥6👍1
Хроники пикирующего вайба. Часть первая (2/6)

Наблюдая за чатами вайбкодеров, собрал целую кунсткамеру того, как "обнуление барьера" работает на практике.

Человек без опыта в разработке поднял проект на 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 убойных предложения для сопроводительного.

Нажал Скопировать → вставил в отклик → пошел пить кофе, пока HR пытается осознать, что ты подходишь.

Какой переход считаете самым тяжёлым: гос→коммерция или коммерция→гос?

Тестируй тут: lms.devitacademy.com/career

#карьера #devops
🔥5
Хроники пикирующего вайба. Часть вторая (3/6)

"Там на неведомых дорожках следы невиданных зверей..." Александр Сергеевич, конечно же, не бывал в чатах вайбкодеров, но кунсткамеру описал точно.

В чате встречается типаж: "Нейроинженер, Архитектор ЧатБотов". Проектирует ботов мышкой в BotHelpот лид-форм до "сложных логик с интеграциями". Кода нет в принципе. Сидит на Windows 7, где современные IDE даже не запустятся, зато авторитетно рассуждает об архитектуре. Когда титул в телеграме заменяет базу на выходе карго-культ в чистом виде.

Другой типаж: работа с госсектором, критическая инфраструктура, сложные риски. Развернула n8n на хостинге за двести рублей, конфиденциальные данные клиентов гонит через зарубежные API. На вопрос о безопасности – искреннее недоумение. Курит на бензоколонке, радуясь, что зажигалка красивая.

Третий: полгода "пишет" агента, не дополз до тестов, зато "глубоко погрузился в DevOps". Docker для него"прога-коробочка". Продакшен-ключи хранит в Obsidian, где их читает другой LLM-агент. А главноецифровая эхо-камера. Grok хвалит код, написанный Gemini. Gemini одобряет архитектуру от Grok. Человек посередине нажимает кнопки и репостит похвалу, как доказательство мастерства. Он думает что дирижёр, хотя он прослойка между двумя чат-ботами.

Три типажа – одна ловушка. Инструмент упростился, но иллюзия понимания опаснее честного незнания.

Продолжение: завтра.

#мышление #ai
🔥21👍1
Минус девятнадцать процентов (4/6)

Упомянутые случаи из чатов читаешь как анекдоты, в каких-то моментах можно и себя найти, я не исключение. Можно отмахнуться: "ну это новички, у серьёзных людей всё иначе". Окей. Давайте к серьёзным людям.

METR в 2025 взяли шестнадцать опытных open-source разработчиков. Не джунов из чатов, а людей с историей коммитов. Дали 246 реальных задач.
Результат: с нейросетью работали медленнее на 19%.
При этом были уверены, что ускорились процентов на двадцать. Код мелькает, строчки появляются, ощущение полёта. А git log потом показывает: половина коммитов правки за нейросетью.

Гарвард назвал это "Эффект стены GenAI". На старте модель разгоняет идеи, черновики, прототипы. Но на уровне, где нужна экспертиза, стена. Карту выдаст, ходить по ней не научит.

Anthropic проверили иначе: одни копипастили из модели, другие работали без неё, третьи использовали как спарринг-партнёра. Копипастеры сдали тест на 50%. Без AI на 67%. Выиграли только те, кто спрашивал "почему так" и "где тут дыры", а не жал "принять всё".

И вишенка. Отдельное исследование, три тысячи участников. Чем дольше человек общается с моделью, тем выше оценивает собственную компетентность.
Механика элементарная: в восьмидесяти процентах случаев модель соглашается. Ведёшь к обрыву "отличный маршрут, продолжаем".

Даннинг и Крюгер не предполагали, что у их эффекта появится усилитель. Раньше нужно было хотя бы самому додуматься до глупости. Теперь глупость генерирует модель, а человек одобряет. "Работает значит правильно". Ровно до первого инцидента в самый неожиданный момент.

Три исследования один вывод: инструмент масштабирует не навык, а уверенность в навыке.

Продолжение: завтра.

#мышление #ai
🔥3👍21
Почему код гниёт сам по себе (5/6)

Нейросеть не делает людей умнее. Она накладывает фильтр "красиво". Код новичка выглядит как работа мидла, лендинг гипсокартонщикакак проект дизайн-студии.
Снаружи все резко стали "хорошими". Внутри тот же колокол Гаусса. Разрыв между тем, как проект выглядит, и тем, как он спроектирован, это зона катастрофы.

Майкл Поланьи ещё в 60-х сказал: "Мы знаем больше, чем можем выразить словами". Чутьё инженера, понимание, где код "пахнет", это неявное знание. Оно не передаётся через промпты. Добывается только через практику и личную боль. Я недавно разбирал это на реальном кейсе: студент видит 403 Forbidden и три типа мышления дают три разных пути к ответу. Аристотель разделял: можно "знать", что огонь горячий (тебе сказали), а можно ЗНАТЬ (ты обжёгся). Нейросеть выдаёт чужой опыт, красивый и бесплатный. Но без своих шишек он не усваивается.

Есть закон эволюции софта, сформулированный Мейром Леманом в 70-х: сложность системы растёт всегда, если не тратишь силы на её снижение. Код гниёт не потому, что ты плохой. Мир вокруг меняется: протухают сертификаты, обновляются зависимости, вылетают новые CVE. Оставь сервер на год без присмотра решето.

Вайбкодер-самоучка думает: закинул камень на гору, можно открывать шампанское. Инженер знает: этот камень нужно катить каждый день. Тестировать, патчить, мониторить.

Формула проста: Нейросеть умножить на ноль равно ноль. Страшно то, что в 2026 году этот ноль выглядит как уверенная единица.

Продолжение: завтра.

#мышление #ai
🔥51
Как не стать био-адаптером для нейросети (6/6)

Если не хочешь деградировать до оператора кнопки "Сгенерировать ещё раз", то попробуй такой подход:

Не проси "сделай", проси "объясни".

Забудь "напиши мне скрипт".

Спроси: какие есть варианты архитектуры для этой задачи и чем они плохи?

Требуй хейта. Нейросеть подхалим по определению.
Пиши прямо: разнеси моё решение, найди дыры в безопасности и архитектурный бред.

Ищи слепые зоны. Главный враг не баг, а вопрос, который ты забыл задать.
Спроси: о чём я тебя не спросил, хотя должен был?

Проверяй реальностью. Нет тестов, логов и понимания, как деплоить, ты не программируешь, ты играешь в Sims.

Промпт это генерация гипотез. Инженерия отбор истины. Линтер не подстраивается под спрашивающего. Тест не галлюцинирует. Бенчмарк не льстит. Генератор не может быть судьёй своего вывода. По той же причине, по которой аудитор не может быть клиентом.

Я скормил черновик этого текста двум моделям и попросил найти ошибки. Обе сказали "отлично написано". Ошибки нашёл сам при вычитке.

Нейронка отличный второй пилот. Но если уберёте руки со штурвала и решите вздремнуть, глядя на красивый "вайб" за окном, помните про гравитацию. Она работает молча.

Не доверяйте звёздам. Доверяйте тестам.

Серия "Барьер входа" (6/6)

#мышление #ai
🔥51
⚡️ 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-решений.

🛠 Команда дня:
ss -tnp | awk '{print $4, $6}' | sort -t: -k2 -n | uniq -c | sort -rn | head -20

Показывает топ-20 локальных портов по числу активных TCP-соединений с именами процессов

#дайджест #security #linux

💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥51
Звёзды врут

Есть каналы, которые заваливают ссылками на GitHub-репозитории. Их периодически чекаю, как сорока: увидел блестящий паттерн, утащил в "гнездо", покрутил. Иногда находишь подход, о котором не думал, а иногда подтверждаешь, что твой велосипед всё-таки едет лучше.

Но есть проблема: 2000 звёзд сегодняэто не знак качества, а бюджет на маркетинг или красивый README. Народ жмёт Star не открывая код. В итоге имеем "проверенное решение" с хардкодом пароля от Postgres в третьем коммите и охапкой CVE. trivy и semgrep нашли бы это за секунды, но кто будет гонять линтеры на каждый репозиторий из ленты?

Отдельная кастагоре-вайбкодеры. Проект нагенерен за вечер, демка крутится, звёзды летят. А внутри двенадцать innerHTML без санитизации и полное отсутствие обработки ошибок. Нейросеть написала, нейросеть похвалила, круг замкнулся.

Чтобы не тащить этот мусор к себе, собрал Code Roast – бесплатную прожарку публичных репо.

Механика прозрачная - как и лента результатов, она общая:

Кидаешь ссылку.

8 классических линтеров (SAST) собирают фактуру.

3 разные модели анализируют логику и перепроверяют друг друга.

На выходеоценка из 10 и детальный разбор. Каждая находка помечена: где строгий вердикт линтера, а где"мнение" модели, прошедшее через кросс-валидацию.

Пока в пилоте50 прожарок в сутки.
Попробуйте скормить ему тот самый "звёздный" репозиторий, который вы отложили в закладки:

👉 roast.devopsway.ru

#кейс #devops #coderoast
🔥61