Blog'a dön
•
ByteGurus

2026'da Sunucusuz Mimari: Artıları ve Eksileri

Sunucusuz (serverless) mimarinin artıları ve eksileri: maliyet, ölçekleme, soğuk başlangıç, süre sınırları, sağlayıcı bağımlılığı ve ne zaman seçileceği.

Sunucusuz Bulut Mimari AWS

Sunucusuz (serverless) mimari olgunlaştı; artık bir moda değil, belirli işler için ciddi bir mimari seçenek. Yine de “sunucusuza geçelim mi?” sorusunun cevabı uygulamaya göre değişiyor. Bu yazı pratik artıları, gerçek sınırları ve doğru kullanım alanlarını anlatıyor.

Sunucusuz mimari nedir

AWS Lambda, Azure Functions ya da Google Cloud Functions gibi fonksiyon olarak hizmet (FaaS) platformlarında kodu yazar ve yüklersiniz; ölçekleme, yama ve bakım sağlayıcıdadır. Adına rağmen sunucular vardır, yalnız sizden gizlidir. Cloud Run gibi konteyner tabanlı sunucusuz servisler de aynı modelin konteyner sürümüdür.

Artıları

1. Kullandığın kadar öde

Sunucusuzda yalnız gerçekten çalışılan süre için ödersiniz. Yükü dalgalı uygulamalarda bu önemli bir avantajdır: gündüz yoğun, gece neredeyse boş bir görsel işleme servisi için gece boşta bekleyen sunuculara ödeme yapmazsınız.

# S3'e yüklenen görselden küçük resim üreten Lambda
import io, os, urllib.parse
import boto3
from PIL import Image

s3 = boto3.client("s3")

def lambda_handler(event, context):
    record = event["Records"][0]["s3"]
    bucket = record["bucket"]["name"]
    key = urllib.parse.unquote_plus(record["object"]["key"])

    body = s3.get_object(Bucket=bucket, Key=key)["Body"].read()
    image = Image.open(io.BytesIO(body))
    image.thumbnail((300, 300))

    out = io.BytesIO()
    image.convert("RGB").save(out, format="JPEG")
    # Küçük resmi AYRI bir kovaya yaz: aynı kovaya yazmak fonksiyonu
    # kendi çıktısıyla yeniden tetikler ve sonsuz döngüye sokar
    s3.put_object(Bucket=os.environ["THUMBNAIL_BUCKET"], Key=key, Body=out.getvalue())

Bu avantaj yük sürekli yüksek olduğunda tersine dönebilir: sürekli dolu çalışan bir iş için sunucu ya da konteyner çoğu zaman daha ucuzdur. Kararı kendi trafik profilinizle hesaplayın.

2. Hızlı başlangıç

Altyapı kurma ve işletme yükü büyük ölçüde ortadan kalkar; ekip iş mantığına odaklanır. Küçük ekipler ve prototipler için önemli bir hızlandırıcıdır.

3. Yerleşik ölçekleme

Ölçekleme otomatiktir. Yüksek erişilebilirlik ve bölgeler arası dağıtım seçenekleri sağlayıcı tarafından sunulur.

4. Daha küçük işletme yüzeyi

İşletim sistemi yaması, SSH erişimi ya da sunucu sertleştirme gibi işler sizden çıkar. Uygulama güvenliği, yetki tanımları ve bağımlılıklar ise hâlâ sizin sorumluluğunuzdadır; aşırı geniş IAM yetkisi sunucusuz dünyanın en yaygın açığıdır.

Eksileri

1. Soğuk başlangıç

Bir süredir çağrılmayan fonksiyon için sağlayıcı yeni bir çalışma ortamı açar; bu, dil ve paket boyutuna göre yüz milisaniyelerden birkaç saniyeye kadar gecikme ekler. Gecikmeye duyarlı API’lerde sorun olabilir. Önceden ayrılmış eşzamanlılık (provisioned concurrency), hafif çalışma zamanları ve küçük paketler etkiyi azaltır ama maliyet ekler.

2. Süre sınırları

