Claude Code перестроил запуск тестов

Артур Хорошев
Артур Хорошев CEO Maya AI · Основатель «Ковчег»
Опубликовано:
Инженерная команда разбирает очередь тестов на серверах компании

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

Именно с этим столкнулись в лаборатории Anthropic. Их сотрудники стали сдавать в восемь раз больше кода. Около восьмидесяти процентов строк начал писать ассистент, а число проверочных задач выросло в двадцать пять раз за полгода. Штат не раздували: Claude Code взял на себя разработку и ревью, после чего прежний механизм отбора проверок захлебнулся.

Как работал прежний отбор тестов

Запускать всю тестовую базу на каждое изменение невозможно. В компании работал сервис умного отбора тестов. Его логика выглядела надежно: фоновый компонент слушал результаты сборок, сохранял историю в базу, а модуль запуска перед стартом ветки выбирал только нужные тесты.

Схема роста нагрузки на сборочные серверы компании
Схема роста нагрузки на сборочные серверы компании

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

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

Слушатель стал опаздывать сначала на двадцать минут, а затем и на час. Непроверенный код не шел в прод, но модуль отбора опирался на устаревшую картину. Если кто-то уже починил или сломал тест, система об этом еще не знала и заставляла инженеров ждать.

Почему быстрые заплатки сгорели за пару недель

Команда попыталась решить проблему привычными методами. Сначала серверу выделили больше ядер и памяти. Этого хватило на два с половиной месяца. Затем код слушателя разделили на шарды по пакетам. Вторая заплатка прожила меньше месяца: разделение помогло процессору, но привело к быстрому исчерпанию памяти.

Диаграмма сокращения времени жизни временных исправлений
Диаграмма сокращения времени жизни временных исправлений

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

Кадр из инженерного блога Anthropic: командный ассистент ловит отставание слушателя очереди
Кадр из инженерного блога Anthropic: командный ассистент ловит отставание слушателя очереди

Каждая временная заплатка выдерживала нагрузку в два раза меньше предыдущей, пока падения не стали ежедневными.

Стало ясно: держаться за единый узел бессмысленно при экспоненциальном росте событий. Если вы хотите автоматизировать сложные процессы в своих проектах и грамотно связывать нейросети без хаоса в инфраструктуре, загляните в наше сообщество Ковчег в Telegram, читайте материалы в канале Ковчег в MAX и приходите на практическое обучение Cursor и Make, где мы разбираем устойчивые архитектуры для реальной работы.

Что собрали вместо старого монолита

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

Схема архитектуры распределенного отбора тестов
Схема архитектуры распределенного отбора тестов

Обработкой журнала занялся отдельный процесс. Раз в несколько секунд он забирает записи, обновляет историю по тестам и отдает срезы модулю выбора. Детали этой перестройки авторы описали в своем инженерном блоге Anthropic, показав графики нагрузки.

Официальный график Anthropic: очередь неразобранных событий слушателя до и после пересборки сервиса
Официальный график Anthropic: очередь неразобранных событий слушателя до и после пересборки сервиса

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

Параллельно в компании используют решения вроде репозитория oncall-kit на GitHub, где дежурный агент помогает расследовать сбои сборки. При этом финальное решение о выкатке любого исправления всегда принимает человек.

Официальный README репозитория oncall-kit: агент расследует сбой, человек решает и выкатывает
Официальный README репозитория oncall-kit: агент расследует сбой, человек решает и выкатывает

Главные уроки и реальные цифры

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

Сравнение сроков разработки и график очереди сборок
Сравнение сроков разработки и график очереди сборок

Из этой истории важно вынести трезвые выводы:

  • Чужие метрики нельзя примерять на свой проект. Рост задач в двадцать пять раз — это замеры закрытой лаборатории с сотнями сотрудников. Ваш сервер вряд ли встретит такую лавину завтра утром.
  • Агенты переносят узкое горлышко дальше. Когда написание кода перестает быть преградой, тормозом становятся сборка, интеграционные тесты и пропускная способность серверов.
  • Изменилась цена проектирования с нуля. Раньше создание архитектуры с запасом считалось лишней тратой. Теперь, когда черновую работу берет нейросеть, заложить масштабируемый фундамент сразу оказывается выгоднее бесконечных заплаток.

Для совместной работы существует командный ассистент, возможности которого описаны в документации Claude Tag. Он доступен организациям на тарифах для команд и бизнеса, подключается в рабочий чат и помогает отслеживать задачи без ручных переключений.

Документация Claude Tag: командный ассистент для тарифов команд и бизнеса, публичная бета
Документация Claude Tag: командный ассистент для тарифов команд и бизнеса, публичная бета
Поделиться статьей:
Telegram VK
Ссылка скопирована в буфер обмена
Артур Хорошев
Автор материала

Артур Хорошев

CEO Maya AI · Основатель «Ковчег»

Делюсь реальным опытом по вайбкодингу, автоматизации процессов в Make.com и созданию ИИ-агентов в Cursor. Автор курса и закрытого клуба «Контент-завод».

Клуб практиков

Создавайте контент и сервисы с помощью ИИ-агентов

В клубе «Контент-завод» — 181 практическое занятие, закрытые эфиры дважды в неделю (веду лично), готовые связки Make.com, MCP-серверы и круглосуточная поддержка.