Narhost

Serverless Nedir, Klasik Sunucudan Farkı Ne ve Ne Zaman Seçilir

Serverless Nedir, Klasik Sunucudan Farkı Ne ve Ne Zaman Seçilir — Narhost Sunucu rehberi kapak görseli

İçindekiler

Kısaca özet

  • Serverless nedir sorusunun kısa cevabı: kodunuzu küçük fonksiyonlar hâlinde yüklediğiniz, sunucunun kurulumu, ölçeklenmesi ve bakımıyla sağlayıcının ilgilendiği, yalnız kod çalıştığı süre için ödeme yaptığınız bir bulut modelidir.
  • Adındaki “sunucusuz” ifadesi yanıltıcıdır; sunucular yine vardır, yalnız onları siz görmez ve yönetmezsiniz.
  • Fonksiyon bir süre çağrılmazsa çalışma ortamı kapatılır; sonraki ilk istek ortamın yeniden başlatılmasını bekler, buna soğuk başlatma denir.
  • Seyrek ve dalgalı trafikte kullanım başına ödeme ucuzdur; sürekli ve yüksek trafikte sabit kaynaklı bir sunucu çoğu zaman daha öngörülebilir maliyet çıkarır.
  • Uzun süre çalışan işler, kalıcı bağlantı isteyen uygulamalar ve klasik PHP siteleri serverless modele uygun değildir.
  • Fonksiyonlar sağlayıcının tetikleyicilerine ve servislerine bağlandıkça başka bir platforma taşınmak zorlaşır.

Geliştirici ekip yeni bir proje için “bunu serverless yapalım, sunucu derdi olmaz” diyor. Finans tarafı faturanın her ay ne kadar tutacağını soruyor, sistem yöneticisi ise uygulamanın nerede çalışacağını. Serverless nedir sorusu genellikle tam bu masada sorulur. Cevap kısa: sunucu yönetimini sağlayıcıya bırakan ve yalnız çalışan kod için ödeme yapılan bir model. Karar ise uygulamanın nasıl çalıştığına bağlıdır ve her proje için doğru değildir.

Serverless Nedir, Nasıl Çalışır

Serverless modelde uygulamanızı bir sunucuya kurmazsınız. Kodu küçük parçalar, yani fonksiyonlar hâlinde platforma yüklersiniz ve her fonksiyonun hangi olayla çalışacağını tanımlarsınız: bir HTTP isteği, bir dosya yüklemesi, bir kuyruğa düşen mesaj ya da belirli bir saat. Olay gerçekleştiğinde platform fonksiyonu çalıştırır, iş bitince kaynakları geri alır.

Bulut yerel bilişimin açık kaynak standartlarını geliştiren CNCF’nin serverless genel bakış dokümanı bu yapıyı iki başlıkta tanımlıyor. Fonksiyon olarak hizmet (FaaS), olaylarla tetiklenen kodun çalıştırılmasıdır. Arka uç olarak hizmet (BaaS) ise kimlik doğrulama, veritabanı ya da dosya depolama gibi işlevleri hazır API’ler olarak sunan servislerdir. Aynı doküman, sunucuların hâlâ gerekli olduğunu ve bunları sağlayıcının yönettiğini açıkça belirtiyor.

Bilgi

Serverless, bulut bilişimin bir alt türüdür. NIST’in bulut bilişim tanımı kaynakların talep üzerine hızla ayrılıp serbest bırakılmasını temel özellik sayar; serverless bunu en uç noktaya taşır ve kaynağı tek bir isteğin süresi kadar ayırır.

Kullanım Başına Ödeme, Ucuz mu Pahalı mı

Serverless nedir sorusuna finans tarafından bakıldığında cevap faturanın yapısındadır. Serverless modelde fatura, fonksiyonun kaç kez çağrıldığına, her çağrının ne kadar sürdüğüne ve ne kadar bellek kullandığına göre çıkar. Hiç istek gelmediğinde hesaplama için ödeme yapılmaz. Günde birkaç yüz kez çalışan bir form işleyici ya da gecede bir kez tetiklenen bir rapor betiği için bu çok avantajlıdır; bütün ay açık duran bir sunucuya para vermezsiniz.

