Η Datadog με το Codex κάνει έλεγχο κώδικα σε επίπεδο συστήματος
Με το Codex, η Datadog φέρνει συστημικό πλαίσιο σε κάθε έλεγχο κώδικα για να αποτρέπει περιστατικά και να προστατεύει την εμπιστοσύνη των πελατών.
Η Datadog(ανοίγει σε νέο παράθυρο) διαχειρίζεται μία από τις πιο διαδεδομένες πλατφόρμες παρατηρησιμότητας στον κόσμο, βοηθώντας τις εταιρείες να παρακολουθούν, να επιλύουν προβλήματα και να ασφαλίζουν πολύπλοκα κατανεμημένα συστήματα. Όταν κάτι χαλάει, οι πελάτες βασίζονται στην Datadog για να εντοπίζει γρήγορα τα προβλήματα, πράγμα που σημαίνει ότι η αξιοπιστία πρέπει να έχει ενσωματωθεί πολύ πριν ο κώδικας φτάσει στην παραγωγή.
Για τις ομάδες μηχανικών της Datadog, αυτό καθιστά τον έλεγχο κώδικα μια κρίσιμη στιγμή. Δεν έχει να κάνει μόνο με τον εντοπισμό λαθών, αλλά και με την κατανόηση του πώς οι αλλαγές διαχέονται μέσα από αλληλοσυνδεόμενα συστήματα —ένας τομέας όπου η παραδοσιακή στατική ανάλυση και τα εργαλεία που βασίζονται σε κανόνες συχνά αποτυγχάνουν.
Για να ανταποκριθεί σε αυτή την πρόκληση, η ομάδα AI Development Experience (AI DevX) της Datadog στράφηκε στο Codex, τον πράκτορα προγραμματισμού της OpenAI, που φέρνει συλλογιστική σε επίπεδο συστήματος για τον έλεγχο κώδικα και αναδεικνύει κινδύνους που οι άνθρωποι δεν μπορούν εύκολα να δουν σε μεγάλη κλίμακα.
«Η εξοικονόμηση χρόνου είναι απτή και σημαντική», αναφέρει ο Brad Carter, ο οποίος ηγείται της ομάδας AI DevX της Datadog. «Ωστόσο, η πρόληψη περιστατικών είναι πολύ πιο επιτακτική στην δική μας κλίμακα».
Ο αποτελεσματικός έλεγχος κώδικα στη Datadog παραδοσιακά βασιζόταν σε μεγάλο βαθμό στους ανώτερους μηχανικούς —τα άτομα που κατανοούν τη βάση κώδικα, την ιστορία της και τους αρχιτεκτονικούς συμβιβασμούς αρκετά καλά ώστε να εντοπίζουν τον συστημικό κίνδυνο.
Αλλά αυτού του είδους το βαθύ πλαίσιο είναι δύσκολο να κλιμακωθεί, και τα πρώιμα εργαλεία της ΤΝ για έλεγχο κώδικα δεν έλυσαν αυτό το πρόβλημα. Πολλά συμπεριφέρονταν σαν προηγμένα εργαλεία linting, επισημαίνοντας επιφανειακά ζητήματα, ενώ έχαναν ευρύτερες αποχρώσεις του συστήματος. Οι μηχανικοί της Datadog συχνά έβρισκαν τις προτάσεις πολύ επιφανειακές ή πολύ θορυβώδεις και τις αγνοούσαν.
Η Datadog ξεκίνησε να δοκιμάζει πιλοτικά το Codex, τον πράκτορα προγραμματισμού της OpenAI, ενσωματώνοντάς το στις ζωντανές ροές εργασιών ανάπτυξης. Σε ένα από τα μεγαλύτερα και πιο έντονα χρησιμοποιούμενα αποθετήρια της εταιρείας, κάθε αίτημα συγχώνευσης κώδικα ελεγχόταν αυτόματα από το Codex. Οι μηχανικοί αντιδρούσαν στα σχόλια από το Codex με το εικονίδιο έγκρισης ή απόρριψης και κοινοποιούσαν ανεπίσημα σχόλια στις ομάδες. Πολλοί σημείωναν ότι τα σχόλια του Codex άξιζαν να διαβαστούν, σε αντίθεση με προηγούμενα εργαλεία που παρήγαγαν θορυβώδεις ή επιφανειακές προτάσεις.
Για να δοκιμάσει αν ο έλεγχος με υποβοήθηση ΤΝ μπορούσε να κάνει κάτι περισσότερο από το να επισημαίνει ζητήματα ύφους, η Datadog δημιούργησε ένα μηχανισμό επανάληψης περιστατικών.
Αντί να χρησιμοποιήσει υποθετικά σενάρια, η ομάδα επέστρεψε σε ιστορικά περιστατικά. Ανακατασκεύασαν αιτήματα συγχώνευσης κώδικα που είχαν συμβάλει σε περιστατικά, εκτέλεσαν το Codex σε καθένα από αυτά σαν να ήταν μέρος του αρχικού ελέγχου, και στη συνέχεια ρώτησαν τους μηχανικούς που ήταν υπεύθυνοι για αυτά τα περιστατικά αν η ανατροφοδότηση από το Codex θα είχε κάνει διαφορά.
Το αποτέλεσμα: το Codex εντόπισε περισσότερες από 10 περιπτώσεις, ή περίπου 22% των περιστατικών που εξέτασε η Datadog, όπου οι μηχανικοί επιβεβαίωσαν ότι η ανατροφοδότηση που παρείχε το Codex θα είχε κάνει τη διαφορά —ποσοστό μεγαλύτερο από οποιοδήποτε άλλο εργαλείο που αξιολογήθηκε.
Επειδή αυτά τα αιτήματα συγχώνευσης κώδικα είχαν ήδη περάσει από έλεγχο κώδικα, η δοκιμή επανάληψης έδειξε ότι το Codex ανέδειξε κινδύνους που οι ελεγκτές δεν είχαν δει τότε, συμπληρώνοντας την ανθρώπινη κρίση αντί να την αντικαθιστά.
Η ανάλυση της Datadog έδειξε ότι το Codex σταθερά εντόπιζε ζητήματα που δεν είναι προφανή από το άμεσο diff και μόνο και τα οποία δεν μπορούν να εντοπιστούν με ντετερμινιστικούς κανόνες.
Οι μηχανικοί περιέγραψαν τα σχόλια του Codex ως κάτι περισσότερο από «θόρυβο μποτ»:
- Το Codex επισήμανε αλληλεπιδράσεις με μονάδες που δεν επηρεάστηκαν στο diff
- Εντόπισε ελλιπή κάλυψη δοκιμών σε περιοχές διασύνδεσης μεταξύ υπηρεσιών
- Επισήμανε αλλαγές στη σύμβαση API που ενείχαν κατάντη κίνδυνο
«Για μένα, ένα σχόλιο του Codex μοιάζει με τον πιο έξυπνο μηχανικό με τον οποίο έχω συνεργαστεί και ο οποίος έχει άπειρο χρόνο για να εντοπίζει σφάλματα. Βλέπει συνδέσεις που ο εγκέφαλός μου δεν μπορεί να τις κρατήσει όλες ταυτόχρονα.
Αυτή η ικανότητα να συνδέει τα σχόλια ελέγχου με πραγματικά αποτελέσματα αξιοπιστίας ήταν αυτό που έκανε το Codex να ξεχωρίσει στην αξιολόγηση της Datadog. Σε αντίθεση με τα εργαλεία στατικής ανάλυσης, το Codex συγκρίνει την πρόθεση του αιτήματος συγχώνευσης κώδικα με τις υποβληθείσες αλλαγές κώδικα, εφαρμόζοντας συλλογιστική σε ολόκληρη τη βάση κώδικα και τις εξαρτήσεις για να εκτελέσει κώδικα και δοκιμές που επικυρώνουν τη συμπεριφορά.
«Ήταν το πρώτο που φαινόταν να λαμβάνει πραγματικά υπόψη το diff στο ευρύτερο πλαίσιο του προγράμματος», αναφέρει ο Carter. «Αυτό ήταν καινούριο και αποκαλυπτικό».
Για πολλούς μηχανικούς, αυτή η αλλαγή επηρέασε συνολικά τον τρόπο με τον οποίο ασχολούνταν με τον έλεγχο ΤΝ. «Άρχισα να αντιμετωπίζω τα σχόλια του Codex σαν πραγματική ανατροφοδότηση από έλεγχο κώδικα», αναφέρει ο Ted Wexler, Ανώτερος Μηχανικός Λογισμικού στη Datadog. «Όχι σαν κάτι που θα διάβαζα βιαστικά ή θα αγνοούσα, αλλά σαν κάτι που αξίζει να του δώσω προσοχή».
Μετά την αξιολόγηση, η Datadog ανέπτυξε το Codex ευρύτερα στο προσωπικό των μηχανικών της. Σήμερα πάνω από 1.000 μηχανικοί το χρησιμοποιούν τακτικά.
Η ανατροφοδότηση αναδεικνύεται κυρίως οργανικά αντί μέσω επίσημων μετρικών στοιχείων εντός του εργαλείου. Οι μηχανικοί κάνουν αναρτήσεις στο Slack σχετικά με χρήσιμες πληροφορίες, εποικοδομητικά σχόλια και στιγμές όπου το Codex τους βοήθησε να σκεφτούν διαφορετικά για ένα πρόβλημα.
Παράλληλα με την εξοικονόμηση χρόνου που είναι σημαντική, οι ομάδες σταθερά διαπίστωναν και μια πιο ουσιαστική αλλαγή στον τρόπο με τον οποίο γινόταν η εργασία.
«Το Codex άλλαξε τη γνώμη μου για το πώς πρέπει να είναι ο έλεγχος κώδικα. Δεν έχει να κάνει με τη μίμηση των καλύτερων ανθρώπινων ελεγκτών μας. Έχει να κάνει με τον εντοπισμό κρίσιμων σφαλμάτων και οριακών περιπτώσεων που οι άνθρωποι δυσκολεύονται να δουν όταν ελέγχουν αλλαγές μεμονωμένα».
Ο ευρύτερος αντίκτυπος για την Datadog ήταν μια αλλαγή στον τρόπο με τον οποίο ορίζεται ο ίδιος ο έλεγχος κώδικα. Αντί να βλέπει τον έλεγχο ως σημείο ελέγχου για την ανίχνευση σφαλμάτων ή τη βελτιστοποίηση του χρόνου κύκλου, η ομάδα πλέον βλέπει το Codex ως ένα βασικό σύστημα αξιοπιστίας που λειτουργεί ως συνεργάτης:
- Αναδεικνύοντας τον κίνδυνο πέρα από αυτό που μπορούν να διαχειριστούν εντός πλαισίου οι μεμονωμένοι ελεγκτές
- Επισημαίνοντας αλληλεπιδράσεις μεταξύ μονάδων και μεταξύ υπηρεσιών
- Αυξάνοντας την εμπιστοσύνη στη διάθεση σε μεγάλη κλίμακα
- Επιτρέποντας στους ανθρώπινους ελεγκτές να εστιάζουν στην αρχιτεκτονική και τον σχεδιασμό
Αυτή η μετατόπιση ευθυγραμμίζεται με τον τρόπο που τα ηγετικά στελέχη της Datadog πλαισιώνουν τις προτεραιότητες της μηχανικής, όπου η αξιοπιστία και η εμπιστοσύνη έχουν εξίσου, αν όχι περισσότερη, σημασία από την ταχύτητα.
«Είμαστε η πλατφόρμα στην οποία βασίζονται οι εταιρείες όταν όλα τα άλλα καταρρέουν», αναφέρει ο Carter. «Η πρόληψη περιστατικών ενισχύει την εμπιστοσύνη που μας δείχνουν οι πελάτες μας».


