Библиотека девопса | DevOps, SRE, Sysadmin
10.4K subscribers
1.85K photos
76 videos
5 files
3.25K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Download Telegram
🖇 Как убедиться, что после миграции ничего не сломалось

Финальный пост цикла о миграции с Ingress-NGINX. Предыдущие посты описывали конкретные ловушки. Этот — о том, как проверить результат и снизить риск сбоев при переключении трафика.

Инвентаризация. Выгрузите все Ingress-ресурсы и составьте список уникальных аннотаций. Это покажет полный объём конфигурации, которую нужно перенести, и места, где автоматический перевод невозможен.

Теневое тестирование. Gateway API поддерживает зеркалирование трафика через фильтр RequestMirror. Реальный трафик продолжает идти через Ingress-NGINX, а его копия параллельно обрабатывается новым Gateway. Можно сравнивать ответы и выявлять расхождения без риска для продакшена.

Утилита ingress2gateway. Инструмент от сообщества Kubernetes конвертирует Ingress-ресурсы в HTTPRoute и показывает места, где автоматический перевод невозможен. Хорошая отправная точка, но не финальный результат.

Проверка приоритетов маршрутов. В Gateway API более специфичный путь имеет больший приоритет. В Ingress-NGINX логика другая. Если есть пересекающиеся маршруты, порядок их срабатывания после миграции может измениться незаметно.

Начните с одного маршрута, протестируйте его в тени, убедитесь в корректности — и только потом двигайтесь дальше. Чем больше у вас тестов, описывающих реальное поведение маршрутов, тем безопаснее переход.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🔄 curl 8.19.0: что изменилось

За два с небольшим месяца разработки накопилось 538 коммитов. Это 273-й релиз утилиты и библиотеки.

В этом обновлении закрыли четыре CVE. Среди них некорректное повторное использование соединения HTTP Negotiate, утечка токенов при редиректе через netrc, проблема с прокси-соединениями при наличии учётных данных и use-after-free в SMB.

Примечательно, что программу bug bounty закрыли ещё до релиза, но баги находить от этого не перестали.

Из заметных изменений: появилась начальная поддержка MQTTS, в --limit-rate и --max-filesize теперь можно передавать дробные значения, а в Windows curl можно собрать с нативным хранилищем сертификатов CA.

Минимальная поддерживаемая версия Windows теперь Vista. Поддержку OpenSSL-QUIC убрали совсем. В следующих версиях планируют сделать опциональными NTLM и SMB, удалить RTMP и TLS-SRP.

➡️ Источник

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🤨 Ваш роутер может работать на хакеров

Исследователи Black Lotus Labs опубликовали отчёт о новом ботнете KadNap. Разбираем, что произошло и что делать.

С августа 2025 года тихо растёт ботнет из 14 000+ заражённых роутеров, преимущественно Asus. Заражённые устройства продаются как прокси-сервис под названием Doppelganger — анонимайзер для криминальных операций: брутфорс, целевые атаки, обход геофильтров.

Особенность малвари — она прячет C2-серверы в P2P-сети Kademlia DHT (та самая, что под BitTorrent). Трафик к командным серверам растворяется в легитимном торрент-шуме. Классические блокировки по IP и ASN не работают.

Цепочка заражения проста:

• cron-задача каждый час тянет скрипт с сервера атакующих
• скрипт скачивает ELF-файл kad и запускает его
• малварь закрывает SSH (порт 22) через iptables, чтобы никто не вылечил
• роутер уходит в ботнет и начинает проксировать чужой грязный трафик

🛠 Что делать прямо сейчас

1. Проверить роутеры на периметре

Посмотреть, есть ли в /jffs/ файл .asusrouter или процесс kad. На управляемых устройствах — через SNMP/Zabbix/Netbox. Если устройства не мониторятся вообще — это уже проблема.

2. Проверить трафик к BitTorrent-трекерам

Если корпоративный роутер или edge-устройство ломится на публичные DHT-ноды (порт 6881/UDP и смежные) — это красный флаг. В нормальной инфраструктуре такого быть не должно.

