İçeriğe geç
parazade

FaaS Nedir?

İngilizce: Function as a Service

Yayın: · Son güncelleme:

FaaS Nedir? Kısaca

FaaS (Function as a Service, hizmet olarak fonksiyon), kodun küçük ve bağımsız fonksiyonlar hâlinde buluta yüklendiği ve yalnızca bir olay tetiklendiğinde çalıştırıldığı bulut hizmet modelidir. Sunucusuz (serverless) mimarinin temel parçasıdır.

FaaS nedir?
İçindekiler
  1. FaaS nedir?
  2. Nasıl çalışır?
  3. Avantajları ve sınırları
  4. Ne zaman tercih etmeli?

FaaS nedir?

FaaS, uygulamanızı tek bir büyük program yerine küçük fonksiyonlara bölüp her birini buluta yüklediğiniz modeldir. Fonksiyon sürekli çalışmaz; bir HTTP isteği, yeni bir dosya yüklenmesi ya da zamanlanmış bir görev gibi olay geldiğinde birkaç milisaniye ile birkaç dakika arasında çalışır ve kapanır.

Bilinen örnekler AWS Lambda, Azure Functions, Google Cloud Functions ve Cloudflare Workers'tır. Bu model, serverless yaklaşımının en somut uygulamasıdır.

Nasıl çalışır?

Önce fonksiyon kodu yazılıp platforma yüklenir. Ardından bu fonksiyonu hangi olayın tetikleyeceği tanımlanır. Olay gerçekleştiğinde platform fonksiyon için bir çalışma ortamı açar, kodu yürütür ve sonucu döner. Eş zamanlı yüz istek gelirse platform aynı fonksiyonu paralel olarak çoğaltır.

Varsayımsal bir örnek: Bir e-ticaret sitesinde satıcı ürün fotoğrafı yüklediğinde bir fonksiyon tetiklenir. Fonksiyon fotoğrafı üç farklı boyuta küçültür ve depolama alanına kaydeder. Gün içinde hiç fotoğraf yüklenmezse fonksiyon hiç çalışmaz.

Avantajları ve sınırları

En büyük avantaj maliyet modelidir. Genellikle çalışma sayısına ve süresine göre ödeme yapılır, boşta beklerken ücret oluşmaz. Ölçeklendirme de otomatik gerçekleşir.

Sınırlar da vardır. Uzun süre çalışmayan bir fonksiyon ilk çağrıda biraz gecikmeyle açılabilir; buna soğuk başlatma (cold start) denir. Her platformun çalışma süresi ve bellek sınırları bulunur, bu yüzden uzun süren veri işleme işleri için uygun olmayabilir.

Ne zaman tercih etmeli?

Düzensiz trafik alan küçük işler, webhook karşılayıcılar, dosya dönüştürme ve zamanlanmış raporlar FaaS için uygundur. Sürekli yüksek trafik alan servislerde ise toplam maliyeti klasik bir sunucu ya da konteyner çözümüyle karşılaştırmak gerekir.

Sıkça Sorulan Sorular

FaaS ile serverless aynı şey mi?

FaaS, serverless yaklaşımının bir parçasıdır. Serverless daha geniş bir kavramdır ve sunucusuz veritabanları, kuyruk ve depolama hizmetlerini de kapsar.

FaaS fonksiyonları hangi dillerle yazılır?

Platforma göre değişmekle birlikte JavaScript, Python, Java, Go ve C# yaygın olarak desteklenir. Desteklenen sürümleri sağlayıcının belgelerinden kontrol edin.

İlgili terimler

ServerlessServerless (sunucusuz), uygulamanın çalıştığı sunucuların tamamen bulut sağlayıcısı tarafından yönetildiği, geliştiricinin yalnızca kod ve yapılandırmayla ilgilendiği bulut mimarisidir. Kaynaklar talebe göre otomatik açılır ve genellikle kullanım kadar ödenir.BaaS(Backend as a Service)BaaS (Backend as a Service, hizmet olarak arka uç), mobil ve web uygulamalarına veritabanı, kullanıcı girişi, dosya depolama ve bildirim gibi hazır arka uç hizmetlerini API üzerinden sunan bulut modelidir.PaaSPaaS (Platform as a Service, hizmet olarak platform), geliştiricilerin sunucu ve işletim sistemiyle uğraşmadan uygulama kodlarını yükleyip çalıştırabildiği bulut hizmet modelidir. Altyapı ve çalışma ortamını sağlayıcı yönetir.WebhookWebhook, bir sistemde belirli bir olay gerçekleştiğinde, önceden verilen bir adrese otomatik olarak HTTP isteği gönderen bildirim mekanizmasıdır. Ödeme alındığında mağazanın anında haberdar olması buna örnektir.Fonksiyon(Function)Fonksiyon, programlamada belirli bir işi yapan, isim verilmiş ve gerektiğinde tekrar tekrar çağrılabilen kod bloğudur. Girdi olarak parametre alabilir ve geriye bir değer döndürebilir.Google Cloud(Google Cloud Platform)Google Cloud (Google Cloud Platform, GCP), Google'ın sanal sunucu, depolama, veri analizi, yapay zekâ ve konteyner hizmetlerini internet üzerinden kullanım bazlı ücretle sunduğu bulut bilişim platformudur.Sunucu(Server)Sunucu (server), ağ üzerinden başka bilgisayarlara ve cihazlara veri, dosya, web sayfası ya da uygulama hizmeti sağlayan bilgisayar veya yazılımdır. İstek gönderen tarafa istemci denir.