Serverless Architecture (FaaS)

Serverless konusunda önceden bir kaç yazı yazmıştım. Dileyen okuyabilir. Bugün ise Serverless kavramının Bulut Teknolojileri içerisinde nereye oturduğunu, nerede yer aldığını anlatmaya çalışacağım.

Öncelikle bilgidiğimiz Bulut Hizmetlerini bir sıralıyalım. Bu konu hakkında önceden yazmış olduğum bir yazı.

Peki BaaS, MBaaS kavramları nedir ?

BaaS (Backend As A Service), MBaaS ise (Mobile Backend As A Service) bulut hizmetidir. Bir web veya mobil uygulama geliştirirken hızlı bir şekilde uygulama ortamını hazırlamak yerine Third Party provider’lardan faydalanarak uygulamanızı geliştirmenizi sağlayan bulut hizmetleridir. Authentication, Database, Messaging, Analytics vb.. servisleri hazır olarak kullanmanızı sağlar.

Aşağıda bahsettiklerim size nasıl bir App geliştirmeniz gerektiğini kendi Backend yapıları ile nasıl entegre olabileceğini anlatan sağlam Kod Üretme altyapıları ve örnek dokümanları bulunmaktadır.

FaaS (Function As A Service) nedir ?

Biraz daha derine inerek Eventlere takılabilen Fonksiyonları Function As A Service olarak sunacak Provider’lar çıkmaya başladı.

Bunlar provider kendi ortamlarının eventlerine bağımlı fonksiyonlar oluşturmanızı sağlayarak kendi içerisinde sundukları servisler üzerinde programlama yababilecek, servisleri birbirine bağlayabilecek altyapıyı kurmuş oldular.

  • Tomcat, Apache sunucusu yerine APIGateway kullanabilirsiniz ama APIGateway , DynamoDB/RDS servisi ile bağlayacak iş mantığını nerede kodlayacaksınız. İşte bunu FaaS/Lambda sağlıyor.
  • SES(Email), Kinesis(Stream), iOT(Telemetry),S3(File),CloudWatch(Log), SNS(Topic) gelen ne olursa olsun bu verinin işlenebilmesi için bu iş mantığının kodlanabileceği bir ortam gerekiyor. İşte bunu FaaS/Lambda sağlıyor.

Serverless Mimari

Serverless mimari demek herşeyin servis olarak kullanılması demek. BaaS ve FaaS servislerini bir araya getirerek uygulamanızı geliştirmek demek. Managed Servisleri kullanarak yüksek ölçeklenebilirlik, güvenlik vb bir çok konuyu hazır olarak Lego’lar şeklinde bir araya getirerek kullanmak demek. AWS bulut hizmetini olabildiğince IaaS’den bu Serverless Mimariye kaydırdığını düşünüyorum. (AWS Serverless Architecture)

PaaS bu işin neresinde kalıyor ?

PaaS servisleride benzer bir amaçla çalışır. Server kurma, yönetme, ölçeklendirme, güvenlik maliyetlerinden sizi kurtarıp sadece uygulamanızı,iş mantıklarınızı kurmanıza odaklamanızı sağlar.

PaaS ile FaaS arasındaki farkı aşağıdaki Twitter’daki aşağıdaki post özetlemiş aslında

FaaS Hakkında Makaleler

http://martinfowler.com/bliki/Serverless.html
http://martinfowler.com/articles/serverless.html

FaaS Frameworkleri

https://github.com/serverless/serverless
https://github.com/apex/apex
https://github.com/lambadaframework/lambadaframework