Serverless Computing and Serverless Architecture

DevopsThunder
6 min readJan 21, 2024

Bugün sizlerle yepyeni bir konuya giriş yapıyoruz. Serverless yani basitçe sunucusuz bilişim ve mimari.

Bulut bilişim artık hayatımızın ve iş dünyasının her alanına girdi. Girmekle kalmadı ihtiyaç duyulan bir çözüm haline geldi. Her aracı tanıtırken ve uygulamalar yaparken sıkça söylediğimiz bir şey var: “Hızla gelişen teknoloji istekleri ve ihtiyaçları da değiştiriyor.” Değişimdeki ve gelişimdeki bu hız isteklere verilecek cevaplara da yansımak zorunda kalıyor. Bu sebeple kendisi dahi yeni sayılabilecek bulut bilişim de hiç durmadan gelişerek yeniliklere ayak uydurmaya devam ediyor.

Bulut bilişim içerisinde doğan ve hızla adını ön plana çıkaran teknolojimiz serverless teknolojisi.

Serverless Nedir?

Serverless computing yani sunucusuz bilişim kullanıcıları altyapı yönetimi ve sunucu operasyonlarından kurtaran bir bilişim modelidir. Serverless computing ile çalışanlar altyapı yönetimiyle uğraşmadan kendilerine bulut sağlayıcı platform tarafından tedarik edilen sunucuları kullanarak uygulamalar oluşturup çalıştırabilirler. Bulut sağlayıcı platformlar serverless kullanıcılarına sadece sunucu tedarik etmekle kalmıyorlar aynı zamanda otomatik ölçeklendirme gibi hizmetler de sunuyorlar. Böylelikle kullanıcı sadece ürün ya da koda odaklanıp daha hızlı ve güvenilir sonuçlara ulaşabiliyorlar.

https://medium.com/@sharveshw284/what-is-server-and-serverless-and-their-use-cases-a484c0a4a0a2

Serverless computing olarak adlandırılan bu yenilikçi modelin bir diğer adı da Function-as-a-Service (Faas)’dır. Serverless mimarisini de en basit haliyle şöyle tanımlayabiliriz. Serverless architecture yani sunucusuz mimari bir bulut sağlayıcısının yalnızca HTTP isteği, veritabanı değişikliği veya mesaj kuyruğu gibi bir olay tarafından tetiklendiğinde talep üzerine kod çalıştırdığı bir mimaridir. Bu kodlar genellikle Python, Node.js veya Java gibi dillerde yazılır. Bu kodlar function adı verilen birimlerde birbirinden bağımsız şekilde saklanır. Bu functionları çalıştırmak için gereken kaynaklar daha sonra otomatik olarak ölçeklendirilebilir.

https://towardsdatascience.com/is-serverless-hard-to-adopt-56c35672b958

Otomatik ölçeklendirme maliyet optimizasyonu için en önemli unsurlardandır. Ölçeklendirme ile beraber mimari içerisinde çevikliği artırmak için yüksek erişilebilirlik ve kullanıma göre ödeme hizmetleri de serverless mimarinin tercih sebeplerindendir.

Serverless Computing Avantajları

