İçeriğe geç
parazade

Serverless Nedir?

Yayın: · Son güncelleme:

Serverless Nedir? Kısaca

Serverless (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.

Serverless nedir?
İçindekiler
  1. Serverless nedir?
  2. Nasıl çalışır?
  3. Avantajları ve dezavantajları
  4. Nelere dikkat etmeli?

Serverless nedir?

Serverless, adının aksine sunucuların ortadan kalktığı anlamına gelmez. Sunucular hâlâ vardır, ama onları siz görmez ve yönetmezsiniz. Kapasite planlama, işletim sistemi güncelleme, ölçeklendirme ve arıza durumunda yeniden başlatma gibi işleri sağlayıcı üstlenir.

Bu yaklaşımın iki ana parçası vardır. Biri FaaS, yani olayla tetiklenen fonksiyonlardır. Diğeri ise kullanım kadar ücretlendirilen yönetilen veritabanları, depolama ve kuyruk gibi hizmetlerdir.

Nasıl çalışır?

Geliştirici kodunu ve hangi olayın bu kodu tetikleyeceğini tanımlar. İstek geldiğinde platform gerekli kaynağı açar, işi yapar ve kapatır. Trafik artarsa aynı kod otomatik olarak çoğaltılır, trafik sıfıra inerse kaynak da sıfıra iner.

Varsayımsal bir örnek: Küçük bir kafenin web sitesinde rezervasyon formu var ve günde 20-30 başvuru geliyor. Form gönderildiğinde bir serverless fonksiyon çalışıp kaydı veritabanına yazıyor ve kafeye e-posta atıyor. Ayın büyük bölümünde neredeyse hiç kaynak kullanılmadığı için maliyet çok düşük kalıyor.

Avantajları ve dezavantajları

Sunucu bakımı yükü kalkar, ölçeklendirme kendiliğinden gerçekleşir ve düzensiz trafiklerde maliyet avantajı belirgindir. Küçük ekipler için bu, altyapıya değil ürüne odaklanmak anlamına gelir.

Öte yandan soğuk başlatma gecikmesi, çalışma süresi sınırları ve sağlayıcıya bağımlılık göz önünde bulundurulmalıdır. Hata ayıklama da zorlaşabilir, çünkü uygulama çok sayıda küçük parçaya dağılır.

Nelere dikkat etmeli?

Kullanım bazlı ödeme, beklenmedik trafik ya da hatalı bir döngüde faturanın hızla büyümesine yol açabilir. Bütçe uyarıları ve eş zamanlı çalışma sınırları tanımlayın. Merkezi kayıt (log) ve izleme kurmak, dağınık parçalardaki hataları bulmayı kolaylaştırır.

Sıkça Sorulan Sorular

Serverless ne demek, gerçekten sunucu yok mu?

Serverless, sunucuyu sizin yönetmediğiniz anlamına gelir. Kod yine sağlayıcının veri merkezindeki sunucularda çalışır, ama kurulum ve bakım tamamen sağlayıcıdadır.

Serverless her zaman daha ucuz mu?

Hayır. Düzensiz ve düşük trafikte genellikle ucuzdur, ancak sürekli yüksek trafik alan servislerde klasik sunucu ya da konteyner çözümleri daha düşük maliyetli olabilir.

İlgili terimler

FaaS(Function as a Service)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.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.Kullandıkça Öde(Pay-as-you-go)Kullandıkça öde (pay-as-you-go), bir hizmetin sabit ücret yerine kullanılan miktar kadar faturalandırıldığı ödeme modelidir. Bulut bilişimde işlem süresi, depolama alanı ya da istek sayısı üzerinden ücret alınır.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.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.Hata Ayıklama(Debugging)Hata ayıklama (debugging), bir yazılımdaki hatanın nedenini bulma, anlama ve düzeltme sürecidir. Hatayı yeniden üretmek, kaynağını daraltmak ve düzeltmeyi test etmek bu sürecin temel adımlarıdır.