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
Как понять, что ты стал чужим KPI, а не кандидатом

"Ходит дурачок по лесу,
ищет дурачок глупее себя"
– Егор Летов


Недавно со мной общался AI-бот от крупной компании. Четыре раунда глубоких вопросов: архитектура моей платформы, стек, метрики, бюджеты. По сути бесплатный консалтинг на полчаса.

В ответ на мои вопросы о зарплате, стеке и локации бот выдавал "нет информации". Через три недели шаблонный отказ без фидбека (сами нашли, сами написали, сами отказали, молодцы). Система не оценивала мою экспертизу, она её тупо собирала. Это не скрининг, а экстракция данных какая-то под видом интервью.

Красные флаги, что вы строчка в отчёте:

Односторонний обмен. Бот вытягивает детали архитектуры, но не дает конкретики по вакансии.

Барьер из чат-ботов. Вас не пускают к живому человеку, так как бот собирает данные дешевле и быстрее.

Зарплата на первой минуте. Сбор рыночных вилок без контекста задач и стека.

Рекрутер "на подмене". Человек в чате не знает деталей позиции и работает просто как оператор эксельки.

Документы до этапов. Просьба прислать трудовую "для белого списка" еще до технического интервью.

Фантомные вакансии. В 2026 году до 40% вакансий просто фейки для создания видимости рынка или сбора аналитики.

Что с этим делать:

Выходите на нанимающих напрямую. LinkedIn, митапы или рефералы позволяют обойти "сборочный цех" ботов.

Соблюдайте пропорциональность. Глубина вашего ответа должна соответствовать прозрачности вакансии. Не назвали стек не расписывайте архитектуру.

Тестируйте инверсией. Спросите бота или рекрутера: "Какую техническую боль команда решала в прошлом квартале?". Шаблонный ответ признак мертвой вакансии.

Никаких документов до оффера. Паспорт и трудовая передаются только при оформлении.

Если чувствуете, что вас гоняют по кругу вы не в найме, а в чужой отчетности.

Если хочешь разобрать свою стратегию поиска и перестать быть чужим KPI – записывайся на разбор:
calendly.com/devitway/meet-with-me

#devops #карьера
🔥4👍21
⚡️ DevOps Digest #15 | 18.05.2026

🔥 Главное за неделю:

1. Kubernetes v1.36: ExternalIPs в Service объявлен deprecated – Поле .spec.externalIPs признано небезопасным (CVE-2020-8554) и объявлено устаревшим. Если используете его в on-premise кластере вместо облачного балансировщика – пора переходить на MetalLB или kube-vip. В будущих версиях kube-proxy перестанет поддерживать ExternalIPs.
🔗 https://kubernetes.io/blog/2026/05/14/kubernetes-v1-36-deprecation-and-removal-of-service-externalips/

2. Terraform 1.15: переменные в source модулей и deprecation переменных – Теперь можно использовать переменные прямо в source и version модулей (через новый атрибут const = true). Плюс появился механизм пометки переменных как deprecated с кастомным сообщением – удобно при рефакторинге больших конфигураций.
🔗 https://www.hashicorp.com/blog/new-in-terraform-115-dynamic-sources-variable-deprecation-and-more

3. node-ipc снова скомпрометирован – но не через код, а через домен за $9 – Атакующие перехватили просроченный домен мейнтейнера, сбросили пароль npm-аккаунта и опубликовали вредоносные версии пакета. Payload крал AWS-ключи, SSH и .env, а эксфильтрация шла через DNS TXT-записи – SIEM такое почти не видит. Если у вас есть npm-зависимости в CI/CD – стоит прочитать.
🔗 https://habr.com/ru/articles/1035902/

4. Стоимость уборки за AI-кодом – то, о чём молчит нарратив про скорость – GitHub прогнозирует 14 млрд коммитов в 2026 году. Но AI генерирует код быстрее, чем команды успевают его ревьюить и поддерживать. Статья разбирает скрытые расходы: технический долг, раздувание кодовой базы, проблемы с безопасностью сгенерированного кода. Полезный взгляд для тех, кто внедряет AI-инструменты в пайплайн.
🔗 https://thenewstack.io/cleanup-cost-ai-code/

5. Как программа попадает в память: от execve до main – Пошаговый разбор того, что происходит в Linux после ./myprogram: как ядро находит файл, загружает ELF в память, вызывает динамический линковщик и доходит до main(). Всё с примерами через strace. Отличный материал для понимания того, что происходит под капотом.
🔗 https://habr.com/ru/articles/1036444/

6. Cloudflare: как оптимизация TCP в ядре Linux сломала QUIC – Инженеры обнаружили, что окно перегрузки CUBIC залипает на минимуме и не восстанавливается. Причина – Linux-ядро обнуляет таймер cwnd_epoch при переходе в idle, но QUIC-реализация quiche использует CUBIC иначе, чем TCP-стек ядра. Починили одной строкой. Поучительный разбор про то, как допущения одной подсистемы ломают другую.
🔗 https://blog.cloudflare.com/quic-death-spiral-fix/

🛠 Команда недели:
kubectl get svc -A -o json | jq -r '.items[] | select(.spec.externalIPs != null) | "\(.metadata.namespace)/\(.metadata.name): \(.spec.externalIPs)"'

Найти все Service с externalIPs в кластере – после deprecation в K8s 1.36 стоит знать, где они у вас.

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

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

В апреле Alibaba прикрыла бесплатный тир Qwen Code. Инструмент, на который завязали часть пайплайнов, протух за пару месяцев. Вывод банальный: любой внешний вендор – это точка отказа.
Пересобрал стек и статью по принципу полной автономности. CLI отдельно, инференс отдельно. Если завтра закроется очередной API-токен, мы просто меняем одну строку в конфиге.

Что внутри:
– 3 CLI (OpenCode, Aider, Qwen Code) – установлены, настроены, проверены
– MoE-модели: Qwen 3 30B-A3B выдаёт 20 t/s на CPU – быстрее, чем dense 8B
– Тест на DevOps-задачах: Dockerfile, systemd, Terraform, K8s – Gemma 4 26B оказалась лучше Qwen по качеству
– Грабли: /no_think сломан в Ollama 0.24, thinking mode жрёт токены, модели болтают вместо кода
– CPU vs GPU: реальные замеры на RTX 3090 и CPU с ограничением потоков

Полная версия с конфигами, Modelfile и таблицами
👉 devopsway.ru/posts/local-ai-devops-ollama-2026/

#гайд #ai #devops
🔥52🙏1👻1
⚡️ DevOps Digest #16 | 25.05.2026

🔥 Главное за неделю:

1. Песочница для AI-агентов: почему "просто Docker" не спасает – Пошаговый гайд по изоляции AI-агентов, которые выполняют код: drop root, фильтрация syscalls, сетевые политики, отключение docker.sock. Актуально для всех, кто запускает автоматизацию с доступом к shell.
🔗 https://dev.to/alanwest/how-to-sandbox-ai-coding-agents-without-crippling-them-116c

2. docker-use – переключение между аккаунтами Docker Hub – Простая CLI-утилита: по директории конфигов на каждый аккаунт + shell-функция для переключения через DOCKER_CONFIG. Полезно, если работаете с несколькими реестрами.
🔗 https://dev.to/chiragagg5k/managing-multiple-docker-hub-accounts-using-docker-use-b6p

3. Массовые обновления безопасности: nginx, OpenSSH, PostgreSQL, rsync, dnsmasq – На этой неделе вышли патчи для Debian, SUSE, Ubuntu, Fedora, AlmaLinux. Затронуты nginx, openssh, postgresql (14–18), rsync, dnsmasq, bind9, podman, runc. Проверьте свои серверы.
🔗 https://lwn.net/Articles/1073860/