Serverless kullanımı her geçen gün hızla artmaktadır. Dünya çapında hatrı sayılır büyüklüklere sahip firmalar dahi birçok uygulamasını artık serverless architecture üstünde çalıştırmaktadır. Yazılım dünyasına daha yeni giriş yaptı diyebileceğimiz tazelikte bu yeni bilişim modeli nasıl oldu da bu kadar tercih edilmeye başlandı? Bu sorunun yanıtı serverless computing yani sunucusuz bilişimin avantajlarında gizli.

  • Maliyet Verimliliği : İş dünyasında atılan her adım öncelikle maliyet hesaplarıyla tartılmaktadır. Sunucusuz bilişim modeli geleneksel modellere göre yüksek maliyet tasarrufu sağlamaktadır. Geleneksek modellerde maliyet genellikle kullanılmayan depolama alanları ve CPU zamanı gibi kaynaklar ile yükselmektedir. Serverless yani sunucusuz bilişim de ise kullandığın kadar öde planı uygulandığı için kullanılmayan alanların ya da kaynakların maliyeti kullanıcının cebinde kalmaktadır.
  • Otomatik ölçeklenebilirlik : Sunucusuz bilişim modelinde bulut sağlayıcı platform kullanıcının taleplerinin tamamını karşılayacak şekilde ölçeği otomatik hale getirmekten sorumludur. Kullanıcı sayısı arttığında ya da azaldığında ölçek otomatik olarak kendini güncellemektedir.
  • Hız : Tanımda üstünde durduğumuz temel konu sunucusuz mimaride kullanıcı hiçbir şekilde altyapı operasyon yönetimi ile uğraşmadığı olmuştu. Bu şekilde sunucu ve yönetim yükü olmadan kodlama, test ve hataları giderip yenilemeye ayrılan odak artacaktır. Daha hızlı ve net adımlarla ilerleyen süreç de en hızlı şekilde tasarımdan ürüne geçecek ve pazardaki yerini alacaktır.
  • Sadelik ve Üretkenlik : Sunucusuz bilişimde tetikleyici olarak kullanılan özellikler birçok karmaşık görevi ortadan kaldırmaktadır. Function-as-a-Service (FaaS) bu karmaşık işleri çözüp kullanıcıya yapılandırma adımlarıyla uğraşmadan direkt uygulamayı oluşturma imkanı sunmaktadır.

Dikkat Edilmesi Gereken Noktalar

  • Cold-start : Bir function boşta kaldıktan sonra tekrar çağrıldığında gecikme meydana gelebilir.
  • State Management (Durum Yönetimi) : Serverless functionlar stateless olarak çalışmaktadır. Bu sebeple değişikliklere karşı durum yönetimi zor hale gelebilir.
  • Vendor Lock-in : Altyapı hizmetlerinin tümünü bir bulut sağlayıcısından alacağımız için platforma bağlılık söz konusu hale gelebilir. Bu da güven konusunda eksiklikler ile bu yeni modele geçişi zorlaştırabilir.
  • Karmaşıklık : Büyük uygulamalarda serverless function sayısı arttıkça yönetim ve etkileşim zor, karmaşık hale gelebilir.

Serverless Mimari Nerelerde Kullanılır?

Serverless mimari çok farklı senaryolarda bir ihtiyaç olarak karşımıza çıkabilir. Bu senaryoları ve ihtimalleri genelleyecek olursak:

  • Web uygulamaları ve API’ler : Serverless, API’ler ve web uygulamalarının hızlı bir şekilde ölçeklendirilip dağıtılmasını sağlar. En yaygın kullanım durumlarından biri REST API’dır.
  • Veri İşleme ve Analitik : Eski bilişim modellerinde büyük veri işleme işlemlerini oluşturmak, depolamak ve yönetmek çok karmaşık bir hal alıyordu. Sunucusuz bilişim ile oluşturulan veritabanları sayesinde yedekleme ve diğer tüm işlemler kolay bir hale geldi. Avantajlar içerisinde saydığımız kullanılmayan alan sorunu da sunucusuz veritabanları ile çözülüyor ve kullandığın kadar öde metodu ile maliyet tasarrufuna gidiliyor.
  • Tetiklemeli İşlemler : Veritabanı güncelleme, dosya yükleme, HTTP istekleri gibi olayların tetiklemesi ile başlayan tepki fonksiyonlarının kullanılması serverless en çok yer aldığı alandır.
  • Arka Plan İşlemleri : Periyodu belirli tekrarlayan görevler serverless mimaride otomatik olarak yönetilebilmektedir.

En Çok Kullanılan Serverless Servisler

Artık bulut sağlayıcı platformların birçok serverless servisi bulunmaktadır. Biz bunları sıralarken temel serverless servislerinden de kısaca bahsedeceğiz.

AWS (Amazon Web Services)

AWS uygulama entegrasyonu, veri depolama, ana işlemler gibi birçok farklı işlem için ayrı ayrı servis kullanıma sunmuştur. Serverless’ın benimsenmesi için modern uygulamaların serverless öncelikli oluşturulmasını sağlamaktadır.

AWS Serverless Servisleri :

  • AWS Lambda
  • AWS Fargate
  • Amazon EventBridge
  • AWS Step Functions
  • Amazon SQS
  • Amazon SNS
  • Amazon API Gateway
  • AWS AppSync
  • Amazon S3
  • Amazon DynamoDB
  • Amazon RDS Proxy
  • Amazon Aurora Serverless
  • Amazon Redshift Serverless

AWS Lambda :

AWS Lambda, sunucu tedarik etmeden veya yönetmeden neredeyse her tür uygulama veya arka uç hizmeti için kod çalıştırmanıza olanak tanıyan, sunucusuz, olaya dayalı bir işlem hizmetidir. Lambda’yı 200'ün üzerinde AWS hizmeti ve hizmet olarak yazılım (SaaS) uygulamasından tetikleyebilir ve yalnızca kullandığınız kadar ödeyebilirsiniz.”

Netflix, ürünlerini geniş ölçekte sunmak için AWS Lambda kullanıyor.

Google Cloud Platform (GCP)

Google geniş altyapısı ile cloud platformlar arasında güzel bir yer edinmiştir. Bulut sağlayıcı platformu GCP altında serverless servislere de yer vermektedir.

GCP Serverless Servisleri :

  • Cloud Run
  • Cloud Functions
  • Cloud Scheduler
  • Cloud Pub/Sub
  • Service Integration

Cloud Functions:

“Cloud Functions, basit ve sezgisel bir geliştirici deneyimine sahiptir. Sadece kodunuzu yazın ve Google Cloud’un operasyonel altyapıyı yönetmesine izin verin. Olaylara yanıt veren küçük kod parçacıkları yazıp çalıştırarak daha hızlı geliştirin. Etkinlikleri kullanarak Google Cloud ürünlerini birbirine veya üçüncü taraf hizmetlere bağlayarak zorlu orkestrasyon sorunlarını kolaylaştırın.”

Microsoft Azure

Microsoft’un kendi altyapısı ve data centerlarla kurduğu bulut sağlayıcı paltformu Azure’dır. Azure da diğer rakipleri gibi serverless servisler ile hizmet vermektedir.

Microsoft Azure Serverless Servisler:

  • Azure Functions
  • Azure Logic Apps
  • Azure Event Grid

Azure Functions:

“Azure İşlevleri, seçtiğiniz programlama dilini kullanarak daha verimli bir şekilde geliştirme yapmanıza yardımcı olan, olay odaklı, sunucusuz bir bilgi işlem platformudur. En yüksek düzeyde donanım soyutlaması ile temel iş mantığına odaklanın. Karmaşık düzenleme zorluklarını basitleştirin, yerel olarak oluşturun ve hata ayıklayın , bulutta uygun ölçekte dağıtın ve tetikleyicileri ve bağlamaları kullanarak işlevleri Azure hizmetlerine bağlayın .

Diğer Popüler Bulut Sağlayıcı Platformlar

  • IBM
  • AlibabaCloud
  • Oracle
  • Firebase

Bu yazımızda Serverless ne demek önce onu anlamaya çalıştık. Temel mantığını oturttuğumuz yenilikçi bilişim modelinin mimarisine göz atıp nerelerde kullanılabileceğini araştırdık. Son olarak bulut sağlayıcı platformları ve serverless servislerini kısaca tanıdık.

Bu yazı serverless’a giriş olması için yazdığımız bir tanım yazısı oldu. Serverless’ı asıl uygulamalarımız ile derinlemesine tanıyacağız.

Bu yazının faydalı olduğunu umuyoruz daha fazla serverless için takipte kalın :)

Teşekkürler.

DevopsThunder

--

--

DevopsThunder

DevOpsThunder: Cloud and Devops Marvels! 🚀 #DevOps #CloudTech