dev-tools
Sözlük ↗Sunucusuz (Serverless)
Sunucusuz (serverless) bilişim, geliştiricinin tek tek fonksiyonlar (veya küçük servisler) yazıp deploy ettiği, sunucu sağlama, ölçeklendirme ve altyapı yönetiminin tamamını bulut sağlayıcısının üstlendiği bir bulut çalıştırma modelidir — sunucular fiziksel olarak hâlâ vardır, ama geliştirici onları hiçbir zaman görmez, yapılandırmaz veya boşta duran kapasite için ödeme yapmaz. Baskın form Function-as-a-Service (FaaS)'dır: AWS Lambda, Google Cloud Functions, Azure Functions ve Cloudflare Workers, bir tetikleyiciye (bir HTTP isteği, dosya yükleme, kuyruk mesajı) yanıt olarak çalışan tek bir fonksiyonu deploy etmenizi sağlar; bu fonksiyon sıfırdan binlerce eşzamanlı çağrıya otomatik olarak ölçeklenir ve çalışan bir sunucunun saatlik ücreti yerine çağrı başına ve çalışma süresine göre faturalandırılır. AI/SaaS geliştiricileri için neden önemli: sunucusuz mimari, kapasite planlama, yama uygulama, ölçeklendirme politikaları gibi devasa bir operasyon yükünü ortadan kaldırır ve kullandığın kadar öde fiyatlandırması, düzensiz veya düşük trafikli iş yükleri için son derece cazip hale gelir — arada bir tetiklenen bir webhook handler'ı sunucusuz üzerinde neredeyse bedavaya mal olurken, sürekli açık bir sunucu için ödeme yapmak zorunda kalmazsınız. Kabul edilmesi gereken ödünler ise soğuk başlatma gecikmesi (yakın zamanda çalışmamış bir fonksiyon, sağlayıcı bir çalıştırma ortamı ayağa kaldırırken ilk çağrısında daha uzun sürer), durumsuzluk (bellekteki durumun çağrılar arasında kalıcı olacağına güvenemezsiniz — kalıcı durum harici bir veritabanında veya önbellekte yaşamalıdır) ve çalışma süresi sınırlarıdır (çoğu FaaS platformu tek bir çağrıyı birkaç dakika ile 15 dakika arasında sınırlar). Nasıl çalışır: bir fonksiyonun kodunu, tetikleyicisini ve kaynak sınırlarını (bellek, zaman aşımı) tanımlayan bir manifest ile birlikte deploy edersiniz. Sağlayıcının altyapısı bu tetikleyiciyi dinler ve her olayda bir çalıştırma ortamını ayağa kaldırır (veya "sıcak" bir ortamı yeniden kullanır), fonksiyonunuzu olay verisini girdi olarak vererek çalıştırır, dönüş değerini/yanıtı yakalar ve ortamı söker veya geri dönüştürür. Eşzamanlılık otomatik olarak yönetilir — geliştiricinin bir otomatik ölçeklendirme grubu yapılandırmasına gerek kalmadan 1.000 eşzamanlı istek (en fazla) 1.000 paralel fonksiyon örneğini ayağa kaldırır. Uygulamalı örnek: bir SaaS ürünü, bir kullanıcı avatar görseli yüklediğinde onu yeniden boyutlandırmak zorundadır. Sürekli açık kalan özel bir görüntü işleme sunucusu çalıştırmak yerine, S3 nesne oluşturma olaylarıyla tetiklenen bir AWS Lambda fonksiyonu deploy ederler. Bir kullanıcı S3 bucket'ına `avatar.jpg` yüklediğinde, S3 otomatik olarak Lambda fonksiyonunu nesnenin anahtarıyla çağırır; fonksiyon görseli indirir, Sharp gibi bir kütüphane kullanarak üç küçük resim (thumbnail) boyutuna yeniden boyutlandırır, yeniden boyutlandırılmış sürümleri tekrar S3'e yükler ve sonlanır — bunların tamamı bir saniyenin altında gerçekleşir, bir sentin çok küçük bir kesrine mal olur ve ekip bu özellik için tek bir sunucu bile sağlamak veya yönetmek zorunda kalmaz.
İlgili terimler