Vercel Monorepo Dağıtım Limitlerinde Devrim: Atlanan Dağıtımlar Artık Kotayı Tüketmiyor

Vercel, Turborepo entegrasyonuyla monorepolarda atlanan derlemeleri kota limitlerinden muaf tutuyor. CI/CD maliyetlerini düşüren yeniliğin teknik analizi.

Vercel Monorepo Dağıtım Limitlerinde Devrim: Atlanan Dağıtımlar Artık Kotayı Tüketmiyor

Modern web ekosisteminde çoklu uygulama ve mikro servislerin tek bir çatı altında yönetildiği monorepo mimarileri, ölçeklenebilir yazılım mühendisliğinin temel yapı taşlarından biri haline geldi. Özellikle Next.js, Remix ve Vite gibi modern ön yüz kütüphaneleriyle inşa edilen büyük ölçekli kurumsal platformlarda; paylaşılan UI bileşenleri, yardımcı fonksiyonlar (utils) ve API katmanları tek bir Git deposunda bir araya getiriliyor. Ancak monorepo mimarisinin sunduğu kod paylaşımı kolaylığı, CI/CD ve dağıtım (deployment) süreçlerinde ciddi bir darboğazı beraberinde getiriyordu: Etkilenmeyen projelerin gereksiz yere derlenmesi veya derlenmese dahi platform kotalarını hızla tüketmesi.

Vercel, yayımladığı son güncelleme ile bu sorunu kökten çözen kritik bir mimari adımı duyurdu. Artık Vercel tarafından bir monorepo içerisinde otomatik olarak atlanan (skipped) dağıtımlar, hesabınızın saatlik veya günlük dağıtım hızı limitlerine (deployment rate limits) dahil edilmeyecek. Bu hamle, özellikle onlarca farklı web uygulamasını ve dokümantasyon sitesini tek bir depoda barındıran ekipler için dağıtım verimliliğini dramatik biçimde artırıyor.

Monorepo Dağıtım Darboğazı ve Yeni Güncellemenin Anatomisi

Büyük ekiplerle çalışırken bir monorepo içerisine günde yüzlerce commit ve pull request gönderilir. Örneğin, bir monorepo içerisinde bir e-ticaret ön yüzü (apps/storefront), bir yönetim paneli (apps/admin) ve bir blog sitesi (apps/blog) olduğunu varsayalım. Geliştirici ekibin yalnızca blog projesindeki bir yazım hatasını düzeltmek için yaptığı bir commit, geleneksel CI/CD hatlarında depoya bağlı tüm projeler için bir webhook tetikler.

Vercel, uzun süredir Turborepo entegrasyonu sayesinde hangi projelerin bu commit'ten etkilendiğini tespit edebiliyor ve etkilenmeyen projeler için derleme sürecini atlıyordu. Ancak bu atlanan tetiklemeler, arka planda bir "deployment nesnesi" oluşturduğu için Vercel'in saatlik/günlük deployment rate limit sayacına işleniyordu. Sonuç olarak, aktif geliştirme yapan ekipler asıl ihtiyaç duydukları canlı dağıtımları yaparken limit engeline takılıyor ve CI/CD süreçleri kilitleniyordu.

Kritik Güncelleme: Yapılan son optimizasyon ile Vercel, Turborepo bağımlılık grafiğini referans alarak kaynak kodunda veya dahili bağımlılıklarında hiçbir değişiklik tespit edilmeyen ve dağıtımı atlanan projeleri rate limit hesaplamasından tamamen muaf tutuyor.

Turborepo Bağımlılık Grafiği ve Değişiklik Analizi Nasıl Çalışır?

Bu sistemin temelinde Vercel tarafından satın alınıp açık kaynaklı bir güç merkezine dönüştürülen Turborepo yatar. Turborepo, monorepo içindeki projeleri ve bu projelerin birbiriyle olan bağlarını yönlendirilmiş devirsiz bir çizge (Directed Acyclic Graph - DAG) olarak modeller.

Vercel, gelen her Git commit'inde iki kritik analiz gerçekleştirir:

  1. Paket Çizge Analizi (Package Graph): Yapılan commit'in etkilediği dosya yolları tespit edilir. Değişiklik sadece packages/ui içerisindeyse ve bu paketi yalnızca apps/storefront kullanıyorsa, apps/admin çizgenin bu dalından tamamen izole edilir.
  2. Kilit Dosyası ve Karma İncelemesi (Lockfile Hash Analysis): pnpm-lock.yaml, package-lock.json veya yarn.lock dosyalarındaki değişimler taranır. Projelerin turbo.json içerisindeki girdi (inputs) hash'leri hesaplanır. Girdilerde fark yoksa proje derleme kuyruğuna hiç sokulmaz.

Aşağıdaki örnek turbo.json konfigürasyonunda, hangi dosyaların derleme çıktısını etkilediği açıkça tanımlanır. Vercel, bu tanımlara dayanarak projenin değişip değişmediğine karar verir:

KOD
{
  "$schema": "https://turbo.build/schema.json",
  "tasks": {
    "build": {
      "dependsOn": ["^build"],
      "inputs": [
        "src/**",
        "public/**",
        "next.config.js",
        "tsconfig.json"
      ],
      "outputs": [".next/**", "!.next/cache/**"]
    }
  }
}

