Serverless nedir?

Imagem de capa

Son zamanlarda sıkça duyduğumuz bir terim olan Serverless, ismi gibi sunucu gerektirmeyen bir şey midir? ve bize sağlayacağı faydalar nelerdir?

Öncelikle serverless, sunucu gerektiren bir kavramdır. Bu isim ile anlatılmaya çalışılan şey, sunucu ile ilgilenmenizin gerekmediğidir. Sunucu kapasitesi & donanım planlanması, işletim sistemi & yazılımların kurulumu ve sunucu güncellemeleri gibi sistem yöneticiliği gerektiren işlemler, üzerinde çalıştığınız “parlak” projenizi hayata geçirmeniz için ekstra zaman gerektirecektir. Serverless kavramında tüm bu vakit alan işlemleri cloud computing’e bırakarak, sunucular için endişelenmez sadece yazılıma odaklanmış olursunuz.

Bunu bir örnekle açıklayalım. Bir video paylaşım siteniz var ve her video yüklemeden sonra videoyu işlemeniz gerekiyor fakat bu işlemin aksaması ve hatta beklenmedik şekilde arızalanması projeniz için büyük bir zarar demek. Siz de önlem olarak bu işlemi yapacak sunucuların kaynaklarını normalden yüksekte tutuyorsunuz ki herhangi bir aksaklığa uğramadan çalışsın. Ancak bu durum hem maliyeti arttırıyor hem de sunucularınız için endişelenmekten projenizin üstüne yoğunlaşamıyorsunuz. İşte bu noktada serverless yardımınıza yetişiyor.

Serverless hizmeti veren servisler, sizin oluşturduğunuz fonksiyonları (mesela video işleme gibi) kendi ortamlarında çalıştırarak sunucunuz üzerinde oluşacak büyük yükleri üstlenirler.

Google Cloud Functions, Azure Functions ve AWS Lambda, serverless hizmeti veren popüler servislerdendir. Serverless hizmetlerinde ücretlendirmeler “kullandığın kadar öde” mantığı ile komutların çalıştığı süreye ve kullandığı network’e göre hesaplanır. Serverless fonksiyonları trigger edildiklerinde, önceden belirlenmiş zamanlarda veya API istekleri ile uygulamanızdan bağımsız olarak çalıştırılırlar. Bu fonksiyonlar, hizmeti veren servisin verdiği SDK’lara göre ve destekledikleri programlama dillerine göre yazılmaktadır.

Yani Cloud Functions ile Lambda’nın SDK’ları birbirinden farklı olduğu için fonksiyonları her servis için ayrı yazmamız gerekir. Buna çözüm olarak ise Serverless adında bir framework bulunmaktadır. Bu sayede birçok serverless servisi için tek bir framework ile fonksiyon yazabilmeniz mümkün hale geliyor.

Sonuç olarak serverless’lar vaktimizi ve bütçemizi düşüren, faydası büyük servislerdir. Bununla birlikte cloud computing’in hayatımızı her geçen gün daha da kolaylaştırdığını bir kez daha görmüş oluyoruz.