Sunucusuz (Serverless) Hesaplama: Evrilmiş Bulut

Sunucusuz (Serverless) Hesaplama

Sunucusuz (Serverless) Hesaplama bir servis olarak fonksiyonları çalıştırma (Function-as-a-Service – FaaS) formundaki Bulut Hesaplama konseptinde tanımlanan yeni bir hesaplama yaklaşımıdır [1-3]. Bulut Hesaplama kolaylık ve verimlilik ihtiyaçları nedeniyle doğal bir evrime uğramış ve buna cevap olarak Sunucusuz Hesaplama ortaya çıkmıştır.

Edge Computing hakkındaki önceki yazımızda Bulut Hesaplama’nın nasıl ortaya çıktığını açıklamıştık. Kısaca, mobil cihazların kaynak kısıtları hesaplama ve depolama işlemlerini bu cihazların yerine gerçekleştirecek daha güçlü bir yapıya ihtiyaç doğurmuştu. Bu ihtiyacı karşılamak amacıyla da Bulut Hesaplama ortaya çıktı [4]. Ancak bu problemin sadece bir boyutuydu. Bulut Hesaplama gibi bir ortamın oluşmasındaki bir diğer etmen de donanım alarak bir platform kurup bu platformu çalıştırmanın ve bakımını yapmanın birçok şirket için maliyetli olmasıydı. Şirketler müşterilerinin isteklerini karşılayabilmek için kaynaklarını yatayda genişletmek zorunda kalıyorlardı [5]. Bulut Hesaplama işte böyle şirketlere merkezi bir yerdeki hesaplama, iletişim ve depolama kaynaklarını kullanma ve başkalarıyla paylaşma şansını verdi. Böylelikle bu şirketler donanım satın alma ve satın aldıkları donanımları kuracak, çalıştıracak ve bakımını yapacak ve platformun sürekliliğini sağlayacak insan gücünü istihdam etme maliyetlerinden kurtulmuş oldular.

Ancak Bulut Hesaplama bazı dezavantajlara sahipti. Bir servis olarak platformu sunma (Platform-as-a-Service – PaaS) formundaki Bulut Hesaplama modelinde kullanıcılar uygulamalarını sanal makineler (Virtual Machines – VM) üzerinde çalıştırmak zorunda kalıyordu. Bu sanal makineler bir bilgisayarı tüm donanımsal kaynakları (işlemci, bellek, depolama ve ağ kaynakları) ve sürücüleriyle taklit ediyordu [3]. Bulut hizmet sağlayıcısı sadece fiziksel platformu sağlıyor ve kullanıcıları ihtiyaç duyacakları CPU, RAM, disk ve ağ kaynaklarını belirlemede yalnız bırakıyordu [1-3]. Bu nedenle de kullanıcılar sadece uygulama geliştirme ve iş modeliyle uğraşmıyor, aynı zamanda alt seviye detaylarıyla da boğuşmak zorunda kalıyorlardı. Ayrıca kullanıcıların sanal makineler için belirlediği kaynaklar uygulama ihtiyaçlarına uyamıyor, fazla ya da yetersiz kaynak ayırma durumlarıyla karşılaşılabiliyordu [1]. Problemin platform sağlayıcıları tarafındaysa, kullanıcı sanal makineleri bulut platform sağlayıcıları için birer kapalı kutu gibi görünüyordu. Platform sağlayıcıları sanal makinelerin çalışmalarını profilleyemiyor, kaynak ihtiyaçlarını doğru kestiremiyor ve otomatik ölçekleme kararlarını yanlış vermek zorunda kalıyorlardı [1]. Bütün bunlara ek olarak da kullanıcılar uygulamaları o sırada müşterilere hizmet vermiyor olsa bile platform sağlayıcılara kaynakları kiraladıkları için ödeme yapmak zorunda kalıyorlardı.

