Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 46 min 53 sec ago

[Перевод] Роутинг NGINX на предикатах для обработки API-трафика без скриптов

Wed, 09/09/2026 - 11:05

Типовую задачу проксирования трафика на базе заголовков и тела HTTP-запроса теперь можно решать напрямую с помощью предикатных локейшенов в NGINX.

До версии 1.31.5 для этого применяли тяжелые скрипты (медленно) и лабиринты из редиректов (неудобно). Теперь можно создать блоки location на базе любой переменной. В этом блоге разбираем методики чтения запроса и показываем примеры паттернов конфигурирования NGINX, которые вы можете применять для любого API или AI-трафика.

Читать далее

Шесть мест, где за два месяца в проде ломался LLM-конвейер над лентами закупок, и почти все вне промптов

Wed, 09/09/2026 - 11:00

У нас есть внутренняя система, которая ищет закупки под профиль сервисной ИТ-компании. Раз в час она читает ленты 14 закупочных площадок через платный агрегатор (сервис, который собирает извещения о закупках с сотен площадок), ещё две площадки читает напрямую и реже. Каждое извещение проходит детерминированный фильтр по названию, для новых записей, прошедших фильтр, система заводит карточку закупки, запись у себя в базе, и дешёвая LLM ставит по карточке вердикт. Этот шаг мы зовём предскорингом. Для тендеров-кандидатов система выкачивает документацию, далее средняя LLM собирает из файлов единый текст технического задания и затем оценивает закупку по 18 критериям с обоснованиями: 14 критериев считает LLM, 4 считает код. Решение «идём или нет» принимает человек на гейте - точке, дальше которой без него ничего не происходит. Тендерные заявки тоже подаёт человек.

В системе используется 3 разных LLM, ниже я зову их «дешёвой», «средней» и «старшей». Дешёвая - это Claude Haiku 4.5, средняя - Claude Sonnet 5, старшая - Claude Opus 5, она собирает коммерческое предложение и в этой статье почти не участвует. Всё, что LLM получают и отвечают, пишется в трассу, полный лог каждого обращения с токенами и длительностью, и большинство чисел ниже взяты из неё.

С первого живого прогона с начала июля по начало сентября наша тендерная система завела 4 452 карточки закупок, 3 890 из них отфильтровала ступень предскоринга (то есть жёсткие правила и дешёвая LLM вместе). В статусе тендера-кандидата побывали 580 карточек закупок, 61 из них жёсткие правила задним числом вернули в отсев, они включены в те же 3 890, а ещё 43 карточки закрыты вручную из других статусов или заведены вручную сразу тендерами-кандидатами, минуя предскоринг. Также 198 отклонил человек на гейте, 270 закрыл человек, как отменённые или просроченные, до решения по существу, 23 стали заявками, 18 ждут решения на 6 сентября, ещё 10 в прочих статусах, от четырёх нынешних кандидатов до одной проигранной. Еще из важного: 75% отказов человека по всей базе имеют код «не наш профиль» (это слабость дешёвой ступени, которую мы держим сознательно, к ней вернусь ниже). К началу сентября журнал разработки насчитывал почти 300 записей, большая их часть - про то, как тендерный конвейер ошибался в проде.

Читать дальше →

Корпоративные системы: я управляю процессами, а не процессы мной

Wed, 09/09/2026 - 11:00

Есть такая традиция - "велосипеды изобретать". Очень часто при интеграциях с другими информационными системами обращаю внимание на то, какие подходы там используются в части управления процессами согласования или другими действиями над рассматриваемым объектом: где-то делают только уведомления ("вам пришёл документ на согласование"), где-то для каждого документа отдельный уникальный тип задач, где-то подключают BPMN, а где-то не делают вообще ничего.

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

Читать далее

Активировать мало — недостаточно: почему AI-роутеру могут понадобиться альтернативные стратегии

Wed, 09/09/2026 - 10:46

Если отбросить числа, идея выглядит просто. Системе доступна большая ёмкость, но для каждого небольшого шага она использует не всё сразу.

При этом «активируется мало» не означает «вся система помещается в маленькую видеокарту». Веса нужно где-то хранить и вовремя доставлять, а память и задержка зависят ещё от контекста, кешей и обмена данными. Для моей идеи малых моделей это такое же ограничение: экономию придётся измерять для всей системы.

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

Погружаемся в статью

Управление активами и уязвимостями на практике: пример работающего процесса

Wed, 09/09/2026 - 10:30

Самая практическая часть: как на реальном примере автоматизировать ввод активов, сканирование и контроль состояния через связку CMDB и VM-системы, как связать серверы с недопустимыми событиями и выстроить патч-менеджмент так, чтобы кнопка “пропатчить все” не привела к катастрофе.

Читать далее

Командная разработка с ИИ. Часть 1 — диагностика проблем

Wed, 09/09/2026 - 10:21

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

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

Из-за этого агентная разработка пока масштабируется странно. У каждого человека появляется всё более сильный персональный заводик, но команда не получает общего производства. Она видит продукт, не видит способ его изготовления — и поэтому не может этот способ измерять, сравнивать, передавать и улучшать. Компания не станет AI‑native, пока эта работа остаётся невидимой и развивается на ощущениях.

Читать далее

Lumen: попытка воссоздать лучшие практики мониторинга СУБД

Wed, 09/09/2026 - 10:00

Всем привет!
Я порядка 15 лет занимаюсь администрированием СУБД, а в данный момент работаю на должности старшего инженера по базам данных.

За свою карьеру мне довелось попробовать в работе разные системы мониторинга СУБД, но больше всего мне нравился Spotlight for SQL Enterprise. Это, наверное, лучшая система мониторинга, с которой мне доводилось работать.

К сожалению, Quest Software ушел из РФ, и компании, которые вынуждены соблюдать санкционные режимы, больше не могут им пользоваться. В попытках найти близкие альтернативы я понял, что ничего похожего на рынке нет, и понял: вот она, ниша, в которой можно проявить себя и применить весь свой опыт! :=)

Так появился Lumen.

Сначала — об архитектуре.
Lumen имеет аналогичную архитектуру со Spotlight, есть Diagnostic Server который устанавливается на Windows host. В нем настраиваются подключения к целевому серверу. На целевой сервер ничего устанавливать не нужно, необходимо лишь наличие прав на стороне сервера.

Читать далее

Подключаем свой MCP-сервер к Copilot Studio: SSE не примут, а доступ решает политика Power Platform

Wed, 09/09/2026 - 09:13

Распространённых транспортов у MCP два, а Copilot Studio поддерживает один - Streamable. SSE в документации помечен как deprecated, и после августа 2025 года Copilot Studio его для MCP не поддерживает - сервер на SSE переделывают до всякой настройки. По документации Microsoft у готового сервера три пути подключения, три типа аутентификации и три режима внутри OAuth 2.0, а доступ агента к серверу и его инструментам заодно регулирует политика данных на коннекторы Power Platform, если такая политика в тенанте есть. Разбор построен на двух страницах learn.microsoft.com, сверенных 4 сентября 2026 года: в нём три места, о которых документация молчит, и по одному из них ответа у меня нет.

Что дока требует от готового сервера

Упаковщик наносит ответный удар: ZA как машина транспонирования

Wed, 09/09/2026 - 09:12

В этой части мы вернёмся к работе, которую предыдущие главы принимали как готовую: упаковке. Сначала найдём скалярную ловушку в упаковке B, затем используем ZA как машину транспонирования, после этого разберём 128-битный случай для комплексных чисел и правило корректности для общего PACKM_KER. В финале соберём весь цикл одной дугой: от FMOPA до работающей субконфигурации BLIS для Apple SME.

Читать далее

Как я объяснял племяннику 2x + 4 = 10 и случайно собрал визуальную лабораторию (сайт)

Wed, 09/09/2026 - 07:35

Недавно мне пришлось объяснять племяннику простейшее 2x + 4 = 10. Я уже собирался произнести школьное «переносим четвёрку вправо с противоположным знаком», но внезапно поймал себя на вопросе: а почему она вообще должна менять знак?

Если ребёнок воспринимает = как портал, через который числа проходят и магически меняют свойства, возможно, проблема не в математике, а в способе её объяснения.

Из этого вопроса вырос MathRoots — мой эксперимент с математикой как dependency graph: от ответа можно проваливаться вниз до операций, свойств и совсем фундаментальных понятий, искать root cause ошибки, визуализировать формулы и спрашивать у каждого шага: «Почему я вообще могу это сделать?»

В статье покажу, во что превратилось обычное 2x + 4 = 10, зачем математике debugger, причём тут AST и как всё это в итоге доросло до React, AI и Docker.

Читать далее

Как работает DLSS 5 на Nintendo Switch OLED

Wed, 09/09/2026 - 07:18

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

Во-первых, это очередная статья про DLSS 5. Во-вторых, вы и так знаете, как я заставил его работать на Nintendo Switch OLED!

Кликбейтнуться

Аудит-политика Kubernetes: чек-лист против типовых слепых зон в правилах

Wed, 09/09/2026 - 04:38

Всем привет! Решил поделиться с вами опытом написания и проведения ревью аудит‑политики Kubernetes.