Trafik sürekli ve yüksek olduğunda hesap tersine döner. Her saniye istek alan bir API, serverless modelde her istek için ayrı ücretlendirilir ve aylık toplam, aynı yükü taşıyan sabit kaynaklı bir sunucunun bedelini geçebilir. Ek olarak veri transferi, depolama ve API ağ geçidi gibi kalemler ayrıca faturalanır. Maliyeti öngörmek, trafiğin ay içinde nasıl dağıldığını bilmeyi gerektirir.

Dikkat

Kullanım başına ödeme, kötü niyetli ya da hatalı trafikte faturanın da sınırsız büyüyebileceği anlamına gelir. Bir bot saldırısı ya da kendini tekrar tekrar çağıran hatalı bir fonksiyon, ay sonunda beklenmedik bir tutar çıkarabilir. Serverless kullanıyorsanız bütçe uyarısı ve eşzamanlı çalışma sınırı tanımlamak ilk işlerden biridir.

serverless nedir sorusunu olay, fonksiyon, kullanım başına ödeme ve soğuk başlatma adımlarıyla açıklayan şema
Serverless akışı: bir olay fonksiyonu tetikler, platform kodu çalıştırır, süre kadar ücret alınır, boşta kalan ortam kapatılır.

Soğuk Başlatma ve Süre Sınırları

Bir fonksiyon bir süre çağrılmadığında platform onun çalışma ortamını kapatır. Sonraki istek geldiğinde ortamın yeniden hazırlanması, kodun yüklenmesi ve bağımlılıkların başlatılması gerekir; buna soğuk başlatma denir. Kullanıcı bu gecikmeyi ilk istekte bekleme olarak hisseder. Seyrek kullanılan bir yönetim paneli için sorun değildir, ödeme sayfası gibi her milisaniyenin önemli olduğu yerlerde can sıkıcı olabilir.

Fonksiyonların bir de çalışma süresi sınırı vardır. Her sağlayıcı bir çağrının en fazla ne kadar sürebileceğini belirler; uzun bir video dönüştürme, büyük bir veri aktarımı ya da saatlerce süren bir hesaplama bu sınıra takılır. Fonksiyonlar durumsuzdur, yani bir çağrıdan diğerine yerel diskte ya da bellekte bilgi taşımaz. Oturum, dosya ve önbellek gibi her şeyin dış bir servise yazılması gerekir.

Serverless, VPS ve Bulut Sunucu Karşılaştırması

Aşağıdaki tablo üç modeli en sık karar verilen başlıklarda karşılaştırıyor. Serverless nedir sorusunun pratik anlamı bu tabloda görünür: yönetim yükü azalır, karşılığında kontrol ve öngörülebilirlik azalır.

Başlık Serverless (FaaS) VPS Bulut sunucu
Sunucu yönetimi Sağlayıcıda Sizde (root erişimi) Sizde, kaynak artırma panelden
Ödeme modeli Çağrı ve süre başına Sabit aylık paket Sabit paket, yükseltilebilir
Boşta maliyet Hesaplama için yok Paket bedeli sürer Paket bedeli sürer
Uzun süren iş Süre sınırına takılır Sınırsız çalışır Sınırsız çalışır
Soğuk başlatma Var Yok, süreç hep açık Yok, süreç hep açık
Taşınabilirlik Sağlayıcıya bağımlı Yüksek, standart Linux Yüksek, standart işletim sistemi

Sağlayıcıya Bağımlılık Neden Önemli

Serverless nedir diye araştıran ekiplerin çoğu zaman en geç fark ettiği konu bağımlılıktır. Serverless bir uygulama yalnız fonksiyonlardan oluşmaz. Fonksiyonları tetikleyen olay sistemi, kimlik doğrulama, veritabanı, kuyruk ve dosya depolama da çoğu zaman aynı sağlayıcının kendi servisleridir. Her biri kendi API’siyle çağrılır. Uygulama büyüdükçe bu bağlar artar ve başka bir sağlayıcıya ya da kendi sunucunuza geçmek, kodun önemli bir kısmını yeniden yazmak anlamına gelir.

