tgindex
ITTales :(){ :|:& };:

ITTales :(){ :|:& };:

Статистика

Этот чудесный мир IT Contact: @kvaps

Последний пост
10 авг.
Последнее чтение
14:00
Постов за неделю
1
Всего постов
22
Тип
открытый
Язык
русский
Категория
Технологии (по похожим)
В каталоге с
12 авг.
Подписчики
1 654
+1 за 4 дн.
Сутки
0
0,00%
Неделя
 
Месяц
 
Просмотров на пост
2 224
22 постов
Вовлечённость
134,5%
к подписчикам
Постов в день
0,1
всего 22
Упоминаний
9
каналов
Охват размещения
оценка
1/24сутки в ленте
1 435
1/48двое суток
1 644
1/72трое суток
1 773

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • 10 авг.1 6182260

    Чему меня научили десятки AI-агентов: как я в качестве эксперимента написал хранилище Blockstor Многие просили меня рассказать каким образом я в одиночку навайбкодил аналог LINSTOR для Kubernetes. Получилась довольно интересная история. В процессе разработки я выработал несколько полезных паттернов при работе с агентами и хочу поделиться выводами, которые теперь активно применяю и в своей повседневной деятельности. https://habr.com/ru/companies/aenix/articles/1068652/

  • 1 авг.4 5302444

    Кстати, вчера собрал образ Talos с shell на консоли — чтобы видеть, что происходит на ноде, когда сеть недоступна и talosctl до неё не достучаться. Что внутри: — прошивки Broadcom bnx2/bnx2x и микрокод Intel; — busybox и iproute2; — вывод на serial-консоль включён (console=ttyS0,115200n8), автоперезагрузка при панике ядра выключена. Как пользоваться: 1. Загрузиться с ISO — на консоли откроется дашборд Talos. 2. F9 или Ctrl+] — переключение в shell (root). exit или Ctrl+D — обратно в дашборд. 3. Переключаться можно и напрямую: Alt+F1 — логи ядра, Alt+F2 — дашборд, Alt+F3 — shell. Важно про установку на диск. Если будете ставить, укажите в machine-config тот же самый образ: machine: install: image: ghcr.io/aenix-io/talos:v1.12.1-debug-shell Иначе при установке возьмётся стандартный installer без прошивок — они пропадут вместе с сетью уже после установки на диск. Это частая причина ситуации «на загрузке сеть была, после установки нет». Важно про безопасность. Образ отладочный: доступ к консоли, в том числе через iLO, даёт root без пароля. Он предназначен только для диагностики, для постоянной эксплуатации его использовать не стоит.

  • 30 июл.1 233219

    Магия кэша в controller-runtime: почему ваши контроллеры быстрые, стабильные и не убивают apiserver Если вы когда-нибудь писали Kubernetes-контроллер на Go, то почти наверняка использовали controller-runtime. А если использовали — значит, пользовались одной…

  • 24 июл.1 5611318

    Опенсорснули aeman — инструмент для краткосрочного планирования, который мы используем в Ænix. Это такой командный Todoist на стеройдах или opinionated вариант доски, со списком задач и краткосрочными спринтами, нацеленный в первую очередь на инженерные команды. В качестве бэкенда используется GitHub Projects, UI работает поверх write-behind-кэша и отвечает мгновенно, а запись в GitHub уходит асинхронно. У самой доски Kubernetes подобный API и MCP-сервер для работы с AI-агентами Подробнее про сам инструмент и наши процессы можно почтитать тут: https://habr.com/ru/companies/aenix/articles/1062562/

  • 22 июл.2 1754342

    Заопенсорсили ещё один наш инструмент — keycloak-kms-proxy. Начну с проблемы. Keycloak хранит PII пользователей — email, имя, фамилию, атрибуты и т.д. — в своей базе открытым текстом. Согласно GDPR эти данные считаются персональными и должны быть защищены в состоянии покоя. Обычное storage encryption или шифрование на стороне PostgreSQL помогают лишь частично: ключ всё равно живёт рядом с данными, внутри Postgres, а ещё такой подход не позволяет нормально ротировать ключи без остановки сервиса. Есть несколько неофициальных плагинов, решающих эту задачу, например Keycloak-PII-Data-Encryption-Provider. Но и у них хватает ограничений: жёсткая привязка к версии Keycloak, интеграция на уровне Java и статический ключ, передаваемый через переменную окружения. Мы пошли другим путём и сделали прозрачный прокси на уровне wire-протокола PostgreSQL. Он встаёт между Keycloak и его Postgres-базой: Keycloak думает, что работает с обычным Postgres, а прокси на лету шифрует нужные колонки при записи и расшифровывает их при чтении. Само решение построено по тем же принципам, что и механизм KMSv2 в Kubernetes. Каждое зашифрованное значение самоописываемое ($KKP$...), поэтому прокси спокойно работает с частично зашифрованной базой, пока backfill-утилита постепенно шифрует оставшиеся записи. Ротация KEK в Vault полностью прозрачна: версия ключа хранится вместе с каждым завёрнутым DEK, поэтому старые данные продолжают расшифровываться без каких-либо миграций. В Cozystack это уже встроено в системный пакет Keycloak как опциональная возможность. Достаточно включить флаг шифрования в Helm-чарте — прокси автоматически разворачивается, а Keycloak переподключается к нему без дополнительной настройки.

  • 10 июл.1 2421320из k8security

    Марафон LPE уязвимостей в Linux продолжается. Команда Nebula Security раскрыла GhostLock (CVE-2026-43499), stack-use-after-free в подсистеме rtmutex ядра, который был внесён ещё в Linux 2.6.39 и просуществовал более 15 лет. Корень бага в том, что на proxy-пути функция remove_waiter() очищает pi_blocked_on не у той задачи, оставляя висячий указатель на освобождённый фрейм стека ядра. Затронуты практически все дистрибутивы без патча (диапазон от v2.6.39-rc1 до v7.1-rc1), причём триггер не требует ни привилегий, ни user namespaces, ни специальной конфигурации ядра. Ключевая опасность в том, что уязвимость превращается в container escape, локальный непривилегированный атакующий из контейнера может подняться до root на хосте. Авторы довели эксплойт до 97% стабильности через forge поддельного rt_mutex_waiter, перезапись inet6_protos[IPPROTO_UDP] и трюк с CPU entry area, за что получили 92 337 долларов в Google kernelCTF. Полностью рабочий эксплойт и PoC уже открыто выложены в репозитории CyberMeowfia на GitHub.

  • 9 июл.1 313118

    Прямо сейчас @lllamnyp показывает свой новый CNI драйвер для KubeVirt на eBPF, кому интересно подлючайтесь https://zoom-lfx.platform.linuxfoundation.org/meeting/93845795591?password=a263fc60-ea72-41c8-84c8-a00d683ecee5

  • 8 июл.1 2441614из linkmeup_podcast

    Хороша та CVE https://nvd.nist.gov/vuln/detail/CVE-2026-53359 , для которой уже POC есть https://github.com/V4bel/Januscape Опять или слили, или раскопали уязвимость с о-о-о-о-очень долгой историей, которую вдруг внезапно заметили и все такие «Ой-ой-ой, что же это делается». В общем, в KVM есть метод, как выйти за пределы виртуалочки на уровень хоста из-за ошибки 16 лет назад. То есть, буквально, коммит https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2032a93d66fa, где всё сломалось, был сделан в августе 2010. А пофиксили всё 19 июня в этом году. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=81ccda30b4e8 Одно хорошо – нужен локальный рут.

  • 1 июл.8 47316132

    Я всё ждал какого-то RFC или общепринятого стандарта на трейлеры описывающие использование AI-агентов в ваших коммитах. Из практики нескольких крупных проктов: - Linux Kernel - Fedora - LLVM Популярность получил Assisted-By: <your AI agent> В Kubernetes однако же есть строгий запрет на любые трейлеры, включая этот. А при создании пулреквестов вас обязывают расскрыть использование AI в явной форме. И теперь я понял почему. Согласно правовой системе США, под которую попадают и все проекты CNCF, ваш код помеченный трейлером Co-Authored-By: Claude <noreply@anthropic.com> который Claude Code так заботливо штампует во все ваши коммиты, автоматически распространяет права на этот код и Антропику. То есть, согласно законодательству, он может реально на него претендовать. По данной проблеме заведён issue, предлагающий заменить Co-Authored-By на Assisted-By, но антропики кажется не торопятся. Факт остаётся фактом, единого стандарта до сих пор нет, но Co-Authored-By им точно не станет. А пока что предлагаю поддержать инициативу и перестать использовать Co-Authored-By для AI-агентов в своём коде. Лично я переключаюсь на Assisted-By по умолчанию. Но и конечно же читайте правила проекта, как оформлять свои коммиты для контрибьюта во внешние проекты.

  • 22 июн.1 6602532

    Следующая мысль - это агенты, visibility это хорошо, но я не хочу следить за агентами, я хочу чтобы агенты работали сами и приходили ко мне с вопросами. К чему я хочу стремиться? - Мне нужен условный Meeseeks Box 🗳 с красной кнопкой. Я нажимаю на кнопку появляется Mr. Meeseeks, говорю что оно мне нужно и дальше он бежит и делает задачу пока не выполнит. Каждый Mr. Meeseeks живёт только для того чтобы выполнить задачу, он чуствует себя плохо если не может завершить её в срок. При необходимости Mr. Meeseeks может сам вызвать других Mr. Meeseeks чтобы они помогли ему с решением проблемы. (отсылка к Рик и Морти) Забавно но кто-то по мотивам мульт-сериала уже создал агента и скилл для Claude Code. Применять в продакшене я это, конечно, не стал, но я пошёл дальше и начал работать над созданием оркестратора над claude agents. Что я понял для себя: мне нужен mcp-сервер для claude-agents и набор инструкций как с этим работать. Мне нужна одна управляющая сессия которая будет меня менеджерить и дать возможность ей работать с агентами, запускать, общаться, переименовывать точно так же как это делаю я. Другими словами меняем push модель на pull В качестве интерфейса с человеком - это по прежнему чат, здесь ограничение вызвано в первую очередь мной (человеком) и моей пропускной способностью. Я не смогу следить за 20 агентами и при этом сохранять контекст, мне нужен менеджер, который будет этим управлять. В итоге родился https://github.com/kvaps/claude-agents-mcp Теперь клод может самостоятельно работать с сессиями, а я могу оперативно подключиться к ним и проконтроллировать его работу

  • 22 июн.1 2801522

    Итак находка первая - это claude agents https://code.claude.com/docs/en/agent-view Как оказалось в официальном claude code есть так называемый agent view. Его изначальное предназначение - это менеджер долгоживущих background-сессий. Так получилось что именно такие я и использую. Абсурд ситуации дошёл до того что мне проще переиспользовать существующую сессию чем заново объяснять контекст в новой. Но таких постоянных сессий у меня около 10 штук. Так вот что бы в этом всём этом бардаке не теряться claude agents позволяет выводить их все на одном экране, переименовывать, видеть статусы и переключаться между ними. Я даже перестал использовать свой плагин для tmux который выводит статусы в таб, и настроил себе алиас: alias ca='claude agents' Сейчас я запускаю клод только таким образом. Что удобно, в случае запуска новой сессии через claude agents, клод автоматом подхватывает директорию проекта, в которой я сейчас нахожусь, но в то же время я в любой момент могу нажать ← и увидеть список всех других сессий запущенных таким же образом в других проектах. Я могу быстро переключиться меду ними или даже закрыть окно, и вернуться к нему позже. Сессии продолжат работать в бэкграунде. В итоге все мои сессии живут долго, переживают перезапуск компа, а я оперативно вижу все статусы и если агент требует моего внимания.

  • 22 июн.1 2263422

    /me в очередной раз взглянув на свою колонку In Progress на рабочей доске (задачи на сегодня) взргустнул и подумал нужно эвулюционировать и продолжать оркестрировать свою работу дальше. Всё сводится к тому что нужно строить свой собственный meta-harness над claude code. Все предпосылки к этому уже выполнены: - уже давнее время мы собираем транскрипты всех встреч в компании, они дают отличный артефакт для постановки задачи и начала работы. - пачка MCP-серверов уже настроены во всевозможные каналы (google workspace, github, telegram, slack, read.ai) и прочее, могут постить от моего имени, забирать и отправлять документы. - как жить с 4+ сессиями и не сойти с ума? И вот тут поподробнее Когда эта проблема возникла, я начал ресёрчить, первым же делом я обратился к коллегам, в частности к @xor_dev (тимлиду нашей reliability команды по Cozystack) У которого, в виду загруженности и разрозненности задач такая проблема была испокон веков. Ваня постоянно поддерживает контекст с десятками клиентов и контроллирует работу команды. Для того чтобы контекст не разъезжался, в первую очередь у него в голове, он сделал свой тул - Grimoire, который содержит в себе базу данных по каждому проекту и клиенту, и позволяет запускать сессии Claude Code прямо в браузере. Через стартовый промпт он сразу инструктирует их куда и как складывать контекст, откуда его вычитывать и как работать с этой системой. В отличие от Obsidian вся история чуть-более интерактивная и крутится вокруг заметок. Каждая заметка - это своего рода entrypoint для входа в интерактивную сессию. В интерфейсе можно выбрать заметку и запустить из неё нового агента, который уже будет знать весь необходимый контекст и обогощать общую базу знаний. Исходники Grimoire доступны на GitHub: https://github.com/IvanHunters/grimoire Сфера мета-оркестрации AI-агентов сейчас ещё достаточно молодая, проверенных решений и готовых концепций практически нет и из-за этого легко уйти не туда. Прежде чем полностью погрузиться в готовое решение я решил пройти тот же путь и выработать подходы самостоятельно. Следующие несколько постов будут именно про это.

  • 13 июн.1 7341930

    Ну все, доигрались, теперь доступ к определенным AI-моделям - это вопрос нац.безопасности США. https://habr.com/ru/companies/aenix/articles/1047018/

  • 13 июн.1 7901620

    Ну все, доигрались, теперь доступ к определенным AI-моделям - это вопрос нац.безопасности США. https://habr.com/ru/companies/aenix/articles/1047018/

  • 3 июн.2 63620157

    Vibe Coding: как внедрять ИИ в инженерные процессы без магии и самообмана В этом выпуске я рассказываю, как мы используем Claude Code и AI-агентов в повседневной работе инженерной команды Ænix. За последний год AI для нас перестал быть просто помощником для генерации кода. Сегодня он участвует практически во всех процессах: разработке, отладке, код-ревью, исследованиях, документации, поддержке клиентов и даже подготовке архитектурных решений. 0:00 Почему мы считаем себя AI-first компанией 2:29 Какие модели и инструменты используем на практике 5:11 Как организовать работу команды вокруг Claude Code 12:00 CLAUDE.md, AGENTS.md и правила для агента 14:55 Как работать с контекстом, планами и памятью агента 21:02 Скиллы: как шарить знания внутри команды 26:07 MCP, хуки и автоматизация внешних систем 30:15 Как писать промты и общаться с нейронкой 33:24 Реальные кейсы: презентации, сайт и фронтенд 38:09 Когда агентный подход работает, а когда превращается в самообман 46:06 Линтеры, параллельные агенты и код-ревью 55:03 Spec-driven разработка: где граница между инженером и AI 58:31 Дебаг Kubernetes и инфраструктуры через AI 1:02:34 Постмортемы и артефакты сессий 1:05:55 RTFS: читаем исходники open-source вместо документации

  • 30 мая1 965729

    Ralph Wiggum простыми словами: цикл в Claude Code, который не останавливается (перевод) https://habr.com/ru/companies/aenix/articles/1041372/

  • 29 мая1 9862016

    Последний мейнтейнер Недалёкое будущее. В каждом GitHub-репозитории появилась программа-хранитель. Он отвечает на issues, обновляет зависимости, пишет код и годами поддерживает проект почти без участия людей. Казалось бы, что могло пойти не так? https://habr.com/ru/articles/1041332/

  • 29 мая2 2111539

    Вторая часть серии про внутренности controller-runtime и Kubernetes API — теперь про запись. Если в прошлый раз говорили про кэш, watch'и и чтение объектов, то теперь разберём: как работает three way merge и server side apply, зачем нужны managedFields, как…

  • 28 мая2 4912639

    Переписываем LINSTOR на go с Claude Code В качестве пятничного эксперимента решил запустить шайтан машину и посмотреть что из этого получится. Минимум вовлечённости, максимум слопа! 👃 Стрим в реальном времени: https://asciinema.org/s/wO0WH3M3bTqdSvm1 Репозиторий:…

  • 27 мая2 1111541

    Магия кэша в controller-runtime: почему ваши контроллеры быстрые, стабильные и не убивают apiserver Если вы когда-нибудь писали Kubernetes-контроллер на Go, то почти наверняка использовали controller-runtime. А если использовали — значит, пользовались одной…

ITTales :(){ :|:& };: — tgindex