Аудит‑политика Kubernetes — один из тех пунктов, который пишется один раз при настройке кластера, а потом годами живёт «как есть», обрастая исключениями для новых компонентов и почти никогда не пересматривается целиком. В какой‑то момент это уже не политика безопасности, а слой из комментариев трёхлетней давности.

Недавно я сел перечитать собственный конфиг на ~580 строк — собирал его из нескольких источников, в первую очередь опираясь на Kubernetes Threat Matrix. Хочу поделиться не столько конкретными находками (так как они специфичны для конкретного кластера), сколько принципами и типовыми ловушками, которые всплыли в процессе ревью. Если вы пишете или проводите ревью политики аудита для своего кластера — этот чек‑лист вполне сэкономит время.

Смотреть разбор и чек-лист

Больше инструментов богу инструментов. И меньше времени на саму работу?

Wed, 09/09/2026 - 03:44

Что мы увидим, если посмотрим на монитор разработчика в разгар рабочего дня? Там наверняка будет открыта IDE, Git, таск-трекер, документация, корпоративный мессенджер. И еще какая-нибудь мелочевка — в зависимости от того, что принято в команде.

И всегда понятно, что из этого зачем нужно. Код было неудобно хранить — появился Git. Проект стало долго собирать и проверять вручную — автоматизировали сборку и тесты. Понадобилось следить за тем, что происходит с сервисами после релиза, — появились системы мониторинга. Инфраструктура стала слишком сложной, чтобы каждый разработчик разбирался с ней самостоятельно, — начали появляться внутренние платформы.

Вот в этом и проблема — сложно найти инструмент, который можно взять и выкинуть из рабочего процесса без потерь. Каждый что-нибудь полезное да делает.

В Stack Overflow Developer Survey 2025 разработчиков впервые попросили посчитать, сколько отдельных инструментов они используют в работе. Из 27 378 ответивших 54% назвали шесть и более приложений или платформ. Операционная система и браузер в этот подсчет не входили. Для сайд-проектов картина оказалась несколько другой —  65% из 25 391 разработчика используют пять инструментов или меньше.

Согласитесь, шесть инструментов — не так уж много. Особенно если учесть, что речь, вообще-то, идет про современную разработку.

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

Читать далее

А чё, так можно было? +1 ключ = ×12 к скорости

Wed, 09/09/2026 - 03:22

В словарь добавляют 101 ключ — поиск занимает 8 763 наносекунды. Добавляют 102-й — 718.

Ключей стало больше, а времени в 12 раз меньше. Разбираемся, что происходит на 102-й вставке.

Читать далее

Блеск и нищета ML‑автоматизации

Wed, 09/09/2026 - 03:12

На рынке ML-автоматизации сложился заметный перекос: одни и те же вопросы всплывают у клиентов и у интеграторов снова и снова, но ответы на них редко формулируют вслух. Эта статья является попыткой сформулировать их системно.

В материале представлены мои наблюдения и выводы, основанные на практическом опыте работы в B2B white-label и в B2C в формате ИП, подкрепленные свежими исследованиями по теме. Будет полезно тем, кто на стороне заказчика принимает решения об ИИ-автоматизации, и тем, кто такие решения строит.

Читать далее

Как связать 1С и современный стек без боли

Wed, 09/09/2026 - 01:35

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

 Поэтому вопрос сегодня звучит не так: «Можно ли подключить 1С к современному стеку?» Можно. Платформа поддерживает HTTP- и web-сервисы, обращения к внешним HTTP-ресурсам, JSON, XML, OData и другие способы обмена. Вопрос в другом: как построить интеграцию так, чтобы обновление конфигурации, рост нагрузки или временная недоступность одного сервиса не превращались в аварию.

 Задача не потеряла актуальности с появлением ветки 1С:Предприятие 8.5. Финальная версия 8.5.1 вышла в конце декабря 2025 года. Следующей версией фирма «1С» объявила сразу 8.5.4 — в неё вошли задачи, ранее запланированные на 8.5.2 и 8.5.3, часть задач перенесена в 8.5.5. План 8.5.4 обновлялся в течение 2026 года, но дата выхода на момент подготовки материала не объявлена. Одновременно развивается 1С:Шина: в анонсе версии 9.0 заявлены доступ к телу сообщения как к строке (что удобно для XML и JSON), новый тип узла «Разделитель» и дополнительные способы аутентификации при подключении к Kafka. Новые версии расширяют инструментарий, но не отменяют главного архитектурного требования: между учётной системой и внешним миром должен существовать устойчивый контракт.

Читать далее

Who's online

There are currently 0 users and 0 guests online.