Serverless vs Konteyner: Hangi İş Yükü Nereye Gider

Serverless ve konteyner, bulut üzerinde kod çalıştırmanın iki farklı yoludur. Hangisini seçeceğin, iş yükünün özelliğine bağlı.

Serverless nedir?

Serverless'ta (AWS Lambda, Azure Functions, Google Cloud Functions) kodu yazıp yüklersin, altyapı hakkında düşünmezsin. Sistem otomatik ölçeklenir, sadece çalıştığı saniye için ödeme yaparsın. Başlangıç süresi (cold start) olabilir; ilk çağrıda 1-2 saniye bekleyebilirsin.

Konteyner'de (Docker, Kubernetes) uygulamanı bir kutuya (image) koyarsın. Bu kutu her yerde aynı şekilde çalışır. Altyapıyı yönetmen gerekir, ama daha fazla kontrol ve öngörülebilir performans elde edersin.

Seçim kriteri

Serverless seç:

  • Düzensiz, ani talep (örn. bir API'ye ayda 5 kez istek)
  • Kısa süreli işler (veri işleme, mail gönderme)
  • Maliyet önemli ve kullanım öngörülemez
  • Altyapı yönetmek istemiyor

Konteyner seç:

  • Sürekli çalışan uygulama (web sitesi, veritabanı)
  • Tahmin edilebilir, düzenli trafik
  • Uzun süreli işler (saatler, günler)
  • Özel konfigürasyon, bağımlılık kontrol gerekli
  • Maliyeti daha düşük tutmak istiyorsan (aylık sabit ödeme)

Pratik örnek: Sipariş bildirimi

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Bir e-ticaret sitesinde sipariş geldiğinde müşteriye SMS gönder.

Serverless çözüm (AWS Lambda):

1import boto3
2
3sns = boto3.client('sns')
4
5def lambda_handler(event, context):
6order_id = event['order_id']
7phone = event['phone']
8
9message = f"Siparişiniz {order_id} alındı."
10sns.publish(PhoneNumber=phone, Message=message)
11
12return {'statusCode': 200, 'body': 'SMS gönderildi'}

Bu kod, sipariş her geldiğinde tetiklenir. Yoğun olmayan zamanlar hiç çalışmaz, ücret yoktur.

Konteyner çözüm (Docker + Kubernetes):

1# Dockerfile
2FROM python:3.9
3WORKDIR /app
4COPY requirements.txt.
5RUN pip install -r requirements.txt
6COPY app.py.
7CMD ["python", "app.py"]

Bu durumda bir pod (konteyner örneği) her zaman çalışır, sipariş kuyruğu dinler. Sabit maliyet, garantili yanıt.

Özet

Serverless: Ölçeklenebilir, ucuz, ama kısa işler için. Konteyner: Kontrollü, öngörülebilir, uzun çalışan sistemler için. Çoğu zaman ikisini birlikte kullanırsın; Lambda ani talep için, Kubernetes merkezi uygulamalar için.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz