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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Download Telegram
👨‍💻 55 миллионов строк кода KDE

Корнелиус Шумахер, один из давних контрибьюторов KDE, проанализировал кодовую базу проекта. Почти 30 лет публичной истории в git дают много материала для анализа.

Шумахер посчитал код ядра KDE. Это библиотеки, рабочий стол и стандартные приложения из регулярных релизов. Сейчас в репозиториях находится 8 173 148 строк кода, если не считать графику, переводы и прочие нетекстовые файлы.

Но самое интересное в другой цифре. Если учесть всю историю изменений, добавлений и удалений, то через репозитории KDE прошло 55 041 902 строки кода. То есть на каждую строку, которая есть в проекте сегодня, приходится примерно 7 строк, которые когда-то были написаны, изменены или удалены.

Сам автор отмечает, что главное тут не цифры. За этим кодом стоят тысячи людей, которые десятилетиями совместно работали над улучшением KDE. И это, пожалуй, самый важный вывод из всей этой статистики.

Подпишитесь на нашу рассылку и мы дадим вам столько же строк полезной информации.

➡️ Источник

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

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
Стартуем с Kubernetes без боли в Managed Kubernetes от MWS Cloud Platform.

27 мая в 16:00 Александр Курасов, технический владелец продукта в MWS Cloud Platform, покажет, как развернуть кластер за минуты, на вебинаре «Быстрый старт с Managed Kubernetes в облаке MWS».

Разберём архитектуру сервиса, его интеграцию с IAM, сетями и балансировщиками. Увидите, как управляемый сервис берёт на себя администрирование master-узлов и упрощает жизнь.

Будет интересно:

♦️DevOps-инженерам, которые хотят упростить работу с Kubernetes
♦️Backend-разработчикам, которым нужно быстро задеплоить сервис
♦️Platform-инженерам, строящим cloud-native инфраструктуру
♦️Техлидам и архитекторам, выбирающим Kubernetes в облаке

➡️ Зарегистрироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Смотрим нагрузку на CPU правильно

Когда сервер тормозит, первый инстинкт — открыть top или htop. Но они показывают общую картину. Если нужно понять, как нагрузка распределяется по ядрам, какой процент времени CPU тратит в режиме ожидания ввода-вывода и где именно зарыта проблема — нужен mpstat.

Что такое mpstat

mpstat входит в пакет sysstat и выводит статистику использования процессора: по каждому ядру отдельно или суммарно. В отличие от top, он не интерактивный — удобно логировать вывод или использовать в скриптах.

Основные флаги

Запуск без аргументов покажет среднюю статистику с момента старта системы — не очень полезно. Обычно используют так:
mpstat -P ALL 2 5


-P ALL — показать все ядра
2 — интервал в секундах
5 — количество итераций

Пример вывода:
Linux 5.15.0 (srv01)   05/18/2026   _x86_64_   (4 CPU)

14:32:01 CPU %usr %nice %sys %iowait %irq %soft %steal %idle
14:32:03 all 12.3 0.0 3.1 8.4 0.0 0.1 0.0 76.1
14:32:03 0 45.2 0.0 5.3 2.1 0.0 0.2 0.0 47.2
14:32:03 1 3.1 0.0 1.2 18.3 0.0 0.0 0.0 77.4
14:32:03 2 2.4 0.0 2.8 9.2 0.0 0.1 0.0 85.5
14:32:03 3 0.8 0.0 3.2 4.1 0.0 0.0 0.0 91.9


На что смотреть

%usr — время в пространстве пользователя. Высокое значение говорит о нагруженном приложении.

%sys — время в режиме ядра. Если оно неожиданно высокое, стоит проверить системные вызовы.

%iowait — CPU ждёт завершения операций ввода-вывода. Значение выше 10–15% — сигнал проблем с диском или сетью.

%steal — время, украденное гипервизором на виртуалках. Если стабильно выше 5% — ресурсов на хосте не хватает.

%idle — простой. Чем меньше, тем выше нагрузка.

В примере выше видно, что нулевое ядро загружено на 45%, а %iowait на первом ядре — 18%. Это повод разобраться, какой процесс привязан к этим ядрам и почему он так активно работает с диском.

Смотрим только iowait

Если нужно быстро отследить проблемы с вводом-выводом:
mpstat -P ALL 1 | awk '/[0-9]/ {print $1, $2, $6}'


Выведет только время, номер ядра и %iowait.

Логирование

sysstat умеет собирать статистику в фоне через sar. Но если нужно просто сохранить данные в файл на время инцидента:
mpstat -P ALL 2 30 > /tmp/cpu_$(date +%F_%T).log


Запустит 30 итераций с интервалом 2 секунды и сохранит в файл с меткой времени.

mpstat полезен, когда нужно быстро понять распределение нагрузки по ядрам или найти аномалии — высокий %iowait, перекос нагрузки на одно ядро, активность гипервизора.

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

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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 В ядро Linux добавили модель угроз и правила для AI-репортов

Линус Торвальдс принял в ядро документ, который формализует обработку багов безопасности. Он определяет модель угроз, объясняет, какие баги считаются уязвимостями, и вводит правила для AI-отчётов.

Почему сейчас

На приватную рассылку безопасности хлынул поток AI-отчётов. Два года назад приходило 2–3 в неделю, сейчас 5–10 в день. Большинство — обычные баги, ошибочно поданные как уязвимости. Авторы просто не знакомы с моделью угроз ядра.

Правила для AI-репортов

Баг, найденный через AI, считается публичным. Одни и те же модели находят одни и те же проблемы, часто в один день. Требования к отчётам:

• Plain text, без Markdown
• Проверяемые факты («баг даёт CAP_NET_ADMIN»), а не спекуляции
• Рабочий reproducer, протестированный вручную
• Патч с тегом Fixes: на проблемный коммит

Модель угроз

Новый threat-model.rst фиксирует границы. Уязвимость — нарушение изоляции пользователей, обход capabilities (CAP_SYS_ADMIN, CAP_NET_ADMIN, CAP_SYS_PTRACE), выход из user namespaces в глобальное пространство, доступ к отладочным интерфейсам (/proc/kmsg, perf, debugfs) без прав.

Не уязвимость: баги в устаревших ветках, небезопасные конфигурации сборки, LOCKDEP/KASAN/FAULT_INJECTION, модули STAGING, проблемы, требующие root, утечки по побочным каналам, обход ASLR, повреждения от аппаратных сбоев.

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

➡️ Полный текст в коммите ядра Linux

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

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🐧 ИИ нашёл серию критических уязвимостей в ядре Linux

За последние недели в ядре Linux закрыли несколько уязвимостей локального повышения привилегий, и все они объединены одной темой: их нашёл автоматизированный инструмент на базе ИИ.

Что за уязвимости

Все три относятся к одному классу: локальный пользователь без прав может получить root. Рабочие эксплойты опубликованы.

Copy Fail — уязвимость в подсистеме algif_aead ядра Linux. Эксплуатируется через splice() в связке с io_uring. Позволяет перезаписать страницы памяти suid-бинарников вроде /usr/bin/su, passwd, mount, pkexec.

Dirty Frag (CVE-2026-43284, CVE-2026-43500) — два варианта той же техники, но через xfrm-ESP (IPsec) и RxRPC. Уязвимость в xfrm-ESP присутствует в ядре с 2017 года, в RxRPC — с 2023-го. Проверена на Ubuntu 24.04, RHEL 10.1, openSUSE Tumbleweed, Fedora 44.

PinTheft — свежая эксплуатация через RDS (Reliable Datagram Sockets) и io_uring. Использует double-free в функции rds_message_zcopy_from_user(). CVE ещё не присвоен.

Роль ИИ

Все три уязвимости нашёл автоматизированный инструмент анализа кода. Это не значит, что раньше их не было — они сидели в ядре годами. Инструмент нашёл паттерн: использование splice() и io_uring для записи в страницы page cache без учёта флагов защиты. Один паттерн — несколько точек входа в разных подсистемах.

Затронутые конфигурации

Уязвимости эксплуатируются при наличии загруженных модулей:
- Copy Fail — нужен io_uring (включён по умолчанию) и поддержка algif_aead
- Dirty Frag — нужны модули esp4/esp6 или rxrpc
- PinTheft — нужны модули rds и rds_tcp, а также io_uring

В большинстве дистрибутивов эти модули загружаются автоматически при первом обращении. Arch Linux загружает rds по умолчанию.

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

Для Dirty Frag — отключить уязвимые модули:
sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"


Для PinTheft — отключить rds и rds_tcp:
rmmod rds_tcp rds
printf 'install rds /bin/false\ninstall rds_tcp /bin/false\n' > /etc/modprobe.d/pintheft.conf


Для Copy Fail — обновить ядро. Патч есть в ветке netdev.

Исправления для Dirty Frag включены в ядра 7.0.5, 6.18.28, 6.12.87, 6.6.138, 6.1.172, 5.15.206, 5.10.255. Все основные дистрибутивы уже выпустили или выпускают обновления.

Почему это важно

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

Если вы администрируете Linux-серверы или рабочие станции — обновите ядро и проверьте, какие модули загружены в вашей конфигурации. Также подпишитесь на нашу рассылку, там нет уязвимостей.

➡️ Источник

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

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

#разбор_полётов
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🥱1
🔥 База по экономике токенов и кэшированию от AI Platform Lead из Bitrix24

Знакомьтесь, Сергей Нотевский. AI Platform Lead в Bitrix24.

Он один из ключевых экспертов нашего курса AgentOps. На своих лекциях он детально разбирает экономику AI-агентов, кэширование токенов, LLM-инфраструктуру и вывод генеративных систем в стабильный прод.

Мы попросили Сергея поделиться материалами для тех, кто хочет оптимизировать косты на LLM в проде. Сохраняйте методичку по prefix cache метрике, которая напрямую влияет на ваши деньги.

Как говорят создатели Manus:
“KV-cache hit rate is the single most important metric for a production-stage AI agent.”


🛠 Что внутри методички (комбо из 3 статей + код):
Экономика кэширования — особенности провайдеров и как правильно считать затраты.

Частые анти-паттерны — почему ваш кэш постоянно сбрасывается и вы платите больше.

Кэш в AI-агентах — специфика работы с памятью в автономных системах.


🍒 Вишенка на торте: готовый SKILL для агента, который делает ревью вашего проекта, находит анти-паттерны и предотвращает низкое попадание в кэш.

Забрать комбо-материалы на GitHub

P.S. Если хотите послушать Сергея вживую — ловите его на конференциях Kode Waves (май), Conversations AI и Highload Spb (июнь).

🎁 Акция в честь старта продаж!

Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок.

👉 Забрать 2 курса по цене 1 и начать обучение
🫠 Топ-вакансий для девопсов за неделю

DevOps Архитектор — офис в Москве

Senior DevOps Engineer —‍ до 5,500 $, удалёнка.

DevOps-инженер — до 2 800 €, удалёнка.

➡️ Еще больше топовых вакансий — в нашем канале Devops Jobs

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

#вакансия_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Вышла OpenBSD 7.9

OpenBSD 7.9 — 60-й релиз проекта. В комплекте LibreSSL 4.3.0, OpenSSH 10.3, DRM от Linux 6.18.22.

Ядро

В планировщике появился механизм управления ядрами CPU с разной производительностью. Через sysctl hw.blockcpu задаются категории ядер (SMT, Performance, Efficient, Lethargic), медленные можно исключить. Работает на amd64 и arm64.

Спинлок в мьютексах ядра заменён на «parking» блокировку. Добавлена инфраструктура для до 52 разделов на диск. MAXCPUs на amd64 увеличен до 255.

Новый machdep.hibernatedelay будит систему из suspend через заданное время и уводит в гибернацию. Полезно для ноутбуков, чтобы не разряжать батарею во сне.

Безопасность

Root больше не обходит bpf(4) BIOCLOCK. Удалён pledge-промис tmppath, его заменяет unveil + pledge "rpath wpath cpath". Новый вызов __pledge_open(2) позволяет libc открывать внутренние файлы под pledge/unveil строго на чтение.

Сеть и pf

veb(4) стал VLAN-aware бриджем с PVID, trunk/hybrid портами и Private VLAN (RFC 5517). IPv6 SLAAC включён по умолчанию. В pf(4) добавлены source/state лимитеры с настраиваемым действием при достижении лимита.

VMM/VMD

Добавлен vmboot для sysupgrade(8) внутри vmd-виртуалок. OpenBSD работает на Apple Virtualization. Поддержка AMD SEV. Исправлены рейсы и дедлоки в vmd(8)/vmm(4).

Драйверы и Wi-Fi

Новые драйверы: USB4 (nhi(4)), Intel LPSS SPI (ispi(4)), SpacemiT K1 (riscv64), Rockchip RK3588/RK3576, Sophgo SG2042. Базовая поддержка 802.11ax. В iwx(4) — 160 МГц, WiFi 6e, PMF и powersave по умолчанию.

OpenSSH 10.3

Исправлены уязвимости: shell-инъекция через метасимволы в именах пользователей, некорректное сопоставление principals в сертификатах, обход PubkeyAcceptedAlgorithms для ECDSA. Добавлен штраф invaliduser в PerSourcePenalties.

LibreSSL 4.3.0

Поддержка MLKEM768_X25519 keyshare в TLS (пост-квантовая криптография). Исправлен off-by-one в X.509-верификаторе с перезаписью 4 байт в хипе. TLSv1.1 и ниже отключены на уровне метода.

➡️ Репозиторий

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

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🧐 Дашборд, чтобы не разбирать Crossplane через kubectl

Crossplane управляет инфраструктурой через Kubernetes-ресурсы, но наблюдать за ними из терминала неудобно. Провайдеры, композиции, XRD, клеймы — всё приходится доставать через kubectl get и разбирать вручную. Crossview — веб-дашборд, который показывает ресурсы Crossplane в одном интерфейсе с поиском, фильтрацией и отслеживанием статусов в реальном времени.

Что умеет

Crossview подключается к Kubernetes API через Informers и отслеживает изменения ресурсов без постоянных запросов. Обновления приходят по WebSocket. Поддерживается работа с несколькими кластерами — переключение между контекстами прямо из UI.

Для каждого ресурса доступны статус-условия, метаданные, события и связи с другими объектами. Есть тёмная тема и SSO через OIDC/SAML.

Стек

Фронтенд — React + Vite + Chakra UI. Бэкенд — Go (Gin) + client-go. БД — PostgreSQL (GORM).

Как запустить

Через Helm:
helm repo add crossview https://corpobit.github.io/crossview
helm repo update
helm install crossview crossview/crossview \
--namespace crossview \
--create-namespace \
--set secrets.dbPassword=your-db-password


Через Docker Compose (в репозитории есть готовый файл с PostgreSQL):
docker-compose up


Для локальной разработки фронтенд и бэкенд запускаются отдельно:
npm install && npm run dev
cd crossview-go-server && go run main.go app:serve

Фронтенд на localhost:5173 проксирует API на бэкенд (localhost:3001).

API

Бэкенд предоставляет REST API на порту 3001:

GET /api/contexts — список Kubernetes-контекстов
GET /api/resources?apiVersion=&kind= — список ресурсов
GET /api/resource?apiVersion=&kind=&name= — детали ресурса
GET /api/events?kind=&name= — события ресурса
GET /api/watch — WebSocket для real-time обновлений

При запуске в кластере бэкенд автоматически использует service account без kubeconfig.

➡️ Репозиторий

📰 Наша подписка как дашборд, но приходит сама

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

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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
😎 Найм по вайбу
 
86% команд работают по Agile. И именно в agile-культуре «совместимость по вайбу» превращается в главный критерий найма. Проблема в том, что исследования фиксируют прямую связь между vibe hiring и текучкой кадров.
 
Как это работает изнутри, что показывают данные по 70 000 кандидатам и почему AI-рекрутер в этом контексте нанимает объективнее человека — всё в статье 👈

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

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