3. Заблокировать IoC

Black Lotus Labs выложили индикаторы компрометации на GitHub:
github.com/blacklotuslabs/IOCs/blob/main/KadNap_IOCs.txt
Добавить в WAF, EDR, firewall-правила. Lumen уже заблокировал инфраструктуру на своём backbone — но у вас своя.

4. Закрыть управление роутерами от интернета

Веб-морда и SSH роутера не должны торчать наружу. Если торчат — закрыть немедленно. Управление только через VPN или выделенный out-of-band канал.

5. Сменить дефолтные пароли и обновить прошивку

Звучит банально, но именно так KadNap и попадает на устройства. Asus выпускает обновления прошивок — проверить, стоит ли актуальная.

6. Перезагрузить заражённое устройство

Малварь живёт в /tmp и /jffs. Перезагрузка не лечит полностью , потому что cron-задача восстановит, но даёт окно для диагностики и смены учёток до повторного заражения.

7. Устройства EOL — на замену

Если роутер снят с поддержки производителем — патчей не будет. Эксплуатировать такое в 2026 году это не технический долг, это открытая дверь.

Ваш роутер в ботнете — это не только ваша проблема. С вашего IP брутфорсят чужие VPN, атакуют банки, обходят 2FA. Репутация вашего IP падает, вас блокируют сервисы, а следователи в какой-то момент могут постучаться с вопросами.

60% жертв KadNap — США. Но география ботнета расширяется.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#разбор_полётов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🐈 kitty 0.46.0: терминал научился работать с мышью

Основная тема релиза, судя по названию «Mousing», — улучшенная работа с мышью и тачпадом.

Что изменилось

Скролл в буфере прокрутки теперь происходит попиксельно, а не построчно. На Linux появилась поддержка инерционной прокрутки для тачпадов и тачскринов. На X11 заработали события высокоточного скролла от современных тачпадов.

Теперь можно перетаскивать вкладки в панели вкладок, менять их порядок, перемещать в другое окно kitty или отцеплять в отдельное окно.

Появилась возможность изменять размер сплитов мышью, перетаскивая границы окон. Работает во всех режимах раскладки. Чувствительность настраивается через параметр window_drag_tolerance.

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

Из других изменений: shift+клик теперь расширяет текущее выделение вместо того, чтобы начинать новое;

двойной клик по вкладке переименовывает её;

в раскладках со сплитами появились новые действия для максимизации окна.

➡️ Источник

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📎 Управление Docker через systemd

На собесе спрашивают про управление сервисами через systemd — и это то, с чем сталкиваешься на каждом Linux-сервере.

Большинство знает start и stop. Но на практике этого мало: нужно понимать как добавить сервис в автозагрузку, как посмотреть логи именно этого сервиса, и как поменять параметры его запуска не трогая системные файлы руками.

➡️ Проверить себя

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#задача_со_звёздочкой
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⭐️ Доступ к базе данных в кластере без публичного IP

База данных в Kubernetes не торчит наружу — это правильно. Но иногда нужно подключиться к ней локально: посмотреть данные, прогнать миграцию, отладить запрос.

kubectl port-forward пробрасывает порт сервиса прямо на вашу машину:
kubectl port-forward svc/<service-name> 5432:5432 --address 0.0.0.0


Флаг --address 0.0.0.0 здесь ключевой. Без него проброшенный порт доступен только с localhost — то есть только с вашей машины. С ним — со всех устройств в локальной сети. Полезно, когда нужно дать временный доступ коллеге или подключиться с другого девайса.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🔄 SQLite закрывает баг, который мог портить данные в режиме WAL

Вышла версия SQLite 3.51.3. Это патч-релиз с одним важным исправлением: баг, который в редких случаях мог повредить базу данных при работе в режиме Write-Ahead Logging.

Баг получил название «WAL-reset bug». Он проявлялся только при нескольких одновременных подключениях к одному файлу из разных потоков или процессов, когда они параллельно писали данные или создавали контрольные точки.

По сути это состояние гонки с очень узким временным окном.

