Serverless: Avantajlar ve Dezavantajlar
7 Eylül 2019 , Serverless
Bilgi Teknolojilerinde çalışan geliştiriciler (developers), uygulamalarını ve yazılımları geliştirirken sunucuların yönetimini de üstleniyorlardı. Geliştiricilerin uygulamalarını sunucular üzerinde çalıştırabilmeleri için gerekli altyapının kurulması, temin edilmesi, güncellenmesi ve sürekli denetlenmesi gerekiyordu. Bulut bilişim her ne kadar altyapı kurulumunu değiştirmiş olsa da, geliştiriciler halen bu altyapının bakımından sorumlular. Örneğin kiralanacak sunucu alanı ve miktarını seçerken, beklenmeyen bir trafiğin veya en yoğun zamanların uygulamayı bozmaması için, geliştiriciler gerekenden daha fazla sunucu alanı kiralayabiliyorlar. Bulut sağlayıcılar tarafından otomatik ölçeklendirme özelliği sunulsa da, aşırı ödeme riski hala mevcut: örneğin bir DDoS saldırısı ölçeklendirmeyi oldukça yükseltip, yüksek maliyete sebep olabiliyordu. Bu tür durumlar, geliştiriciler için daha fazla iş yükü anlamına geliyordu ve dikkatlerini işletme ve projenin kendisinden uzaklaştırıyorlardı.
İşte tam bu noktada serverless karşımıza çıkıyor. Serverless, bulut sağlayıcılarının kaynak yönetimi sorumluluğunu üstlendiği bir uygulama modelidir. Serverless modeli, operasyonel endişeleri ve tüm altyapı yönetimini geliştiricilerden alarak bulut sağlayıcılara taşır. Serverless mimaride bulut sağlayıcıları, ihtiyaca göre altyapı hizmeti sağlar.
Mikroservisler ve Serverless
Mikroservisler, belirli bir işi gerçekleştiren tekil servislerden oluşan bir mimari model olarak tanımlanabilir. Bu model ile geliştiriciler birbirinden bağımsız servisler geliştirebilirler. Bu servisler bağımsız olarak ölçeklendirilebilir ve hataya dayanıklı, esnek bir sistem oluşturulabilir.
Serverless’tan önce, mikroservisler konteynırlarda yönetiliyor ve uygulanıyordu. Bu konteynırlar, birbirinden bağımsız sanal işletim sistemleridir. Her ne kadar bu konteynırların içeriği farklı olsa da, buraya gönderilen her servisin denetlenmesi ve ihtiyaca göre ölçeklendirilmesi gerekir. Serverless ile bu tür endişelere artık gerek kalmıyor. Temin edilmesi gereken sunucu veya konteynır olmadığına göre, geliştiriciler servislerini serverless üzerinden geliştirebiliyor ve hiçbir altyapı endişesi olmadan kodlarını çalıştırabiliyorlar.
Serverless ve İşletmeler İçin Avantajlar
Serverless sayesinde, geliştiriciler uygulama haricinde hiçbir endişeleri olmadan çalışabiliyorlar. Geliştirme öncesi önlemler veya sonrasındaki sunucu temini gibi sorumlulukların hepsi bulut sağlayıcılar tarafından yönetiliyor. Bu sayede geliştiriciler ve DevOps ekiplerinin iş yükü azalıyor.
Herhangi bir ön çalışma gerekmediğinden, geliştiriciler ve DevOps ekipleri gerekenden fazla sunucu alanı kiralamak zorunda kalmıyor. Bulut sağlayıcılar kaynak yönetiminin ve tahsisinin sorumluluğunu alıyor ve ücretlendirme, uygulama sayısına dayanıyor. Böylece işletme maliyetleri ciddi oranda azalıyor.
Kaynak yönetiminin bulut sağlayıcılara verilmesi operasyonel maliyetleri azaltmakla birlikte gereken iş gücü ve eforun da azalmasını sağlıyor. Geliştiriciler, serverless ile birlikte yoğun trafik veya aksaklık süresi gibi sorunlarla ilgilenmek zorunda kalmıyor.
Azalan Gecikme Süresi
Hizmet olarak altyapı (Backend as a Service - BaaS) modeli sayesinde sunucular bulut sistemi üzerinden sağlanıyor. Böylece sunucuları farklı coğrafi bölgelere dağıtmak mümkün hale geliyor. Herhangi bir kurulu sunucu kiralanmadığından ve kiralanan sunucular talebe göre çalıştığından, kod uç kullanıcıya yakın olarak çalıştırılabiliyor. Böylece gecikme süresi düşüyor ve kullanıcı deneyimi iyileşiyor.
Hızlılık ve Çeviklik
Daha az provizyon gerekmesi ve daha küçük uygulama birimleri sayesinde, bir iş fikrinin uygulanması ve hayata geçirilmesi daha az zaman alıyor. Serverless sayesinde ekipler sadece ürüne odaklandığından, güncellemeler ve ürün özellikleri için daha fazla zaman ayrılabiliyor. Sonuç olarak, serverless işletmelere inovasyon kabiliyeti sayesinde rekabet üstünlüğü kazanma şansı veriyor.
Serverless ve İşletmeler İçin Olası Dezavantajlar
Cold Starts - İlk Çalıştırma
Serverless sistemlerde, kodlar depo içinde tutuluyor. Bir istek gelmesi durumunda kod kullanıma hazır hale geliyor ve çalışmaya başlıyor. Bu sürecin sonunda ise yanıt verilmiş oluyor. Tüm bu sürece “cold start” adı veriliyor ve bu ilk çalıştırma, fazla zaman alabiliyor. Belirli bir zaman aralığında yeni istek gelmediği sürece sunucu yeniden hareketsiz duruma geliyor ve bir sonraki istekte yeniden cold start süreci yaşanıyor. Cold start süresi bulut sağlayıcılar arasında değişse de, warm start (sonraki çalıştırmalar) olarak tanımlanan aktive edilmiş sunucular ile karşılaştırıldığında çok yavaş kalıyor.
Eğer sunucu üzerindeki uygulama sürekli çalışıyorsa, serverless modeli de kiralanmış bir sunucu gibi çalışmaya başlayacaktır. Örneğin sunucu 7/24 aktifse, toplam işlem maliyeti herhangi bir sunucu kiralama bedelini aşabilir. Bu durumda serverless daha yüksek maliyete yol açabilir.
Kısıtlı Çalışma Süresi
Kısıtlı çalışma süresi, serverless ile çalışırken işletmeler için bir dezavantaj haline gelebilir. Bir istek geldiğinde, kodun çalışması için süre limiti mevcuttur. Bu limit aşılırsa, kod işlemi durdurur, istek iptal edilir ve sistem hata verir. Kısıtlı çalışma süresi, yanıt alamama durumundan dolayı işletmeyi yavaşlatabilir.
Eğer serverless dünyasıyla ve bu teknolojiyle ilgiliyseniz, ServerlessDays topluluğuna katılabilirsiniz. ServerlessDays, kısaca dünya genelinde serverless teknolojisini destekleyen bir etkinlik grubudur. Bu topluluğa katılarak serverless teknolojisini daha yakından öğrenebilir ve sektör uzmanlarından bilgi alabilirsiniz.
ServerlessDays İstanbul 2019'a Davetlisiniz!
ServerlessDays, Paul Johnston’ın “Serverless sadece bir isim. Serverless’a Jeff de diyebilirdik.” tanımına bir gönderme olarak JeffConf adıyla ortaya çıktı. ServerlessDays etkinlikleri, topluluğun bilgi ve yetenek hazinesini genişletmeyi, deneyimleri paylaşmayı ve topluluğu desteklemeyi hedefliyor. Yerel olarak organize edilen her etkinliğin ana standardı ulaşılabilir ve temsil edilebilir olmak. Tüm gün boyunca süren bu etkinlikler, dünya genelinde Avustralya’dan Kanada’ya birçok ülke ve şehirde düzenleniyor.
image4io olarak, ServerlessDays İstanbul 2019 etkinliğinin gümüş sponsoru olmaktan mutluluk duyuyoruz. ServerlessDays İstanbul, 3 Ekim Perşembe günü İstanbul Kadir Has Üniversitesi’nde gerçekleşecek. Serverless dünyasıyla ilgilenen herkesi bekliyoruz!
Etkinlik detayı ve biletlere ulaşmak için: ServerlessDays İstanbul 2019