Разберём, как настроить нагрузочное тестирование с нуля и встроить его в CI на примере xk6-sip — расширения нагрузочного инструмента k6 для VoIP/SIP-телефонии. На каждый push в GitHub Actions идут шесть функциональных звонковых сценариев и двухминутный нагрузочный прогон с порогами качества, а в артефактах сборки остаётся отчёт: JUnit, итоги k6 и скриншот дашборда Grafana за окно теста.
Это четвёртая статья серии. В первой мы разобрали, как описывать звонки как код и как устроен движок xk6-sip, во второй — настроили мониторинг нагрузки на Prometheus и Grafana. Здесь объединяем их в CI/CD-пайплайн на GitHub Actions, который проверяет АТС на каждый коммит.
Для VoIP/SIP-телефонии автоматизация тестирования в CI исторически давалась тяжело. Классический SIPp описывает сценарии в XML и не отдаёт ни метрики в Prometheus, ни JUnit-отчёт, поэтому в пайплайне его приходится обвязывать скриптами. В xk6-sip сценарий — обычный скрипт k6, а пороги, JUnit и экспорт метрик — стандартные возможности k6.
Нагрузочное тестирование часто живёт отдельно от разработки: раз в релиз инженер вручную запускает прогон, смотрит на графики и пишет отчёт. Деградация при этом обнаруживается через недели после коммита, который её принёс. Автоматизация нагрузочного тестирования в CI сокращает этот срок до минут: пороги производительности становятся quality gates, как юнит-тесты.
Всё ниже — из реального пайплайна репозитория xk6-sip: функциональные тесты занимают 40 секунд, нагрузка с мониторингом — 3,5 минуты, 401 звонок и 2 005 проверок за прогон.
Читать далееКо мне регулярно приходят с одним и тем же вопросом, только с двух сторон. Антифрод-инженеры спрашивают, почему нельзя просто забанить подсеть, с которой летит мусор. Разработчики парсеров спрашивают, почему после смены IP их всё равно узнают. Оба вопроса упираются в одну механику, которую обычно рисуют как смартфон, облачко и стрелочку.
Я решил вместо облачка взять телеметрию нашей сети за одни сутки и посмотреть, как эта механика выглядит в числах. Это продолжение статьи «IP сменился, отпечаток остался»: там было про отпечатки, здесь про сам адрес. И начну с поправок к той статье, потому что часть цифр в ней оказалась неверной.
Коротко о главном. Мобильный адрес дорого банить не потому, что прокси какие-то особенные. За одним публичным адресом оператора в один и тот же момент сидят разные абоненты, и это видно даже по нашим собственным модемам: больше половины адресов за сутки побывали у двух и более из них. Откуда это и что из этого следует для обеих сторон, ниже.
Читать далееЕще в июле NVIDIA и Hugging Face выпустили совместный пост про то, как их опенсорсная библиотека для обучения нейросетей NeMo Automodel умеет теперь работать с диффузионными моделями. В анонсе фигурировали FSDP2, тензорный параллелизм, контекстный параллелизм, мультинодовая оркестрация. Обещали, что дообучение FLUX, Wan и HunyuanVideo можно будет масштабировать с одной видеокарты до сотен, без конвертации чек-пойнтов. Список, конечно, впечатляет, но все эти технологии придумала не NVIDIA, они давно есть в PyTorch и Megatron-Core. Я решила проверить все заявления, ушло немало времени, и в какой-то момент я подумала, а почему бы не поделиться с вами тем, что получилось. Так что вот, делюсь:)
Читать далееВ данном материале в максимально простой форме изложены основы обработки цифрового звука, без подробного погружения в теорию цифровой обработки сигналов. Прилагается готовый код на C++ для расчета цифровых фильтров и собственно обработки звука.
Читать далееКак IT-стартапу говорить с пользователями, инвесторами и медиа, не смешивая три разные истории в один пресс-релиз
Стартап может годами объяснять, почему его продукт нужен рынку, а потом столкнуться с другой задачей: объяснить, почему в этот продукт стоит инвестировать. На первый взгляд разница небольшая. В обоих случаях мы рассказываем о компании, проблеме, решении и планах. На практике это разные разговоры. Пользователь хочет понять, станет ли ему проще, быстрее или дешевле. Инвестор хочет понять, может ли из этого продукта вырасти масштабируемый бизнес, почему именно сейчас и что изменит дополнительный капитал.
По моим наблюдениям, стартапы часто начинают готовить PR к раунду с описания продукта, хотя инвестору важнее увидеть подтверждение спроса, скорость роста, экономику и условия для масштабирования. В то же время продуктовая коммуникация становится слабее, когда её перегружают языком рынка, оценок и будущих финансовых прогнозов. Эта разница определяет, какие данные мы собираем, какие публикации выпускаем, кого приглашаем в коммуникацию и что считаем результатом.
Поэтому продуктовый PR и PR для раунда в коммуникационном агентстве «ЛАМПА» мы не строим по одному шаблону. В первом случае мы отвечаем на вопрос: «Почему этим стоит пользоваться?» Во втором: «Почему в это стоит инвестировать сейчас?»
Читать далееЕсли вы хотите запустить гипервизор или высоконагруженную СУБД, ресурсов VPS может быть недостаточно. В такой ситуации на помощь приходит выделенный физический сервер. Но сколько ядер процессора и оперативной памяти понадобится именно вашему проекту? Хватит ли канала на 1 Гбит/с или нужно больше? Можно взять конфигурацию с запасом, но переплачивать за ресурсы, которые большую часть времени будут простаивать, тоже не хочется.
В этой статье разберём основные параметры выделенного сервера и расскажем, как подобрать конфигурацию под конкретную задачу.
Читать далееБренд раньше в основном держал своё рекламное сообщение и официальные каналы. Сейчас представление о компании складывается из нескольких сигналов сразу: сайт и коммуникации, поисковая выдача, отзывы и пользовательский контент, карточки на картах и маркетплейсах, публикации СМИ и экспертов, социальные сети. С середины 2020-х гг. к этому добавились генеративные ответы и AI-рекомендации. Доверие из одного контакта возникает всё реже. Чаще человек сопоставляет несколько независимых подтверждений. Средний интернет-пользователь узнаёт бренды через несколько типов источников. В локальном поиске большинство потребителей использует больше одного канала до решения. Генеративный ИИ меняет архитектуру: модель может склеить разрозненные сведения о бренде в один ответ. Пользователи такие рекомендации всё равно перепроверяют через поиск, отзывы и первичные источники. Репутация, доступность фактов, согласованность сведений и качество опыта работают как общая инфраструктура доверия. Границы branding, ORM/SERM, SEO, контента и GEO при этом уже не жёсткие.
Читать далееМне нужно было показывать на планшете окно одной программы с рабочего компьютера. Не весь экран, а именно одно окно, и только для просмотра: планшет нужен, чтобы смотреть картинку, а не чтобы кто-то случайно двинул мышкой что-то на ПК.
Готовых решений хватает: Spacedesk, Sunshine с Moonlight, VNC, демонстрация экрана в любом мессенджере для звонков. Часть из них превращает планшет во второй монитор, части нужен клиент на стороне устройства, часть показывает экран целиком, у некоторых свои условия лицензирования, которые стоит прочитать до того, как вы положитесь на инструмент. Мне хотелось чего-то проще: запустил на ПК, открыл адрес в браузере планшета, увидел окно. Получившуюся программу я выложил в открытый доступ. Она никого не заменяет, просто закрывает конкретную задачу, и если у вас такая же, возможно, вам пригодится.
Проект называется WindowStream: https://github.com/eugenyh/WindowStream
Читать далееМы продолжаем рассказывать, как создавали AVM собственную платформу управления виртуальными машинами Aéza. В этой части разберём, как обновляем систему без остановки клиентских VM, выполняем живую миграцию, переживаем сбои и масштабируем инфраструктуру а также расскажем, с какими проблемами столкнулись по пути.
Читать далееВсем привет! Меня зовут Саша, я работаю в сфере AI около 5 лет. А еще мне очень нравится вайбкодить) Некоторое время назад я решил проверить, получится ли у меня сделать что-то приличное в области, где у меня ровно ноль опыта, и выбрал для этого разработку игр. Получился хоррор, и он даже играбелен!
Пару месяцев назад я написал первую статью, где разбирался, почему завайбкодить игру за час не выйдет. Главное пожелание со стороны читателей можно охарактеризовать как "а давай теперь то же самое, но с техническими деталями и лайфхаками". Справедливо, держите)
Коротко напомню суть игры. Subject 47 - психологический хоррор, где игрок участвует в эксперименте, и его задача сохранять спокойствие несмотря ни на что (а смотреть там действительно есть на что). Основная игровая механика - это паника. Ее уровень меняется при взаимодействии с триггерными объектами, монстрами, а иногда просто так (желание побесить игрока никто не отменял). Иными словами, твоя задача - не бояться, а сделать так, чтобы игра сама тебя боялась. За последние пару месяцев проект заметно вырос: было пять уровней, стало девять, а качество первоначальных уровней сильно улучшилось. По итогу имеем 100 тысяч строк кода, из которых половина - это код игры, а другая половина - тесты. Несмотря на обилие тестов, чуть дальше я расскажу, почему это все равно не спасает
Во время разработки я сделал ряд ошибок, набил шишки, чуть не стал седым, преисполнился, и понял, как именно нужно делать игры. Сейчас я хочу поделиться советами и мыслями, к которым я пришел на личном опыте, и которые мне сильно помогли (I wish I knew it earlier).
Узнать, что за лайфхакиЕще несколько лет назад low-code воспринимался прежде всего как способ ускорить разработку. Но с появлением генеративного AI вопрос стал звучать иначе: если код теперь может писать модель, зачем вообще нужны low-code и no-code платформы?
Этому вопросу и был посвящен эфир AM Live, в котором приняли участие Дмитрий Старов («Диасофт»), Антон Симуни (ИТ-экосистема «Лукоморье»), Ева Беляева (Security Vision) и Александр Жуланов (SimpleOne). Эксперты обсудили, где проходит граница между low-code и no-code, какие задачи такие платформы решают в enterprise-разработке, как в этот процесс встраиваются AI-агенты и что происходит с привычными ролями внутри IT-команд.
По мнению Дмитрия Старова, low-code – это уже про то, как удержать разработку под контролем. Особенно теперь, когда код начинают массово генерировать AI-агенты. Платформа в новых условиях становится набором правил и ограничений: она задает архитектуру, стандарты, готовые компоненты и не дает агенту каждый раз изобретать систему заново.
Читать далееНа примере сервиса мультифакторной аутентификации MULTIFACTOR: от лицензирования компании и подготовки продукта до испытаний, аттестации облачной части и нескольких десятков неудобных вопросов к архитектуре
Читать далееА ещё чем отличается годный нейроконтент от слопа и как сгенерировать себя в мире конторки
Сгенерированный нейросетями сериал про безымянный офис ООО «Слоп» набрал 28,5 тысячи подписчиков всего на 28 роликах, а отдельные видео набирают до 800 тысяч просмотров. Сотрудники этой конторы «бередят бурмалду», получают премию кукишами и боятся попасться на глаза Куканоиду. Разбираемся, откуда в этом абсурде взялся свой язык и почему мы так легко узнаём в этих героях себя.
Читать далееВыбор системы управления ИТ-активами почти всегда сводится к таблице: пять поставщиков, три строки — лицензия, внедрение, первый год технической поддержки, — и итоговая сумма внизу. Выбирают по этой сумме, и за первый год компания заплатит именно её. Со второго года появляется расход, которого в таблице не было: компания платит за каждое изменение в системе под свои процессы, и за несколько лет эти платежи способны превысить всю стартовую сумму.
Читать далееПо расчётам НИУ ВШЭ на основе данных Росстата, нейросети используют в среднем 4,8% организаций, а среди компаний с численностью более 500 сотрудников — уже 14,9%. Но одно дело — дать сотрудникам доступ к ChatGPT или DeepSeek, и совсем другое — встроить ИИ в процессы компании так, чтобы он сам получал данные, выполнял задачи и передавал результат дальше.
Причём желательно сделать это безопасно и с помощью качественных сервисов. Разберёмся, как именно.
Читать далееПривет, Хаброжители!
Предлагаем ознакомиться с краткими обзорами новинок, отправленных в типографию.
Читать далее
Чем дольше я пользуюсь ИИ агентами, тем ленивее я становлюсь. Сперва ИИ писал мне отдельные небольшие кусочки кода. Потом стал писать весь код, а я делал ревью. Затем делать ревью мне самому стало лень, и я для этого тоже стал использовать ИИ. «‑ Эй, Клод, глянь‑как вот этот пулл‑реквест, все ли там в порядке? Если да, то вмерджи». Вкалывают роботы — счастлив человек!
Пока реквесты приходят от коллег (которые наверняка так же пишут их с ИИ, но кто я такой чтобы их укорять?), это все выглядит достаточно безопасно. Коллегам я доверяю, вряд ли они будут нарочно портить кодовую базу.
Но что если речь идет об опенсорсном проекте, куда пулл‑реквест может прислать любой? А что если это будет зловредный пулл‑реквест от злобного хакера, который вставил в него бэкдор? Да, человек тоже может пропустить такое по невнимательности, но в целом люди не склонны добавлять явно опасное поведение, противоречащее логике проекта.
А вот в случае с ИИ возникает еще один канал атаки: его можно УБЕДИТЬ нарушить правила безопасности проекта и добавить сомнительную логику. Например, в безобидной правке метода контроля доступа можно попытаться протащить мимо ИИ‑ревьювера правило в духе «а пользователю с ником ВасяХакер1337 разрешено вообще все».
Насколько это реальный вектор атаки, как от него можно защититься? Насколько современные модели уязвимы к такой атаке? Правда ли что умная модель всегда лучше защищена чем более глупая? Давайте разберемся.
Дальше — журнал экспериментов, тестовый стенд, результаты замеров разных видов атак на один и тот же маленький кусочек кода, на разных ИИ от разных вендоров. И местами неожиданные выводы.
Читать далееУ меня есть небольшой пет-проект. Telegram-бот для тренировки устного счёта. Код писал Claude Code, я лишь задавал направление и проверял результат. На том же сервере параллельно работали и другие проекты. Один из них следил за нагрузкой сервера и присылал мне уведомления.
Первое сообщение я пропустил, ведь сервер не самый мощный, проектов много и решил, что он просто не справляется. Но уведомления приходили второй день, а потом и на третий. Я останавливал нагруженные процессы и перезапускал сервисы. Нагрузка падала, но вскоре снова росла.
На третий день я заметил в docker-compose одного из проектов опубликованный порт PostgreSQL. База была доступна для подключений из интернета. Сервер действительно взломали, но установить точную точку входа я не смог, нужных логов не сохранилось.
Ошибка была моя. Я проверил, что бот запускается и отвечает, но не проверил, кому доступна база и нужен ли ей внешний порт. Claude Code писал код по моим указаниям, а ответственность за проверку результата оставалась на мне.
Дальше разберём, что можно восстановить по косвенным признакам и как не допустить такую же ошибку при разработке собственных продуктов.
Читаем дальшеИнструмент оценки цитируемости для ИИ-поиска поставил нашему сайту 31 из 100 и F почти всем блокам. Переписали рубрику под русский язык, не трогая веса и логику измерений: получили 42,5. Разрыв в 11,2 пункта собран из трёх регулярных выражений.
Читать далееTL;DR. 29 сентября на DevDay в Сан-Франциско OpenAI за час объявила больше двадцати новинок. Главные из них:
– Доты – «всегда включённые» агенты со своим облачным компьютером, которые работают, пока вы заняты другим.
– GPT-6.1 Sol – модель, которая почти догоняет флагман Astra за пятую часть его цены.
– Ultrafast – платный режим скорости, до 8 раз быстрее в Codex.
– Pro 500 – новый тариф за $500 в месяц.
– ChatGPT Space – общее рабочее пространство для людей и агентов.
При этом флагманскую GPT-6.1 Astra сняли с релиза за день до конференции. Ниже разберём, что показали, что уже доступно и где остались вопросы.
Читать далее