Serverless (ör. AWS Lambda, Vercel Functions) ile container tabanlı deploy (Cloud Run, ECS, Kubernetes) arasında nasıl seçim yaparsınız?

Cevap

Serverless, altyapıyı tamamen platforma bırakıp istek başına ödeme yapmayı sağlar; container ise çalışma ortamı üzerinde daha fazla kontrol ve öngörülebilir performans verir. Seçim trafik deseni, çalışma süresi ve durum (state) ihtiyacına göre yapılır.

KriterServerlessContainer
ÖlçeklemeOtomatik, sıfıra inerOtomatik ama ayar gerekir (min/max instance)
MaliyetDüşük/düzensiz trafikte ucuzSürekli yüksek trafikte daha ucuz
Cold startVar (yüzlerce ms - birkaç sn)Yok (sıcak instance'lar varsa)
Çalışma süresiSınırlı (ör. Lambda 15 dk)Sınırsız, uzun işler ve WebSocket uygun
BağlantılarDB bağlantı patlaması riskiKalıcı connection pool
KontrolRuntime ve ortam kısıtlıİstediğiniz binary, dil, OS paketi
Vendor lock-inDaha yüksekImage taşınabilir

Pratik karar

  • Serverless seçin: düzensiz trafik, webhook işleyicileri, cron işleri, MVP, Next.js API route'ları.
  • Container seçin: sürekli trafik, WebSocket/uzun bağlantı, ağır CPU işleri, özel bağımlılıklar (ffmpeg, Chromium), katı latency hedefleri.
  • Cloud Run ve Fargate gibi "serverless container" seçenekleri ikisinin ortasıdır: container image verirsiniz, ölçekleme yönetilir.

Serverless'ta dikkat

Her fonksiyon instance'ı kendi DB bağlantısını açar; yüzlerce eşzamanlı çağrı PostgreSQL'in bağlantı limitini aşabilir. Çözüm: RDS Proxy, PgBouncer veya HTTP tabanlı sürücüler (Neon serverless driver). Cold start'ı azaltmak için bundle'ı küçültmek ve provisioned concurrency kullanmak gerekir.

  1. Bulut faturası beklenenden çok yüksek geldi. Maliyeti nasıl analiz eder ve düşürürsünüz?OrtaBulut & DeployFull Stack
  2. Edge function ve edge rendering nedir? Kodu ne zaman edge'de, ne zaman tek bir bölgede (region) çalıştırırsınız?OrtaBulut & DeployFull Stack
  3. Production'daki bir full stack uygulamayı nasıl izlersiniz? Log, metrik, trace ve alarm stratejiniz nedir?OrtaBulut & DeployFull Stack
  4. Veritabanı şema değişikliklerini (migration) kesintisiz (zero-downtime) nasıl deploy edersiniz? Expand-contract nedir?ZorBulut & DeployFull Stack
  5. Blue-green deployment ile canary deployment arasındaki fark nedir? Rollback nasıl yapılır?OrtaBulut & DeployFull Stack
  6. Uygulamanıza özel bir alan adı bağlayıp HTTPS'i nasıl kurarsınız? A, CNAME kayıtları ve TTL ne işe yarar?KolayBulut & DeployFull Stack

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle