Serverless Architecture

Dijital Mimaride Sessiz Devrim: Serverless Teknolojisi

Kaan Cömert tarafından 17 Kasım, 2023'de yazıldı
serverless Serverless Architecture

Neden Serverless Architecture?

Serverless Architecture, kendi yerinde BT altyapınıza yatırım yapmak yerine üçüncü taraf bir bulut servis sağlayıcı kullanarak, uygulama ve hizmet BT altyapısını çalıştırma pratiğini ifade eder. Uygulamalarınız için altyapıyı yönetme ihtiyacını ortadan kaldırır. Sunucusuz dünyada, bulut hizmet sağlayıcınız, kodu çalıştırmak için gereken altyapıyı sağlar, ölçeklendirir ve yönetir. Böylece bu büyük sorumluluk ve iş yükünden kurtulmuş olursunuz.

serverless2

Neden Serverless?

Teknolojik ilerlemeler, ihtiyaçlarda da değişikliklere yol açtı. Artan talep, yük ve maliyetler, yeni yöntemlerin hızla geliştirilmesine neden oldu. Bunun yanı sıra, gelişen bulut teknolojisi ve yenilikler, farklı hizmetlerin hayatımıza girmesini sağladı. Şimdi, bu unsurları sırasıyla inceleyelim.

services

Tabloda sola doğru gittikçe daha fazla kontrole sahip ve altyapıyı yönetecek bir ekibe ihtiyaç duyarız. Sağa doğru gittiğimizde ise altyapıdan soyutlanırız ve altyapı hizmetleri Cloud sağlayıcılar tarafından karşılanır.

On-Premise

Geçmiş yıllarda şirketler fiziksel sunucular (On-Premise) için ciddi donanım yatırımları yapıyordu. Donanım, İşletim sistemi, network, güvenlik konularını altyapı ekibinin sorumluluğundadır. Bulut teknolojilerinin gelişmesi ile birlikte sanallaştırma teknolojileri ile sanal sunucular oluşturulup donanım hizmeti kiralama modeli alınmaya başlandı.

IaaS (Infrastructure-as-a-Service)

Tüm altyapı buluta taşınıyor, ancak ekipler hala sunucu kurulumları gibi işlerle meşgul olmak zorunda kalabiliyor. Değişen ihtiyaçlar ve Konteyner teknolojilerinin gelişimi ile birlikte, Bulut sağlayıcıları konteyner yönetimi için hizmet sunmaktadır.

CaaS (Container as a Service)

Bu hizmet sayesinde container'larımız barındırılıp yönetilmektedir. Misafir işletim sistemine ihtiyaç duyulmaz ve gereksiz maliyet kalemleri azalır. Bulut sağlayıcılar, sizin adınıza container'ları yönetir.

PaaS (Platform as a Service)

Gelişen süreçte, sunucu operasyonlarından bir nebze kurtaran Paas sahneye çıktı. Artık işletim sistemi, veritabanı, ağ gibi sorumlulukları Bulut sağlayıcıların üstlendi. Sizin yapmanız gereken sadece istediğiniz dili seçmek ve uygulamanızı yüklemek.

FaaS (Function as a Service)

2014'te sahneye çıkan Serverless veya Faas (Function as a Service), geliştiricilerin sunucu karmaşasından tamamen kurtulduğu ve yalnızca iş odaklı bir düzene geçtiği bir dönemi müjdeledi. Serverless yaklaşımında, fonksiyonlar belirli olaylara tepki olarak çalışır; bu nedenle yalnızca bir tetikleme mekanizmasına ihtiyaç duyarlar. İşte bu şekilde, geliştiricilerin sadece işlerine odaklanabildiği bir resmi altyapı doğdu.

Serverless Architecture Nedir?

serverless3

Serverless, uygulamaların Bulut sağlayıcılar tarafından barındırıldığı ve geliştiricilerin sunucu, yazılım ve donanım yönetimi ihtiyacını ortadan kaldıran bir yapıdır.

Serverless yani “Sunucusuz” terimi sanki kodlarımızın sunucusuz bir şekilde çalışacağı algısını veriyor. Oysaki buradaki kasıt altyapı sorumluluğu (sunucuların satın alınması/kiralanması/yönetimi, ölçeklendirme, network, işletim sistemi bakımı gibi ihtiyaçlar) geliştiricinin sorumluluğu yerine Bulut sağlayıcılarınındır. Bu bize altyapı yönetimi olmadan uygulama ve hizmet oluşturmanın önünü açar.

Serverless mimari geliştiricilerin daha çok business’a odaklanmalarını sağlar. Genellikle bir fonksiyon event driven bir yaklaşımla çalışmaktadır. Bu tetikleme bir http çağrısı olabileceği gibi timer, servise bus, queue ya da file upload sonucunda bir tetiklemede olabilir.

azure Azure Functions'ın tetiklenme yöntemini, uygulamayı oluştururken seçme imkanına sahibiz.

Microsoft Azure, Amazon Web Services (AWS) Lambda, Google Cloud Functions, IBM OpenWhisk sunucusuz çözümlerde en bilinen sağlayıcılardan bir kaçıdır.

cost

Kimler serverless kullanmalı?

Serverless mimarisine geçmek her projede uygun olmayabilir. Eğer sadece birkaç işlemi barındırmaya ihtiyaç duyuyorsanız, serverless mantıklı bir tercih olabilir. Ancak kompleks bir uygulamayı serverless mimaride geliştirmeyi düşünüyorsanız, tasarım aşamasında serverless'e uygun bir yapı oluşturmak önemlidir. Yanlış tasarımlar bazen yüksek maliyetlere neden olabilir. Eğer zaten bir uygulamanız varsa, uygulamayı Lift and Shift mantığıyla taşıyıp, projeyi adım adım serverless'e geçirmek daha etkili bir taşıma stratejisi olabilir.

Sonuç

Serverless mimari, geliştiricilerin altyapı yönetimiyle uğraşmadan sadece işlerine odaklanmalarına olanak tanıyan bir çözümdür. Gelişen teknolojiler ve değişen ihtiyaçlar doğrultusunda ortaya çıkan bu yaklaşım, özellikle az sayıda işlemi barındırmak isteyen projeler için anlamlı bir tercih olabilir. Ancak kompleks uygulamaların serverless mimaride geliştirilmesi, tasarım aşamasında dikkatli bir planlama gerektirir. Doğru strateji ile uygulandığında, serverless mimari, geliştiricilere maliyet tasarrufu ve verimlilik avantajları sunabilir.

Bu makalemizde serverless mimarinin esaslarına ve avantajlarına odaklandık. Teknolojik gelişmelerle birlikte ortaya çıkan bu yenilikçi yaklaşım, geliştiricilere işlerine odaklanma konusunda önemli avantajlar sağlıyor.Bir sonraki makalede buluşmak üzere!