Πώς η Linear βελτιστοποίησε το CI της για να συμβαδίσει με την ταχύτητα της AI
Πρωτότυπος τίτλος: "AI coding has made CI a bottleneck, so we reworked ours to keep up" (από julian_digital)
Η Linear αντιμετώπισε το πρόβλημα των καθυστερήσεων στο CI (Continuous Integration) που προκλήθηκαν από την αυξημένη παραγωγή κώδικα μέσω AI. Μέσω στοχευμένων βελτιστοποιήσεων στην υποδομή, το setup και την εκτέλεση των tests, κατάφερε να μειώσει τον χρόνο αναμονής των pull requests παρά την τετραπλάσια αύξηση της σουίτας ελέγχων.
Η πρόκληση της ταχύτητας στην εποχή του AI
Η χρήση AI για τη συγγραφή κώδικα έχει επιταχύνει κατακόρυφα την ανάπτυξη λογισμικού, δημιουργώντας όμως ένα νέο πρόβλημα: το CI (Continuous Integration) μετατρέπεται σε «λαιμό του μπουκαλιού». Στη Linear, η ραγδαία αύξηση των tests κατέστησε απαραίτητη την αναθεώρηση ολόκληρης της διαδικασίας CI, ώστε να μην καθυστερούν οι προγραμματιστές και τα AI agents.
Υποδομές και έξυπνη διαχείριση των Gating Jobs
Το πρώτο βήμα ήταν η μετάβαση σε third-party runners με ταχύτερους επεξεργαστές και καλύτερη αποθήκευση. Παράλληλα, η ομάδα εστίασε στα «gating jobs» — τις μικρές εργασίες που προηγούνται των μεγάλων ελέγχων. Περιορίζοντας το βάθος του git fetch και εξαλείφοντας περιττά checkouts, ο χρόνος ανίχνευσης αλλαγών μειώθηκε από τα 26 στα 8 δευτερόλεπτα.
Μείωση του Setup Overhead
Κάθε δευτερόλεπτο που δαπανάται για την εγκατάσταση πακέτων (pnpm install) ή το στήσιμο του περιβάλλοντος προσθέτει καθυστέρηση. Η Linear μετέφερε τα κοινά dependencies σε ένα custom CI base image και περιόρισε τις εγκαταστάσεις μόνο στα απαραίτητα πακέτα ανά job. Αυτές οι κινήσεις μείωσαν τον χρόνο setup ανά shard κατά περίπου 44%.
Βελτιστοποίηση της εκτέλεσης των Tests
Η πιο δραστική βελτίωση ήρθε από την αλλαγή στον τρόπο εκτέλεσης των tests με το Vitest. Επιτρέποντας σε επιλεγμένα αρχεία να μοιράζονται το module registry (απενεργοποιώντας το isolate: false), η ομάδα απέφυγε χιλιάδες περιττά rebuilds. Σε συνδυασμό με την αύξηση των shards από 4 σε 8, ο χρόνος ολοκλήρωσης της σουίτας ελέγχων μειώθηκε δραματικά, διασφαλίζοντας ότι η ταχύτητα ανάπτυξης παραμένει υψηλή παρά την συνεχή προσθήκη νέων tests.
Ανακαλύψτε καινοτόμα open-source εργαλεία και κρυμμένα διαμάντια ανοιχτού κώδικα.