Serverless Mimari Nedir? AWS Lambda ve Workers Rehberi

Serverless Mimari Nedir? AWS Lambda ve Workers Rehberi

Modern yazılım geliřtirme süreçlerinde hız, ölçeklenebilirlik ve maliyet optimizasyonu her zamankinden daha kritik bir rol oynuyor. Geleneksel sunucu yönetimiyle vakit kaybetmek istemeyen geliřtiriciler için serverless mimari devrim niteliğinde bir çözüm sunuyor. Peki, son yıllarda adını sıkça duyduğumuz bu yaklaşım tam olarak neyi ifade ediyor? Bu rehberde, sunucusuz mimarinin temellerini inceleyecek, sektörün iki devi olan AWS Lambda ve Cloudflare Workers platformları ile bu teknolojiye nasıl adım atabileceğinizi adım adım ele alacağız.

Serverless Mimari Nedir ve Nasıl Çalışır?

İsmindeki 'sunucusuz' ifadesine rağmen, serverless mimari arka planda fiziksel sunucuların bulunmadığı anlamına gelmez. Buradaki asıl espri, sunucuların yönetimi, güncellenmesi, ölçeklenmesi ve bakımı gibi operasyonel süreçlerin tamamen bulut sağlayıcısı (AWS, Google Cloud, Cloudflare vb.) tarafından üstlenilmesidir. Geliřtirici olarak siz sadece kodunuzu yazar ve sisteme yüklersiniz; altyapı endişeleriyle uğraşmazsınız.

Geleneksel sunucu modellerinde (örneğinin bir VPS veya dedicated sunucu kiraladığınızda), uygulamanızın ne kadar trafik alacağını önceden tahmin etmeniz ve buna göre bir kapasite planlaması yapmanız gerekir. Beklenmedik bir trafik dalgalanmasında sunucunuz çökebilir veya tam tersi durumda, düşük trafikte kullanmadığınız kaynaklar için boş yere ücret ödemeye devam edersiniz. Serverless mimari, bu iki büyük problemi de ortadan kaldırarak geliřtiricilere esneklik sağlar.

Bu mimarinin merkezinde 'Function as a Service' (FaaS - Servis Olarak Fonksiyon) modeli yer alır. Geleneksel mimarilerde sunucunuz 7/24 çalışır ve istek gelmese bile ücret ödersiniz. Serverless modelinde ise kodunuz sadece belirli bir tetikleyici (bir HTTP isteğı, veri tabanı güncellenmesi veya dosya yükleme gibi) gerçekleştiğinde çalışır. İşlem tamamlandığında ise kaynaklar serbest bırakılır. Böylece yalnızca kodunuzun çalıştığı milisaniyeler için ödeme yaparsınız.

Serverless Teknolojisinin Avantajları ve Dezavantajları

Her mimari yaklaşımda olduğu gibi sunucusuz sistemlerin de kendine has güçlü ve zayıf yönleri bulunur. Projenizde bu yapıyı kullanmadan önce bu dengeleri iyi analiz etmeniz gerekir.

Avantajları

  • Maliyet Verimliliğic: Sunucunuz boşta beklerken para ödemezsiniz. Sadece istek başına ve çalışma süresine göre faturalandırılırsınız.
  • Otomatik Ölçekleme: Sitenize aniden binlerce istek gelse bile sistem otomatik olarak ölçeklenir. Sizin manuel olarak sunucu kapasitesi artırmanıza gerek kalmaz.
  • Operasyonel Kolaylık: İşletim sistemi günellemeleri, güvenlik yamaları ve donanım arızaları gibi dertler tamamen ortadan kalkar.
  • Hızlı Pazara Sunma: Altyapı kurulumuyla zaman kaybetmediğiniz için fikirlerinizi hızla koda döküp yayına alabilirsiniz.
  • Dezavantajları

  • Soğuk Başlama (Cold Start): Fonksiyonunuz uzun süre tetiklenmediğinde, bulut sağlayıcı ilgili konteyneri kapatır. Yeni bir istek geldiğinde konteynerin yeniden ayağı kalkması birkaç saniye sürebilir ve bu da ilk istekte gecikmeye yol açar.
  • Sağlayıcıya Bağımlılık (Vendor Lock-in): AWS Lambda için yazdığınız bir sistemi başka bir sağlayıcıya taşımak, kullanılan entegre servisler nedeniyle zaman alıcı olabilir.
  • Hata Ayıklama Zorluğuc: Kodunuz yerel bilgisayarınızda değil, dağıtık bir bulut ortamında çalıştığı için logları izlemek ve hata ayıklamak (debugging) geleneksel yöntemlere göre daha karmaşıktır.

