Datadog използва Codex за преглед на кода на системно ниво.
С Codex Datadog внася контекст из цялата система във всеки преглед на кода, за да предотврати инциденти и да защити доверието на клиентите.
Datadog(отваря се в нов прозорец) управлява една от най-широко използваните платформи за наблюдаемост в света, с която помага на компаниите да наблюдават, отстраняват проблеми и защитават сложни разпределени системи. Когато нещо се повреди, клиентите разчитат на Datadog бързо да изведе проблемите наяве, което означава, че надеждността трябва да бъде вградена много преди кодът да достигне до продукция.
За инженерните екипи на Datadog това прави проверката на кода високорисков момент. Не става въпрос само за улавяне на грешки, а за разбиране как промените се разпространяват през взаимосвързани системи – област, в която традиционният статичен анализ и инструментите, базирани на правила, често не успяват.
За да се справи с това предизвикателство, екипът на Datadog за AI Development Experience (AI DevX) се обърна към Codex, агентът за писане на код от OpenAI, който анализира структурирано прегледа на кода и откроява рискове, които хората не могат лесно да видят в голям мащаб.
„Спестяването на време е факт и това е важно“, казва Брад Картър, който ръководи екипа на Datadog за AI DevX. „Но предотвратяването на инциденти е много по-важно при нашия мащаб.“
Ефективният преглед на код в Datadog традиционно разчита в голяма степен на старши инженери – хората, които разбират достатъчно добре кодовата база, нейната история и архитектурните компромиси, за да забележат системен риск.
Но такъв вид задълбочен контекст е труден за мащабиране, а ранните инструменти за преглед на код с ИИ не решават този проблем; много от тях се държат като усъвършенствани инструменти за проверка, отбелязвайки повърхностни проблеми, но пропускайки по-обширните нюанси в системата. Инженерите на Datadog често намираха предложенията за твърде повърхностни или прекалено шумни и ги пренебрегваха.
Datadog започна да тества Codex, агента за кодиране от OpenAI, като го интегрира в процесите на разработка в реално време. В едно от най-големите и най-интензивно използвани хранилища на компанията, всяко искане за предложения беше автоматично преглеждано от Codex. Инженерите реагираха на коментари от Codex с палец нагоре или палец надолу и споделяха неформална обратна връзка между екипите. Мнозина отбелязаха, че обратната връзка от Codex си заслужава да бъде прочетена, за разлика от предишни инструменти, които са генерирали объркани или повърхностни предложения.
За да провери дали прегледът с помощта на изкуствен интелект може да направи повече от това да посочва проблеми със стила, Datadog създаде инструмент за възпроизвеждане на инциденти.
Вместо да използва хипотетични ситуации, екипът се върна към реални инциденти. Те реконструираха исканията за предложения, които бяха допринесли за инциденти, пуснаха Codex върху всяко от тях, сякаш беше част от първоначалния преглед, след което попитаха инженерите, които отговаряха за тези инциденти, дали обратната връзка от Codex би била значима.
Резултатът: Codex откри повече от 10 случая, или приблизително 22% от инцидентите , които Datadog разгледа, при които инженерите потвърдиха, че обратната връзка, предоставена от Codex, би била от значение – повече от всеки друг инструмент, който беше оценен.
Тъй като тези искания за предложения вече бяха преминали преглед на кода, тестът за повторно изпълнение показа, че Codex е извадил наяве рискове, които проверяващите не бяха забелязали по онова време, като допълва човешката преценка, вместо да я заменя.
Анализът на Datadog показа, че Codex последователно открива проблеми, които не са очевидни само от непосредствената разлика и не могат да бъдат засечени от фиксирани правила.
Инженерите описаха коментарите на Codex като нещо повече от „шум в данните“:
- Codex посочи взаимодействия с модули, които не са засегнати от разликата между версиите на кода.
- Беше открито липсващо тестово покритие в области на взаимодействие между услуги.
- Бяха подчертани промени в API договора, които носеха риск за последващи процеси.
„За мен един коментар от Codex е като отзив от най-умния инженер, с когото съм работил, който разполага с безкрайно време да открива бъгове. Той вижда връзки, които мозъкът ми не може да обхване наведнъж.
Това, което отличава Codex в оценката на Datadog, е тази способност обратната връзка от прегледите да бъде свързана с реални резултати за надеждност. За разлика от инструментите за статичен анализ, Codex сравнява целта на искането за предложения с подадените промени в кода, като структурирано анализиране върху цялата кодова база и зависимостите, за да изпълнява код и тестове и да валидира поведението.
„За пръв път изглеждаше така сякаш наистина разглежда разликата в промените на кода в по-широкия контекст на програмата“, казва Картър. „Това беше нещо ново и ни отвори очите.“
За много инженери тази промяна изцяло промени начина, по който се ангажираха с прегледа на ИИ. „Започнах да третирам коментарите на Codex като истинска обратна връзка от преглед на кода“, казва Тед Уекслър, старши софтуерен инженер в Datadog. „Не е нещо, което бихте прегледали набързо или игнорирали, а нещо, на което си струва да обърнете внимание.“
След оценката Datadog внедри Codex по-мащабно сред своята инженерна работна сила. Днес повече от 1000 инженери го използват редовно.
Обратната връзка се появява предимно по естествен начин, а не чрез формални метрики в инструмента. Инженерите публикуват в Slack полезни прозрения, градивни коментари и моменти, в които Codex им е помогнал да мислят по различен начин за даден проблем.
Макар че се пести много време, екипите последователно посочват по-съществена промяна в начина, по който се извършва работата.
„Codex промени мнението ми за това какъв трябва да бъде прегледът на кода. Не целим да дублираме работата на най-добрите ни хора, проверяващи кода. Става въпрос за откриване на критични недостатъци и крайни случаи, които хората трудно забелязват, когато преглеждат изолирани промени.“
По-широкото въздействие върху Datadog беше промяна в самото определение на прегледа на кода. Вместо да разглежда прегледа като контролна точка за откриване на грешки или оптимизиране на времето за изпълнение на цикъла, екипът вече възприема Codex като основна система за надеждност, която действа като партньор:
- Извеждане на преден план на рискове, които отделните експерти не могат да проследят в контекста.
- Открояване на взаимодействия между модулите и между услугите.
- Повишаване на увереността при мащабни доставки.
- Улесняване на хората, извършващи проверка, да се съсредоточат върху архитектурата и дизайна.
Тази промяна е в синхрон с начина, по който ръководителите на Datadog определят инженерните приоритети – при които надеждността и доверието са толкова важни, ако не и по-важни от скоростта.
„Ние сме платформата, на която компаниите разчитат, когато всичко останало се разпада“, казва Картър „Предотвратяването на инциденти заздравява доверието, което нашите клиенти ни оказват.“


