Datadog использует Codex для проверки кода на системном уровне
С помощью Codex Datadog добавляет системный контекст в каждую проверку кода, чтобы предотвращать инциденты и укреплять доверие клиентов.
Datadog(открывается в новом окне) управляют одной из самых широко используемых в мире платформ телеметрии, помогая компаниям отслеживать, устранять неполадки и защищать сложные распределённые системы. Когда что-то ломается, клиенты полагаются на быстрое выявление проблем со стороны Datadog, что означает, что принципы надежности должны быть заложены задолго до того, как код попадет в эксплуатацию.
Для инженерных команд Datadog это делает проверку кода важным моментом. Дело не только в выявлении ошибок, но и в понимании того, как изменения распространяются по взаимосвязанным системам — области, в которой традиционный статический анализ и инструменты на основе правил часто оказываются недостаточными.
Чтобы справиться с этой задачей, команда Datadog по развитию ИИ-инструментов для разработки (AI DevX) обратилась к Codex — ИИ-агенту от OpenAI. Он привносит понимание системной архитектуры (system-level reasoning) в процесс ревью кода и подсвечивает риски, которые человеку трудно заметить при больших масштабах.
«Экономия времени — это реально и важно, — говорит Брэд Картер, руководитель команды AI DevX в Datadog. — Но предотвращение инцидентов на нашем уровне гораздо более значимо».
Эффективная проверка кода в Datadog всегда в значительной степени опиралась на старших инженеров — людей, которые достаточно хорошо понимают кодовую базу, её историю и архитектурные компромиссы, чтобы выявлять системные риски.
Однако такой глубокий контекст трудно масштабировать, и ранние инструменты для проверки кода на базе ИИ не решали эту проблему; многие из них функционировали как продвинутые линтеры, отмечая поверхностные проблемы и упуская при этом более широкие системные нюансы. Инженеры Datadog часто считали их предложения слишком поверхностными или искаженными, и попросту игнорировали их.
Datadog начала пилотное тестирование Codex — ИИ-агента для разработки от OpenAI, интегрировав его непосредственно в текущие процессы разработки. В одном из крупнейших и наиболее активно используемых репозиториев компании каждый пулл-реквест автоматически проверялся Codex. Инженеры реагировали на комментарии от Codex, ставя «палец вверх» или «палец вниз» и делились неформальными отзывами между командами. Многие отметили, что отзывы Codex выглядели полезными, в отличие от комментариев предыдущих инструментов, которые давали ошибочные или поверхностные предложения.
Чтобы узнать, способен ли ИИ-инструмент для проверки кода на что-то большее, чем выявление стилистических ошибок, в Datadog был создан стенд для воспроизведения инцидентов.
Вместо использования гипотетических сценариев команда обратилась к прошлым событиям. Они воссоздали пулл-реквесты, которые в свое время привели к инцидентам, запустили Codex для проверки каждого из них, как если бы он был частью обзора на тот момент, а затем спросили у инженеров, ответственных за эти инциденты: смог бы комментарий Codex тогда изменить ситуацию?
В более чем 10 случаях, что составляет примерно 22% от всех инцидентов, изученных Datadog, инженеры подтвердили, что если бы предоставленный Codex комментарий был получен тогда, ситуацию можно было бы исправить. Результат показал намного большую эффективность, чем у любого другого подобного инструмента.
Поскольку эти пулл-реквесты уже прошли проверку кода, повторный тест показал, что Codex выявил риски, которые рецензенты на тот момент не заметили, при этом он дополнял человеческие суждения, а не заменял их.
Анализ Datadog показал, что Codex стабильно находит проблемы, которые неочевидны при просмотре одного лишь текущего диффа (diff) и которые невозможно обнаружить с помощью детерминированных правил.
Инженеры описывали комментарии Codex как нечто большее, чем «бот-шум»:
- Codex указывал на взаимодействия с модулями, которые не были затронуты в диффе
- Было выявлено отсутствие тестового покрытия в областях межсервисного взаимодействия
- Это подчеркнуло изменения в контракте API, которые несли риск для последующих процессов
«Для меня комментарий Codex — это как совет от самого умного инженера из всех, с кем я когда-либо работал, у которого к тому же бесконечно много времени на поиск багов. Он видит связи, которые мой мозг не в состоянии даже одновременно удержать в памяти».
Именно способность связывать отзывы по результатам проверки с реальными показателями надежности выделила Codex в оценке Datadog. В отличие от инструментов статического анализа, Codex сопоставляет намерение пулл-реквеста с внесёнными изменениями в код, анализируя всю кодовую базу и зависимости, чтобы выполнять код и тесты для проверки поведения.
«Это был первый инструмент, который действительно учитывал разницу между версиями в более широком контексте программы, — говорит Картер. — Сказать, что мы были приятно удивлены — ничего не сказать».
Многие разработчики полностью пересмотрели свои принципы взаимодействия с ИИ-инструментом для проверки кода. «Я начал относиться к комментариям Codex как к настоящей обратной связи при обзоре кода, — делится Тед Векслер, старший инженер-программист в Datadog. — Тут уже не возникает желания пролистнуть или проигнорировать: на его комментарии действительно стоит обращать внимание».
После этого компания Datadog занялась масштабным внедрением Codex в работу команд разработчиков. Сегодня более 1000 специалистов регулярно используют этот инструмент.
Обратная связь в основном возникает естественным образом, а не через формальные метрики в инструменте. Инженеры публикуют в Slack полезные инсайты, конструктивные комментарии и моменты, когда Codex помог им по-новому взглянуть на проблему.
Помимо существенной экономии времени, все команды указывали на более значимые трансформации рабочих процессов.
«Codex изменил мое представление о том, какой должна быть проверка кода. Дело не в том, чтобы копировать наших лучших специалистов-рецензентов. Речь идет о поиске критических ошибок и пограничных случаев, которые людям сложно заметить при пересмотре отдельных изменений».
Более масштабный эффект для Datadog заключался в изменении самого определения проверки кода. Вместо того чтобы рассматривать проверку как контрольную точку для выявления ошибок или оптимизации времени цикла, команда теперь воспринимает Codex как основную систему обеспечения надёжности, партнёра и помощника, который:
- Выявляет риски, выходя за рамки того, что отдельные рецензенты могут удерживать в контексте
- Определяет межмодульные и межсервисные взаимодействия
- Повышает уверенность при работе над крупными проектами
- Позволяет рецензентам сосредоточиться на архитектуре и дизайне
Это совпадает с идеей приоритетов в разработке, продвигаемой лидерами компании Datadog: надёжность и доверие важны не меньше, а иногда и больше, чем скорость.
«Мы — платформа, на которую компании полагаются, когда всё остальное выходит из строя, — говорит Картер. — Предотвращение инцидентов укрепляет доверие наших клиентов к нам».


