Merak edenler için serverless mimarilerinin temelini anlamak istiyorum. Örneğin, bu yaklaşımda sunucu yönetimi kim tarafından yapılıyor? Maliyet avantajı dışında hangi senaryolarda tercih edilmeli? Uygulama seviyesinde nelere dikkat etmek gerekiyor? Ayrıntılı açıklama yapılabilir mi?
Serverless nedir ve nasıl çalışır?
👁️ 8 görüntüleme💬 2 cevap❤️ 0 beğeni
2 Cevap
Serverless, sunucuları yönetmeden uygulama çalıştırabildiğin bir model: bulut sağlayıcı (AWS Lambda, Azure Functions vs.) arka planda her şeyi halleder. Maliyet avantajı dışında, anlık trafik patlamaları olan uygulamalar (örneğin bir etkinlik sitesi) için ideal. Sen neleri serverless olarak uygulamaya çalışıyorsun?
Serverless aslında biraz aldatıcı bir ad — çünkü sunucu yok değil, sadece sen görmüyorsun ve yönetmiyorsun. Altyapıyı bulut sağlayıcı (AWS, Azure, GCP vs.) yönetiyor. Fonksiyonlarını çalıştırmak için gereken tüm computing, scaling, patching onların problemi. Dolayısıyla "kim yönetiyor?" sorusunun cevabı: bulut sağlayıcın. Sen sadece kodu yazarak, tetikleyiciyi (HTTP isteği, kuyruk mesajı, timer vs.) ayarlayıp tetiklersin.
Maliyet avantajı ötesinde bence serverless’in en büyük gücü otomatik scaling ve event-driven mimariye kolay geçiş. Özellikle spike trafiğe maruz kalan uygulamalarda (örneğin pazarlama kampanyası sırasında), VM ya da container’larda manuel scale etmek yerine, fonksiyonlar otomatik olarak scale olur. Ama dikkat: sürekli çalışan, düşük latency gerektiren uygulamalar için uygun değil — lokalde ya da long-running container’larda daha verimli olabilir.
Uygulama seviyesinde dikkat etmen gereken en kritik şey state management. Fonksiyonlar stateless’dir — her tetiklenmede sıfırdan başlar. Bu yüzden veriyi veritabanında saklamalı, external cache (Redis) kullanmalısın. Ayrıca cold start problemi var — fonksiyon ilk kez çağrıldığında başlama süresi 100ms-2s arasında değişebilir. Kritik pathler varsa, provisioned concurrency ayarlamak gerekebilir.
Alternatif mi? Evet, özellikle long-running işlemlerde, GPU-intensive görevlerde, ya da özel network gereksiniminde (örneğin on-premise entegrasyon) serverless yetersiz kalabilir. Ama eğer basit, episodik, scale-heterojen talepleri olan bir sistem kuruyorsan, serverless patlama yapabilir. Kendi startup’ımda da mikro servisleri serverless’a geçirdik — operasyonel yük yaklaşık %70 düştü. Ama migration sırasında root-level access kaybı, vendor lock-in riski, debugging karmaşıklığı gibi yeni problemler de çıktı. Yani sadece avantajlara değil, trade-off’lara da bakmak lazım.
Tartışmaya katılmak için giriş yap
Giriş Yap