IHS Blog

“Serverless” Mimarisi Nedir ve Geleneksel Sunuculardan Farkı Ne?

serverless-mimarisi-nedir-ve-geleneksel-sunuculardan-farki-ne

Bulut bilişim teknolojilerinin hızla gelişmesiyle birlikte, uygulama geliştirme ve dağıtım süreçleri köklü bir dönüşüm geçiriyor. Bu dönüşümün merkezinde yer alan “serverless” yani sunucusuz mimari, geleneksel sunucu yönetimi anlayışını tamamen değiştirerek geliştiricilere ve işletmelere eşi benzeri görülmemiş bir esneklik, ölçeklenebilirlik ve maliyet avantajı sunuyor. Artık altyapı yönetimi, kapasite planlama ve sunucu bakımı gibi karmaşık operasyonel yüklerle uğraşmak yerine, tüm odağı doğrudan iş değeri yaratan koda ve uygulamalara vermek mümkün. Peki, sunucusuz mimari tam olarak nedir ve adında “sunucusuz” geçmesine rağmen gerçekten sunucular yok mu? Bu mimarinin geleneksel sunucu yaklaşımlarından temel farkları nelerdir ve hangi durumlarda tercih edilmelidir? Bu makalede, sunucusuz mimarinin temellerini, geleneksel yöntemlerle karşılaştırmasını, avantajlarını, zorluklarını ve popüler kullanım alanlarını detaylı bir şekilde inceleyeceğiz.

İçerik Tablosu

“Serverless” Mimarisine Giriş ve Temel Kavramlar

Sunucusuz mimari, uygulama kodunu çalıştırmak için gereken altyapının bir bulut sağlayıcısı tarafından tamamen yönetildiği bir modeldir. Geliştiriciler, sunucuları tedarik etmek, yapılandırmak, ölçeklendirmek veya bakımını yapmak gibi görevlerle ilgilenmezler. Bu bölümde, sunucusuz mimariyi oluşturan temel kavramları ve çalışma prensiplerini ele alacağız.

“Serverless” Kavramı Nedir? Gerçekten Sunucu Olmadığı Anlamına mı Gelir?

İsmi yanıltıcı olsa da, “serverless” mimari aslında sunucuların olmadığı anlamına gelmez. Kodunuz yine bir sunucuda çalışır. Buradaki temel fark, bu sunucuların sizin tarafınızdan yönetilmemesidir. Altyapı yönetimi sorumluluğu tamamen bulut sağlayıcısına (AWS, Google Cloud, Azure vb.) aittir. Siz sadece kodunuzu (fonksiyonları) yüklersiniz ve sağlayıcı, bu kodun çalışması için gereken kaynakları otomatik olarak tahsis eder, yönetir ve ölçeklendirir. Bu soyutlama katmanı sayesinde geliştiriciler altyapıyı düşünmek zorunda kalmaz.

Fonksiyon Olarak Hizmet (Function-as-a-Service – FaaS) Modeli

FaaS, sunucusuz mimarinin temel yapı taşıdır. Bu modelde, uygulamalar küçük, bağımsız ve tek bir işlevi yerine getiren fonksiyonlara bölünür. Her fonksiyon, belirli bir tetikleyici (event) tarafından çağrıldığında çalışır, görevini tamamlar ve ardından durur. Kullanılmadığı zamanlarda hiçbir kaynak tüketmez. Bu sayede, uygulamanızın sadece çalıştığı milisaniye kadar ödeme yaparsınız, bu da geleneksel hosting modellerine göre ciddi bir maliyet avantajı sağlar.

Olay Tabanlı (Event-Driven) Çalışma Prensibi

Sunucusuz fonksiyonlar kendi başlarına sürekli çalışmazlar; belirli olaylar tarafından tetiklenmeyi beklerler. Bu olaylar (events) çok çeşitli olabilir: bir HTTP API isteği, veritabanına yeni bir kayıt eklenmesi, bir dosyayı depolama alanına yükleme veya belirli bir zamana ayarlanmış bir görev (cron job). Bir olay meydana geldiğinde, bulut sağlayıcısı ilgili fonksiyonu anında çalıştırır. Bu olay tabanlı yapı, kaynakların son derece verimli kullanılmasını sağlar.

Arka Plan Hizmetleri (Backend-as-a-Service – BaaS) ve Serverless İlişkisi

BaaS, geliştiricilerin bir uygulamanın arka planında ihtiyaç duyduğu standart hizmetleri (örneğin, kullanıcı kimlik doğrulama, veritabanı yönetimi, dosya depolama, push bildirimleri) hazır API’lar aracılığıyla kullanmalarını sağlayan bir modeldir. BaaS, sunucusuz felsefesinin bir uzantısı olarak kabul edilebilir çünkü her ikisi de geliştiricileri sunucu yönetimi yükünden kurtarır. Genellikle FaaS ve BaaS, kapsamlı sunucusuz uygulamalar oluşturmak için birlikte kullanılır.

Geleneksel Sunucu Mimarisi ve Yönetim Yaklaşımı

Sunucusuz mimarinin getirdiği yenilikleri daha iyi anlamak için, geleneksel “sunucu dolu” (serverful) yaklaşımları ve bu yaklaşımların getirdiği zorlukları incelemek önemlidir. Bu modelde, altyapının yönetimi ve sorumluluğu büyük ölçüde kullanıcıya aittir.

“Sunucu Dolu” (Serverful) Mimari Nedir?

“Sunucu dolu” mimari, uygulamaların sürekli çalışan sunucular üzerinde barındırıldığı geleneksel bir yaklaşımdır. Bu sunucular, belirli bir işletim sistemi, yazılım ve konfigürasyon ile önceden ayarlanır. Uygulama, gelen isteklere hizmet vermek için bu sunucularda 7/24 çalışır durumda bekler. Kaynaklar (CPU, RAM, depolama) genellikle sabit olarak tahsis edilir ve uygulama o an kullanılmıyor olsa bile bu kaynaklar için ödeme yapılır.

Fiziksel (On-Premise) ve Sanal (Cloud VM) Sunucu Yönetimi

Geleneksel mimari iki ana kategoriye ayrılır. Fiziksel (On-Premise) sunucularda, donanımı satın alma, barındırma, soğutma, ağ altyapısını kurma ve bakımını yapma sorumluluğu tamamen şirkete aittir. Sanal (Cloud VM) sunucularda ise, bir bulut sağlayıcısından sanal sunucu kiralarsınız. Bu yaklaşım donanım maliyetini ortadan kaldırsa da, sanal makinenin işletim sistemini kurma, güncelleme, güvenlik yamalarını uygulama ve yazılımları yapılandırma gibi görevler yine sizin sorumluluğunuzdadır. Bu sanal sunucular VPS veya VDS şeklinde olabilir.

Kapasite Planlama ve Kaynak Tahsisi Zorlukları

Geleneksel modeldeki en büyük zorluklardan biri kapasite planlamasıdır. Uygulamanızın ne kadar trafik alacağını önceden tahmin etmeniz gerekir. Eğer çok az kaynak ayırırsanız, ani trafik artışlarında siteniz yavaşlar veya çöker. Eğer çok fazla kaynak ayırırsanız, kullanmadığınız atıl kapasite için para ödemiş olursunuz. Bu dengeyi kurmak hem zordur hem de sürekli bir izleme ve ayarlama gerektirir.

Sürekli Bakım, Güncelleme ve Güvenlik Sorumlulukları

Sunucu yönetimi, sadece ilk kurulumdan ibaret değildir. İşletim sistemlerini ve üzerinde çalışan yazılımları düzenli olarak güncellemek, güvenlik açıklarına karşı yamaları uygulamak, yedeklemeleri yönetmek ve donanım arızalarını takip etmek gibi sürekli bir operasyonel yük söz konusudur. Ayrıca, web sitenizin güvenliği için bir SSL sertifikası kurmak ve yönetmek gibi ek sorumluluklar da bulunur. Bu görevler, ciddi bir zaman ve uzmanlık gerektirir.

Temel Farklılıklar: Serverless vs. Geleneksel Sunucular

Sunucusuz ve geleneksel mimariler arasındaki farklar, maliyetten operasyonel yüke, ölçeklendirmeden geliştirme hızına kadar geniş bir yelpazeyi kapsar. Bu iki yaklaşım arasındaki temel karşıtlıkları anlamak, projeniz için doğru kararı vermenize yardımcı olacaktır.

Maliyet Yapısı: Kullandığın Kadar Öde vs. Sabit Gider

En temel fark maliyet modelidir. Sunucusuz mimaride, kodunuzun çalıştığı süre (genellikle milisaniye cinsinden) ve kullandığı kaynak miktarı kadar ödeme yaparsınız. Kodunuz çalışmıyorsa hiçbir ücret ödemezsiniz. Geleneksel modelde ise, sunucunuz 7/24 çalıştığı için, uygulamanız hiç trafik almasa bile sabit bir kira veya amortisman maliyeti ödersiniz.

Ölçeklendirme: Otomatik ve Anlık vs. Manuel ve Planlı

Sunucusuz mimari, gelen isteklere göre otomatik olarak ölçeklenir. Trafik aniden artsa bile, bulut sağlayıcısı talebi karşılamak için anında binlerce fonksiyon kopyası çalıştırabilir ve trafik azaldığında kaynakları otomatik olarak serbest bırakır. Geleneksel sunucularda ise ölçeklendirme genellikle manuel bir süreçtir. Yeni sunucular eklemek, yapılandırmak ve yük dengeleyicilere dahil etmek zaman alır ve önceden planlama gerektirir.

ÖzellikServerless (Sunucusuz) MimariGeleneksel (Sunucu Dolu) Mimari
YönetimBulut sağlayıcısı tarafından tam yönetilirKullanıcı tarafından yönetilir (OS, yazılım, yamalar)
MaliyetKullandığın kadar öde (çalışma süresi bazlı)Sabit aylık/yıllık gider (kullanılmasa bile)
ÖlçeklendirmeOtomatik, anlık ve hassasManuel, planlı ve yavaş
Kaynak TahsisiDinamik ve olay bazlıStatik ve önceden belirlenmiş
Geliştirici OdaklılığıAltyapı yerine sadece koda odaklanmaKod ve altyapı yönetimi bir arada

Yönetim ve Operasyonel Yük: Sağlayıcı Sorumluluğu vs. Kullanıcı Sorumluluğu

Sunucusuz mimaride, işletim sistemi güncellemeleri, güvenlik yamaları, sunucu bakımı gibi tüm operasyonel yükler bulut sağlayıcısının sorumluluğundadır. Bu, geliştirme ekiplerinin bu görevlere zaman ayırmak yerine doğrudan ürün geliştirmeye odaklanmasını sağlar. Geleneksel modelde ise bu sorumlulukların tamamı kullanıcıya aittir.

Geliştirme ve Dağıtım Hızı: Hızlı İterasyonlar vs. Daha Yavaş Döngüler

FaaS modeli, geliştiricilerin büyük bir monolitik uygulama yerine küçük ve bağımsız fonksiyonlar üzerinde çalışmasına olanak tanır. Bu mikroservis yaklaşımı, yeni özelliklerin daha hızlı geliştirilmesini, test edilmesini ve dağıtılmasını sağlar. Geleneksel monolitik uygulamalarda ise küçük bir değişiklik bile tüm uygulamanın yeniden test edilip dağıtılmasını gerektirebilir, bu da geliştirme döngülerini yavaşlatır.

Durum Yönetimi (State Management): Durumsuz (Stateless) vs. Durumlu (Stateful) Yaklaşımlar

Sunucusuz fonksiyonlar doğaları gereği “duruşsuzdur” (stateless). Yani, bir fonksiyon çağrısından diğerine herhangi bir bilgi veya veri (state) taşımazlar. Her çağrı yeni ve temiz bir ortamda gerçekleşir. Bu, ölçeklendirmeyi basitleştirir ancak durumun (örneğin, kullanıcı oturum bilgileri) harici bir veritabanı veya önbellek hizmetinde saklanmasını gerektirir. Geleneksel sunucular ise “durumlu” (stateful) olabilir ve verileri uzun süre bellekte tutabilirler.

Serverless Mimarinin Avantajları

Sunucusuz mimari, doğru projelerde kullanıldığında işletmelere ve geliştiricilere önemli faydalar sağlar. Bu avantajlar, maliyetten verimliliğe kadar geniş bir alana yayılır ve modern uygulama geliştirme pratiklerini destekler.

Düşük Operasyonel Maliyetler ve Toplam Sahip Olma Maliyeti (TCO)

Sunucusuz mimarinin en belirgin avantajlarından biri maliyet verimliliğidir. “Kullandığın kadar öde” modeli sayesinde, atıl kapasite için para ödemezsiniz. Ayrıca, sunucu yönetimi, bakımı ve operasyonları için personel istihdam etme veya dış kaynak kullanma ihtiyacını ortadan kaldırarak toplam sahip olma maliyetini (TCO) önemli ölçüde düşürür.

Geliştirici Verimliliğinde Artış ve Pazara Çıkış Süresinin Kısalması

Geliştiriciler altyapı yönetimiyle uğraşmak yerine tüm enerjilerini iş mantığına ve kod yazmaya odaklayabilirler. Bu, yeni özelliklerin ve ürünlerin çok daha hızlı bir şekilde geliştirilip pazara sunulmasını sağlar. Küçük, bağımsız fonksiyonlar üzerinde çalışmak, geliştirme ve test süreçlerini de hızlandırır.

Neredeyse Sınırsız Ölçeklenebilirlik

Sunucusuz platformlar, gelen talebe göre otomatik olarak ölçeklenerek milyonlarca isteği bile sorunsuzca karşılayabilir. Bu, manuel müdahale gerektirmeyen, esnek ve dayanıklı uygulamalar oluşturmanıza olanak tanır. Viral olan bir kampanya veya ani bir trafik artışı gibi durumlarda uygulamanızın performansı düşmez.

Altyapı Yerine Koda Odaklanma

Sunucusuz felsefesi, temel olarak geliştiricilerin en iyi yaptıkları işe, yani harika uygulamalar ve özellikler oluşturmaya odaklanmalarını sağlar. Altyapının soyutlanması, inovasyon ve yaratıcılık için daha fazla zaman ve kaynak anlamına gelir. Örneğin, popüler bir içerik yönetim sistemi olan WordPress için optimize edilmiş bir wordpress hosting hizmeti, kullanıcıları sunucu detaylarından uzaklaştırarak içerik üretmeye odaklanmalarını sağlar; sunucusuz mimari de bu felsefeyi daha geniş bir uygulama yelpazesine taşır.

Serverless Mimarinin Zorlukları ve Dezavantajları

Sunucusuz mimari birçok avantaj sunsa da, her teknoloji gibi bazı zorlukları ve sınırlamaları da vardır. Bir projeye başlamadan önce bu potansiyel dezavantajları göz önünde bulundurmak önemlidir.

Soğuk Başlatma (Cold Start) Gecikmesi

Bir fonksiyon uzun bir süre çağrılmazsa, bulut sağlayıcısı kaynakları serbest bırakmak için onu “uykuya” alır. Bu fonksiyona bir sonraki istek geldiğinde, sağlayıcının yeni bir konteyner başlatması, kodu yüklemesi ve çalıştırması gerekir. Bu ilk başlatma sürecine “soğuk başlatma” denir ve milisaniyelerden saniyelere kadar sürebilen bir gecikmeye neden olabilir. Gecikmeye duyarlı uygulamalar için bu durum bir sorun teşkil edebilir.

Sağlayıcıya Bağımlılık (Vendor Lock-in) Riski

Sunucusuz uygulamalar genellikle belirli bir bulut sağlayıcısının (AWS Lambda, Azure Functions, Google Cloud Functions) hizmetlerine ve API’lerine derinlemesine entegre olur. Bu durum, uygulamanızı bir sağlayıcıdan diğerine taşımanızı zorlaştırabilir ve maliyetli hale getirebilir. Her sağlayıcının kendine özgü yapılandırma, izleme ve dağıtım araçları olduğu için geçiş süreci karmaşıktır.

Hata Ayıklama (Debugging) ve İzlemenin (Monitoring) Karmaşıklığı

Dağıtık bir yapıya sahip olan sunucusuz uygulamalarda hata ayıklamak, geleneksel monolitik uygulamalara göre daha zor olabilir. İstekler birden çok fonksiyondan geçebilir ve sorunun kaynağını bulmak için merkezi loglama ve dağıtık izleme (distributed tracing) gibi özel araçlara ihtiyaç duyulur. Bu araçların kurulumu ve yönetimi ek bir karmaşıklık katmanı getirebilir.

Uzun Süren İşlemler İçin Sınırlamalar

Çoğu sunucusuz platform, bir fonksiyonun maksimum çalışma süresine bir sınır koyar (örneğin, 15 dakika). Bu nedenle, video işleme, büyük veri analizi veya makine öğrenmesi model eğitimi gibi saatler sürebilecek uzun işlemler için FaaS doğrudan uygun bir çözüm olmayabilir. Bu tür işler için alternatif sunucusuz hizmetler (AWS Step Functions, Azure Durable Functions gibi) veya farklı mimariler düşünülmelidir.

Serverless Mimarinin Popüler Kullanım Alanları

Sunucusuz mimari, esnekliği ve ölçeklenebilirliği sayesinde çok çeşitli uygulama ve senaryolar için ideal bir çözüm sunar. Özellikle anlık, olay tabanlı ve değişken iş yüklerine sahip projeler için biçilmiş kaftandır.

Web Uygulamaları ve API Arka Uçları (Backends)

Sunucusuz fonksiyonlar, RESTful veya GraphQL API’leri oluşturmak için mükemmel bir yöntemdir. Her bir API ucu (endpoint), belirli bir fonksiyona eşlenerek gelen istekleri işleyebilir. Bu, özellikle mobil uygulamalar, tek sayfa uygulamaları (SPA) ve mikroservis tabanlı sistemler için ölçeklenebilir ve uygun maliyetli arka planlar oluşturmayı kolaylaştırır.

Gerçek Zamanlı Veri İşleme ve ETL (Extract, Transform, Load) İş Akışları

Veri akışlarından (örneğin, IoT cihazlarından veya kullanıcı etkinliklerinden) gelen verileri anlık olarak işlemek için sunucusuz fonksiyonlar kullanılabilir. Veriler geldikçe tetiklenen fonksiyonlar, bu verileri anında temizleyebilir, dönüştürebilir, zenginleştirebilir ve ardından bir veri ambarına veya veritabanına yükleyebilir. Bu, geleneksel ETL süreçlerine kıyasla çok daha hızlı ve verimlidir.

Nesnelerin İnterneti (IoT) Veri Toplama ve Analizi

Milyonlarca IoT cihazından gelen veriyi işlemek, sunucusuz mimari için ideal bir kullanım alanıdır. Her cihazdan gelen bir mesaj, bir fonksiyonu tetikleyebilir. Bu fonksiyon, gelen veriyi doğrulayabilir, işleyebilir ve anında bir eylem (örneğin, bir uyarı göndermek) tetikleyebilir. Otomatik ölçeklenme sayesinde, cihaz sayısı artsa bile sistem sorunsuz çalışmaya devam eder.

Zamanlanmış Görevler ve Otomasyon Komut Dosyaları (Cron Jobs)

Belirli aralıklarla çalışması gereken görevler (örneğin, saatlik rapor oluşturma, gecelik veritabanı yedekleme, eski logları temizleme) için sunucusuz fonksiyonlar kullanılabilir. Sürekli çalışan bir VDS kiralamak yerine, sadece görev çalıştığında tetiklenen bir fonksiyon kullanmak çok daha uygun maliyetlidir.

Medya Dosyası İşleme (Görüntü ve Video Dönüştürme)

Kullanıcılar bir depolama alanına (örneğin, Amazon S3) bir resim veya video yüklediğinde, bu olay bir sunucusuz fonksiyonu tetikleyebilir. Tetiklenen fonksiyon, yüklenen dosyayı alıp farklı boyutlarda minik resimler (thumbnails) oluşturabilir, videoyu farklı formatlara dönüştürebilir veya dosyalara filigran ekleyebilir. Bu süreç tamamen otomatize edilebilir.

Kullanım AlanıServerless Yaklaşımın FaydasıÖrnek Senaryo
API Backendsİstek bazlı ölçeklenme, düşük maliyetMobil uygulama için kullanıcı profili yönetimi API’si
Veri İşleme (ETL)Gerçek zamanlı ve paralel işleme yeteneğiWeb sitesi tıklama verilerini anlık olarak analiz etme
IoTMilyonlarca cihazdan gelen veriyi yönetmeAkıllı termostatlardan gelen sıcaklık verilerini kaydetme
Otomasyon (Cron)Atıl zamanlar için sıfır maliyetHer gece veritabanı yedeği alan bir script çalıştırma
Medya İşlemeOlay tabanlı tetiklenme, yoğun iş yükü yönetimiYüklenen profil resminden otomatik olarak 3 farklı boyutta thumbnail oluşturma

Serverless Çözümler İçin Neden İHS Telekom’u Tercih Etmelisiniz?

Sunucusuz mimariye geçiş, doğru planlama ve uzmanlık gerektiren bir süreçtir. İHS Telekom olarak, bu modern mimarinin tüm avantajlarından en verimli şekilde yararlanmanız için size uçtan uca destek sağlıyoruz. Doğru domain sorgulama ve tescilinden başlayarak, uygulamanızın her aşamasında yanınızdayız.

Uzman Danışmanlık ve Mimari Tasarım Desteği

Deneyimli bulut mühendislerimiz, projenizin gereksinimlerini analiz ederek size en uygun sunucusuz mimariyi tasarlar. Hangi fonksiyonların oluşturulacağı, hangi tetikleyicilerin kullanılacağı ve hangi BaaS hizmetlerinin entegre edileceği gibi kritik konularda size yol göstererek, en başından sağlam bir temel oluşturmanızı sağlarız.

Maliyet Optimizasyonu ve Performans İyileştirme Hizmetleri

Sunucusuz mimarinin en büyük vaatlerinden biri maliyet avantajıdır. Ancak, yanlış yapılandırılmış fonksiyonlar veya verimsiz kodlar beklenmedik maliyetlere yol açabilir. İHS Telekom olarak, fonksiyonlarınızın bellek ve süre kullanımlarını analiz ederek maliyetlerinizi optimize eder, “soğuk başlatma” gibi performans sorunlarını en aza indirmek için en iyi uygulamaları hayata geçiririz.

Güvenli ve Uyumlu Altyapı Kurulumu

Uygulama güvenliği bizim için en öncelikli konudur. Sunucusuz fonksiyonlarınız için en iyi güvenlik uygulamalarını (örneğin, en az ayrıcalık prensibi – least privilege) hayata geçirir, API ağ geçitlerinizi güvenli hale getirir ve verilerinizin uyumluluk standartlarına (KVKK, GDPR vb.) uygun şekilde işlenmesini sağlarız.

Mevcut Sistemlere Sorunsuz Entegrasyon ve Geçiş Süreci Yönetimi

Mevcut monolitik veya mikroservis tabanlı uygulamalarınızı sunucusuz mimariye taşımak karmaşık bir süreç olabilir. Uzman ekibimiz, mevcut sistemlerinizle sorunsuz entegrasyon sağlayarak ve geçiş sürecini dikkatli bir şekilde yöneterek, iş sürekliliğinizi riske atmadan modern altyapıya kavuşmanıza yardımcı olur. Bu süreçte domain transferi gibi teknik detayları da sizin için yönetiriz.

Exit mobile version