В боевых условиях воспроизвести его так и не удалось, а проверить исправление пришлось через специально написанную тестовую логику, намеренно создающую нужное состояние.

Что именно происходило: одна контрольная точка завершалась, сразу запускалась вторая, и в этот момент другое соединение сбрасывало WAL-файл и записывало новые данные в его начало. Вторая контрольная точка не замечала этого сброса и выставляла неверное значение в заголовке WAL-индекса.

В итоге при следующей контрольной точке часть транзакций просто пропускалась и не попадала в основной файл базы. База оказывалась повреждена.

➡️ Источник

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
1
deploy.py
5.8 KB
🖼 Автоматизация деплоя на Python

Каждый деплой вручную это риск. Забыл проверить health-эндпоинт, не откатился вовремя, переключил трафик на сломанный контейнер.

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

Как запустить:
pip install httpx
python deploy.py


Все настройки в секции CONFIG вверху файла: имя образа, порты, список тестов. Под конкретный проект меняется за минуту.

Это не замена Kubernetes или полноценному оркестратору. Но для одного сервера или небольшого проекта это рабочее решение без лишних зависимостей.

Чтобы писать такие скрипты нужно знать Python. Подтянуть базу и попасть на продвинутый уровень можно тут ➡️ Библиотека питониста

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
💡 Linux против FreeBSD

Когда сервис обрабатывает 15 000 запросов в секунду, а p99 всё равно ведёт себя странно, код тут ни при чём. Проблема может быть в ОС. Разберём, чем Linux и FreeBSD отличаются на уровне ядра и где каждый из них реально быстрее.

Шедулеры

Linux с версии 6.6 использует EEVDF вместо старого CFS. Он учитывает дедлайны задач и снижает джиттер для чувствительных к задержке сервисов.

FreeBSD использует ULE. Хорош для интерактивных задач и NUMA-балансировки, держит процессы ближе к их CPU-кешу.

I/O: io_uring против kqueue

Это главное различие для серверных нагрузок. io_uring, появившийся в Linux 5.1, использует общие кольцевые буферы между userspace и ядром. Меньше системных вызовов, меньше смены контекста, батчевая отправка запросов.

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

Кого куда назначить

Linux выигрывает на I/O-тяжёлых API при высокой конкурентности. io_uring здесь не просто деталь, а архитектурное преимущество. Go, Rust и большинство современных рантаймов используют его автоматически на Linux.

FreeBSD лучше там, где много системных вызовов, важна предсказуемость аллокатора и нужен сетевой стек с минимальными задержками. Netflix держит FreeBSD на CDN-эджах именно из-за этого.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🗣 Материалы и обновления недели

Надеемся все пережили пятницу 13е.

Прочитать диск без дисковода

Найм по знакомству

curl 8.19.0

Ботнет KadNap

kitty 0.46.0

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#дайджест_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
Самый востребованный навык в ИТ в 2026-м — навык создания ИИ-агентов

Мы полностью переработали курс «Разработка AI-агентов» под реалии 2026 года. Никакой долгой теории — с самого начала пишем код. Обучать и делиться набитыми шишками будут эксперты-практики из Газпромбанка, Альфа-Банка и других бигтехов.

В программе:

— архитектура автономных систем с тестированием, ReAct-циклами и контролем токенов;
— практическая работа с актуальными фреймворками LangGraph, AutoGen, MCP и CrewAI;
— настройка продвинутого RAG для парсинга документов и точного поиска;
— внедрение решений с учётом действующего законодательства (152-ФЗ);
— дипломная работа, за основу которой можно взять свой рабочий проект или задачу, которую предложим мы.

Эксперты поделятся инсайтами из реального продакшна — тем, о чём вам никогда не расскажет ни одна нейросеть.

Запись первого открытого вебинара, на котором мы вместе с руководителем AI-направления в Альфа-Банке Полиной Полуниной пилили агента в прямом эфире.


Ах да, чуть не забыли! Дарим промокод AGENTSWEB на скидку 10 000 рублей и два курса сверху при покупке до 15 марта 🎁

Стать AI-инженером
😁1
📝 Линтер для SQL

