🏃♀️ Уже завтра стартует курс по разработке AI-агентов.
Про AI-агентов часто думают, что это просто модная обертка над джпт для пет-проектов. Кажется, прикрутил API к скрипту и типа готово. А вот и нет! Когда дело доходит до прода, начинаются настоящие проблемы.
Эту инженерную часть мы и будем разбирать на курсе. Будем учиться интегрировать внешние API, работать с RAG, LangGraph, CrewAI и деплоить всё это так, чтобы работало как часы.
Стартуем завтра. Для участия и доступа к программе переходите по ссылке.
Про AI-агентов часто думают, что это просто модная обертка над джпт для пет-проектов. Кажется, прикрутил API к скрипту и типа готово. А вот и нет! Когда дело доходит до прода, начинаются настоящие проблемы.
Зачем глубоко копать мультиагентные системы, если можно обойтись старым добрым кодом? Как контролировать расходы на токены, чтобы новая фича не разорила бизнес? Как заставить агента работать стабильно и предсказуемо, а не галлюцинировать?
Эту инженерную часть мы и будем разбирать на курсе. Будем учиться интегрировать внешние API, работать с RAG, LangGraph, CrewAI и деплоить всё это так, чтобы работало как часы.
Стартуем завтра. Для участия и доступа к программе переходите по ссылке.
В ветку Linux 7.1 принят патч, который убирает из ядра поддержку архитектуры i486. Из Kconfig исчезнут опции
CONFIG_M486, CONFIG_M486SX и CONFIG_MELAN, а из Makefile уберут флаг компиляции -march=i486.Сами процессоры i486 перестали производить ещё в начале 2000-х. Поддержка их в ядре держалась только благодаря инерции, но технически она давно стала проблемой. i486 не умеет выполнять инструкции для атомарного обмена 8 байт и не имеет счётчика тактов процессора, нужного планировщику.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
19 апреля 2026 года Vercel признались, что кто-то получил несанкционированный доступ к внутренним системам компании.
Подробностей пока мало. Сообщили, что пострадал ограниченный круг клиентов, с которыми команда уже связывается напрямую. К расследованию подключены внешние эксперты по реагированию на инциденты, уведомлены правоохранительные органы.
Пока неизвестно, что именно утекло и как злоумышленники попали внутрь. Но Vercel уже дали всем клиентам одну конкретную рекомендацию: проверьте переменные окружения и переведите чувствительные данные в режим Sensitive Environment Variables.
📍 Навигация: Вакансии • Задачи • Собесы
#разбор_полётов
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Мы рады представить команду экспертов курса AgentOps!
— Дмитрий Антипов расскажет, как грамотно проверить работу AI-моделей
— Курилл Кухарев поделится, почему компаниям выгодно использовать локальные модели и как их развернуть
— Андрей Носов расскажет, как работать с данными и знаниями в AI-системах: построение RAG, выбор подходов к поиску и организация хранения данных
— Антон Будняк разберет, как обеспечить устойчивость сервиса, в котором используется ИИ
— Александр Ошурков расскажет, как оценивать качество работы LLM в backend-сервисах
— Екатерина Трофимов разберет, как проектировать инструменты для AI-агентов и выстраивать взаимодействие с внешними сервисами
Курс для backend-разработчиков, тимлидов и LLM инженеров о том, как внедрять AI-логику в бэкенд IT-продуктов и сохранять стабильность сервиса.
К концу обучения вы получите:
• Структурированный подход к архитектуре и деплою AI-агентов
• Навыки настройки мониторинга, тестирования и контроля расходов на токены
• Разбор сложных инженерных кейсов из реальной практики
🎁 Доступ к материалам курса «Разработка ИИ-агентов» в подарок при покупке Инженерного трека
👉 Все подробности и программа обучения.
— Дмитрий Антипов расскажет, как грамотно проверить работу AI-моделей
— Курилл Кухарев поделится, почему компаниям выгодно использовать локальные модели и как их развернуть
— Андрей Носов расскажет, как работать с данными и знаниями в AI-системах: построение RAG, выбор подходов к поиску и организация хранения данных
— Антон Будняк разберет, как обеспечить устойчивость сервиса, в котором используется ИИ
— Александр Ошурков расскажет, как оценивать качество работы LLM в backend-сервисах
— Екатерина Трофимов разберет, как проектировать инструменты для AI-агентов и выстраивать взаимодействие с внешними сервисами
Курс для backend-разработчиков, тимлидов и LLM инженеров о том, как внедрять AI-логику в бэкенд IT-продуктов и сохранять стабильность сервиса.
К концу обучения вы получите:
• Структурированный подход к архитектуре и деплою AI-агентов
• Навыки настройки мониторинга, тестирования и контроля расходов на токены
• Разбор сложных инженерных кейсов из реальной практики
🎁 Доступ к материалам курса «Разработка ИИ-агентов» в подарок при покупке Инженерного трека
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🥱1
Украденный секрет опасен ровно настолько, насколько широки его права доступа. В большинстве CI/CD-пайплайнов права выдаются с запасом, ведь так проще настроить, но это и есть главная проблема.
Если токен деплоя утечёт, злоумышленник получит доступ ко всему, что этот токен может делать. Если права ограничены только деплоем, то и ущерб минимален. Если токен читает продовую базу и ходит в сторонние сервисы — ущерб катастрофический.
Разделите секреты по ролям:
• Задача сборки (
build) компилирует код. Ей не нужны никакие облачные креды вообще. Если они там есть — уберите.• Задача тестирования (
test) работает с тестовыми данными. Она не должна видеть продовые креды. Заведите отдельные credentials для тест-окружения с доступом только на чтение к тестовой базе.• Задача деплоя (
deploy) — единственная, которой нужны продовые секреты. И только те, что нужны именно для деплоя, ничего лишнего.Раз в квартал проводите аудит секретов. Удаляйте всё, что не используется ни одной задачей прямо сейчас.
Пример для GitHub Actions
GitHub Actions позволяет привязать секреты к конкретным
environments. Продовые секреты становятся доступны только при деплое в production, а не во всех задачах подряд:jobs:
test:
runs-on: ubuntu-latest
# Продовых секретов здесь нет
# Тесты используют моки или тестовую базу
env:
DATABASE_URL: ${{ secrets.TEST_DATABASE_URL }}
deploy:
runs-on: ubuntu-latest
environment: production # Отдельный scope секретов + требует подтверждения
needs: test # Запускается только после успешных тестов
env:
# Продовые секреты доступны только здесь
AWS_ROLE_ARN: ${{ secrets.PROD_AWS_ROLE_ARN }}
Ключевой момент: параметр
environment: production не просто логическая метка. Он изолирует секреты этого environment от других задач и, по умолчанию, требует ручного подтверждения перед запуском деплоя.📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🥱1
🔄 nginx 1.30.0
Вышел nginx 1.30.0. Список изменений большой, но несколько вещей стоит выделить отдельно.
HTTP/2 к бэкенду. Раньше nginx умел принимать HTTP/2 от клиента, но к апстриму всегда ходил по HTTP/1.1. Теперь можно проксировать запросы к бэкенду по HTTP/2. Актуально для gRPC и сервисов, которые работают только по этому протоколу.
Sticky sessions. В модуль upstream добавили поддержку sticky-сессий. Конкретный клиент теперь можно привязать к конкретному бэкенду через cookie или маршрутизацию по заголовку.
Early Hints (103). Поддержка ответа 103 Early Hints — браузер получает подсказки о ресурсах ещё до того, как сервер отдал основной ответ. Работает в том числе через HTTP/3.
Encrypted ClientHello. Добавили поддержку ECH — расширения TLS, которое скрывает SNI от посредников. Позволяет не светить доменом при установке соединения.
Multipath TCP. Поддержка MPTCP на уровне nginx. Позволяет использовать несколько сетевых путей одновременно для одного соединения.
Keep-alive к апстримам по умолчанию. Начиная с 1.29.7 keepalive к бэкенду включён по умолчанию. В 1.30.0 это поведение зафиксировано как стандартное для стабильной ветки.
Совместимость с OpenSSL 4.0 и AWS-LC. Добавили поддержку новых API OpenSSL 3.5 и 4.0, интеграцию с AWS-LC и BoringSSL, включая сжатие сертификатов.
➡️ Источничек
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
Вышел nginx 1.30.0. Список изменений большой, но несколько вещей стоит выделить отдельно.
HTTP/2 к бэкенду. Раньше nginx умел принимать HTTP/2 от клиента, но к апстриму всегда ходил по HTTP/1.1. Теперь можно проксировать запросы к бэкенду по HTTP/2. Актуально для gRPC и сервисов, которые работают только по этому протоколу.
Sticky sessions. В модуль upstream добавили поддержку sticky-сессий. Конкретный клиент теперь можно привязать к конкретному бэкенду через cookie или маршрутизацию по заголовку.
Early Hints (103). Поддержка ответа 103 Early Hints — браузер получает подсказки о ресурсах ещё до того, как сервер отдал основной ответ. Работает в том числе через HTTP/3.
Encrypted ClientHello. Добавили поддержку ECH — расширения TLS, которое скрывает SNI от посредников. Позволяет не светить доменом при установке соединения.
Multipath TCP. Поддержка MPTCP на уровне nginx. Позволяет использовать несколько сетевых путей одновременно для одного соединения.
Keep-alive к апстримам по умолчанию. Начиная с 1.29.7 keepalive к бэкенду включён по умолчанию. В 1.30.0 это поведение зафиксировано как стандартное для стабильной ветки.
Совместимость с OpenSSL 4.0 и AWS-LC. Добавили поддержку новых API OpenSSL 3.5 и 4.0, интеграцию с AWS-LC и BoringSSL, включая сжатие сертификатов.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🖇 ИИ для поиска работы
Стандартный подход: попросить нейросеть переписать резюме и сгенерировать сопроводительное письмо.
Рабочий подход: анализировать рынок, конкурентов и конкретную компанию перед каждым собеседованием.
➡️ 5 небанальных промптов в статье
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
Стандартный подход: попросить нейросеть переписать резюме и сгенерировать сопроводительное письмо.
Рабочий подход: анализировать рынок, конкурентов и конкретную компанию перед каждым собеседованием.
📍 Навигация: Вакансии • Задачи • Собесы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Атака на
axios сработала потому, что злоумышленник получил долгоживущий классический токен npm от аккаунта мейнтейнера. Если бы была включена 2FA, одного токена не хватило бы для публикации новой версии пакета.Как включить 2FA
Для личного аккаунта:
npm profile enable-2fa auth-and-writes
Режим
auth-and-writes требует второй фактор и при входе, и при публикации. Это сильнее, чем auth-only, который защищает только вход, но не публикацию.Для организации нужны права администратора:
npm access 2fa-required --otp=ВАШ_КОД your-org
Либо через интерфейс: Organisation Settings > Security > Require two-factor authentication.
Что ещё стоит сделать
Классические токены npm живут вечно и дают широкий доступ. В 2022 году появились гранулярные токены. Они ограничены конкретными пакетами и позволяют задать режим
read-only или publish-only. Переходите на них.Классические токены, которые существуют больше 90 дней, стоит проверить и пересоздать. Найти их можно в Account Settings > Access Tokens.
Если разработчик ушёл из команды, то сразу отзывайте его доступ к публикации. npm не делает это автоматически, права сохраняются бессрочно.
📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Вышла мажорная версия OpenSSL. Это первый крупный релиз за несколько лет.
Из важного в этом выпуске:
• Добавили поддержку ECH (Encrypted ClientHello, RFC 9849). Это расширение TLS, которое шифрует весь ClientHello целиком, включая SNI. Старый ESNI шифровал только имя сервера, ECH идёт дальше и скрывает все метаданные соединения.
• Добавили поддержку постквантового алгоритма ML-DSA (CRYSTALS-Dilithium) в варианте ML-DSA-MU с хэшем SHAKE256. Это один из стандартов NIST для защиты от квантовых компьютеров.
Убрали немало устаревших вещей. Выпилили SSLv3 и SSLv2 Client Hello. Удалили устаревшие функции
EVP_CIPHER, EVP_MD, EVP_PKEY, TLSv1_client_method().Из других добавлений: функция хэширования cSHAKE на базе SHA-3, KDF-функции для SNMPv3 и SRTP, новый флаг -
defer_tests для FIPS-режима.📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
This media is not supported in your browser
VIEW IN TELEGRAM
😁2😢1
Тема:
Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены
В кружке Кирилл Кухарев рассказал, какие именно подходы будем разбирать.
👉 Занять место на вебинаре
Please open Telegram to view this post
VIEW IN TELEGRAM
Ручной
mysqldump работает ровно до того момента, пока кто-то не забыл его запустить. Для продакшна нужен автоматический запуск по расписанию.Скрипт с ротацией и сжатием
Создаём файл
/opt/scripts/mysql-backup.sh:#!/bin/bash
BACKUP_DIR="/opt/backups/mysql"
CONTAINER="mysql-container"
DB_USER="root"
DB_PASS="yourpassword"
DATABASE="mydatabase"
RETENTION_DAYS=7
mkdir -p "$BACKUP_DIR"
FILENAME="$BACKUP_DIR/${DATABASE}_$(date +%Y%m%d_%H%M%S).sql.gz"
docker exec "$CONTAINER" mysqldump \
-u "$DB_USER" -p"$DB_PASS" \
--single-transaction \
--routines \
--triggers \
"$DATABASE" | gzip > "$FILENAME"
if [ $? -eq 0 ]; then
echo "Backup completed: $FILENAME"
else
echo "Backup failed!" >&2
exit 1
fi
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete
Флаг
--single-transaction снимает дамп без блокировки таблиц — важно для InnoDB в продакшне. --routines и --triggers включают в дамп хранимые процедуры и триггеры, которые по умолчанию не экспортируются. find в конце удаляет файлы старше RETENTION_DAYS дней.Добавляем в cron. Запуск каждый день в 4 утра:
0 4 * * * /opt/scripts/mysql-backup.sh >> /var/log/mysql-backup.log 2>&1
Ограничения
Для небольшого пет-проекта этого хватит. Но у подхода есть три слабых места, которые становятся проблемой при серьёзной нагрузке.
Нет алертов при сбое. Скрипт пишет ошибку в лог, но никто не узнает об этом, пока не заглянет туда вручную. Бэкап может не работать неделями без каких-либо уведомлений.
Файлы хранятся локально. Если сервер упадёт или диск сгорит, бэкапы уйдут вместе с данными. Для надёжности нужен вывод в S3 или другое внешнее хранилище.
Плохо масштабируется. Несколько баз — значит несколько копий скрипта, которые нужно поддерживать отдельно.
Для проекта, потеря данных в котором некритична, этот скрипт закрывает задачу. Для всего остального эти три пункта рано или поздно дадут о себе знать.
📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
DevOps (SRE) lead/Руководитель DevOps команды — от 380 000 ₽, офис в Москве
DevOps-инженер — удалёнка
Junior DevOps engineer — от 90 000 ₽ на удалёнку
#вакансия_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Kubernetes v1.36: что нового в релизе «Хару»
Вышел Kubernetes v1.36 с кодовым именем «Haru» (春, весна). Релиз включает 70 улучшений: 18 достигли статуса Stable, 25 перешли в бету и 25 в альфу.
User Namespaces для подов
Поды теперь можно запускать в изолированных пространствах пользователей без сторонних инструментов вроде gVisor. Достаточно добавить
Контейнер работает как root внутри неймспейса, но снаружи — от непривилегированного пользователя. Это снижает риски при компрометации контейнера.
MutatingAdmissionPolicy
Раньше для мутации ресурсов нужны были admission webhooks — внешние сервисы с TLS, деплоем и всеми сопутствующими проблемами. Теперь логику мутации можно описать через нативные объекты Kubernetes на языке CEL, без внешних серверов:
OCI VolumeSource
Артефакты OCI: веса ML-моделей, конфиги, датасеты, бинари; теперь можно монтировать как тома напрямую из реестра образов без необходимости упаковывать всё в основной образ.
Тонкая авторизация kubelet API
Kubelet теперь поддерживает гранулярное управление доступом к своему API. Каждый эндпоинт можно разрешить или ограничить отдельно, без открытия всего API целиком.
SELinux-монтирование томов
Вместо рекурсивного перемаркирования файлов Kubernetes теперь применяет SELinux-контекст через
Что изменилось в Beta
Mutable scheduling directives для приостановленных Job
Теперь можно менять
HPA Scale-to-Zero
Что появилось в Alpha
Workload Aware Scheduling (WAS)
Новая группа фич для распределённых рабочих нагрузок. Включает Gang Scheduling (все поды джоба стартуют одновременно или не стартуют вовсе), топологически осведомлённое размещение и новый
HPA External Metrics Fallback
Если внешний провайдер метрик (Datadog, облачные очереди) недоступен, HPA сможет использовать резервное значение вместо того, чтобы падать с ошибкой.
Что удалено и что стоит проверить
• Плагин томов
• Режим IPVS в
• Поле
• Ingress NGINX официально выведен из поддержки 24 марта 2026 года — новых релизов, патчей безопасности и исправлений не будет. Существующие инсталляции продолжат работать, но миграция на Gateway API становится обязательной задачей.
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
Вышел Kubernetes v1.36 с кодовым именем «Haru» (春, весна). Релиз включает 70 улучшений: 18 достигли статуса Stable, 25 перешли в бету и 25 в альфу.
User Namespaces для подов
Поды теперь можно запускать в изолированных пространствах пользователей без сторонних инструментов вроде gVisor. Достаточно добавить
hostUsers: false в спецификацию пода:spec:
hostUsers: false
containers:
- name: app
image: my-app
Контейнер работает как root внутри неймспейса, но снаружи — от непривилегированного пользователя. Это снижает риски при компрометации контейнера.
MutatingAdmissionPolicy
Раньше для мутации ресурсов нужны были admission webhooks — внешние сервисы с TLS, деплоем и всеми сопутствующими проблемами. Теперь логику мутации можно описать через нативные объекты Kubernetes на языке CEL, без внешних серверов:
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: MutatingAdmissionPolicy
metadata:
name: add-default-labels
spec:
mutations:
- patchType: ApplyConfiguration
applyConfiguration:
expression: >
Object{metadata: Objecshenyun2024.top/t.metadata{labels: {"env": "production"}}}
OCI VolumeSource
Артефакты OCI: веса ML-моделей, конфиги, датасеты, бинари; теперь можно монтировать как тома напрямую из реестра образов без необходимости упаковывать всё в основной образ.
Тонкая авторизация kubelet API
Kubelet теперь поддерживает гранулярное управление доступом к своему API. Каждый эндпоинт можно разрешить или ограничить отдельно, без открытия всего API целиком.
SELinux-монтирование томов
Вместо рекурсивного перемаркирования файлов Kubernetes теперь применяет SELinux-контекст через
mount -o context=XYZ при монтировании. Это сокращает время старта подов на системах с SELinux.Что изменилось в Beta
Mutable scheduling directives для приостановленных Job
Теперь можно менять
nodeSelector, affinity и запросы ресурсов у приостановленного (suspend: true) Job перед его возобновлением. Особенно полезно для пакетных и ML-задач, где параметры планирования могут меняться динамически.HPA Scale-to-Zero
HorizontalPodAutoscaler теперь умеет масштабировать деплойменты до нуля реплик на основе внешних метрик. Актуально для dev/staging-окружений и событийно-ориентированных сервисов с простоями.Что появилось в Alpha
Workload Aware Scheduling (WAS)
Новая группа фич для распределённых рабочих нагрузок. Включает Gang Scheduling (все поды джоба стартуют одновременно или не стартуют вовсе), топологически осведомлённое размещение и новый
PodGroup API. Ориентировано на AI/ML-тренировки и batch-пайплайны.HPA External Metrics Fallback
Если внешний провайдер метрик (Datadog, облачные очереди) недоступен, HPA сможет использовать резервное значение вместо того, чтобы падать с ошибкой.
Что удалено и что стоит проверить
• Плагин томов
gitRepo отключён навсегда. Он позволял выполнять код от имени root через клонирование репозитория. Миграция — на init-контейнеры или внешние git-sync инструменты.• Режим IPVS в
kube-proxy удалён (был deprecated в v1.35).• Поле
externalIPs в Service помечено deprecated из-за уязвимости CVE-2020-8554. Полное удаление ожидается в v1.43.• Ingress NGINX официально выведен из поддержки 24 марта 2026 года — новых релизов, патчей безопасности и исправлений не будет. Существующие инсталляции продолжат работать, но миграция на Gateway API становится обязательной задачей.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍1
Ручные скрипты на
mysqldump и pg_dump справляются с задачей, но плохо масштабируются: нет алертов при сбоях, бэкапы хранятся локально, а для нескольких баз нужно поддерживать отдельные скрипты. Databasus закрывает все эти пробелы через единый веб-интерфейс.Databasus это open source инструмент (Apache 2.0) для автоматизированных бэкапов баз данных. Основной фокус на PostgreSQL, но поддерживает MySQL, MariaDB и MongoDB.
Умеет:
• Хранить бэкапы в локальном хранилище, S3, Cloudflare R2, Google Drive, Dropbox, SFTP и через Rclone.
• Уведомлять об успехе и сбоях через Email, Telegram, Slack, Discord и вебхуки.
• Шифровать файлы бэкапов по
AES-256-GCM — это значит, что бэкапы безопасно хранить даже в публичных S3-бакетах.Как работает подключение к базе
Два режима.
1. Remote — Databasus подключается к базе по сети напрямую, агент не нужен. Удобно для managed баз вроде RDS.
2. Agent — лёгкий агент на Go запускается рядом с базой и стримит бэкап напрямую в хранилище, база не торчит наружу.
Как запустить
Самый быстрый способ через Docker:
docker run -d \
--name databasus \
-p 4005:4005 \
-v ./databasus-data:/databasus-data \
--restart unless-stopped \
databasus/databasus:latest
После запуска открываем
http://localhost:4005, добавляем базу, настраиваем расписание, хранилище и уведомления.Для Linux есть автоматический скрипт, который сам установит Docker и настроит автозапуск:
sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh \
| sudo bash
Для Kubernetes доступен Helm-чарт из OCI-реестра:
helm install databasus oci://ghcr.io/databasus/charts/databasus \
-n databasus --create-namespace
Важный момент
Сам Databasus тоже стоит забэкапить или хотя бы сохранить ключ шифрования. Без него восстановить зашифрованные бэкапы не получится даже при наличии файлов в хранилище. Документация по восстановлению без Databasus есть на сайте.
📍 Навигация: Вакансии • Задачи • Собесы
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🖇 HTTP-прокси убирает секреты из кода
API-ключ это не просто пароль. Тот, кто его получил, может передать его другому. Именно поэтому утечка ключа из
С агентами стало хуже. Некоторые модели при виде ключа в контексте отказываются работать или записывают его в межсессионную память — и потом пытаются использовать уже отозванный ключ.
Ротация ключей помогает, но не решает проблему полностью. OAuth в теории справляется, но на практике требует браузерного флоу с участием человека. Автоматизировать это под агента почти невозможно.
Решение: прокси, который подставляет заголовки
Большинство API работают через HTTP и принимают ключ в заголовке запроса. Значит, можно убрать ключ из кода и переложить его в HTTP-прокси, который будет добавлять нужный заголовок автоматически.
Обычный запрос к Stripe выглядит так:
С прокси он выглядит так:
Ключа в запросе нет. Ключ хранится в прокси. Доступ к сервису определяется тем, может ли ваш сервер или агент достучаться до этого прокси — а не тем, знает ли он ключ.
Как это работает
Вы поднимаете внутренний HTTP-прокси, который:
• принимает запросы без авторизации от ваших сервисов и агентов,
• подставляет нужный заголовок с ключом,
• проксирует запрос на реальный внешний API.
Сам ключ никуда не передаётся клиентам. Он живёт только внутри прокси. Если сервер скомпрометирован, то атакующий не получает ключ, он получает только доступ к прокси, который можно быстро отключить или ограничить.
Что это даёт
Код перестаёт знать про ключи. Ни
Ротация становится проще. Менять ключ нужно только в прокси, а не по всем сервисам и окружениям.
Кому подходит
Это не замена полноценной системе управления секретами вроде HashiCorp Vault или AWS Secrets Manager. Но это работающий подход для небольших команд, которым не нужна вся операционная сложность таких систем. Прокси с подстановкой заголовков закрывает большую часть рисков при минимальных затратах.
➡️ Оригинал
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#локализация
API-ключ это не просто пароль. Тот, кто его получил, может передать его другому. Именно поэтому утечка ключа из
/etc/defaults или .env — это не просто «кто-то узнал пароль», а потенциально открытая дыра до тех пор, пока вы не заметите и не отзовёте ключ.С агентами стало хуже. Некоторые модели при виде ключа в контексте отказываются работать или записывают его в межсессионную память — и потом пытаются использовать уже отозванный ключ.
Ротация ключей помогает, но не решает проблему полностью. OAuth в теории справляется, но на практике требует браузерного флоу с участием человека. Автоматизировать это под агента почти невозможно.
Решение: прокси, который подставляет заголовки
Большинство API работают через HTTP и принимают ключ в заголовке запроса. Значит, можно убрать ключ из кода и переложить его в HTTP-прокси, который будет добавлять нужный заголовок автоматически.
Обычный запрос к Stripe выглядит так:
curl https://api.stripe.com/v1/customers \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-d "name=Jenny Rosen"
С прокси он выглядит так:
curl https://stripe.int.your-company.xyz/v1/customers \
-d "name=Jenny Rosen"
Ключа в запросе нет. Ключ хранится в прокси. Доступ к сервису определяется тем, может ли ваш сервер или агент достучаться до этого прокси — а не тем, знает ли он ключ.
Как это работает
Вы поднимаете внутренний HTTP-прокси, который:
• принимает запросы без авторизации от ваших сервисов и агентов,
• подставляет нужный заголовок с ключом,
• проксирует запрос на реальный внешний API.
Сам ключ никуда не передаётся клиентам. Он живёт только внутри прокси. Если сервер скомпрометирован, то атакующий не получает ключ, он получает только доступ к прокси, который можно быстро отключить или ограничить.
Что это даёт
Код перестаёт знать про ключи. Ни
.env, ни переменные окружения, ни конфиги — ключ просто не попадает в кодовую базу.Ротация становится проще. Менять ключ нужно только в прокси, а не по всем сервисам и окружениям.
Кому подходит
Это не замена полноценной системе управления секретами вроде HashiCorp Vault или AWS Secrets Manager. Но это работающий подход для небольших команд, которым не нужна вся операционная сложность таких систем. Прокси с подстановкой заголовков закрывает большую часть рисков при минимальных затратах.
📍 Навигация: Вакансии • Задачи • Собесы
#локализация
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Линус Торвальдс принял в ветку Linux 7.1 патчи, которые убирают поддержку контроллеров
AHCI SATA и PCIe для SoC Baikal-T1. Параллельно на рассмотрении находятся pull-запросы на удаление ещё нескольких связанных драйверов: таймера, памяти, physmap, шины, hwmon, dwc и bt1-rom. В ядре 7.0 уже удалили поддержку i2c и spi dw для той же платформы.Причина удаления — отсутствие сопровождения и незавершённая интеграция. Например, драйвер
PCIe для Baikal-T1 так и не был доведён до рабочего состояния. Компания «Байкал Электроникс» прекратила деятельность в начале 2025 года после того, как TSMC заморозила поставки чипов под санкционным давлением ещё в 2022 году.Поддержка
Baikal-T1 в ядре Linux появилась в версии 5.8. 📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
😢10🥰6😁2
🔄 Grafana 13.0: что нового
Вышла свежая Grafana: меньше ручной работы при создании дашбордов, стабильный GA для нескольких давно preview-функций и несколько breaking changes, которые стоит проверить перед обновлением.
Дашборды
Dynamic dashboards теперь GA и включены по умолчанию для всех. Новый движок лейаута, новый формат схемы. Существующие дашборды мигрируют автоматически при открытии, ничего делать вручную не нужно.
Восстановление удалённых дашбордов тоже вышло в GA. В разделе Recently deleted можно вернуть случайно удалённый дашборд без тикета в поддержку.
Обновлённый Gauge вышел из preview. Появился новый тип панели — Graphviz: принимает DOT-язык и умеет подтягивать живые данные из любого источника.
Git Sync вышел в GA — двусторонняя синхронизация ресурсов Grafana с git-репозиторием.
Работа с запросами и панелями
Saved queries теперь можно использовать как отправную точку при создании панели. Выбираете Use saved query, Grafana сама подбирает визуализацию и создаёт панель без входа в редактор.
Переменные в saved queries теперь подставляются инлайн при выборе запроса. Раньше, если переменная в запросе не совпадала с дашбордом, появлялось предупреждение о несовместимости.
Появились Panel styles — готовые наборы настроек (цвета, пороги, отображение), которые применяются одним кликом. Поддерживается в time series, gauge, bar gauge, stat, bar chart. Там же добавили копирование стилей между панелями.
Новый контрол Filter and Group by заменяет базовые ad hoc фильтры. Ad hoc filters при этом просто переименовали в Filters — в схеме
Добавили лимит серий в легенде — помогает с производительностью, когда панель показывает тысячи серий.
Появились grouping-level переменные: теперь можно задать переменную, которая влияет только на определённую группу панелей, а не на весь дашборд сразу.
AI
Grafana Assistant теперь умеет генерировать SQL Expressions — объединение и трансформация данных из нескольких запросов через SQL. Раньше это требовало знания того, что имена запросов становятся именами таблиц и понимания MySQL-диалекта.
Источники данных и плагины
Добавлена поддержка IBM DB2 (public preview для Grafana Cloud и Enterprise).
Elasticsearch теперь поддерживает два режима запросов помимо визуального построителя: Query DSL и ES|QL.
Grafana Advisor вышел в GA. Это встроенный инструмент проверки состояния инстанса: находит источники данных с ошибками, устаревшие плагины, проблемы в настройках SSO. Проверки запускаются раз в неделю или вручную, можно настроить алерты.
Breaking changes
Несколько вещей, которые стоит проверить перед обновлением:
Удалены дублирующиеся метрики кэширования запросов
Изменены дефолты для аудит-логирования запросов к источникам данных (
Устарел ряд Prometheus-метрик для БД. Метрики вида
Удалена возможность отключить Scenes-архитектуру для дашбордов. Она была включена по умолчанию с v11, теперь feature toggle убрали совсем.
➡️ Источник | Upgrade Guide
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
Вышла свежая Grafana: меньше ручной работы при создании дашбордов, стабильный GA для нескольких давно preview-функций и несколько breaking changes, которые стоит проверить перед обновлением.
Дашборды
Dynamic dashboards теперь GA и включены по умолчанию для всех. Новый движок лейаута, новый формат схемы. Существующие дашборды мигрируют автоматически при открытии, ничего делать вручную не нужно.
Восстановление удалённых дашбордов тоже вышло в GA. В разделе Recently deleted можно вернуть случайно удалённый дашборд без тикета в поддержку.
Обновлённый Gauge вышел из preview. Появился новый тип панели — Graphviz: принимает DOT-язык и умеет подтягивать живые данные из любого источника.
Git Sync вышел в GA — двусторонняя синхронизация ресурсов Grafana с git-репозиторием.
Работа с запросами и панелями
Saved queries теперь можно использовать как отправную точку при создании панели. Выбираете Use saved query, Grafana сама подбирает визуализацию и создаёт панель без входа в редактор.
Переменные в saved queries теперь подставляются инлайн при выборе запроса. Раньше, если переменная в запросе не совпадала с дашбордом, появлялось предупреждение о несовместимости.
Появились Panel styles — готовые наборы настроек (цвета, пороги, отображение), которые применяются одним кликом. Поддерживается в time series, gauge, bar gauge, stat, bar chart. Там же добавили копирование стилей между панелями.
Новый контрол Filter and Group by заменяет базовые ad hoc фильтры. Ad hoc filters при этом просто переименовали в Filters — в схеме
"kind": "AdhocVariable" остался прежним.Добавили лимит серий в легенде — помогает с производительностью, когда панель показывает тысячи серий.
Появились grouping-level переменные: теперь можно задать переменную, которая влияет только на определённую группу панелей, а не на весь дашборд сразу.
AI
Grafana Assistant теперь умеет генерировать SQL Expressions — объединение и трансформация данных из нескольких запросов через SQL. Раньше это требовало знания того, что имена запросов становятся именами таблиц и понимания MySQL-диалекта.
Источники данных и плагины
Добавлена поддержка IBM DB2 (public preview для Grafana Cloud и Enterprise).
Elasticsearch теперь поддерживает два режима запросов помимо визуального построителя: Query DSL и ES|QL.
Grafana Advisor вышел в GA. Это встроенный инструмент проверки состояния инстанса: находит источники данных с ошибками, устаревшие плагины, проблемы в настройках SSO. Проверки запускаются раз в неделю или вручную, можно настроить алерты.
Breaking changes
Несколько вещей, которые стоит проверить перед обновлением:
Удалены дублирующиеся метрики кэширования запросов
grafana_caching_items и grafana_caching_size — они были объявлены deprecated в v12.Изменены дефолты для аудит-логирования запросов к источникам данных (
log_datasource_query_request_body, log_datasource_query_response_body).Устарел ряд Prometheus-метрик для БД. Метрики вида
go_sql_stats_* и grafana_database_conn_* заменяются на go_sql_*. Данные те же, только имена другие. Старые будут удалены в следующих релизах.Удалена возможность отключить Scenes-архитектуру для дашбордов. Она была включена по умолчанию с v11, теперь feature toggle убрали совсем.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3
Казалось бы, вы дали ему ресурсы. Два полноценных ядра. Должно хватать с запасом.
Но в моменты всплеска нагрузки сервис вдруг начинает отвечать с задержками. Метрики CPU не показывают 100%. А лаги есть.
Что происходит внутри? Почему начались лаги?
📍 Навигация: Вакансии • Задачи • Собесы
#задача_со_звёздочкой
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ
Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные проекты (в т.ч. для Т-банка).
Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список.
🛠 Стек и фреймворки:
DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов).
Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью.
MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам.
📖 Документация, которую нужно знать:
Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API.
OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью.
Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов.
🔬 Хардкорные статьи и препринты (на выходные):
Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста.
How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов.
MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти.
InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты.
Екатерина Трофимова — один из ключевых экспертов нашего курса AgentOps. На своих лекциях она детально разбирает, как проектировать инструменты для агентов, как агент принимает решения о вызове инструментов и какие ограничения возникают в реальном проде
🎁 Акция в честь старта продаж!
Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок.
👉 Забрать 2 курса по цене 1 и начать обучение
Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные проекты (в т.ч. для Т-банка).
Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список.
🛠 Стек и фреймворки:
DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов).
Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью.
MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам.
📖 Документация, которую нужно знать:
Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API.
OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью.
Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов.
🔬 Хардкорные статьи и препринты (на выходные):
Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста.
How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов.
MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти.
InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты.
Екатерина Трофимова — один из ключевых экспертов нашего курса AgentOps. На своих лекциях она детально разбирает, как проектировать инструменты для агентов, как агент принимает решения о вызове инструментов и какие ограничения возникают в реальном проде
🎁 Акция в честь старта продаж!
Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок.
👉 Забрать 2 курса по цене 1 и начать обучение
❤1
☕️ Java и лимиты
Запускаете Java-приложение и через час получаете звонок, что сервер лежит? Знакомо.
По умолчанию JVM берёт столько памяти и CPU, сколько захочет. На проде это боль. Разберёмся, как это починить.
Память
Два главных флага:
•
•
Ставьте
CPU / потоки
Ограничить количество потоков GC и компилятора:
Особенно актуально в Docker/Kubernetes, ведь JVM видит все ядра хоста, а не контейнера. Без этого флага она создаст лишние потоки и будет драться за ресурсы.
Если запускаете в контейнере
Начиная с Java 11+ JVM умеет читать cgroup-лимиты контейнера автоматически. Но лучше явно включить:
И добавьте
📌 Итого: минимальный набор для продакшена
Дальше смотрите на метрики и подкручивайте под своё приложение.
➡️ Больше про Java без воды в канале. Подписывайтесь, там научат делать Java-Java
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt
Запускаете Java-приложение и через час получаете звонок, что сервер лежит? Знакомо.
По умолчанию JVM берёт столько памяти и CPU, сколько захочет. На проде это боль. Разберёмся, как это починить.
Память
Два главных флага:
•
-Xms512m — сколько памяти выделить сразу при старте•
-Xmx2g — максимум, выше которого heap не вырастетjava -Xms512m -Xmx2g -jar app.jar
Ставьте
-Xmx всегда. Без него JVM может решить, что ей нужна половина RAM сервера и будет права по своей логике.CPU / потоки
Ограничить количество потоков GC и компилятора:
-XX:ActiveProcessorCount=2
Особенно актуально в Docker/Kubernetes, ведь JVM видит все ядра хоста, а не контейнера. Без этого флага она создаст лишние потоки и будет драться за ресурсы.
Если запускаете в контейнере
Начиная с Java 11+ JVM умеет читать cgroup-лимиты контейнера автоматически. Но лучше явно включить:
-XX:+UseContainerSupport
И добавьте
-Xmx через переменную окружения, чтобы удобно менять без пересборки:JAVA_OPTS="-Xms256m -Xmx1g -XX:ActiveProcessorCount=2"
java $JAVA_OPTS -jar app.jar
📌 Итого: минимальный набор для продакшена
-Xms256m
-Xmx1g
-XX:ActiveProcessorCount=2
-XX:+UseContainerSupport
Дальше смотрите на метрики и подкручивайте под своё приложение.
📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3