4. Как ломаются сложные системы: 18 уроков для дежурного инженера – Разбор классической работы Ричарда Кука через призму SRE: катастрофа требует стечения нескольких отказов, система уже содержит баги, о которых вы не знаете, и постмортемы – не поиск виноватых, а способ учиться.
🔗 https://how.complexsystems.fail/

5. Кто мониторит AI-агентов в продакшене – CrewAI, AutoGen, LangGraph уже работают в production, но наблюдаемость этих систем хуже, чем у микросервисов 10 лет назад. Статья разбирает, что именно ломается: петли вызовов, рост latency, неконтролируемые расходы.
🔗 https://thenewstack.io/who-monitors-ai-agents/

6. CGE – краулер с визуализацией связей между поддоменами – Open-source инструмент для red team: собирает поддомены из SSL-сертификатов, краулит эндпоинты, парсит JS/HTML/формы, строит граф взаимодействий в реальном времени. Web UI + CLI.
🔗 https://github.com/a11mut3d/CGE

🛠 Команда недели:
kubectl get events --sort-by='.lastTimestamp' -A | tail -20

Показывает последние 20 событий кластера в хронологическом порядке. Быстрый способ понять, что происходило, когда поды начали падать.

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

💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥41
⚡️ DevOps Digest #18 | 08.06.2026

🔥 Главное за неделю:

1. Риск-ориентированное ревью IaC-пулл-реквестов – Не каждый PR в Terraform/Ansible заслуживает одинакового внимания. Подход с оценкой риска (blast radius, окружение, тип ресурса, откатываемость) помогает направить внимание ревьюеров туда, где оно действительно нужно. Полезная модель для любой команды, которая тонет в PR на инфраструктуру.
🔗 https://devops.com/risk-based-review-for-infrastructure-as-code-pull-requests/

2. Аудит песочницы AI-чатбота как чёрного ящика Linux – Инженер за 6 часов исследовал рантайм Kimi 2.6 стандартными Linux-инструментами: нашёл захардкоженный SSH-пароль в /proc/self/environ, измерил лимиты cgroup, определил инфраструктуру (K8s Pod, Burstable QoS). Отличный пример того, как базовые навыки Linux и контейнерной безопасности работают на практике.
🔗 https://dev.to/alex72py/i-audited-an-ai-chatbots-sandbox-like-a-black-box-linux-machine-bhe

3. acme.sh снова в трендах GitHub – Чистый shell-скрипт для автоматизации TLS-сертификатов через ACME-протокол. Работает без зависимостей, поддерживает десятки DNS-провайдеров и wildcard-сертификаты. Если вы ещё управляете сертификатами вручную или привязаны к certbot – стоит посмотреть.
🔗 https://github.com/acmesh-official/acme.sh

4. Метастабильные отказы: почему устранение триггера не помогает – SRE Weekly выделяет статью о метастабильных сбоях: система восстанавливается после триггера, но остаётся в нестабильном состоянии и падает снова. Классика для on-premise инфраструктуры с ограниченным запасом ресурсов. Рекомендую прочитать и оригинальную статью.
🔗 https://sreweekly.com/sre-weekly-issue-520/

5. AI ускоряет DevOps, но интеграции тормозят – AI-инструменты сделали отдельные шаги умнее (сканирование, код-ревью, триаж инцидентов), но передача данных между Jira, ServiceNow, мониторингом и CI/CD осталась ручной. Bottleneck сместился от написания кода к стыкам между инструментами. Актуально для команд, которые внедряют AI-помощников и удивляются, что пайплайн не ускорился.
🔗 https://devops.com/ai-is-accelerating-devops-poor-integrations-are-slowing-it-down/


🛠 Команда недели:
cat /proc/self/environ | tr '\0' '\n' | grep -iE 'pass|key|token|secret'

Проверяет переменные окружения текущего процесса на утечки секретов. Полезно при аудите контейнеров и CI-раннеров – если видите тут пароли в открытом виде, пора переходить на Vault или sealed secrets.

#дайджест #devops #security
🔥42
⚡️ DevOps Digest #19 | 15.06.2026

🔥 Главное за неделю:

1. Атака на цепочку поставок: клон Shai-Hulud пришёл в PyPI – Пять вредоносных пакетов: тайпсквоттинг Flask, Requests, NumPy плюс перехваченный легитимный mflux-streamlit. Код срабатывает прямо на установке (без import), это самораспространяющийся вор учёток, нацеленный на CI/CD-окружения. Вывод: пиньте версии, проверяйте зависимости перед сборкой, не ставьте свежие релизы вслепую.
🔗 https://about.gitlab.com/blog/shai-hulud-copycat-campaign-targets-python-developers/

2. GitHub Actions: долой PAT для агентных воркфлоу – Теперь можно использовать встроенный GITHUB_TOKEN вместо персонального токена: он короткоживущий, привязан к конкретному запуску и ограничен правами из workflow-файла. Откажитесь от долгоживущих широких PAT в пользу scoped-токенов везде, где это возможно.
🔗 https://devops.com/github-removes-pat-requirement-for-agentic-workflows/

3. AmneziaWG 2.0: маскировка переезжает в сам поток данных – Если раньше имитация была короткой «дымовой завесой» перед хендшейком, то теперь транспортные пакеты на проводе выглядят как трафик другого протокола. Практично для закрытых контуров, где обычный WireGuard режется по DPI.
🔗 https://habr.com/ru/articles/1047080/

4. Ansible Automation Platform 2.7 – Новый релиз развивает self-service-портал автоматизации: операционные команды могут отдавать готовые сценарии тем, кто не является экспертом в Ansible. Если живёте на AAP – посмотрите changelog перед обновлением.
🔗 https://www.redhat.com/en/blog/whats-new-ansible-automation-platform-2-7

5. K8s Necromancer: чёрный ящик для умерших подов – Контроллер перехватывает смерть пода до сборки мусора и замораживает форензику: логи, таймлайн событий, ENV, снапшот spec, графики CPU/память из Prometheus. Лекарство от вечного «CrashLoopBackOff без контекста, логи уже ротировались».
🔗 https://dev.to/solojoe/k8s-necromancer-a-black-box-flight-recorder-for-dead-kubernetes-pods-4pa8


🛠 Команда недели:
kubectl get events -A --sort-by='.lastTimestamp' | tail -20

Показывает последние 20 событий кластера в хронологическом порядке – быстрый разбор, когда «только что что-то сломалось», а куда смотреть, ещё непонятно.

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

💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥21
Ошибка, которой нет в логах: как не изобрести велосипед с LLM-мотором на дежурстве

История о том, как одна пропущенная строчка в логе съедает два часа инженерного времени

Пользователь загружает фото с Айфона в наш AI-сервис, получает ошибку, а у разработчиков на тестовых стендах всё работает. В логах стандартный raise_for_status() на 400 Bad Request. Видно, что упало, но само тело ответа от внешнего провайдера никто не сохранил.

Пришлось идти в мессенджеры, выпрашивать у клиента исходный файл и ковырять его руками. Выяснилось, что картинка весит 5 МБ (в лимит по байтам укладывались), но её разрешение – 12.2 Мп. Внешний API резал файлы именно по габаритам, выставляя жесткий лимит в 12 Мп. Автоматика могла бы выплюнуть эту причину одной строкой, но вместо неё контекст собирали люди.

В статье разбираем, как правильно выстроить регистрацию ошибок и почему сейчас не стоит слепо следовать тренду на автоматизацию мониторинга с помощью LLM:

Контекст вместо сырых трейсов: как оформлять логи и настраивать сбор метаданных в Sentry или его легковесном open-source аналоге GlitchTip.

Почему LLM не место в критическом пути алертинга: разбираем проблемы с недетерминизмом, задержками ответов и поведением моделей во время OOM-штормов, когда логи сыплются тысячами строк в секунду.

Архитектура здорового человека: как спроектировать трехуровневую систему, где за мгновенные оповещения отвечает жесткое ядро на регулярных выражениях, а нейросеть работает офлайн и пакетно — просто предлагая новые правила для этого ядра.

Фикс кейса: как мы закрыли проблему с Айфонами с помощью Pillow и как доставляем такие инциденты до дежурных через alert-платформу Pusk.

👉 Читать статью полностью

#кейс #devops
🔥3👍2
⚡️ DevOps Digest #20 | 22.06.2026

🔥 Главное за неделю:

1. Прогнал gitleaks по своему репозиторию – нашёл 12 живых секретов – Инженер был уверен, что его homelab-репозиторий чист: CI зелёный, секреты вроде бы в Vault. Полный скан истории нашёл 12 секретов в открытом виде, включая приватный OIDC-ключ, которым подписываются SSO-токены для ArgoCD, Vault и Grafana. Прогони полную историю у себя – почти наверняка что-то всплывёт.
🔗 https://dev.to/dwoitzik/i-ran-gitleaks-against-my-own-repo-and-found-12-real-secrets-1j18

2. IncidentRelay дорос до полноценного on-call – Open-source и self-hosted система дежурств: маршрутизация алертов, эскалации, ACK/Resolve. За месяц добралась до v1.0.21-beta и закрыла всю цепочку дежурства. Живая альтернатива PagerDuty и OpsGenie для закрытого контура.
🔗 https://habr.com/ru/articles/1050286/

3. Terraform Ansible collection 2.0 – HashiCorp выкатила версию 2.0 на pyTFE: динамический инвентарь и доработанные Terraform actions. Связка provisioning (Terraform) и управления конфигурацией (Ansible) стала плотнее и двунаправленной. Если оба инструмента в твоей обвязке – посмотри, что поменялось.
🔗 https://www.hashicorp.com/blog/whats-new-with-terraform-ansible

4. Вышел Valkey 9.1 – Open-source форк Redis под крылом Linux Foundation: кеш, очереди, key-value-структуры. Заметную часть багфиксов в релизе бэкпортировал AI-агент – сам разруливал конфликты и гонял CI. Главное – это бесплатная замена Redis после смены его лицензии.
🔗 https://thenewstack.io/valkey-ai-backporting-agents/

5. Arcane – простой веб-UI для Docker – Self-hosted панель управления контейнерами на Go, на этой неделе набрала больше сотни звёзд. Лёгкая альтернатива Portainer, когда нужен понятный интерфейс для контейнеров на одном-двух хостах.
🔗 https://github.com/getarcaneapp/arcane

6. "Скорость – это не поток" – Деплои чаще, дашборды зелёные, а ценность всё равно стоит в очереди. Разбор, почему автоматизация без системного выравнивания просто разгоняет хаос, и как Value Stream Mapping показывает, где реально застревает работа. Полезно тем, кто внедряет DevOps-практики.
🔗 https://devops.com/you-cannot-fake-flow-what-organizations-get-wrong-about-value-delivery/

🛠 Команда недели:
df -ih

Использование inode по файловым системам. Если IUse% подходит к 100, а по df -h места ещё полно – диск забит не объёмом, а числом файлов: классика на legacy-серверах, где мелкие логи или сессии выели все inode, и запись падает с No space left on device, хотя "место вроде есть".

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

💬 Переслал коллегам? Пусть подпишутся: @DevITWay
👍4🔥1
Разбираемся с сетями (без занудства и OSI ради OSI)

Давай честно: сколько раз за последний год ты нейрогуглил что-то по сетям или лез в калькулятор подсетей, чтобы проверить маску /24 и /25, или пытался понять, а те, кто выпускают для корпсети имена доменов в своём уме или это у тебя уже кукуха отлетела? А когда на собесе спрашивают "что происходит, если ввести URL в браузер", внутри обычно что-то типа: "Ну там DNS бороздит просторы Большого театра и пакеты летают".