SQL в командах часто выглядит как зоопарк. Один пишет select, другой SELECT, третий вообще не ставит пробелы вокруг операторов. На код-ревью половина комментариев о стиле, а не о логике. SQLFluff решает именно эту проблему.

SQLFluff — открытый линтер и форматтер для SQL. Он находит проблемы в коде и сообщает о них автоматически, чтобы код-ревью касалось функциональности, а не оформления. Умеет не только находить ошибки, но и исправлять большинство из них сам.

Инструмент создавался с прицелом на ELT-задачи, поддерживает Jinja-шаблоны и dbt. Работает без подключения к базе данных — парсит SQL и ловит синтаксические проблемы ещё до того, как код дойдёт до БД.

Установка через pip:
pip install sqlfluff


Чтобы исправить файл автоматически:
sqlfluff fix test.sql --dialect ansi


Все правила гибко настраиваются через файл .sqlfluff в корне проекта. Можно отключить конкретные правила, задать свой стиль отступов, указать диалект по умолчанию. Файл .sqlfluffignore работает как .gitignore.

SQLFluff хорошо вписывается в CI/CD — на GitHub есть готовые шаблоны Actions для типовых сценариев.

➡️ Сайт проекта

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
🔄 Debian 13.4 — четвёртое обновление Trixie

Проект Debian выпустил четвёртое обновление дистрибутива Debian 13 с кодовым именем Trixie.

Среди заметных исправлений: glibc получил патчи для трёх уязвимостей, включая повреждение кучи и утечку содержимого стека. В openssh закрыты две уязвимости с возможностью выполнения кода.

PostgreSQL 17 обновлён до нового релиза от разработчиков с исправлением переполнения буфера. MariaDB и Samba также получили свежие версии от разработчиков.

➡️ Release notes

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
4
🔒 Рантайм безопасность в Kubernetes

Контейнер в проде неожиданно начинает читать /etc/passwd, или кто-то запускает bash внутри пода, или процесс вдруг открывает сетевое соединение, которого раньше не было. Логи это зафиксируют, но через час, когда кто-то до них доберётся. К тому моменту уже поздно.

Falco — опенсорсный инструмент для runtime-безопасности. Он работает на уровне ядра Linux через eBPF, перехватывает системные вызовы и сравнивает их с набором правил.

Если правило срабатывает, Falco отправляет алерт куда вы настроили: в stdout, Slack, Kafka, syslog или любую из 50+ интеграций.

Правила пишутся на простом YAML-like синтаксисе. Вот пример встроенного правила, которое срабатывает, если кто-то запускает оболочку внутри контейнера:
- rule: Terminal shell in container
desc: A shell was spawned in a container
condition: >
spawned_process and container
and shell_procs and proc.tty != 0
output: >
A shell was spawned in a container
(user=%user.name container=%container.name
image=%container.image.repository shell=%proc.name)
priority: WARNING


Когда условие выполняется, Falco пишет что-то вроде:
WARNING A shell was spawned in a container
(user=root container=my-app image=nginx:latest shell=bash)


Что мониторит из коробки

Дефолтные правила покрывают типичные атаки и нарушения. Среди них: запись в системные директории вроде /etc или /usr, запуск привилегированных процессов внутри контейнеров, нестандартные сетевые соединения, изменения конфигурации Kubernetes, попытки читать чувствительные файлы.

Кроме системных вызовов Falco умеет работать с Kubernetes Audit Logs, AWS CloudTrail, GitHub Events и Okta через плагины. То есть вы можете мониторить не только то, что происходит внутри контейнера, но и то, кто и что делает в облаке.

➡️ Документация и quickstart

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🤨 Скоро за сохранение придётся платить. Или нет

Яндекс подал в Роспатент заявку на регистрацию товарного знака на фразу «Сохранить как». Да, ту самую, которую вы нажимаете с 1983 года, когда хотите не испортить оригинал.

Пользователи уже предлагают превентивно запатентовать «Отменить» и «Вставить».

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
У «Библиотеки программиста» появился резервный канал в мессенджере MAX

