Tüm yazılar
Matematik14 Aralık 2024

Serverless: "Sunucusuz" Mimari ve Fonksiyon Tabanlı Bilişim

Sunucu yönetmek istemiyorsanız sadece fonksiyonu yazın. AWS Lambda 2014'te bu vizyonu açtı, modern bulut çağının yeni paradigması doğdu.

Matematik Karavanı 6 dk okuma 5 soru
Şimşek — anlık çalışan fonksiyon metaforu

"Sunucu yok" mu?

İsim yanıltıcı: sunucular var. Ama sen yönetmiyorsun. Bulut sağlayıcısı yönetir.

Serverless:

  • Sadece kodu (fonksiyonu) yaz.
  • Bulut hizmeti çalıştırır.
  • Kullanım kadar öde (saniye seviyesi).
  • Otomatik ölçeklenme.

Sözleşme

Geleneksel: sunucu kira → her zaman çalışır → her zaman öde.

Serverless: fonksiyon → çağrıldığında çalışır → çağrı başına öde.

E-ticaret örneği:

  • 1000 ziyaretçi/saniye → 1000 fonksiyon paralel.
  • Gece 0 ziyaretçi → 0 maliyet.

AWS Lambda (2014)

Tilford ve Vogels öncülüğünde. İlk büyük FaaS (Function-as-a-Service):

def handler(event, context):
    return {"statusCode": 200, "body": "Merhaba!"}

Yükle, HTTP endpoint açar, 5 dakika içinde dünya çapında erişilebilir.

Diğer FaaS

  • Google Cloud Functions (2017).
  • Azure Functions (2016).
  • Cloudflare Workers (2017) — edge.
  • Vercel Functions, Netlify Functions — frontend.

Tetikleyiciler

Bir fonksiyonun ne ile çalıştığı:

  • HTTP: API Gateway.
  • Olay: S3 dosya yüklendi.
  • Kuyruk: SQS mesaj geldi.
  • Stream: Kinesis veri.
  • Zamanlı: CloudWatch cron.
  • Veritabanı: DynamoDB stream.

Olay tabanlı mimarinin doğal eşi.

Cold start sorunu

Lambda fonksiyonu kullanılmadığında kapatılır. Yeni istek → yeniden başlat:

  • Container başlat.
  • Bağımlılıkları yükle.
  • Fonksiyonu çağır.

Cold start: 100ms - 5sn arası gecikme.

Çözümler:

  • Provisioned concurrency: hazır tutulan instance.
  • Hafif runtime: Rust, Go.
  • Edge functions (Cloudflare Workers) — daha hızlı.

Avantajlar

  • Sıfır operasyon: kontrol etmen gerekmez.
  • Maliyet: idle time için ödeme yok.
  • Otomatik ölçeklenme: yüzlerce paralel.
  • Hızlı geliştirme: sadece kod.
  • Hata izolasyonu: her fonksiyon bağımsız.

Dezavantajlar

  • Cold start: gecikme.
  • Süre limiti: AWS Lambda 15 dakika max.
  • Bellek limiti: ~10GB max.
  • Vendor lock-in: bulut sağlayıcıya bağlı.
  • Debug zor: dağıtık trace gerekir.
  • Maliyet yüksek olabilir: çok kullanım = pahalı.

Use case'ler

Mükemmel için

  • API endpoint: REST/GraphQL.
  • Veri işleme: dosya yüklendi → küçük resim üret.
  • ETL: batch işlemler.
  • Webhook: dış servisten gelen olaylar.
  • Cron job: günlük rapor.
  • Chatbot: gelen mesaj → cevap.

Kötü için

  • Sürekli yük: VM daha ucuz.
  • Uzun süreli iş: 15dk > limit.
  • State: stateless tasarımı gerekir.
  • WebSocket: zor (mümkün ama).

Edge Functions

Modern trend: kullanıcıya yakın çalışma:

  • Cloudflare Workers: 200+ konumda.
  • AWS Lambda@Edge: CloudFront.
  • Vercel Edge: global.

Latency 10ms'in altına düşer.

Stateless tasarım

Serverless fonksiyonlar stateless:

  • In-memory durum kalmaz (her çağrı yeniden).
  • Durum dış sistemlerde: DB, cache, queue.

Bu fonksiyonel programlama mantığını dayatır.

ML için Serverless

  • Inference API: model yükle, predict döndür.
  • Vector search: Pinecone + Lambda.
  • Pre-processing: veri pipeline.
  • LLM proxy: OpenAI API üzerine ekstra mantık.

Sınırlama: cold start + büyük model yükleme yavaş. Çözüm: GPU'lu Lambda (yeni).

Modern alternatifler

Container-based serverless

  • AWS Fargate: container çalıştır, sunucu yönet.
  • Google Cloud Run: container deploy, otomatik ölçek.
  • Knative: Kubernetes üzerinde serverless.

Lambda'nın karmaşık iş yükleri için alternatifleri.

Serverless databases

  • DynamoDB: yönetilen NoSQL.
  • Aurora Serverless.
  • PlanetScale: serverless MySQL.

Veritabanı katmanı da serverless oluyor.

Türk endüstri örnekleri

  • Sahibinden, Trendyol: image resizing AWS Lambda.
  • Garanti BBVA: bazı API'ler serverless.
  • TÜBİTAK ARDEB: rapor üretimi.
  • Devlet portalları: e-Devlet bazı uçlar.

Felsefe

Serverless temel mesajı: "Programcı kod yazmalı, sunucuyu yönetmemeli".

Eskiden alt yapı yönetimi vardı, sonra konteyner, şimdi fonksiyon. Soyutlama seviyesi yükseliyor.

Kapanış

Serverless modern bulut çağının son evresi: tam soyutlama. Mükemmel değil — cold start, vendor lock-in — ama doğru iş yükü için muhteşem verimlilik.

Bir bulut mühendisinin olgunluk işareti: hangi iş yükünün serverless için uygun, hangisinin uygun olmadığını ayırt edebilmek.

Etiketler

serverlessAWS LambdaFaaSevent-drivenbulut

Kendinizi Test Edin

Cevaplarınız profilinizde istatistik olarak saklanır.

1. Serverless gerçekten sunucusuz mu?

2. AWS Lambda yılı?

3. Cold start nedir?

4. En iyi use case?

5. Edge functions ne sağlar?