Yazılım·3 dk okuma·

Yapay Zekâ Destekli Kodlama CI'ı Darboğaza Dönüştürdü: Tempoya Uymak İçin Süreçlerimizi Yeniledik

Paylaş
YazılımEdumints Blog

Yapay zekâ ajanları ve kodlama asistanları, yazılım geliştirmede kod üretimini katbekat hızlandırdı. Ancak Linear ekibinin tecrübe ettiği gibi, üretilen değişiklikleri doğrulamak aynı tempoda ilerlemediğinde Sürekli Entegrasyon (CI) süreçleri ciddi bir darboğaza dönüşüyor. Her çekme isteğinin (PR) CI hattından geçme zorunluluğu, geliştirme hızlandıkça altyapı maliyetlerini tırmandırıyor; hem mühendisler hem de otonom ajanlar geri bildirim beklerken atıl kalıyor.

Linear CTO'su Tuomas'ın artan maliyetleri düşürme ve hattı hızlandırma çağrısıyla yola çıkan ekip; test paketleri yıl başından bu yana neredeyse dört katına çıkmasına rağmen PR bekleme süresini 6 dakikanın üzerinden 5 dakikanın hemen üzerine çekti ve test başına harcanan sunucu süresini yarı yarıya indirdi.

Bu başarı, dört ana başlıkta uygulanan optimizasyonlarla sağlandı:

1. Altyapı ve Araç Setinin Yükseltilmesi

En hızlı kazanımlar, boru hattının kendisinde büyük değişiklikler yapmadan modern donanım ve araçlara geçerek elde edildi:

  • Hızlı Runner'lar: GitHub Actions iş yükleri; daha güçlü CPU, yüksek hızlı depolama ve üstün önbellek altyapısı sunan üçüncü taraf sunuculara taşındı. Karşılaştırmalı analizde işler ortalama %34, tsc iş yükleri ise %52 hızlandı.
  • Modern Derleyici: TypeScript'in yerel derleyicisi tsgoya geçilmesi, haftalık medyan tip denetim süresini %73 düşürerek tip kontrolünü darboğaz olmaktan tamamen çıkardı.
  • Tip Bilgisiz Linting: Özel ESLint kuralları tam tip grafiği yerine Soyut Sözdizim Ağacı (AST) üzerinden statik analize geçirildi. Tip bağımlılığı kalkınca API lint süresi %68, tüm repo lint süresi %55 azaldı; bellek kullanımı düştü ve Oxlint'e geçiş kolaylaştı.

2. Diğer İşleri Bloklayan Görevlerin Optimize Edilmesi

CI hattına bir sistem olarak bakıldığında, tüm boru hattının önünde duran küçük işler kritik önem taşır. PR'ın hangi dosyalara dokunduğunu ve testlerin aynı girdilerle önceden geçip geçmediğini denetleyen bu öncü kapı (gate) kontrolleri optimize edilerek sonraki paralel işlerin gecikmesiz başlaması sağlandı.

3. Tekrarlayan Kurulumların Azaltılması

Farklı işlerin aynı bağımlılıkları ve ortamları sıfırdan kurması önlendi; önbellek ve katman paylaşımlarıyla gereksiz makine süresi tüketimi engellendi.

4. Test Yürütümünün Daha Verimli Hâle Getirilmesi

Testlerin parçalanması (sharding) bekleme süresini azaltsa da toplam makine maliyetini yükseltebilir. Testlerin paralel işlenmesi ve işlemci kaynaklarının verimli paylaştırılmasıyla donanım kullanımı optimize edildi.

Geliştiriciler İçin Pratik Çıkarımlar

  • Yapay zekâ geri bildirim döngüsüne muhtaçtır: Ajanlar ne kadar hızlı kod üretirse üretsin, CI yavaşsa teslimat temposu düşer.
  • Sözdizimsel analizi tip denetiminden ayırın: Lint kurallarını tip sistemine bağlamamak, CI bellek ve sürelerinde devasa tasarruf sağlar.
  • Öncü işleri hızlandırın: Tüm hattı bekleten küçük kontrolleri optimize etmek sistem genelinde kaldıraç etkisi yaratır.

Orijinal kaynağa buradan ulaşabilirsiniz.


Bu konuyu derinlemesine öğrenmek isterseniz: Ölçeklendirme ve Optimizasyon modülüne göz atın.

Paylaş

Bu konuyu daha derinlemesine öğrenmek ister misin?

Edumints'teki ücretsiz kursları incele ve bugün başla.

Kurslara Göz At →