Eğer bir commit yalnızca apps/docs/README.md dosyasını değiştiriyorsa, apps/storefront uygulamasının inputs listesi değişmediği için Vercel bu deployment'ı doğrudan iptal eder (SKIPPED) ve artık bu iptal kotanızdan 1 hak dahi düşmez.

Geleneksel vs. Akıllı Monorepo Dağıtım Yaklaşımı

Aşağıdaki karşılaştırma tablosu, Vercel'in yeni yaklaşımı ile klasik CI/CD hatları arasındaki operasyonel farkı özetlemektedir:

Kriter / YaklaşımGeleneksel CI/CD (Naive Pipeline)Eski Vercel Monorepo ModeliYeni Vercel Monorepo Mimarisi
Tetikleme MantığıDepoya gelen her commit tüm projeleri derlerCommit tüm projelere dağıtım açar, sonra iptal ederYalnızca etkilenen projeler dağıtım kuyruğuna girer
Kota ve Limit TüketimiYüksek (Gereksiz sunucu maliyeti)Yüksek (İptal edilse bile limit tükenirdi)Sıfır Kayıp (Atlananlar kotadan düşmez)
Önbellek (Cache) KullanımıSıklıkla sıfırdan derlemeRemote Cache aktifRemote Cache + Akıllı İptal Entegrasyonu
Takım ÖlçeklenebilirliğiTakım büyüdükçe limit darboğazı oluşurEkipler rate limit bariyerine takılırLimitsiz ve Eşzamanlı geliştirme konforu

Bu Yenilik Teknik SEO ve Site Performansını Nasıl Etkiler?

İlk bakışta saf bir DevOps veya altyapı iyileştirmesi gibi görünen bu güncelleme, teknik SEO uzmanları ve site yöneticileri için doğrudan pozitif yansımalara sahiptir:

1. Ön Bellek (Edge Cache) Bütünlüğünün Korunması

Gereksiz tetiklenen dağıtımlar, statik sayfaların yeniden derlenmesine (Incremental Static Regeneration - ISR döngülerinin bozulmasına) ve CDN kenar sunucularındaki (edge cache) önbelleğin temizlenmesine yol açabilir. Atlanan dağıtımların garanti altına alınması, gereksiz cache purge işlemlerini önleyerek TTFB (Time to First Byte) stabilitesini korur.

2. Kritik SEO Düzeltmelerinin Gecikmesini Önleme

Büyük e-ticaret platformlarında robots.txt, XML Site Haritaları veya yapısal veri (JSON-LD) gibi kritik SEO öğelerinde acil güncelleme yapılması gerektiğinde, rate limit'e takılmış bir dağıtım hattı saatlerce beklemeye sebep olabilir. Rate limit bariyerinin kalkması, SEO ekiplerinin production ortamına anında müdahale edebilmesini sağlar.

3. Staging / Preview Ortamlarının Sağlığı

Arama motorlarının dizinlememesi gereken ancak QA ve SEO testleri için kullanılan Preview URL'leri, gereksiz derlemelerle şişmez. Takımlar, sadece izole değişiklikleri içeren temiz preview ortamlarında Core Web Vitals ölçümleri yapabilir.

Özelliğin Aktif Edilmesi ve Manuel Kontrol

Yeni oluşturulan monorepo projelerinde bu davranış varsayılan olarak etkindir. Mevcut projelerinizde bu sistemi doğrulamak veya manuel scriptler tanımlamak için proje ayarlarınızı optimize edebilirsiniz.

Eğer Turborepo dışında özel bir git diff algoritması kullanmak isterseniz, Vercel Proje Ayarları altındaki Build & Development Settings > Ignored Build Step sekmesine özel bir bash komutu yazabilirsiniz:

KOD
# Yalnızca storefront klasörü veya paylaşılan core paket değiştiğinde derle
git diff HEAD^ HEAD --quiet . ../../packages/core

Bu komut 0 döndürdüğünde Vercel derlemeyi atlar ve yeni kural gereği bu işlem de dağıtım limitlerinizi tüketmez.

Kaynak: Vercel Blog - https://vercel.com/changelog/skipped-monorepo-deployments-no-longer-count-against-limits

Sıkça Sorulan Sorular

Bu konu hakkında geliştiricilerin ve site sahiplerinin en çok merak ettiği soruların yanıtları.

Hayır. Bu özellik Hobby, Pro ve Enterprise dahil olmak üzere tüm Vercel planlarında otomatik olarak geçerlidir ve herhangi bir ek maliyet doğurmaz.

Son yazılar

Akordeon (Accordion) İkon Seçimi: Kullanıcı Deneyimi, Erişilebilirlik ve SEO Optimizasyonu

Akordeon (Accordion) İkon Seçimi: Kullanıcı Deneyimi, Erişilebilirlik ve SEO Optimizasyonu

Google'ın Başlık Etiketi Yeniden Yazma Güncellemesi: Kapsamlı Analiz ve Optimizasyon Stratejileri

Google'ın Başlık Etiketi Yeniden Yazma Güncellemesi: Kapsamlı Analiz ve Optimizasyon Stratejileri

Vercel CLI ile Harcama Yönetimi: Sunucusuz Mimarilerde Maliyet ve Altyapı Güvenliği Rehberi

Vercel CLI ile Harcama Yönetimi: Sunucusuz Mimarilerde Maliyet ve Altyapı Güvenliği Rehberi