Bir full stack uygulamayı production'a çıkarırken hangi bileşenlere ihtiyaç duyarsınız? Tipik bir deploy mimarisini anlatın.
Cevap
Tipik bir full stack uygulama production'da en az şu parçalardan oluşur: frontend dağıtımı (CDN), backend çalışma ortamı, yönetilen veritabanı, DNS + HTTPS, secret yönetimi, CI/CD ve izleme (monitoring).
Tipik mimari
- DNS:
app.ornek.comalan adı CDN'e veya load balancer'a yönlendirilir. - CDN / statik hosting: React/Vue build çıktısı (JS, CSS, görseller) CloudFront, Cloudflare veya Vercel üzerinden sunulur. SSR kullanılıyorsa Next.js sunucusu da burada ya da backend tarafında çalışır.
- Backend: API bir container (Cloud Run, ECS, Fly.io, Kubernetes) veya serverless fonksiyon olarak çalışır; önünde load balancer bulunur.
- Veritabanı: RDS, Cloud SQL, Neon, Supabase gibi yönetilen PostgreSQL; otomatik yedekleme ve private network erişimi açık olmalıdır.
- Dosya depolama: kullanıcı yüklemeleri S3/R2 gibi object storage'a gider, sunucu diskine değil.
- Cache / kuyruk: Redis (session, cache), arka plan işleri için bir kuyruk (SQS, BullMQ).
- Secret'lar: ortam değişkenleri platformun secret manager'ından gelir, repoda durmaz.
- CI/CD: her push'ta test, build, image oluşturma ve ortama deploy.
- Gözlemlenebilirlik: log toplama, metrik, hata takibi (Sentry), uptime alarmı.
Kullanıcı -> DNS -> CDN (statik dosyalar)
-> Load Balancer -> API container'ları -> PostgreSQL
-> Redis / Kuyruk
-> S3 (dosyalar)Küçük bir projede bunların çoğunu tek bir PaaS (Vercel + Neon, Render, Railway) karşılayabilir; mülakatta ölçeğe göre basitten karmaşığa ilerlediğinizi göstermek önemlidir.
İlgili Bulut & Deploy soruları
- Bulut faturası beklenenden çok yüksek geldi. Maliyeti nasıl analiz eder ve düşürürsünüz?
- Edge function ve edge rendering nedir? Kodu ne zaman edge'de, ne zaman tek bir bölgede (region) çalıştırırsınız?
- Production'daki bir full stack uygulamayı nasıl izlersiniz? Log, metrik, trace ve alarm stratejiniz nedir?
- Veritabanı şema değişikliklerini (migration) kesintisiz (zero-downtime) nasıl deploy edersiniz? Expand-contract nedir?
- Blue-green deployment ile canary deployment arasındaki fark nedir? Rollback nasıl yapılır?
- Serverless (ör. AWS Lambda, Vercel Functions) ile container tabanlı deploy (Cloud Run, ECS, Kubernetes) arasında nasıl seçim yaparsınız?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.