İşte Sunucusuz Hesaplama yukarda bahsedilen sorunların tamamına bir çözüm olarak ortaya çıktı. Hem bulut sağlayıcısı, hem de kullanıcılar birçok konuda sıkıntı yaşıyorlardı ve her iki taraf için de bir çözüm gerekiyordu. Sunucusuz Hesaplama Bulut Hesaplama modelini şöyle basitleştirmektedir:

  • Operasyon ve platformla ilgili tüm sorumlulukları kullanıcıların omuzlarından alır,
  • Kullanıcılara sadece uygulamalarına ve iş modellerine odaklanabilme fırsatı sağlar,
  • Kullanıcıların sadece uygulamaları tarafından oluşturulan iş yükleri için ödeme yapmalarına izin verir,
  • Bulut platform sağlayıcılarının kullanıcı uygulamalarını daha iyi gözlemleyip profilleyebilmesine ve otomatik ölçekleme kararlarını daha başarılı vermelerine olanak tanır.

Sunucusuz Hesaplama tüm bunları container temelli sanallaştırma teknikleri, fonksiyonel programlama, mikroservisler ve daha birçok alanda son yıllarda yaşanan gelişmeler sayesinde gerçekleştirebilmektedir. Bir çalışmaya göre [1] eğer bu alanlarda son 10 yılda büyük teknolojik yenilikler yaşanmasaydı, Sunucusuz Hesaplama mümkün olamazdı.

Sunucusuz Hesaplama’ya ait basit bir model alttaki şekilde verilmiştir. Bu modelde kullanıcılar sadece  uygulamalarını ve bu uygulamaları oluşturan fonksiyonları düşünmektedir. Fonksiyonların geliştirilmesi tamamlanınca bu fonksiyonlar Bulut Sağlayıcı’ya teslim edilmektedir. Bulut Sağlayıcı da bu noktadan sonra kullanıcı fonksiyonlarının yaşam döngüleriyle ilişkili tüm operasyonel süreçleri yönetmektedir. Bu süreçler yönetim, container temelli sanallaştırma, kurulum, devreye alma, istekler olunca fonksiyonları çalışmaya hazır bulundurma, gözlemleme, otomatik olarak ölçekleme ve faturalandırma gibi işlemlerden oluşmaktadır [1]. Sunucusuz Hesaplama’daki fonksiyonlar durum bilgisi tutmayan (stateless) ve olay-tabanlı çalışan fonksiyonlardır [1-3]. İlgili oldukları olaylar gerçekleşince bu fonksiyonlar hemen çalışmaya başlarlar. Sadece olay gerçekleşince ayağa kalkıp çalıştıkları için sadece bu zaman zarflarında bulut kaynaklarını kullanmakta, bu nedenle de kullanıcıların yaptıkları ödemelerin verimli olmasını sağlamaktadırlar. Kullanıcılar olayın olmadığı zamanlar için bulut sağlayıcısına ödeme yapmaktan kurtulmaktadırlar. Uygulama fonksiyonları container temelli sanallaştırma ortamlarında çalıştırıldığı için, sanal makinelere göre bulut sağlayıcılar uygulamaları daha iyi profilleyebilmekte ve ani yük artışlarında daha iyi otomatik ölçekleme kararlarını verebilmektedirler. Böylelikle olay-bazlı ve durum bilgisi tutmayan fonksiyonlar optimize ve çevik bir şekilde çalışabilmektedir.

Sunucusuz Hesaplama’da kullanıcılar alttaki donanımdan ve ilişkili tüm operasyonel süreçlerden soyutlanmaktadırlar. Böylelikle de sanki fiziksel bir sunucu yokmuş gibi bir deneyim yaşayabilmektedirler [2].

Sunucusuz Hesaplama’nın avantajları:

  • Kullanıcılar artık altta çalışan platformu düşünmek zorunda kalmayıp sadece uygulama geliştirmeye ve iş modeline odaklanabilirler [1-3],
  • Platformla ilgili sorunlarla ilgilenme zorunluluğunun ortadan kalkması uygulama fikirlerinin kullanıma hazır hale gelebilmesi için gereken süreyi ciddi bir oranda azaltabilir [3],
  • Kullanıcılar kullanılmayan kaynaklar için ödeme yapmaktan kurtulup sadece olaylar meydana gelince aktif hale gelen fonksiyonlarının tükettiği kaynaklar için ödeme yaparlar,
  • Bulut sağlayıcısı kaynaklarını çok daha verimli bir şekilde yönetebilir,
  • Bulut sağlayıcısı platformunun çalışmasını daha iyi gözlemleyebilir, profilleyebilir, kontrol edebilir ve daha kolay harekete geçebilir.

