Datadog користи Codex за преглед кода на нивоу система
Уз Codex, Datadog уводи контекст на нивоу целог система у сваку ревизију кода како би спречио инциденте и заштитио поверење клијената.
Datadog(отвара се у новом прозору) управља једном од најчешће коришћених платформи за опсервабилност на свету, помажући компанијама да надгледају, отклањају проблеме и заштите сложене дистрибуиране системе. Када нешто закаже, клијенти се ослањају на Datadog да брзо открију проблеме, што значи да поузданост мора бити уграђена много пре него што софтверски код уопште стигне до производног окружења.
За инжењерске тимове компаније Datadog, то преглед кода чини тренутком од великог значаја. Не ради се само о откривању грешака, већ о разумевању начина на који се промене преносе кроз међусобно повезане системе – области у којој традиционална статичка анализа и алати засновани на правилима често нису довољни.
Да би одговорио на овај изазов, Datadog тим за развој вештачке интелигенције (AI Development Experience, AI DevX) обратио се Codex-у, агенту за кодирање компаније OpenAI, који уводи резоновање на нивоу система у преглед кода и открива ризике које људи не могу лако да уоче у великом обиму.
„Уштеде времена су стварне и важне“, каже Бред Картер, који води Datadog AI DevX тим. „Међутим, спречавање инцидената је далеко убедљивије на нашем нивоу размера.“
Ефикасан преглед кода у Datadog-у традиционално се у великој мери ослањао на сениорске инжењере – људе који довољно добро разумеју базу кода, њену историју и архитектонске компромисе да могу да уоче системски ризик.
Међутим, такав дубоки контекст је тешко развијати, а рани алати за преглед кода засновани на вештачкој интелигенцији нису решили овај проблем; многи су се понашали као напредни линтери, означавајући површинске проблеме, док су пропуштали шире системске нијансе. Инжењери компаније Datadog често су сматрали да су предлози превише површни или да стварају превише шума, па су их игнорисали.
Datadog је започео пробно коришћење Codex-а, агента за програмирање компаније OpenAI, интегришући га у активне токове развоја. У једном од највећих и најинтензивније коришћених депоа компаније, Codex је аутоматски прегледао сваки pull request. Инжењери су на Codex-ове коментаре реаговали оценом палцем нагоре или надоле и делили неформалне повратне информације међу тимовима. Многи су истакли да су повратне информације које је давао Codex биле вредне читања, за разлику од претходних алата који су генерисали нејасне или површне предлоге.
Да би се тестирало да ли преглед уз помоћ вештачке интелигенције може да уради више од указивања на стилске проблеме, Datadog је изградио оквир за репродукцију инцидената.
Уместо да користи хипотетичке сценарије, тим се вратио на историјске инциденте. Реконструисали су pull request-ове који су допринели инцидентима, покренули Codex на сваком од њих као да је био део првобитног прегледа, а затим питали инжењере који су били задужени за те инциденте да ли би повратне информације од Codex-а нешто промениле.
Резултат: Codex је пронашао више од 10 случајева, односно приближно 22% инцидената које је Datadog испитао, у којима су инжењери потврдили да би повратне информације које је Codex пружио направиле разлику – више него било који други оцењени алат.
Пошто су ови pull request-ови већ прошли преглед кода, тест поновног извршавања је показао да је Codex открио ризике које рецензенти тада нису уочили, допуњујући људску процену, а не замењујући је.
Анализа компаније Datadog показала је да Codex доследно означава проблеме који нису очигледни само из непосредног diff-а и које није могуће открити детерминистичким правилима.
Инжењери су коментаре Codex-а описали као више од „ботовске буке“:
- Codex је указао на интеракције са модулима који нису измењени у diff-у
- Идентификован је недостатак покривености тестовима у областима спреге између сервиса
- Указало је на промене у API уговорима које су представљале ризик за зависне компоненте.
„За мене, коментар Codex-а делује као најпаметнији инжењер са којим сам сарађивао и који има бесконачно много времена да проналази грешке. Погледајте везе које мој мозак не може све одједном да обухвати.”
Управо је та способност повезивања повратних информација из прегледа са стварним исходима поузданости учинила да се Codex истакне у Datadog евалуацији. За разлику од алата за статичку анализу, Codex упоређује намеру pull request-а са поднетим изменама кода, резонујући целокупну базу кода и зависности како би извршио код и тестове и потврдио понашање.
„То је био први који је заиста деловао као да разматра diff у ширем контексту програма“, каже Картер. „То је било ново и просветљујуће.“
За многе инжењере, та промена је из корена изменила начин на који су приступали прегледу помоћу вештачке интелигенције. „Почео сам да коментаре Codex-а третирам као праве повратне информације из прегледа кода“, каже Тед Векслер, виши софтверски инжењер у компанији Datadog. „Није нешто што се прелеће погледом или игнорише, већ нешто чему вреди посветити пажњу.”
Након евалуације, Datadog је широко увео Codex у свој инжењерски тим. Данас га редовно користи више од 1000 инжењера .
Повратне информације се углавном појављују органски, а не кроз формалне метрике унутар алатке. Инжењери објављују на Slack-у о корисним увидима, конструктивним коментарима и тренуцима у којима им је Codex помогао да о проблему размишљају другачије.
Иако су уштеде времена значајне, тимови су доследно указивали на значајнију промену у начину обављања посла.
„Codex ми је променио мишљење о томе шта би преглед кода требало да буде. Не ради се о томе да реплицирамо наше најбоље људске рецензенте. Реч је о проналажењу критичних недостатака и граничних случајева које људи тешко уочавају када прегледају измене изоловано.“
Шири утицај на Datadog била је промена начина на који се дефинише сам преглед кода. Уместо да се преглед третира као контрола за откривање грешака или оптимизацију времена циклуса, тим сада види Codex као основни систем поузданости који делује као партнер:
- Откривање ризика који превазилазе оно што појединачни рецензенти могу да сагледају у контексту
- Истицање међумодулских и међусервисних интеракција
- Повећање поверења у испоруку у великом обиму
- Омогућавање људским рецензентима да се усредсреде на архитектуру и дизајн
Ова промена је у складу са начином на који лидери компаније Datadog формулишу инжењерске приоритете, где су поузданост и поверење једнако важни као брзина, ако не и важнији од ње.
„Ми смо платформа на коју се компаније ослањају када се све друго распада“, каже Картер. „Спречавање инцидената јача поверење које нам указују наши клијенти.“


