Datadog использует Codex для проверки кода на уровне системы

oai_datadog_SEO.png?w=1600&h=900&fit=fil

С помощью Codex компания Datadog задействует контекст всей системы при каждой проверке кода для предотвращения инцидентов и защиты доверия клиентов.

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

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

Чтобы справиться с этой задачей, команда AI Development Experience (AI DevX) в Datadog обратилась к Codex — кодинг-агенту от OpenAI, который привносит системный анализ в ревью кода и выявляет риски, которые люди с трудом замечают в больших масштабах.

«Экономия времени реальна и важна, — говорит Брэд Картер (Brad Carter), возглавляющий команду AI DevX в Datadog. — Но предотвращение инцидентов гораздо важнее в нашем масштабе».

Перенос системного контекста в ревью кода с помощью Codex

Эффективное ревью кода в Datadog традиционно в значительной степени опиралось на опытных инженеров — специалистов, которые достаточно хорошо понимают кодовую базу, ее историю и архитектурные компромиссы, чтобы выявлять системные риски. 

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

Datadog начала пилотное внедрение Codex, кодинг-агента от OpenAI, интегрировав его в рабочие процессы разработки в реальном времени. В одном из крупнейших и наиболее активно используемых репозиториев компании каждый пулл-реквест автоматически проверялся Codex. Инженеры реагировали на комментарии Codex знаками одобрения или неодобрения и делились неофициальными отзывами между командами. Многие отмечали, что отзывы Codex стоило прочитать, в отличие от предыдущих инструментов, выдававших поверхностные или бесполезные предложения.

Проверка ИИ-ревью на реальных инцидентах

Чтобы проверить, способно ли ИИ-ревью делать что-то большее, чем просто указывать на проблемы со стилем, в Datadog создали тестовый стенд для воспроизведения инцидентов.

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

Результат: Codex обнаружил более 10 случаев (или примерно 22% инцидентов, изученных Datadog), в отношении которых инженеры подтвердили, что предоставленный Codex отзыв действительно предотвратил бы проблему — больше, чем любой другой оцениваемый инструмент.

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

Предоставление стабильной и полезной обратной связи

Анализ Datadog показал, что Codex стабильно выявлял проблемы, которые неочевидны из одного лишь непосредственного diff-файла и не могут быть обнаружены детерминированными правилами.

Инженеры охарактеризовали комментарии Codex как нечто большее, чем просто «шум бота»:

  • Codex указывал на взаимодействия с модулями, которых не было в изменениях
  • Он выявлял отсутствие тестового покрытия в зонах межсервисного взаимодействия
  • Он подчеркивал изменения в контрактах API, несившие скрытые риски для смежных систем
«Для меня комментарий Codex выглядит так, будто его оставил самый умный инженер из тех, с кем я работал, и у него есть бесконечно много времени на поиск багов. Он видит связи, которые мой мозг не способен удержать одновременно».
— Брэд Картер, инженерный менеджер в Datadog

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

«Это был первый инструмент, который действительно учел разницу в более широком контексте программы, — говорит Картер. — Это было ново и открыло нам глаза».

Для многих инженеров этот сдвиг полностью изменил подход к взаимодействию с ИИ-ревью. «Я начал относиться к комментариям Codex как к реальным отзывам при ревью кода, — говорит Тед Векслер (Ted Wexler), старший инженер-программист в Datadog. — Не как к чему-то, что можно пролистать или проигнорировать, а как к чему-то, на что стоит обратить внимание».

Фокус инженеров на проектировании, а не на поиске ошибок

По результатам оценки компания Datadog внедрила Codex более широко среди своих инженерных кадров. Сегодня его регулярно используют более 1 000 инженеров

Обратная связь поступает преимущественно естественным путем, а не через формальные метрики внутри инструментов. Инженеры пишут в Slack о полезных находках, конструктивных комментариях и моментах, когда Codex помогал им по-новому взглянуть на проблему.

Хотя экономия времени оказалась значительной, команды неизменно отмечали более важный сдвиг в том, как выполнялась работа. 

«Codex изменил мое представление о том, каким должно быть ревью кода. Дело не в том, чтобы скопировать наших лучших человеческих рецензентов. Дело в поиске критических изъянов и краевых случаев, которые люди с трудом замечают при оценке изменений изолированно друг от друга».
— Брэд Картер, инженерный менеджер в Datadog

Переосмысление ревью кода через призму рисков, а не скорости

Более масштабным последствием для Datadog стало изменение самого определения проверки кода. Вместо того чтобы рассматривать ревью как контрольную точку для поиска ошибок или оптимизации длительности цикла, команда теперь видит в Codex центральную систему обеспечения надежности, которая действует как партнер:

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

Этот сдвиг согласуется с тем, как руководители Datadog формулируют инженерные приоритеты, в которых надежность и доверие имеют не меньшее (если не большее) значение, чем скорость поставки.

«Мы — платформа, на которую компании полагаются, когда все остальное рушится, — говорит Картер. — Предотвращение инцидентов укрепляет доверие, которое наши клиенты оказывают нам».

Полный текст статьи читайте на OpenAI