Sunucusuz Hesaplama uygulama geliştirmenin dışındaki her şeyin bulut sağlayıcıların omuzlarına yüklendiği gibi anlaşılabilir. Fakat bu gerçekten doğru mudur? Stackery’nin CEO’su ve kurucularından biri olan Nate Taggart Software Engineering Radio’da Kishore Bhatia ile yaptığı söyleşide bunun pek de doğru olmadığını öne sürdü [5]. Taggart’a göre Sunucusuz Hesaplama’da her zaman hizmet verebilirlik (availability), ölçeklenebilirlik ve yönetim görevleri Bulut Sağlayıcılara servis ediliyor. Ancak ona göre kullanıcılar hala uygulamanın yaşamsal yönetiminden ve DevOps süreçlerinden sorumlu oluyorlar.

Sunucusuz Hesaplama her tür uygulama için uygun bir model midir? Aslında Sunucusuz Hesaplama için olay-tabanlı ve durum bilgisi tutmayan uygulamalar biçilmiş kaftandır [1,3,5]. Aniden büyük hacimde gelen istekleri başarılı bir şekilde karşılayabilir. Böyle trafikler Nesnelerin İnterneti (Internet-of-Things – IoT) uygulamaları tarafından üretilebilir. IoT uygulamalarında binlerce basit ve ucuz sensör kısa süreli ve belli bir düzene uymayan yapıda aktivite gerçekleştirebilir. Böyle yapıların ihtiyaçları da Sunucuz Hesaplama sayesinde başarılı bir şekilde karşılanabilir [3].

Sunucusuz Hesaplama’dan bazı uygulamalar ne yazık ki faydalanamazlar. Sunucusuz Hesaplama’nın ana bileşenlerinden biri container temelli sanallaştırma teknolojileri olduğu için bu yapılar geleneksel sanal makinelere oranla çok daha hızlı ayağa kalksalar da, hala birkaç saniye süreye ihtiyaç duymaları gerekmektedir. Gerçek-zaman kısıtlarına sahip uygulamalar için saniye mertebesindeki süreler oldukça uzun olduğu için Sunucusuz Hesaplama henüz gerçek-zamanlı uygulamalar için uygun olmamaktadır [3]. Durum bilgisi tutan (örn., veritabanı kullanan uygulamalar) da Sunucusuz Hesaplama’dan yararlanamazlar. Derin öğrenme gibi büyük miktarda veri ile çalışan uygulamalar da yine bu yapıyı şu andaki şartlar altında kullanamazlar [3].

Bilişim teknolojileri değişmeye ve evrilmeye devam ediyor. Ekosistemdeki ihtiyaçlardan doğan Sunucusuz Hesaplama da şu anda bu evrimin bir parçası olma niteliğinde. Bu yazımızda Sunucusuz Hesaplama üzerinde özet niteliğinde genel bir bilgi vermeye çalıştık. Sunucusuz Hesaplama’nın IoT ve Edge Computing ile geleceğin akıllı uygulamalarını ortaya çıkaracak temel bileşenlerden biri olacağına inanıyoruz.

Kaynaklar

  1. van Eyk, E., Toader, L., Talluri, S., Versluis, L., Uță, A. and Iosup, A. (2018). Serverless is More: From PaaS to Present Cloud Computing. IEEE Internet Computing, vol. 22, no. 5, pp. 8-17, Sep./Oct. 2018. doi: 10.1109/MIC.2018.053681358
  2. Kanso, A. and Youssef, A. (2017). Serverless: beyond the cloud. Proceedings of the 2nd International Workshop on Serverless Computing (WoSC ’17). ACM, New York, NY, USA, 6-10. DOI: 1145/3154847.3154854
  3. Savage, N. (2018). Going serverless. Communications of the ACM 61, 2 (January 2018), 15-16. DOI: https://doi.org/10.1145/3171583
  4. Satyanarayanan, M. (2019). How we created edge computing. Nature Electronics, 2(1), 42-42. doi:10.1038/s41928-018-0194-x
  5. Bhatia, K. (2018). Nate Taggart on Serverless. IEEE Software, vol. 35, no. 4, pp. 101-104, July/August 2018. doi: 10.1109/MS.2018.2801544
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors