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

Наши курсы: https://clc.to/ZJ7Z1w

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Download Telegram
🛠 Переключение namespace в kubectl одной командой

Если вы работаете с Kubernetes, то наверняка устали дописывать -n my-namespace к каждой команде. Это раздражает, отнимает время и рано или поздно приводит к ошибке — забыли флаг, команда ушла в default, получили не тот результат.

Проблема решается одной строкой:
kubectl config set-context --current --namespace=<namespace>


Эта команда меняет namespace по умолчанию в текущем контексте вашего kubeconfig. После выполнения все последующие вызовы kubectl будут работать с указанным namespace без дополнительных флагов.

Допустим, вы работаете с namespace staging:
kubectl config set-context --current --namespace=staging


Теперь kubectl get pods покажет поды именно из staging. Не нужно писать kubectl get pods -n staging каждый раз.

Как проверить текущий namespace

Убедиться, какой namespace сейчас выставлен, можно так:
kubectl config view --minify --output 'jsonpath={..namespace}'


Если команда ничего не вернула, значит, используется default.

Что важно понимать

Настройка сохраняется в файле ~/.kube/config и действует не только на текущую сессию терминала. Она будет активна до тех пор, пока вы не переключитесь на другой namespace или не смените контекст.

Для тех, кто переключает namespace часто, есть утилита kubens из пакета kubectx. Она делает то же самое, но короче:
kubens staging


Мелочь, но экономит десятки лишних символов в день.

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

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

#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
👨‍💻 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
👩‍💻 Смотрим нагрузку на 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
😁1
👨‍💻 В ядро 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
1
🤔 HTTP-кэширование и CDN для API

GET-запросы к API кэшируются на уровне CDN — это снижает нагрузку и ускоряет ответы. Но одна ошибка в заголовках, и клиенты часами видят протухшие данные.

Попробуйте ответить: какие заголовки и механизмы нужны, чтобы кэш работал корректно, а инвалидация была точечной?

➡️ Проверить ответ можно в канале с ответами на собесы

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

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

#задача_со_звёздочкой
Please open Telegram to view this post
VIEW IN TELEGRAM
1
📌 Зачем дата-сайентисту матанализ?

Основная компетенция специалиста по Data Science – способность анализировать и интерпретировать данные, а математика является фундаментом для начала работы.

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

Хотите подготовиться к офферу или подтянуть знания? Оставляйте заявку на наш курс по математике для Data Science 💙

P.S. Только до 31 мая на курс (и вообще на все программы Академии) действует СКИДКА 40%

А как у вас дела с высшей математикой?
❤️ — Помню всё
🔥 — Знаю основы
🌚 — Ничего не знаю

🏃‍♀️ Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🤩 Canonical выпустила Ubuntu Core 26

Canonical объявила о выходе Ubuntu Core 26 — минимальной неизменяемой ОС с поддержкой обновлений безопасности до 15 лет. Релиз ориентирован на IoT, edge-устройства и критическую инфраструктуру.

Что нового

OTA-обновления стали на 50–90% легче благодаря новому формату snap-delta. Обновление базовых snap-пакетов ядра теперь весит 1.5 МБ вместо прежних 16 МБ. Установка через initramfs убирает лишние перезагрузки, а значит устройства быстрее вводятся в строй.

Сборка образов теперь работает через Chisel. Каждый файл в файловой системе привязан к конкретному slice и исходному пакету. Это даёт точную трассировку зависимостей и упрощает проверку целостности. В сравнении с Yocto, где зависимости скрыты в слоях рецептов, подход Core 26 делает происхождение каждого компонента явным. Бонусом базовый образ похудел на 7%.

Для шифрования дисков (FDE) ключи TPM теперь хранятся прямо в заголовке LUKS2, что снижает риск повторного использования ключей между состояниями устройства. Появилась нативная интеграция с OP-TEE для ARM TrustZone — ключи шифрования запечатываются и распечатываются внутри Trusted Execution Environment.

Livepatch впервые работает на ARM64, обеспечивая патчинг ядра без перезагрузки. На AMD64 Livepatch официально поддерживается для всех версий, начиная с Ubuntu Core 20.

Из инструментария: Ubuntu Frame теперь поддерживает несколько графических приложений на одном дисплее с настраиваемой раскладкой. Появился интерфейс gpu-2604 для аппаратного ускорения графики.

В Snapcraft добавили компоненты — способ распространять крупные или опциональные ресурсы: драйверы, символы отладки, переводы; отдельно от основного snap-пакета.

Релиз важен для тех, кто готовится к EU Cyber Resilience Act. Canonical берёт на себя обязанности «производителя» по CRA в рамках жизненного цикла ОС и обеспечивает мониторинг CVE, координированное раскрытие уязвимостей и соответствие IEC 62443-4-1.

➡️ Источник

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

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM