Vercel ile Dağıtım ve Önizleme Ortamları
Vercel'in sunduğu dağıtım ve önizleme ortamlarını keşfedin: PR başına otomatik preview URL'leri, ortam değişkenleri yönetimi ve production pipeline'ı.
Uzun yıllar boyunca bir uygulamayı canlıya almak ciddi bir serüvendi: Sunucu yapılandırmaları, FTP yüklemeleri, "ya bir şey bozulursa?" endişeleri... Vercel, bu süreci o kadar sade bir hale getirdi ki bazen işin içinde olduğumu unutuyorum. Ama basitliğin arkasında oldukça güçlü bir sistem var. Hadi bunu biraz açalım.
Vercel'de Dağıtım Nasıl Çalışır?
Vercel'in temel mantığı şu: Git'e push et, gerisini Vercel halleder. main branch'inize her push geldiğinde Vercel otomatik olarak bir build tetikler ve başarılı olursa production ortamınıza dağıtım gerçekleşir.
Süreç kabaca şu adımlardan oluşur:
1. Kaynak kodu Git repository'sinden çeker. 2. Framework'ü otomatik algılar (Next.js, Remix, SvelteKit, Astro vb.). 3. Build komutunu çalıştırır. 4. Statik dosyaları ve Serverless Function'ları CDN'e dağıtır. 5. Alan adınızı (domain) yeni deployment'a yönlendirir.
Tüm bu adımlar genellikle 30 saniye ile 2 dakika arasında tamamlanıyor. Eskiden "deploy günü" diye ayrı bir takvim bloğu açardım, şimdi commit mesajı yazarken bile düşünmüyorum bunu.
Preview Ortamları: Gerçek Sihir Burada
Vercel'in beni en çok etkileyen özelliği Preview Deployments. Her pull request açıldığında Vercel, o branch için tamamen bağımsız bir önizleme URL'si oluşturuyor. Örneğin:
https://my-app-git-feature-login-kubilay.vercel.app
Bu URL'nin önemi şu: Kod review yapan takım arkadaşınız artık kodu kendi makinesine çekip npm install && npm run dev yapmak zorunda değil. Linke tıklıyor, değişikliği canlı olarak görüyor, yorum yazıyor.
Bu yaklaşımın sağladığı avantajlar:
- Tasarımcılar geliştirme ortamı kurmadan UI değişikliklerini inceleyebilir.
- Ürün yöneticileri özelliği production'a gitmeden onaylayabilir.
- QA ekibi paralel açık PR'lar üzerinde aynı anda test yapabilir.
- Her preview'ın kendine ait kalıcı bir URL'si olduğu için geçmiş deployment'lara geri dönülebilir.
Ortam Değişkenleri Yönetimi
Üç farklı ortam için (Production, Preview, Development) bağımsız environment variable tanımlaması yapabiliyorsunuz. Bu özellik küçük görünüyor ama pratikte çok değerli:
- Preview ortamında staging veritabanına bağlanırken production'da gerçek veritabanına bağlanabilirsiniz.
- API anahtarlarınızı ortama göre izole tutabilirsiniz.
- Sıradan bir
.envdosyasını yanlışlıkla commit etme riskini ortadan kaldırır.
Ayarlar arayüzü oldukça sezgisel; hangi değişkenin hangi ortamda geçerli olduğunu tek ekrandan yönetebiliyorsunuz.
Rollback ve Instant Revert
Production'da bir sorun çıktığında paniklemek yerine Vercel dashboard'ından önceki herhangi bir deployment'ı tek tıkla "Promote to Production" yapabilirsiniz. DNS değişikliği beklemenize gerek yok, atomik dağıtım sayesinde geçiş anında gerçekleşiyor.
Bu özellik özellikle küçük ekiplerde ve gece yarısı çıkan kritik bug'larda hayat kurtarıcı.
Ne Zaman Dikkatli Olmak Gerekir?
Her araç gibi Vercel'in de sınırları var:
- Serverless Function timeout süreleri uzun süren işler için yeterli olmayabilir.
- Çok büyük monorepo yapılarında build süreleri uzayabiliyor.
- Free plan'daki bandwidth ve build dakikası limitleri ticari projelerde hızla dolabilir.
- Veritabanı bağlantı havuzu (connection pooling) konusunda dikkatli olmak gerekiyor; her serverless çağrısı yeni bir bağlantı açabilir.
Sonuç
Vercel, modern web geliştirme workflow'unu köklü biçimde değiştirdi. Dağıtım karmaşıklığını soyutlayarak ekiplerin asıl işine —yani ürün geliştirmeye— odaklanmasını sağlıyor. Preview URL'leri ise iletişim maliyetini ciddi ölçüde düşürüyor; "ben görmedim, sen anlat" tartışmaları tarihe karışıyor.
Eğer hâlâ manuel deploy süreçleriyle zaman kaybediyorsanız, Vercel'i bir sonraki side project'inizde denemenizi tavsiye ederim. Büyük ihtimalle geri dönmek istemeyeceksiniz.