AWS Lambda ile Başlangıç

2014 yılında duyurulan AWS Lambda, serverless dünyasının öncüsü ve en popöler platformudur. AWS ekosistemiyle derin bir entegrasyona sahip olan Lambda; Node.js, Python, Java, Go ve C# gibi birçok popöler dili yerel olarak destekler.

AWS Lambda'nın sunduğu en büyük avantajlardan biri de geniş tetikleyici (trigger) kütüphanesidir. Sadece HTTP istekleri değil; Amazon DynamoDB tablosundaki bir veri değışimi, Amazon SQS kuyruğuna düşen bir mesaj ya da bir Amazon Cognito kullanıcı kaydı Lambda fonksiyonunuzu anında çalıştırabilir. Bu durum, mikroservislerin birbiriyle asenkron ve olay güdümlü (event-driven) şekilde haberleşmesini son derece kolaylaştırır.

Lambda üzerinde bir fonksiyon oluşturduğunuzda, bu fonksiyonu tetikleyecek bir olay (event) tanımlarsınız. Örneğinin, bir kullanıcının Amazon S3'e yüklediği görseli otomatik olarak boyutlandıran basit bir Lambda fonksiyonu şu şekilde görünebilir:

exports.handler = async (event) => {
    const bucket = event.Records[0].s3.bucket.name;
    const key = decodeURIComponent(event.Records[0].s3.object.key);
    
    console.log(`Yeni dosya yuklendi: ${key} (Bucket: ${bucket})`);
    
    return {
        statusCode: 200,
        body: JSON.stringify('Gorsel basariyla islendi!'),
    };
};

AWS Lambda, özellikle yoğun işlem gücü gerektiren, arka plan işleri, veri analitiğı ve mikro servis mimarileri için mükemmel bir tercihtir. AWS API Gateway ile birleştirildiğinde, tamamen sunucusuz ve ölçeklenebilir RESTful API'ler oluşturabilirsiniz.

Cloudflare Workers ile Başlangıç

Cloudflare Workers, geleneksel FaaS modellerine kıyasla oldukça yenilikçi bir yaklaşım sunar. Klasik bulut sağlayıcıları fonksiyonları merkezi veri merkezlerinde çalıştırırken, Cloudflare Workers kodunuzu dünya genelindeki yüzlerce 'Edge' (uç) konumunda çalıştırır. Bu sayede kullanıcının isteğı, ona en yakın coğrafi konumdaki sunucuda yanıtlanır.

Workers'ın çalışma mantığı, geleneksel sunucusuz sistemlerden çok daha farklı bir performans eğrisi çizer. Normalde bir sunucu fonksiyonu çağırıldığında, arka planda bir Docker konteynerinin ayağı kalkması beklenir. Cloudflare Workers ise doğrudan tarayıcılarda kullanılan V8 motorunun izole edilmiş çalışma alanlarını (Isolates) kullanır. Bu sayede milisaniyeler için binlerce istek sıfır gecikmeyle işlenebilir. Özellikle küresel ölçekte dağıtık çalışan web siteleri ve API'ler için bu mimari benzersiz bir hız sunar.

JavaScript, TypeScript, Rust ve C++ dillerini destekleyen Workers ile yazılmış basit bir HTTP yönlendirme örneğı şöyledir:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  return new Response('Merhaba Dunya! Cloudflare Workers uzerinden yanit aldiniz.', {
    headers: { 'content-type': 'text/plain' },
  })
}

Edge computing felsefesiyle çalışan Cloudflare Workers; dinamik içerik yönlendirme, güvenlik duvarı kuralları, A/B testleri ve ultra düşük gecikme süresi gerektiren API servisleri için biçilmiş kaftandır.

AWS Lambda ve Cloudflare Workers Karşılaştırılması

Hangi platformu seçeceğiniz, projenizin ihtiyaçlarına doğrudan bağıldır. İşte karar vermenizi kolaylaştıracak temel farklar:

  • Gecikme Süresi (Latency): Cloudflare Workers, global Edge ağı sayesinde dünya genelinde mikro saniyeler düzeyinde yanıt verir. AWS Lambda ise bölgesel (regional) çalıştığı için, kullanıcının seçilen AWS bölgesine olan uzaklığına göre gecikme süresi artabilir.
  • Çalışma Süresi Sınırları: AWS Lambda fonksiyonları 15 dakikaya kadar kesintisiz çalışabilir. Cloudflare Workers ise ücretsiz planda 10 ms, ücretli planlarda ise yaklaşık 50 ms CPU çalışma süresiyle sınırlıdır. Bu nedenle ağır hesaplama işleri için Lambda daha uygundur.
  • Ekosistem Entegrasyonu: Eğer projenizde halihazırda DynamoDB, S3, RDS veya SQS gibi AWS servislerini yoğun olarak kullanıyorsanız, AWS Lambda doğal entegrasyon avantajıyla öne çıkar.
  • Sonuç

    Serverless mimari, modern yazılım dünyasında geliřtiricilerin altyapı yönetim yükünü sırtından alarak tamamen iş mantığına ve kullanıcı deneyimine odaklanmalarını sağıyor. AWS Lambda, geniş ekosistemi ve güçlü işlem kapasitesiyle karmaşık arka plan süreçleri için liderliğini korurken; Cloudflare Workers ise hızı, düşük gecikme süresi ve soğuk başlama problemini ortadan kaldıran yapısıyla modern web uygulamalarının geleceğini şekillendiriyor. Projenizin mimari gereksinimlerini doğru analiz ederek bu iki güçlü araçtan birini seçebilir ve sunucusuz dünyanın sunduğu sınırsız ölçeklenebilirlik avantajından hemen yararlanmaya başlayabilirsiniz.

    Sıkça Sorulan Sorular

    Serverless mimaride hic sunucu kullanilmiyor mu?
    Hayir, sunucusuz mimaride de arka planda fiziksel sunucular bulunur. Ancak bu sunucularin yonetimi, bakimi ve olceklenmesi tamamen bulut saglayicisi tarafindan otomatik olarak gerceklestirilir.
    Cold start (soguk baslama) sorunu nasil cozulur?
    Soguk baslama sorununu azaltmak icin fonksiyonlari sicak tutacak periyodik tetikleyiciler kullanilabilir, Cloudflare Workers gibi V8 Isolate tabanli platformlar tercih edilebilir veya AWS Lambda'nin 'Provisioned Concurrency' ozelligi aktif edilebilir.
    WxDigitals
    WxDigitals

    WebTeknoloji.net editör ekibi; web geliştirme, SEO, hosting ve yapay zeka alanlarında üretilen içeriklerin araştırma, test ve yayın süreçlerini yürütür. Tüm incelemeler gerçek kullanım deneyimine, karşılaştırmalar ise resmi dokümantasyon ve güncel fiyatlandırma sayfalarına dayanır.

    Bu içeriği faydalı bulduysanız…

    Haftalık teknoloji & SEO rehberlerimize katılın, 38 maddelik Teknik SEO Kontrol Listesi PDF'ini hediye olarak hemen indirin.

    Yorumlar (0)

    Henüz yorum yapılmamış. İlk yorumu siz yapın!

    Yorum Yazın