И это нормально. Обычно сети либо учат по академическим кирпичам типа Олифера (где засыпаешь на главе про физический уровень), либо собирают по кусочкам на практике: тут скопировал конфиг ингресса, там пробросил порт в докере – вроде завелось, и ладно.

Проблемы начинаются как обычно внезапно, когда сыплет 502 ошибка, pod не видит базу, а сертификат внезапно протух. И ты сидишь перед монитором, пытаясь угадать, на каком вообще этапе всё сломалось. (Хотя мы-то знаем, что виноват всегда DNS. Даже когда он не виноват).

Решил собрать в кучу и разложить по полочкам ту базу по сетям, которая реально нужна каждый день в DevOps. Назовём это Networking 20/80.

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

1. Как на самом деле устроена модель сети (и почему OSI полезна только для диагностики).
2. IP-адреса, подсети и маршрутизация на пальцах.
3. DNS – как он устроен внутри и почему ломается.
4. TCP и UDP: флаги, хендшейки и почему рвутся соединения.
5. HTTP, HTTPS и TLS (что под капотом у сертификатов).
6. Файрволы и базовый забор из правил.
7. Балансировка трафика и то, как всё это крутится внутри Kubernetes.

В каждом посте – минимум теории, происхождение протоколов (чтобы понять логику создателей) и живые команды, которые пригодятся в консоли (ip, ping, traceroute, ss). Задача – научиться понимать, на каком уровне искать, когда всё упало.

Первый пост уже готов, погнали разбираться 👇
https://devopsway.ru/posts/networking-00-model/

#networking #linux #devops
🔥7👍1
IP-адреса и подсети: та самая математика, из-за которой ты лезешь в калькулятор

📺 В предыдущих сериях: это второй пост мини-курса "Networking 20/80" – 20% сетевых знаний, которые закрывают 80% работы DevOps. В нулевом разбирались с картой слоёв: на каком этаже искать супостата, когда всё упало. Сегодня спускаемся на этаж адресов.

На собесе меня как-то спросили: "для чего нужна маска подсети?". Мозг, натренированный на корпоративный тикет – где заполняешь поля по готовой архитектурной схеме, как предки завещали, – честно выдал то, чем реально пользуешься, когда нарезаешь подсети под контуры: "чтобы посчитать, сколько влезет хостов". Формально не враньё. Но это ответ про побочный эффект, а не про смысл – и если интервьюер в теме, он тут же начнёт раскручивать тебя в нужном направлении, или нет 😅

А смысл в том, что маска проводит границу: где заканчивается "своя" сеть и начинается "чужая". Из этой границы растёт всё остальное – пойдёт пакет напрямую через свитч или полезет через роутер, можно ли отрезать одно окружение от другого. Сколько хостов влезет – это просто сдача от битов, которые остались под хост.

Плохая новость: в адресации действительно есть арифметика.
Хорошая: вся она – степени двойки, и её реально держать в голове, а не в закладке с калькулятором.

В посте раскладываю по полочкам:

– почему в сети /24 не 256 адресов, а 254 (куда делись два и кто их съел);
– как за десять секунд понять, в одной ли сети два адреса – и почему от этого зависит, нужен тебе роутер или хватит свитча;
– откуда взялись 10.x, 172.16.x и 192.168.x и почему их не пускают в интернет;
– что на самом деле делает NAT, когда твой pod или домашний ноут выходят наружу под одним IP;
– IPv6 – ровно тот минимум, из-за незнания которого сервис молча не отвечает половине клиентов.

Плюс три классических подвоха с собеса (с ответами, которые не стыдно проговорить вслух) и код-челлендж: разбить 10.100.0.0/16 на prod, staging и dev так, чтобы ничего не пересеклось.

Полная версия с таблицами масок, разбором NAT в Kubernetes и шпаргалкой размеров сетей 👇

https://devopsway.ru/posts/networking-01-ip-subnets/

#networking #linux #devops
🔥4