Он нужен исключительно для связи с теми, кто не может следить за обновлениями здесь из-за трудностей с доступом. Поэтому, если вы видите это сообщение, распространите его среди жильцов вашего ЖЭКа.

Контент в MAX будет дублировать телеграмный — основной нашей площадкой был и остаётся Telegram. Надеемся, это временная мера.

Подписаться на «Библиотеку программиста» в MAX
😁4👍3🌚2
Кажется, мы окончательно перешли от игрушек к суровому AgentOps

Приглашаем на наш обновлённый курс по разработке ИИ-агентов. Никакой воды про «будущее нейросетей», только инженерный подход.

На курсе мы:

— пошагово строим готовые системы на LangGraph, CrewAI и MCP;
— настраиваем кэширование и роутинг, чтобы бот не сожрал токены;
— разбираемся со стейтом, учимся дебажить через time-travel и прикручиваем human-in-the-loop;
— выводим RAG в прод так, чтобы безопасники не завернули архитектуру из-за 152-ФЗ.

В пекло скучные лекции про общую инфраструктуру — сразу фокусируемся на агентных фреймворках и написании кода. Занятия ведут бывалые лиды из Газпромбанка и Альфы, набившие шишки на реальных задачах.

Кстати, на днях мы пилили агента в прямом эфире, если пропустили — есть запись вебинара.


Сегодня последний день, когда можно забрать курс по старым ценам. Базовый тариф сейчас стоит 49 000 ₽ (вместо 62 990 ₽), продвинутый трек — 99 000 ₽ (вместо 124 990 ₽). Если не хочется отдавать всю сумму сразу, есть рассрочка. Торопитесь — на потоке осталось всего 5 мест!

Зафиксировать цену и перейти к сборке своих агентов
1
⚡️ В k8s переписали ядро, удалили 20% кода и никто не заметил

Каждый образ с registry.k8s.io попал туда через kpromo. Без него ни один выпуск Kubernetes не выходит. Ядро переписали с нуля, удалили 16 000+ строк, ускорили. Пользователи не заметили ничего.

Что делает kpromo


Копирует образы в производственную среду, подписывает через cosign, реплицирует подписи на 20+ зеркал, генерирует аттестации происхождения по SLSA.

Почему понадобился рефакторинг

За 7 лет — 42 участника, 3 500 коммитов, 60+ выпусков. К 2025 производственные задания падали с ошибками лимита запросов и работали больше 30 минут. Монолитная логика мешала.

Как переписывали

9 фаз, каждая — отдельный запрос на слияние.

Фаза 1 — ограничение частоты с адаптивным откатом.
Фаза 2 — реестр и авторизация за интерфейсами.
Фаза 3 — движок конвейера: продвижение как последовательность шагов.
Фазы 4–5 — проверка происхождения SLSA, выпуск v4.2.0 на обкатку.
Фазы 6–9 — разделение подписи и репликации, удаление старого кода.

Новый конвейер

SetupPlanProvenanceValidatePromoteSignAttest

Шаги последовательны — каждый получает полный бюджет лимита запросов.

Производительность


Параллельное чтение 1 350 реестров: фаза Plan с ~20 мин до ~2 мин.

57% образов без подписей — пропускают, обращений к API вдвое меньше.

Проверка основного реестра перед зеркалами: с ~17 часов до ~15 минут.

Итоги

— 40+ запросов на слияние, выпуски v4.2.0, v4.3.0, v4.4.0
— кодовая база уменьшилась на 20%, закрыто 19 задач
— аттестации происхождения, сканирование уязвимостей, логика повторных попыток

Команда kpromo cip принимает те же флаги и читает те же манифесты. Никто ничего не обновлял.

➡️ Блог разработчиков

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
👨‍💻 Синдром пятничного оффлайна

Проверить мессенджеры перед выключением ноутбука, потому что «вдруг что-то случилось» — знакомо? У этого явления уже есть название. Как и у десятка других ситуаций, которые случаются с айтишниками каждый день.

➡️ Новая статья — это карьерный словарь на 14 терминов

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2