Klasik bir sunucuda çalışan uygulama ise standart bir işletim sistemi, standart bir web sunucusu ve standart bir veritabanı kullanır. Yedeği alınır, başka bir sunucuya kurulur, çalışır. Uygulamayı konteynerlerle paketlemek bu taşınabilirliği daha da artırır; konteyner iş yükleri için hangi sunucu tipinin uygun olduğunu Docker için hangi sunucu yazısında bulabilirsiniz.

Örnek senaryo

Bir etkinlik bilet platformu, ödeme sonrası bilet PDF’i üretip e-postayla gönderen işi serverless fonksiyona taşıyor. Normal günlerde saatte birkaç bilet satılıyor, konser duyurusu yapılan akşam ise yarım saatte binlerce. Fonksiyon bu dalgalanmayı kendiliğinden karşılıyor, sakin günlerde neredeyse hiç maliyet çıkarmıyor. Platformun ana sitesi, yönetim paneli ve veritabanı ise bir bulut sunucuda kalıyor; bunlar gün boyu açık ve sürekli bağlantı istiyor, serverless modelde her istek için ücret ödemek daha pahalıya gelecekti.

Serverless Ne Zaman Doğru, Ne Zaman Yanlış Seçim

CNCF dokümanı serverless yaklaşımı özellikle şu iş yükleri için öneriyor: birbirinden bağımsız küçük parçalara bölünebilen, seyrek ya da ani sıçramalarla gelen, durumsuz ve soğuk başlatma gecikmesine toleranslı işler. Pratikte bu; webhook karşılayıcılar, yüklenen görseli yeniden boyutlandırma, zamanlanmış raporlar, form işleme ve düşük trafikli API’ler demektir.

Yanlış seçim olduğu durumlar da nettir. WordPress gibi veritabanına sürekli bağlanan PHP uygulamaları, WebSocket ile açık bağlantı tutan sohbet ve oyun sunucuları, saatlerce çalışan veri işleme betikleri ve gün boyu sabit yüksek trafik alan uygulamalar sabit kaynaklı bir sunucuda daha verimli çalışır. Node.js ya da Python ile yazılmış sürekli çalışan bir servisi sunucuda ayakta tutmanın yolu Node.js ve PM2 kurulum kartında anlatılıyor.

Serverless’a Alternatif, Sabit Kaynaklı Bulut Sunucu

Serverless modelin sunduğu esnekliğin bir kısmı, ölçeklenebilir bir bulut sunucuyla da elde edilir. Kaynak ihtiyacı arttığında paket yükseltilir, uygulama aynı sunucuda çalışmaya devam eder, fatura her ay aynıdır. Bulut sunucunun ne olduğu ve VPS’ten farkı bulut sunucu nedir yazısında, üç sunucu tipinin karşılaştırması ise VPS mi VDS mi bulut sunucu mu rehberinde anlatılıyor.

Birçok ekip için doğru yapı ikisinin birleşimidir: uygulamanın çekirdeği sabit bir sunucuda, ani yük alan ya da seyrek çalışan yan işler serverless fonksiyonlarda. Serverless nedir sorusunu “tamamen mi, kısmen mi” sorusuyla birlikte sormak, gereksiz bağımlılık ve sürpriz faturadan korur.

Sonuç

Serverless, seyrek ve dalgalı çalışan küçük işler için sunucu yönetimini ortadan kaldıran ucuz ve esnek bir modeldir. Sürekli çalışan, kalıcı bağlantı isteyen ya da gün boyu yüksek trafik alan uygulamalarda ise soğuk başlatma, süre sınırı, öngörülemeyen maliyet ve sağlayıcıya bağımlılık getirir. Bu uygulamalar için sabit kaynaklı bir sunucu daha doğru temeldir.

Serverless Kararı İçin Kontrol Listesi

  • Uygulamanın gün içindeki trafik dağılımını çıkarın; seyrek mi, sürekli mi.
  • En uzun süren işin kaç dakika çalıştığını ölçün ve sağlayıcının süre sınırıyla karşılaştırın.
  • Uygulamanın kalıcı bağlantı ya da yerel disk ihtiyacı olup olmadığını belirleyin.
  • Soğuk başlatma gecikmesinin hangi sayfalarda kabul edilemez olduğunu işaretleyin.
  • Kullanılacak sağlayıcı servislerini listeleyin ve taşınma maliyetini tahmin edin.
  • Bütçe uyarısı ve eşzamanlı çalışma sınırı tanımlamadan canlıya çıkmayın.
  • Aynı yükü sabit bir sunucuda çalıştırmanın aylık maliyetiyle karşılaştırın.

Sıkça sorulan sorular

Teknik olmayan birine serverless nedir, nasıl anlatılır?

Sunucusuz adına rağmen sunucu vardır, yalnız siz görmez ve yönetmezsiniz. Serverless modelde kodunuz sağlayıcının sunucularında çalışır; işletim sistemi, güncellemeler, ölçekleme ve donanım sağlayıcının sorumluluğundadır. Siz yalnız fonksiyonun kodunu ve hangi olayla tetikleneceğini tanımlarsınız. Adı, geliştiricinin bakış açısından sunucu yönetiminin ortadan kalkmasını anlatır.

WordPress sitesi serverless modelde çalışır mı?

Klasik bir WordPress kurulumu serverless modele uygun değildir. WordPress sürekli bir veritabanı bağlantısı, yerel dosya sistemi ve yüklenen dosyalar için kalıcı disk bekler. Bu ihtiyaçlar serverless ortamda ancak ciddi yeniden yapılandırmayla karşılanır. WordPress için paylaşımlı hosting, WordPress hosting ya da bir sunucu daha doğru ve daha ekonomik bir seçimdir.

Soğuk başlatma ne kadar sürer?

Süre; kullanılan programlama diline, fonksiyonun boyutuna, bağımlılıkların sayısına ve sağlayıcıya göre değişir. Küçük ve bağımlılığı az fonksiyonlarda kısa, büyük paketlerde belirgin şekilde uzundur. Gecikmenin kabul edilemez olduğu işlerde bazı platformlar ortamı sürekli sıcak tutma seçeneği sunar, ama bu seçenek boşta maliyet getirir.

Serverless mi bulut sunucu mu daha ucuz?

Trafiğe bağlıdır. Günde birkaç yüz çağrı alan bir iş için serverless neredeyse bedavaya çalışır. Gün boyu sürekli istek alan bir uygulamada ise her çağrının ayrı ücretlendirilmesi, aynı yükü taşıyan sabit bir sunucunun aylık bedelini geçebilir. Karşılaştırmayı gerçek trafik verisiyle, veri transferi ve depolama kalemleri dahil yapmak gerekir.

Serverless uygulamayı sonradan sunucuya taşımak zor mu?

Uygulama sağlayıcının kendi servislerine ne kadar bağlıysa taşıma o kadar zordur. Yalnız HTTP isteğiyle çalışan basit bir fonksiyon kolayca bir sunucu uygulamasına dönüştürülür. Sağlayıcıya özel kuyruk, veritabanı ve kimlik doğrulama servislerini kullanan bir yapı ise önemli ölçüde yeniden yazılmalıdır.

Narhost’ta

Bulut sunucu paketlerimizde NVMe disk, 50 Gbps port ve anında kurulum standarttır; kaynak ihtiyacınız arttığında paketinizi müşteri panelinden yükseltebilirsiniz.

Bulut sunucu paketlerini incele

Bu konuyla ilgili Narhost hizmetleri

Yazıda anlatılan ihtiyaca doğrudan karşılık gelen paketler.

Alışveriş deneyiminizi iyileştirmek için yasal düzenlemelere uygun çerezler (cookies) kullanıyoruz. Detaylı bilgiye Gizlilik ve Çerez Politikası sayfamızdan erişebilirsiniz.