Platformların en uzun çalışma süresi sınırı vardır (AWS Lambda için 15 dakika). Uzun işler parçalara bölünmeli ya da Step Functions gibi bir orkestratörle yönetilmeli; bu da karmaşıklık ekler. Uzun süren işler için konteyner tabanlı işler (Cloud Run Jobs, AWS Batch, Kubernetes Job) daha doğaldır.

3. Sağlayıcı bağımlılığı

Fonksiyonların kendisi taşınabilir olsa da tetikleyiciler, yetki modeli, kuyruklar ve veritabanları sağlayıcıya özgüdür. Başka bir buluta geçmek ciddi yeniden yazım ister. İş mantığını sağlayıcıya özgü kodu saran ince bir katmanın arkasında tutmak bu bağımlılığı azaltır.

4. Dağıtık hata ayıklama

Uygulama olaylarla birbirini tetikleyen çok sayıda fonksiyona yayıldığında akışı izlemek zorlaşır. Dağıtık izleme (OpenTelemetry, AWS X-Ray) baştan kurulmalıdır.

5. Maliyet sürprizleri

Fonksiyonlar kendini tetikleyen bir döngüye girerse ya da beklenmedik bir yük gelirse fatura hızla büyür. Eşzamanlılık sınırı, bütçe alarmları ve fonksiyon başına maliyet takibi şarttır.

6. Yoğun hesaplama işleri

Model eğitimi, video işleme ya da uzun süren veri işleme sunucusuza pek uymaz; bellek, süre ve maliyet sınırları sanal makine ya da konteyneri daha uygun kılar.

Ne zaman sunucusuz

Uygun durumlar

  • Olay güdümlü işler: dosya yükleme, veritabanı değişikliği, kuyruk mesajı işleme
  • Dalgalı trafikli API’ler ve webhook’lar
  • Zamanlanmış işler: raporlar, temizlik görevleri
  • Prototipler ve yeni ürünler: altyapı kurmadan hızlı başlamak

Uygun olmayan durumlar

  • Gecikmeye çok duyarlı sistemler: soğuk başlangıcı kaldıramayan işler
  • Uzun süren işler: platform süre sınırını aşanlar
  • Yoğun hesaplama: model eğitimi, video işleme
  • Sürekli yüksek yük: boşta kalma süresi olmayan servisler
  • Altyapı üzerinde sıkı denetim isteyen ortamlar: veri yerleşimi ve ağ kontrolünün kesin olması gereken durumlar

Karma yaklaşım

En sağlıklı yol çoğu zaman ikisini birlikte kullanmaktır: olay güdümlü ve dalgalı yüklü parçalar sunucusuz, durum tutan ve sürekli çalışan servisler konteynerde.

İyi uygulamalar

  1. Durumsuz tasarlayın: durum veritabanında, önbellekte ya da nesne depolamada tutulur
  2. İzlemeyi baştan kurun: kayıt, metrik ve dağıtık iz ilk günden
  3. Maliyeti yönetin: bütçe alarmları, eşzamanlılık sınırları, düzenli inceleme
  4. Soğuk başlangıcı azaltın: küçük paket, az bağımlılık, kritik fonksiyonlarda önceden ayrılmış eşzamanlılık
  5. En az yetki: her fonksiyonun kendi rolü ve yalnız ihtiyaç duyduğu izinler

Sonuç

Sunucusuz mimari ne sihirli bir çözüm ne de başarısız bir vaat; doğru yerde kullanıldığında güçlü bir araç. Olay güdümlü ve yükü dalgalı işlerde maliyet ve hız avantajı sağlar; yoğun hesaplama ya da gecikmeye duyarlı sistemlerde geleneksel mimariler daha uygundur.

Mimarinizde sunucusuzun yerini birlikte değerlendirmek isterseniz bize yazın.

B

ByteGurus

Yazar

Tüm yazılara dön
Başlamaya hazır mısınız?

Projenize başlamaya hazır mısınız?

Fikirlerinizi hayata geçirmek için size nasıl yardımcı olabileceğimizi konuşalım.